Authio docs

Concepts · reference

System permissions

The full catalogue of Authio's system permissions. Mirrors WorkOS's set so a customer migrating between the two never has to re-slug their roles.

Every Authio customer-tenant project is seeded with the twelve system permissions below on creation (migration 0061_roles_permissions.sql). System permissions are flagged is_system = true and the management API refuses to delete them; you can rename them (display name + description) but the slug is immutable so SDK code that gates on the literal slug never breaks.

The seeded admin role gets all twelve system permissions attached. Edit the role in /roles/admin if you want to drop one in your own deployment — the system flag protects the permission, not its assignment to the admin role.

Catalogue

SlugNameWhat it grants
organizations:manageManage organizationsCreate, edit, and delete organizations.
organizations:readRead organizationsView organization details.
users:manageManage usersCreate, edit, and delete users.
users:readRead usersView user details.
sso-connections:manageManage SSO connectionsConfigure SAML / OIDC SSO connections for any organization.
dsync:manageManage directory syncConfigure SCIM directory sync for any organization.
domains:manageManage domainsAdd or remove organization-claim domains.
audit-log-streams:manageManage audit log streamsConfigure audit-log stream destinations (Datadog, S3, generic webhook).
api-keys:manageManage API keysManage API keys for the project. At GA this is equivalent to api-keys:manage-self.
api-keys:manage-selfManage own API keysManage API keys created by the calling user.
api-keys:manage-allManage all API keysManage API keys for any user in the project.
pipes:manageManage pipesConfigure third-party OAuth connector pipes (the WorkOS-compatible Pipes surface).

Mapping to WorkOS

The twelve slugs above are byte-identical to the WorkOS system permission set documented at workos.com/docs/user-management/roles-permissions. A customer migrating from WorkOS to Authio can ship the same role ↔ permission assignments without touching application code that gates on permissions.includes(...).

Adding custom permissions

Custom permissions are first-class. The slug format mirrors the system shape — lowercase, colons + hyphens, 1–64 chars. See the Roles and permissions page for the create flow.