System Roles
7 min read
Overview
Gatekeeper ships with a predefined set of system roles that cover all areas of the Unique platform. These roles are read-only - they cannot be edited or deleted by administrators. They exist to ensure that all permissions from the previous Zitadel-based model continue to work seamlessly after Gatekeeper is enabled.
There are currently 25 system roles. The source of truth is the GatekeeperRoles enum (next/packages/backend/gatekeeper-utils/src/types/roles.ts) together with ROLE_DEFINITIONS (next/services/gatekeeper/src/roles/roles-definition/).
The tables below list every system role, grouped by functional area. Each table has four columns:
Role - the display name shown in the Access Management UI.
Role ID - the identifier used in Casbin policies and in the Gatekeeper admin API (
adminGetAllRoles,adminAddGroupingPolicies). Use this value, not the display name and not the legacy Zitadel role name, when scripting role assignment.Mapped from (legacy) - the Zitadel role, knowledge base permission, or scope access level that results in this role being assigned. Roles marked No legacy mapping are not derived from Zitadel.
What they can do - a summary of the permissions the role grants.
If you need a combination of permissions that no single system role provides, you can create a custom role that inherits from multiple system roles (see the parent page for details).
Company & administration
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
Company Administrator |
| No legacy mapping (not synced from Zitadel) | Read, write and manage the company; full user administration. Inherits User Management Admin, KB Admin, Space Admin, Chat Admin, Benchmarking Admin, Feedback Admin, Analytics Admin, App Admin and Module Template Admin. |
User Management Administrator |
| Zitadel: | Create, change, delete and manage users; read, write, delete and list memberships; list groups. This role also gates access to the Access Management UI and to all |
Module Template Administrator |
| No legacy mapping | Read, write and delete modules; read, write, delete and manage module templates. |
Chat
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
Chat Administrator |
| Zitadel: | Company-wide chat administration: assistants, NPS, magic tables, due diligence, SoW assessments, MCP and MCP Hub (servers, OAuth providers, virtual server access), tools, groups, memberships, feature flags, company configuration, briefings, insights and installations. Inherits Chat user and Analytics Administrator. |
Chat user |
| Zitadel: | Use chat against their own data: chats, messages, message logs and assessments, own uploaded content, own prompts, own feedback, own magic tables, due diligence and SoW assessments, own spaces and assistants (read + chat), translations, notifications and own model usage. |
Chat User (Debug) |
| Zitadel: | Everything Chat user can do, plus read and list chunks (chunk debug endpoints). Inherits Chat user. |
Knowledge base
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
Knowledge Base Admin |
| Zitadel: | Full knowledge base administration: read/write/delete/manage content, folders and scopes; manage scope access and scope-to-folder mappings; read/write/delete chunks; read reference statistics and ingestion metrics. Inherits KB Manager (used for role optimization only - the permission sets are identical today). |
Knowledge Base Manager |
| Zitadel: | Same permission set as KB Admin: access the knowledge base, upload files and folders, and manage permissions for accessible folders. Also intended for connectors (e.g. SharePoint) that need reliable knowledge base uploads. |
Knowledge Base User |
| Zitadel: | Read and list content, folders and chunks; read, list and delete scopes; list users, memberships and groups; read the theme; manage their own notifications. |
Knowledge Base Viewer (Debug) |
| Zitadel: | Everything Knowledge Base User can do, plus read and list chunks (chunk debug endpoints). Inherits Knowledge Base User. |
Knowledge Base Metadata Editor |
| Zitadel: | Edit metadata of knowledge base content. Note: this role carries no Casbin permission policies of its own - it is a marker role that sets the |
Spaces
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
Space Administrator |
| Zitadel: | Create and configure spaces company-wide: assistants, scopes and scope access, modules and module templates, prompts, resource access, memberships, MCP tool configuration, installations and user prompts. Reads folders, content, tools, assistant types, groups and users. |
Space Owner |
| No legacy mapping - assigned in Unique, not synced from Zitadel | Create spaces and fully control their own assistants; read/list/write/manage scopes; manage modules, module templates and prompts; grant resource access. Sets the |
Space Manager |
| Derived automatically - assigned to any user or group that holds MANAGE access on at least one assistant | Read assistants and resource access; read and write language models; read/list/delete scopes; read and list folders and content; read modules, module templates, tools, assistant types, prompts; read and list users and groups; read/write/delete MCP tool configuration. Removed automatically when the last MANAGE access is revoked. |
Apps & connectors
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
App Administrator |
| Zitadel: | Create, update, delete and manage apps, API keys, installations, endpoints, request logs, logs and event subscriptions. |
App Viewer |
| No legacy mapping | Read apps, API keys, installations, endpoints, request logs and logs. |
Connector Administrator |
| Zitadel: | Full MCP connector management (create, read, list, write, delete, manage). Also lists users and groups, so admins can search principals in the MCP server access dialog. |
Connector Viewer |
| Zitadel: | Read and list MCP connectors - open the MCP admin section and see the connector list. |
MCP Server Manager |
| Derived automatically - assigned to any user or group granted access to at least one MCP server | Lists MCP servers. Per-server read/write rights come from instance-scoped policies ( |
Analytics, feedback & benchmarking
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
Analytics Administrator |
| Zitadel: | Read chat interaction analytics (aggregated and detailed), user chat exports, active users and reference statistics; read and write the analytics scheduler; read and write model usage; read feedback; delete chats, companies and scopes (data deletion flows). |
Feedback Administrator |
| No legacy mapping | Read, write and delete feedback; read model usage costs. |
Feedback Viewer |
| Zitadel: | Read feedback and NPS responses; read the analytics scheduler, active users and chat interaction analytics (aggregated and detailed); read benchmarks and model usage. Read-only - cannot write or delete feedback. |
Benchmarking Administrator |
| No legacy mapping | Read, write and manage benchmarks - upload benchmarking sheets, download results and delegate benchmarking rights. |
Benchmarking Viewer |
| Zitadel: | Read benchmarks - download benchmarking sheets and results. |
Compliance
Role | Role ID | Mapped from (legacy) | What they can do |
|---|---|---|---|
Compliance Records Viewer |
| Zitadel: | Read compliance records. |
Inheritance
Only five system roles inherit from others. Inheritance is transitive, so a user with Company Administrator effectively holds everything below it.
Role | Inherits |
|---|---|
|
|
|
|
|
|
|
|
|
|
All other system roles stand alone. In particular there is no Group Administrator role and no Space Viewer role; group permissions are granted directly on Chat Administrator, and Space Administrator has no parent role.
How roles get assigned
Assignment source | Roles |
|---|---|
Synced from Zitadel on login and on role change ( |
|
Derived from access grants - added and removed automatically by the platform |
|
Assigned inside Unique - via Access Management, the Gatekeeper admin API, or scope-management |
|
Only roles in the first group are reconciled against Zitadel. Roles in the second and third groups are never removed by Zitadel role sync.
Notes
Scope access READ is intentionally unmapped. Scope access levels WRITE and MANAGE map to
Space_Admin; READ maps to no role, because no view-only space role exists yet.Ownership scope. Roles such as Chat user and Space Owner declare
owner: 'own'on most resources. This is stored in Casbin assubject:own, but runtime ownership is still enforced in the service and query layer rather than by Gatekeeper. See How to Create a New System Role for details.Feedback Viewer and user-sensitive data. An earlier version of this page stated that Feedback Viewer cannot see prompts or other user-sensitive data. That distinction is not expressed in the role's Casbin policies - the role holds read access to detailed chat interaction analytics - so treat any such restriction as service-level behavior to be confirmed with the owning team rather than as a role guarantee.