Skip to content

docs: document workspace and group roles (access control)#116

Open
ben-miru wants to merge 4 commits into
mainfrom
feat/wsp-roles
Open

docs: document workspace and group roles (access control)#116
ben-miru wants to merge 4 commits into
mainfrom
feat/wsp-roles

Conversation

@ben-miru

@ben-miru ben-miru commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

What

Finishes the access control documentation page (docs/admin/users/access-control.mdx), filling in the previously-empty Workspace roles and Group roles sections, and wires the new page into the docs.

Why

The page existed only as a stub: it documented the owner/admin/member tiers but left the role model undocumented. This completes the migration from the old single Roles page to a layered tiers + roles model.

Changes

  • Add the access control page content — workspace roles (viewer / operator / provisioner / publisher) and group roles (viewer / operator / provisioner / manager), each with a per-role summary and a permissions matrix.
  • Reconcile the Members tier section with the role model (a member's application access now comes from roles, not blanket access).
  • Swap the Users nav entry from the removed roles page to access-control, and delete the superseded roles.mdx.
  • Add the MemberBadge component and repoint role badge/link targets from the removed /admin/users/roles path to /admin/users/access-control.

Model — grounded in the backend

The role descriptions and matrices were derived from the backend's current implementation (internal/authz/permissions/configs/role_grants.go, internal/authz/user/grants.go, and the role enums), not just the design doc:

  • Workspace roles apply to members only. Owners and admins already hold full access via their tier; every member has a read-only viewer baseline, with operator / provisioner / publisher adding write access on top. Roles are additive.
  • Group roles are scoped to one group and all its descendants, mirroring the workspace roles minus publishing.
  • The group "manage members / subgroups" role is named manager (matching the backend enum and the GroupManagerBadge), not the design doc's "admin".

Validation

Targeted docs lint on the changed files — MDX prose lint, ESLint (MDX), and CSpell — all pass.

Out of scope

The broader rollout of the new role badges onto action headings across learn/ pages (groups, devices, releases, schemas, config-types) is left as separate follow-up work and is not included here.

🤖 Generated with Claude Code

ben-miru added 4 commits June 8, 2026 20:07
Document the workspace and group role model. Add the access control
page covering tiers, workspace roles (viewer/operator/provisioner/
publisher), and group roles (viewer/operator/provisioner/manager),
swap it into the Users nav, and remove the superseded roles page.
Add the MemberBadge component used by the access control page and
repoint the role badge/link targets from the removed /admin/users/roles
path to /admin/users/access-control.
Use 'user types' instead of 'tiers' to match the backend UserType
model (owner/admin/member), including the section heading, table
header, and the cross-reference anchor.
Replace the group-role badge list and permissions matrix with per-role
subsections (viewer/operator/provisioner/manager), each with a prose
description and linked operation lists, matching the workspace roles
format. Also fix a double dash and a typo in the administrative
privileges intro.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant