Skip to content

Roles & Permissions (RBAC)

Controlinfra uses Role-Based Access Control (RBAC) to manage what users can do within an organization. Every member is assigned a role that determines their permissions.

Built-in Roles

RoleDescription
OwnerFull access. Can manage billing, delete the org, and transfer ownership. Only one owner per org.
AdminCan manage members, integrations, repositories, and settings. Cannot delete the org or manage billing.
MemberCan create and run scans, view drifts, and manage repositories. Cannot change org settings or members.
ViewerRead-only access. Can view scans, drifts, and repositories but cannot modify anything.

Permission Matrix

PermissionOwnerAdminMemberViewer
View repositories & scansYesYesYesYes
Create & edit repositoriesYesYesYesNo
Trigger & cancel scansYesYesYesNo
View & manage driftsYesYesYesRead only
Guardrails (create, deploy)YesYesNoNo
Manage integrationsYesYesNoNo
Manage members & invitationsYesYesNoNo
View audit logsYesYesNoNo
Manage org settingsYesYesNoNo
Manage billingYesNoNoNo
Delete organizationYesNoNoNo

Custom Roles Team+

Teams on the Team plan or higher can create custom roles with granular permissions. Custom roles let you define exactly what a user can do without being limited to the four built-in roles.

Available Permissions

Custom roles can include any combination of these permissions:

CategoryPermissions
Repositoriesrepositories:read - View repos
Scansscans:read - View scans
Driftsdrifts:read - View drifts
Guardrailsguardrails:read - View guardrails
Membersmembers:read - View members
Settingssettings:read - View settings
Billingbilling:read - View billing info
Audit Logsaudit-logs:read - View audit logs

Creating a Custom Role

  1. Go to Organizations and select your org
  2. Click the Roles tab (visible to admins on Team+ plans)
  3. Click Create Role
  4. Enter a name, description, and color
  5. Select the permissions for this role
  6. Click Create Role to save

Assigning a Custom Role

Once created, custom roles appear in the role dropdown when editing a member's role:

  1. Go to the Members tab
  2. Click the role badge next to a member's name
  3. Select the custom role from the dropdown

API Reference

Custom roles can also be managed via the API:

bash
# List custom roles
GET /api/orgs/:orgId/roles

# Create a custom role
POST /api/orgs/:orgId/roles
{
  "name": "Security Reviewer",
  "description": "Can view guardrails and audit logs",
  "permissions": ["guardrails:read", "audit-logs:read", "drifts:read"],
  "color": "#6366f1"
}

# Update a custom role
PATCH /api/orgs/:orgId/roles/:roleId

# Delete a custom role
DELETE /api/orgs/:orgId/roles/:roleId

See the Organizations API reference for full details.