access-roles experimental flag: set APP_EXPERIMENTAL=access-roles on the control plane (see Experimental features). Listing roles, IAM policies and the environment rules below are always on.
Built-in roles
Four roles exist on every instance. They cannot be edited or deleted.Abilities
Every user and every API token carries abilities. A role is a named set of them.
See Identity and access for how abilities, sessions and tokens work.
Custom roles
Create a role with a name, the abilities it holds and a visibility:- Built-in roles cannot be edited or deleted.
- A role that is assigned to users cannot be deleted. Reassign them first.
- Editing a custom role updates the abilities of everyone who holds it, in one step.
- The last user with
rootcannot lose it, whether by a role change, a role edit or a deletion. - You cannot change your own role. Ask another admin.
Assign a role to a user
Visibility and the guest role
A role’s visibility isall (the default) or granted.
- With
all, a user sees every app and database their abilities allow. - With
granted, a user sees only apps and databases in the environments granted to that user. A role withgrantedvisibility may hold only thereadability.
Environment grants
grants set replaces the whole list. A user with no grants sees nothing. Grants only apply to users whose role has granted visibility. In the dashboard, the Users page shows an environment checklist when you change a user to such a role. See Environments for the environments you can grant.
IAM policies
A policy adds Allow or Deny rules on top of a user’s or token’s abilities:
A trailing
* matches a prefix (app:*, environment:*, environment-kind:*). An app or database with no environment matches no environment rule.
Policy templates
Five ready-made policies. In the dashboard use Settings, IAM policies, Add from template: it shows the effect in plain language and the JSON before you create it.apply accepts --name, --attach-user and --attach-token. A duplicate policy name answers 409.
Audit
Every request aboveread is written to the audit log with who made it and which ability it needed:
Build, test and review policies
Open Settings, IAM policies for the policy workspace. How the evaluator works is written down in IAM design notes.- Guided builder: pick Allow or Deny, choose abilities from a grouped list with a plain description and a risk hint, then choose resources by picker: everything, a project (expanded to its environments), an environment, an environment kind, one app, one database or a name pattern. Each choice shows how many apps and databases it matches today. The stored JSON is shown beside the rules and is only editable behind the Edit JSON switch. Errors point at the field path.
- Templates with parameters: read only, guest in one environment, deployer for non-production, operator of one app, owner of one database and deployer for one project. You pick the app, database, environment or project instead of typing an ID.
- Simulator: ask whether a user or token can do an ability on a resource. The answer comes from the same evaluator that guards requests and lists the deciding statement and every statement that matched. The same check runs from the CLI and the read-only MCP tools.
- Who has access: start from a user or token: its abilities, attached policies and what it can do on every app and database. Attach or detach with a preview of the access that changes, in bulk for tokens.
- Analyzer: static checks with a severity and a one line fix: allow everything, wildcard or root abilities, sensitive abilities on every resource, a Deny that can never match, unattached policies, tokens holding root, attachments to a missing user or token, shadowed or overlapping statements and keys the evaluator ignores.
- Safe changes: every saved document is kept as a version with a rule diff. A change that would leave no operational root principal is refused.
API
Role bodies are
{"name", "description", "abilities", "visibility"}. Grants are {"environment_ids": []}.
Next steps
Environments
Instance-wide environments and protected moves.
AI control
Decide what agents may do.