Platform & Partners

Permission Reference

Complete list of permission keys available to platform admins and tenant users.

Permissions are dot-separated strings returned in permissions[] from GET /auth/me. Super admins receive a single * entry that passes all checks. All other roles receive an explicit list.

Permission checks in the frontend use two helpers: hasPlatformPermission(permissions, key) for Platform Console gates and hasPermission(me, key) for workspace-level gates. Both handle the * wildcard.

Platform admin permissions

Permission keyPlatform Console areaWhat it unlocks
platform:tenants:readTenants, IntegrationsList and view all customer tenants; see tenant picker in integrations
platform:tenants:manageTenants, IntegrationsCreate / update customer tenants; provision API keys, webhooks, OAuth clients for them
platform:billing:readBillingView usage and billing info for the platform
platform:settings:readSettingsView platform-level configuration
platform:settings:manageSettingsUpdate platform-level configuration
platform:oauth_clients:readOAuth AppsList OAuth clients registered for the platform
platform:oauth_clients:manageOAuth AppsCreate and manage OAuth clients
platform:users:manageUsersInvite, update, and deactivate users within the platform
platform:interviews:rescoreSupportTrigger re-assessment on a completed interview
platform:impersonateSupportImpersonate any user within the platform for debugging
apikey:readIntegrations → API KeysList API keys for any customer tenant
apikey:createIntegrations → API KeysCreate API keys for any customer tenant
apikey:deleteIntegrations → API KeysRevoke API keys for any customer tenant
webhook:readIntegrations → WebhooksRead webhook config for any customer tenant
webhook:updateIntegrations → WebhooksUpsert or delete webhook config for any customer tenant

Tenant user permissions

Tenant users have workspace-scoped permissions. The exact set depends on their role within the workspace (admin, member, etc.). Common permissions:

Permission keyRecruiter Console areaWhat it unlocks
interview:createJobs / A2ASubmit a new interview request
interview:readJobs, AssessmentView interview details, plan, and assessment
interview:approvePlan review (HITL-1)Approve or reject a generated plan
interview:updateJobsUpdate interview metadata
candidate:readCandidatesView candidate profiles
recording:readAssessmentDownload or stream interview recordings
apikey:readIntegrations → API KeysList workspace API keys
apikey:createIntegrations → API KeysCreate workspace API keys
apikey:deleteIntegrations → API KeysRevoke workspace API keys
webhook:readIntegrations → WebhooksRead webhook config
webhook:updateIntegrations → WebhooksUpsert or delete webhook config
Tenant users are never granted platform:* permissions. Attempting to call a platform-admin endpoint with a tenant token returns 403 Forbidden.

Backend enforcement

LayerMechanismCovers
Route guardPermissionsGuard + PlatformGuardEvery admin endpoint — checks permission key and isPlatform flag
Cross-tenant checkassertAccess(actor, tenantId)Verifies target tenant's parentPlatformId === actor.tenantId via Prisma lookup
Key embedding guardApiKeyController / ApiKeyAdminControllerRejects any platform:* permission in the requested key permissions list
Escalation guardApiKeyController (self-serve only)Tenant user cannot grant a key more permissions than they hold
Was this page helpful?