Roles and permissions
Control who can do what in your Gateway organization with built-in and custom roles
Control who can do what in your Gateway organization with built-in and custom roles
Every member of a Gateway organization holds exactly one role. Each role is a named bundle of permissions, and every privileged action requires one or more permissions to succeed. Use the built-in roles for the common case, or define custom roles to match how your team is organized.
Four system roles ship with every organization. They cannot be edited or deleted.
System roles are immutable. To grant a slightly different permission set, create a custom role instead.
There are 29 permissions across 16 resources. Most resources have a “Manage” permission for create, update, and delete, and a “View” permission for read access. Three resources (Logs, Audit trail, and Request tester) are view-only.
The matrix below mirrors what you’ll see in Settings → Roles. Each row is a permission, each column is a built-in role.
Custom roles let you slice the permission set however your team needs. For example, a “Routing Editor” role that grants Manage routing plus View projects plus View API keys and nothing else, or a “Billing Manager” role that only includes billing permissions.
Create, edit, and delete custom roles from Settings → Roles in the Gateway dashboard. Only members holding the Manage roles permission see the editing controls.
A few rules apply:
Deleting a role is blocked if members are assigned to it. Reassign members to a different role first, then retry the delete.
Open Settings → Roles in the Gateway dashboard to see the permission matrix:
Permission checks are enforced both on the server and in the dashboard. If you don’t hold a required permission, gated buttons and menu items render as disabled, with a tooltip explaining the missing access.
Org admins invite new members from Settings → Members. Each invitation:
MEMBER_INVITED audit event on send and a MEMBER_JOINED event when acceptedYou can resend or revoke a pending invitation from the same page. Both actions emit their own audit entries (MEMBER_INVITATION_RESENT, MEMBER_INVITATION_REVOKED) and require Manage users.
To change an existing member’s role, use the role selector in the members table. The change requires Manage users and emits a MEMBER_ROLE_CHANGED audit event with the old and new role names.
A member always holds exactly one role at a time. There is no multi-role assignment. If you need a specific combination of permissions for a user, create a custom role with that exact combination and assign them to it.
Every RBAC operation writes an entry to the audit trail:
Use the audit trail to answer “who granted this user admin?” or “when did this role lose a permission?”. The diff is captured on every UPDATE event.
No. Each member holds exactly one role per organization. If a user belongs to multiple orgs, they have one role in each.
No. System roles are immutable so the baseline permission sets stay predictable across orgs. To customize, create a new role with the permission set you need.
The delete is rejected. Reassign affected members to a different role, then retry the delete.
No. Roles are flat permission sets. The Admin role explicitly enumerates every permission, and does not derive from any other role.
7 days. After expiry, the invitee gets a “this invitation has expired” message. The inviter can resend a fresh invitation from the same page.