Skip to content

Permissions & roles

Permissions & roles

Permissions and roles are defined once in @rakkr/shared and are the source of truth for RBAC across the API and console. For how access is actually decided (roles + resource scope + access policies, default-deny, explicit-deny-wins), see Authentication & RBAC.

Permissions

PermissionGrants
audit:readRead and export the audit log.
auth:manageManage users, groups, roles, access policies, resource grants, and OIDC discovery.
health:readView health events and quality timelines.
health:acknowledgeAcknowledge, suppress, resolve, reopen health events.
listen:monitorStart/stream/stop live listen-in on a node.
metrics:readRead the Prometheus /metrics endpoint.
node:readView node inventory, meters, and status.
node:controlService-level node control (used by agent credentials: config, heartbeat, jobs).
node:manageEnroll/edit nodes and interfaces, rotate credentials, run lifecycle actions.
recording:readBrowse the recording library and jobs.
recording:createStart ad-hoc recordings.
recording:controlStop recordings; retry/stop jobs; queue and run uploads.
recording:editEdit recording metadata; bulk-organize.
recording:playbackPlay recordings.
recording:downloadDownload recording files.
recording:deleteDelete terminal recordings.
schedule:readView schedules and occurrences.
schedule:manageCreate/edit/delete schedules; run-now; skip-next.
settings:readView settings and templates.
settings:manageEdit profiles, watchdog/upload/retention policies, channel maps.
system:adminReserved highest-privilege capability (owner only).

Roles

Roles are fixed bundles of permissions:

  • owner — every permission.
  • admin — every permission except system:admin.
  • operator — day-to-day operations (no access/audit/delete/settings-manage).
  • viewer — read, playback, and download only.
  • auditor — audit, health, metrics, and recording reads.

Role → permission matrix

Permissionowneradminoperatorviewerauditor
audit:read
auth:manage
health:read
health:acknowledge
listen:monitor
metrics:read
node:read
node:control
node:manage
recording:read
recording:create
recording:control
recording:edit
recording:playback
recording:download
recording:delete
schedule:read
schedule:manage
settings:read
settings:manage
system:admin

Roles set the ceiling of what a user can do. The actual decision also requires the user to be in scope for the specific resource (via a resource grant or allow policy), and any explicit deny policy overrides everything. The checked contract is the RBAC_AUDIT_BASELINE.