Auth And Access
This page describes the access and permissions module.
Access model
- Console users authenticate with OTP and receive JWT tokens.
- Machine workloads authenticate with API keys.
- Governance APIs under
/v1/*accept JWT or API key. - JWT authorization is role-based.
- API key authorization is scope-based.
This module keeps human sign-in and machine access separate so customers can manage permissions cleanly.
JWT roles
Roles are normalized to:
super_adminbilling_adminuser
Role capabilities in Console
super_admin
- Full workspace access.
- Can create assets, groups, and policies.
- Can delete policies.
- Can approve and reject approvals.
- Can create, rotate, and revoke API keys.
- Can invite members with
POST /members.
billing_admin
- Read-only governance access in Console.
- Can view organization settings, usage, assets, groups, policies, approvals, and API keys.
- Cannot perform governance write actions in Console.
user
- Read-only governance access in Console.
- Can view the same governance surfaces as billing admin.
- Cannot perform governance write actions in Console.
API key scopes
Every API key must include at least one scope.
Supported scopes:
decision:runassets:readassets:writeasset_discovery:writegroups:readgroups:writepolicies:readpolicies:writeapprovals:readapprovals:writeusage:readaudit:readapi_keys:readapi_keys:writewebhooks:readwebhooks:write
Behavior:
- Key creation validates scopes and rejects invalid values.
- Key rotation preserves current scopes.
- Requests without required scopes receive
403 Forbidden.
Endpoint enforcement summary
JWT-only role-gated endpoints
POST /membersrequiressuper_admin.POST /v1/api-keysrequiressuper_admin.POST /v1/api-keys/{id}/rotaterequiressuper_admin.POST /v1/api-keys/{id}/revokerequiressuper_admin.
Scope-gated governance endpoints
POST /v1/evaluate,POST /v1/proxy/evaluate,POST /v1/playground/decisionrequiredecision:run.GET /v1/assetsrequiresassets:read.POST /v1/assetsrequiresassets:write.GET /v1/groupsrequiresgroups:read.POST /v1/groupsrequiresgroups:write.GET /v1/policiesrequirespolicies:read.POST /v1/policies,DELETE /v1/policies/{id}requirepolicies:write.GET /v1/approvalsrequiresapprovals:read.POST /v1/approvals/{id}/approve,POST /v1/approvals/{id}/rejectrequireapprovals:write.GET /v1/audit,GET /v1/decision-explorerrequireaudit:read.GET /v1/usagerequiresusage:read.GET /v1/api-keysrequiresapi_keys:read.GET /v1/webhooksrequireswebhooks:readandsuper_admin.POST /v1/webhooks,POST /v1/webhooks/{id}/rotate,DELETE /v1/webhooks/{id}requirewebhooks:writeandsuper_admin.
Webhooks are only available when the workspace's approvals capability is enabled, since webhook delivery exists to notify on approval lifecycle events.
For detailed request/response examples, see API Reference.