Access Control

Learn how role-based access control (RBAC) governs permissions across organizations, projects, and resources

Access Control

KtrlPlane uses Role-Based Access Control (RBAC) to manage permissions at three hierarchical scopes: organization, project, and resource.

Core Principles

  • Scoped Roles: Roles are always assigned within a scope (org, project, resource)
  • Least Privilege: Users should receive only the permissions necessary
  • Composability: Access can layer—organization visibility and project edit rights, for example
  • Auditability: Role assignments form the backbone of audit trails

Scopes

ScopeExampleRole ExamplesDescription
Organizationorg-abc123org_owner, org_admin, org_viewerTop-level grouping boundary
Projectproj-xyz123project_owner, project_editor, project_viewerApplication/workspace boundary
Resourceres-graph-01resource_editor, resource_viewerIndividual deployable unit

Roles (Conceptual)

RoleTypical Permissions
org_ownerManage organization + billing + projects
org_adminManage organization configuration
org_viewerRead-only organization visibility
project_ownerFull project control including billing override
project_editorCreate/update resources
project_viewerRead-only project and resources
resource_editorChange resource configuration
resource_viewerView resource status, metrics, logs

Permission Evaluation

  1. Authenticate user (JWT token)
  2. Identify scope from request path
  3. Load role assignments for user + scope
  4. Resolve permissions and compare against required action

Best Practices

  • Periodically audit high-privilege roles
  • Use resource-level roles only when finer granularity is required
  • Prefer project-level roles for most collaboration scenarios

Common Scenarios

  • A user needs to view logs: must have resource_viewer or project_viewer (with access) + logs feature enabled
  • A user needs to change resource settings: resource_editor or project_editor
  • A user needs to delete a project: project_owner

Next Steps

Cookie Notice

We use cookies to enhance your browsing experience.