Skip to content

Reference / Permissions

Permissions ​

Keel has six workspace roles. Owner is tenant-wide: an Owner in any workspace has Owner permissions in every workspace of the tenant. The other roles are per workspace. Every request is checked on the server; the web app only hides what you can't do.

Role matrix ​

Generated from the code (RolePermissions in the Identity domain):

PermissionWhat it coversOwnerAdminStewardModelerAnalystViewer
ManageTenantManage tenant, SSO, retention, certification criteria✓
ManageMembersAndApiKeysManage members, API keys, notification channels, Git connection✓✓
ManageSourcesManage sources and secrets✓✓
RunScansRun scans, drift scans, DQ runs, lineage rebuilds✓✓✓✓
EditModelsReview proposals, edit branches, open change requests✓✓✓✓
ApproveChangesApprove change requests, publish releases✓✓✓✓
GovernApprove glossary terms, certify, policies, DQ rule decisions, serving endpoints✓✓✓
QueryServingQuery serving endpoints, playground, assistant✓✓✓✓✓
ReadCatalogRead models, glossary, lineage, scorecards✓✓✓✓✓✓
ReadAuditRead the audit log✓✓✓
EditMigrations✓✓✓✓
ApproveMigrations✓✓✓
ExecuteMigrations✓✓✓
API key scopeGrants (inside the key's workspace)
serving:queryQueryServing, ReadCatalog — serving endpoints
mcp:useQueryServing, ReadCatalog — required by the MCP server
export:readReadCatalog — export downloads
admin:*Every Admin permission of the workspace (never tenant ownership)

Rules on top of the matrix ​

  • A Modeler may approve change requests and publish releases, but not their own change request, and changes to certified metrics need an approval from someone with Govern.
  • The last Owner of a tenant can't be removed or demoted.
  • Invitations are accepted only by a signed-in person whose email matches the invitation.
  • API keys carry scopes instead of a role (table above). admin:* means workspace administration, never tenant ownership. For access policies an API key is evaluated as an Analyst with no attributes.
  • Reading the audit log is tenant-wide and needs ReadAudit at tenant level; changing retention and running verification needs ManageTenant.
  • MCP needs an API key with mcp:use (a serving:query-only key gets 403) or a person's OIDC token.

Typical operations ​

OperationPermission
Register, update, test, delete a source; rotate its secretManageSources
Start a scan or drift scan; run DQ rules; rebuild or import lineage; handle incidentsRunScans
Accept or reject proposals; edit branches and working copies; open change requests; create and link glossary termsEditModels
Approve a change request; publish or roll back a release; auto-export settingsApproveChanges
Approve or deprecate terms; certify or revoke; write access policies; accept DQ rule suggestions; manage serving endpointsGovern
Query serving endpoints, the Playground's query:run, the assistantQueryServing
Read models, the catalog, glossary, lineage, scorecards; compile queries; download exportsReadCatalog
Members, invitations, API keys, notification channels, Git connectionManageMembersAndApiKeys
Tenant settings, certification criteria, audit retentionManageTenant

Anchor Keel is a working product name: one platform, a shared core and licensed modules (Keel Semantic, Keel Migrate). Documentation built from the repository — facts are derived from code, ADRs and the decisions log.