Manage roles and permissions
Access to the Tetrate Agent Router Admin Console is governed by roles: named sets of permissions, granted to a user or a team, that determine which menus, pages, and actions that person is shown. A role applies either across the whole organization or inside a single project, so a delegated operator can be given exactly one project to administer and nothing beyond it.
Persona: Platform operator working in the Admin Console, holding a role that can manage access.
Estimated time: 10 to 20 minutes to define a role and grant it; recurring thereafter as people join, move, and leave.
These actions require either Super Admin access or a role with the IAM permissions configured.
When this guide applies
| Situation | What it covers |
|---|---|
| A new administrator needs a subset of Admin Console capabilities | Selecting a built-in role, or defining a custom one |
| An operator should administer one project and nothing else | Granting a project-scoped role |
| Several people all need the same access | Granting a role to a team once instead of per person |
| Access has become broader or narrower than intended | Reviewing, editing, and revoking grants on the Access page |
| A granted role must be confirmed to restrict as intended | Verifying the result from the recipient's own session |
| Someone has changed job, or access was granted too broadly | Editing a grant in place, or revoking it |
A single worked example runs through the tasks below: a custom Guardrails Admin role is created, granted to a user across the whole organization, and then revoked.
Outcomes
By the end of this guide:
- The difference between read and write permissions is clear, along with how each is reflected in the Admin Console.
- A built-in role has been selected, or a custom role has been created.
- That role has been granted to a user and to a team, at organization or project scope.
- The combined effect of overlapping grants is understood.
- The restriction has been verified from the recipient's session.
- A grant has been edited in place, and one has been revoked.
Prerequisites
- Access to the Admin Console (
https://dashboard.<tenant>.tetrate.ai) with a role that can manage access, such as Super Admin. - The users involved already exist in Agent Router. A user record is created on first sign-in, as described in Onboard developers and issue keys.
- For team-based grants, a team under Directory → Teams with the intended members.
The two pages used throughout this guide sit in the sidebar under Directory: Roles and Access.
In this guide
- Concepts: how a role decides what a person is shown
- Tasks: define access, grant it, and take it away
- Reference
How access is decided
Every menu and page in the Admin Console is tied to a permission. A menu is shown only when the role includes its read permission, and the page itself rejects anyone who arrives without that permission. Enforcement happens in two places at once. Hiding a menu is therefore a genuine restriction, not a cosmetic one.
Permissions come in two kinds:
- Read: view a resource, for example view models, view users, or view audit logs. Read permissions determine which menus are visible.
- Write: create, edit, or delete a resource. Write permissions determine whether the New, Edit, and Delete buttons appear and whether the action is accepted.
role permissions: { models.read, providers.read }
↓
sidebar shows: Models, Providers (their read permissions)
buttons shown: none (no write permissions)
other pages: redirect to "unauthorized"
A role carrying read permissions only is view-only: every change button is hidden, and the server refuses the change even when it is submitted directly.
Scope: organization or project
Scope appears in two distinct places, and they answer different questions.
| Where | What it decides |
|---|---|
| Scope levels, on the role | Where the role is allowed to be granted. A role can permit one level or both, so a role marked Organization & Project can be used for either kind of grant. |
| Apply to, on the grant | Where this particular grant actually applies: the whole organization, or named projects. |
The two levels cover the following.
| Scope | What it covers |
|---|---|
| Organization | The whole organization, including organization-wide resources such as users, teams, API keys, billing, and the shared model, provider, and Model Context Protocol (MCP) catalog. |
| Project | A single project only: the models, providers, MCP servers, and members of that project, and nothing outside it. |
A user can hold an organization role, one or more project roles, or a combination of the two. Someone holding a project role alone is shown only that project's pages; the organization-wide administrative pages (Users, Roles, Settings, and Audit Logs) remain closed.
Built-in roles
The following roles are predefined. Each can be granted as-is, or copied as the starting point for a custom role. The permission counts are those shipped with the current release and are shown in the Permissions column on the Roles page.
Organization roles
| Role | Slug | Permissions | What it is for |
|---|---|---|---|
| Super Admin | super_admin | 163 | Full access to every resource and setting. |
| Viewer | read_only | 37 | Read-only access to every resource: all menus are visible, nothing can be changed. |
| Billing Admin | billing_admin | 14 | Manage billing, service accounts, and bonus claims. |
| User Admin | user_admin | 12 | Manage users, teams, and API keys. |
| Model Admin | model_admin | 8 | Manage models and providers. |
| Provider Admin | provider_admin | 4 | Manage providers. |
| MCP Admin | mcp_admin | 4 | Manage MCP servers. |
Super Admin is the exception to the normal role-grant flow. The first holder is established during onboarding: the account that completes the setup wizard is granted the role. From that point it is granted like any other role, within three limits. Only a Super Admin can grant it, only to a user, and only across the whole organization. It cannot be granted to a team or scoped to a project.
A deployment is not limited to one Super Admin, and holding more than one is the recommended arrangement. A single holder is a single point of failure: if that account is lost, disabled, or leaves the organization, no one remains who can grant the role back.
Project roles
| Role | Slug | Permissions | What it is for |
|---|---|---|---|
| Project Owner | project_owner | 18 | Full administration within the project, covering models, providers, MCP, members, settings, and the gateway. |
| Project Member | project_member | 2 | Work within the project without managing its members or settings. |
The Viewer role's slug is read_only, which is the value to use where a role is referenced by slug rather than by display name, as in identity-provider claim mapping.
Step 1: create a custom role
The built-in roles cover most deployments. This step applies only where no built-in role matches the intended access, for example a role confined to guardrails, or one shown the Models and Providers menus and nothing else.
The Roles page lists every role with its slug, scope, permission count, and type, where Built-in marks a shipped role and Custom marks one defined locally. The list can be narrowed with the name and slug filter, restricted by scope, and built-in roles can be hidden altogether to leave only the custom ones in view.
- In the Admin Console, go to Directory → Roles.
- Select New role, or open an existing role and select Copy to start from its permission set.
- Enter the Slug. It must be lower case with words joined by underscores, for example
guardrails_admin. The slug is the role's stable identifier. - Enter the Display name, which is the label shown everywhere the role is offered, for example
Guardrails Admin. - Optionally enter a Description.
- Under Scope levels, select Organization, Project, or both. This sets where the role is permitted to be granted, not where it is granted. Levels required by the permissions selected below are added automatically.
- Select the permissions the role carries. Include a resource's read permission to make its menu visible; add its create, edit, and delete permissions to allow changes.
- Select Create role.

Permissions are grouped by resource, and each group carries a selected/total count, so guardrails 4/4 means all four of that resource's permissions are held. Selecting a group's checkbox takes every permission in it, expanding the group with the chevron selects them individually, Filter permissions narrows a long list, and All takes everything at once.
In the example, three groups are taken in full (guardrails, guardrail_patterns, and guardrail_providers), giving a role of 10 permissions that can administer guardrails and nothing else.
On submission the role appears in the list marked Custom, with the scope shown as Organization & Project where both levels were selected.

Editing, copying, and deleting a role
Selecting a role opens it for editing. The slug and scope are shown for reference, the permission tree is editable, and a running total is reported beneath it (10 permission(s) selected). Three actions sit in the panel footer: Copy creates a new role starting from this permission set, Save applies the changes, and Delete removes the role.

Built-in roles are editable in the same way. Copying one and editing the copy is the safer pattern, because the original stays intact for comparison and reuse.
Example: a role limited to the catalog menus
An organization role named Gateway Viewer that carries only the read permissions for Models and Providers restricts its holder to the catalog. The sidebar shows Home, the Catalog group, Models, and Providers, and nothing else; every other address redirects to the unauthorized page. Adding the Models and Providers edit permissions extends the same role to changing those two resources, while the rest of the Admin Console stays closed.
Step 2: grant a role to a user
The Access page is the register of who holds what. Each row is a principal, a user or a group, and each grant that principal holds appears as a chip reading the role followed by the scope it applies at, such as Guardrails Admin · organization or Project Owner · project: default. Grants can be filtered by principal, role, or project.

- Go to Directory → Access.
- Select Grant access.
- Leave Principal type set to User.
- Under Principal, type a name or email and select the person from the results.
- Leave Grant set to A role.
- Under Roles, select one or more roles. Each is listed with its permitted scope on the right, and built-in roles are marked as such. Filter roles narrows the list.
- Under Apply to, choose Whole organization or Specific projects.
- Select Grant access.

Four things about this panel are worth knowing before using it.
- Most roles can be granted at either scope. The role's scope levels say where a grant is permitted; Apply to decides where this grant lands. A role marked Organization & Project can therefore be granted org-wide to one person and scoped to a single project for another.
- A principal can hold several roles at once, and several can be selected in a single pass. The result is additive, as described under When a person has access from more than one place.
- Only access the operator already holds can be granted. A role carrying permissions beyond the operator's own cannot be handed out, which prevents privilege escalation through the grant form.
- Super Admin is single-purpose in this panel. It appears only when the operator is already a Super Admin and the principal is a user. Selecting it clears other selected roles and forces Apply to to Whole organization.
Setting Grant to Direct permissions instead of A role assigns individual permissions to the principal without going through a role. This is worth avoiding as a habit: a direct grant is invisible to anyone reviewing roles and has to be found on the Access page, whereas a role is reusable and self-documenting.
A confirmation step restates who is about to receive the access and at what scope.

Once confirmed, the new chip appears against that principal on the Access page.

The grant takes effect on the recipient's next page load; no sign-out is required.