Skip to main content
Version: 1.3

Permissions reference

Route: /roles ( Permissions field in the create/edit drawer)

Every value in the Permissions multi-select is listed exactly as it appears in the UI. Higher levels generally include lower ones at runtime (for example write:alerts implies read access to alerts). The global admin permission grants broad access across the product.

See also: Overview · Creating and managing roles

Roles — Permissions dropdown in create drawer

Permission levels​

PrefixTypical meaning
read:View data and open related screens
write:Create and update (includes read)
run:Execute a resource on demand (policies: preview and apply). Not implied by write
delete:Remove records where supported (often included in admin: for that resource)
admin:Full control for that resource area (includes run where it exists)

Standalone entries:

PermissionDescription
adminGlobal administrator; unlocks management areas and implies All KPIs for KPI-restricted views
readBroad read access used with resource-specific permissions
writeBroad write access used with resource-specific permissions

Alerts and history​

Related: Alerts dashboard · Alert history

PermissionDescription
read:alertsView alerts on the dashboard
write:alertsAcknowledge, assign, comment, and update alerts. You can add notes and edit only notes whose author is your login; an administrator cannot edit someone else's note. Deleting a note remains available to the author or an administrator. Also required alongside run:policies, execute:tool (and suffixes), and execute:policies (and suffixes) — admin:alerts or global admin satisfy this
delete:alertsDelete alerts
admin:alertsFull alert administration
read:historyView alert history
write:historyDelete history hits (history is not edited; write is the mutation scope)
admin:historyFull history administration

Services and KPIs​

Related: Services

PermissionDescription
read:servicesView the services catalog
write:servicesCreate, edit, and delete services
admin:servicesFull services administration
read:kpisView the KPI list, dashboard (painted uptime), and KPI alerts (combine with Allowed KPI Groups). Does not include on-demand calculate
write:kpisCreate, edit, clone, and delete KPIs and KPI groups. Does not imply run
run:kpisCalculate a KPI on demand (Calculate Uptime tab, Calculate). Not implied by write
admin:kpisFull KPI administration (sees every KPI; inherits All; includes run)

Maintenance windows​

Related: Maintenance windows

PermissionDescription
read:maintenance_windowsView maintenance windows
write:maintenance_windowsCreate, edit, and delete windows
admin:maintenance_windowsFull maintenance window administration

Policies​

Related: Policies · Creating a policy

PermissionDescription
read:policiesView the policies list, open a policy, and view per-policy execution history (drawer). Does not open the global All executions tab (/policies/history)
read:policies_historyView global policy execution history (/policies/history) for policies the user can already access (Permission / execute). Does not include read:policies_all_history
read:policies_all_historyView global execution history for all policies, including ones the user cannot open. Implies read:policies_history
write:policiesCreate, edit, and delete policies
run:policiesRun a policy manually (preview and apply). Not implied by write:policies. Also requires write:alerts (admin:alerts or global admin count)
admin:policiesFull policy administration (includes run, read:policies_all_history, and deleting execution history)
execute:policiesDoes not include execute:policies:* suffixes (same rule as execute:tool). Also requires write:alerts (admin:alerts or global admin count)
execute:policies:<suffix>Access one specific policy whose Permission matches that suffix (view, edit, delete, and Run on demand). Typed or selected in the role Permissions field; catalog entries come from policies that set Permission. Independent of execute:tool: and of whether the policy runs a custom tool. Also requires write:alerts (admin:alerts or global admin count)

When a policy leaves Permission empty, normal read: / write: / run: / admin:policies rules apply. When Permission is set, interactive access to that policy also requires the matching execute:policies:<suffix> (or admin:policies, or global admin). execute:policies without a suffix does not open that policy. Scheduled and on-alert automatic runs do not require the user’s custom execute scope.

run:policies, execute:policies, and execute:policies:<suffix> each also require write:alerts (admin:alerts or global admin satisfy this). That dependency does not turn run into a write scope — write:policies still does not imply run.

read:policies does not open /policies/history. Grant read:policies_history (accessible policies only) or read:policies_all_history (every run). admin:policies and global admin include all-history. Deleting history rows still requires admin:policies.

Regex Extractions on a policy (the Extractions tab in the policy drawer) are part of the policy itself. There are no separate *:extractions scopes — configuring them uses the same read:policies / write:policies (and related) permissions as the rest of the policy. See Creating a policy — Extractions.

Incidents​

Related: Incidents

PermissionDescription
read:incidentsView incidents and their notes
write:incidentsCreate, update, and delete incidents. Also edit or delete any incident note
write:incident_notesAdd notes; edit or delete only your own notes
admin:incidentsFull incident administration (includes notes)

Service topology​

Related: Service topology

PermissionDescription
read:service_topologiesView topologies and policies, and read the resource graph (parent/child resources)
write:service_topologiesCreate, edit, and delete topologies and topology policies; add and remove resource graph relations
admin:service_topologiesFull service topology administration

Without read:kpis, the KPI column and the KPI field in the drawer are hidden. Saving does not clear the stored KPI.

Alert sources​

Related: Alert sources

PermissionDescription
read:alert_sourcesView alert sources
write:alert_sourcesCreate, edit, and delete sources
admin:alert_sourcesFull alert source administration

Webhooks​

Related: Webhook Configurations

PermissionDescription
read:webhook_configsView inbound webhook configurations
write:webhook_configsCreate, edit, and delete inbound webhook configurations
admin:webhook_configsFull webhook configuration administration

Notifications​

Related: Notifications

PermissionDescription
read:notificationsView Notifications and Notification methods in the sidebar (rules, templates, groups, and method configuration). Also opens All executions (/notifications/rules/history) and the per-rule execution history drawer. Without write:notification_methods, method secrets are masked. Unlike Policies/Tools, there is no separate read:notifications_history scope
write:notificationsCreate, edit, and delete notification rules, templates, and groups
admin:notificationsFull notification administration (includes deleting rule-execution history rows)
write:notification_methodsConfigure and delete notification methods (SMTP, Telegram, etc.)

read:notifications opens both the rules list and global All executions. Deleting history rows still requires admin:notifications.

Tools​

Related: Tools

PermissionDescription
read:toolView the tools list, open the editor (read-only), and view per-tool execution history (editor / drawer). Does not open the global All executions tab (/tools/history)
read:tools_historyView global tool execution history (/tools/history) for tools the user can already access (Permission and author). Does not include read:tools_all_history
read:tools_all_historyView global execution history for all tools, including ones the user cannot open. Implies read:tools_history
write:toolCreate, edit, and delete tools. There is no delete:tool. Does not imply execute
execute:toolRun a tool that has no Permission field (Try on Tools / the editor, Run on the alerts dashboard and alert drawer). Does not open tools that set Permission, and does not imply execute:tool:<suffix>. Not implied by write:tool. Also requires write:alerts (admin:alerts or global admin count). admin:tool and global admin include execute
admin:toolFull tool administration (includes execute, read:tools_all_history, and deleting execution-history rows). Also grants every execute:tool:<suffix>
execute:tool:<suffix>Exact scope for a tool that sets Permission. Required in addition to the endpoint scope (read to view, write to mutate, execute:tool to run). read:tool + execute:tool cover only tools with an empty Permission. write:tool and execute:tool do not imply any suffix. The author (createdBy) still sees and can open their own gated tool. admin:tool and global admin grant every suffix. Typed or selected in Permissions; catalog entries come from tools that set Permission. Independent of execute:policies: (neither unsuffixed execute is broader). Also requires write:alerts (admin:alerts or global admin count)

When a tool leaves Permission empty, read:tool and execute:tool are enough to view and run it (plus write:alerts for the run). When Permission is set, interactive access also requires the matching execute:tool:<suffix> (or admin:tool or global admin). execute:tool does not include those suffixes. Automatic policy and workflow runs do not require the user’s execute:tool or custom execute suffix.

execute:tool and execute:tool:<suffix> each also require write:alerts (admin:alerts or global admin satisfy this). That dependency does not make execute a write scope — write:tool still does not imply execute.

read:tool does not open /tools/history. Grant read:tools_history (runs of tools the user can already access) or read:tools_all_history (every run, even for tools the user cannot open). admin:tool and global admin include all-history. Deleting history rows still requires admin:tool.

Workflows​

PermissionDescription
read:workflowView workflows
write:workflowCreate and edit workflows
delete:workflowDelete workflows
admin:workflowFull workflow administration

Metrics​

PermissionDescription
read:metricsView metrics screens

API keys​

Related: API Keys

PermissionDescription
write:keysView the API Keys sidebar item (/keys), list, view (copy / QR), create, edit, duplicate, enable/disable, and delete your own keys. There is no read:keys or delete:keys, and no resource-specific admin scope for keys

Seeing all keys and assigning Owner to another user requires global admin (same as Users and Groups), because those actions also need visibility of other users. Without admin, a user with write sees and can mutate only their own keys; Owner is fixed to their login. A key cannot receive permission scopes the creator does not already hold.

Heartbeats​

PermissionDescription
read:heartbeatsView heartbeat monitors
write:heartbeatsCreate and edit heartbeats
admin:heartbeatsFull heartbeat administration

Instructions​

Related: Instructions

PermissionDescription
write:instructionsCreate, edit, move, upload, and delete wiki pages, folders, and media. There is no delete:instructions
admin:instructionsFull instruction administration (includes write)
write:share_instructionsCreate Share with link. Independent of write:instructions
admin:share_instructionsAdminister shared instruction links

There is no read:instructions. Any signed-in user can see Instructions in the sidebar (/instructions) and list or open wiki pages and media. Public shared links (/shared-instruction/…) do not require login. admin:instructions does not imply share; grant write:share_instructions or admin:share_instructions separately.

Management and configuration​

Related: Backend config

PermissionDescription
read:managementView management and system settings
admin:managementChange management and system settings
read:userinfoView extended user profile information
read:oembedView oEmbed-related settings

Dashboards​

Related: Dashboards (Management)

PermissionDescription
read:dashboards_configView the Dashboards sidebar item (/dashboards), list all dashboard configs, and open non-public dashboards
write:dashboards_configCreate, edit, duplicate, and delete dashboards. There is no delete:dashboards_config. Includes read:dashboards_config
admin:dashboards_configFull dashboard administration (includes write and read)

Public dashboards can be listed in the filtered catalog and opened without read:dashboards_config (GET is optional). Opening a private dashboard by id without read returns 403. Do not use dashboards_config for playlists.

Playlists​

PermissionDescription
read:playlists_configSee the Playlists button on Dashboards, list playlists, and play authenticated routes (/playlists, /playlists/:id/play)
write:playlists_configCreate, edit, duplicate, and delete playlists. There is no delete:playlists_config. Includes read:playlists_config
admin:playlists_configFull playlist administration (includes write and read)

Independent of dashboards_config. The public player (/playlist/:slug) needs no playlist scope when the playlist is public (every dashboard in it is public). A private playlist without read:playlists_config returns 403.

Access Control screens​

PermissionWhat it enables
admin (global)Access Control sidebar, including Roles (/roles), Users, Groups, and Views. API Keys (/keys): write:keys for your own keys; global admin to see all keys and assign Owner (same as Users and Groups)
No separate “users” permission string

User and role administration in the UI is gated by administrator access (global admin and related management permissions). The Permissions list does not include separate read:users or admin:roles entries.

Choosing permissions for common roles​

Role intentSuggested starting permissions
Alert operatorread:alerts, write:alerts, read:history
Dashboard viewerread:dashboards_config (use write:dashboards_config to create, edit, duplicate, or delete)
Playlist viewerread:playlists_config (public player /playlist/:slug needs no scope when the playlist is public)
Playlist editorwrite:playlists_config (use admin:playlists_config for full playlist administration; independent of dashboard write/read)
Notification designerread:notifications, write:notifications, write:notification_methods (read:notifications already includes All executions; use admin:notifications to delete history rows)
Platform adminadmin or admin:management plus resource-specific admin: entries as needed
Tool runnerwrite:alerts, read:tool, and execute:tool for tools with empty Permission; plus the exact execute:tool:* suffix for each approved Permission-gated tool. Add read:tools_history (or read:tools_all_history) for All executions
Instruction authorwrite:instructions (add write:share_instructions to share links)
Policy operator (scoped)write:alerts, read:policies, write:policies, run:policies, plus execute:policies:* for each approved policy Permission. Add read:policies_history (or read:policies_all_history) for All executions
API key operatorwrite:keys (own keys only; use global admin for all keys and to assign Owner, same as Users and Groups)

Best practices​

  1. Match UI labels exactly — when requesting access from an administrator, quote the permission string as shown in the Permissions dropdown.
  2. Prefer resource admin over global admin — use admin:alerts instead of admin when a team only manages alerts.
  3. Do not treat execute:tool or execute:policies as a catch-all — neither includes execute:: suffixes. Grant the exact suffix (or admin:tool / admin:policies / admin) for each Permission-gated entity. A tool’s author still sees their own gated tool. run:policies is still the manual Run scope and is independent of those execute entries — but run:policies, execute:tool / execute:tool:, and execute:policies / execute:policies: each also need write:alerts (admin:alerts or global admin count).
  4. Pair KPI permissions with groups — set Allowed KPI Groups to All (Full Access) or named groups when assigning read:kpis, write:kpis, or run:kpis. Empty still allows KPIs with no group. Grant run:kpis separately from write when operators must calculate on demand.
  5. Align API keys with roles — use the same permission strings on API Keys as on user roles for consistent automation access.
  6. Copy policy Permission into roles — after setting Permission on a policy, add the same execute:policies:<suffix> value to the roles that should manage or Run that policy.