Permission Model & Role Bundles

Every action in Athena is guarded by a named permission — a stable, dotted id such as agents.delete or commands.execute. Each of Athena's four roles holds a fixed bundle of those permissions, and what an account may actually do is the bundle for its role. This page is the reference for that model: the full permission catalogue, which bundle each role gets, and how to read it all back so you can answer “why was this person allowed (or refused) that?” with a query instead of a guess.

Where this lives in the console

The permission matrix is on Settings → Security → Permissions, and every account can see its own effective permissions from its Profile. The same data is available over the REST API under api/permissions and through the Athena PowerShell module. For the four roles themselves and how you assign them, see Roles & Permissions and User Accounts.

How the model fits together#

Three pieces make up the model:

Permission ids are an identity, not display text

Ids are compared case-sensitively and are permanent — agents.delete is a permission; Agents.Delete is not. When you filter by id (in the API or PowerShell), match the exact lowercase string.

The four role bundles#

The bundles are fixed in this release — there are exactly four roles, no custom roles, and no per-resource scoping. They also nest: everything a User can do, a Helpdesk can do; everything a Helpdesk can do, an Operator can do; and Admin holds every permission in the catalogue. There is deliberately no wildcard — Admin holds each id explicitly, so a destructive capability is always separately visible rather than hidden behind a catch-all.

RoleIn broad termsPermissions held
UserStart and operate a remote-support session, and open the agent views it launches from. The lowest tier.remote.view, remote.control, agents.view
HelpdeskEverything a User has, plus read-only visibility across the product — inventory, the agent list, commands, deployments, collections, compliance, the scheduler, reports, monitors, alerts, tagging rules, and the audit log. Also the read-only BitLocker, Sysmon and Power Management views, BitLocker startup-PIN reveal, and the Credentials page with the audited reveal of Secret credentials.User's three, plus the *.view reads for each area, plus credentials.view, credentials.reveal, bitlocker.view, bitlocker.pin.reveal, sysmon.view and power.view
OperatorEverything Helpdesk can see, plus the day-to-day operational writes — manage agents, run commands, deploy packages, manage collections, compliance, schedules, reports and monitors, acknowledge alerts, restart devices, start the Secure Boot 2023 certificate update, and view credentials and binaries. Also changes BitLocker, Sysmon and Power Management policies.Helpdesk's reads, plus the operational *.manage / *.execute grants
AdminThe whole catalogue, including the destructive and server-configuration permissions (delete agents/commands/deployments, manage users, PKI, credentials, identity providers, retention and server settings), plus managing the BitLocker, Sysmon and Power Management modules.Every permission in the catalogue, module permissions included
Screen-share is open to every role by design

remote.view and remote.control are in all four bundles — every authenticated account can start and drive a remote-support session, with session ownership (not role) governing who may operate which session. See Remote Commands & Desktop and Remote Session Limits.

View vs. manage, and the delete / api.view splits#

Reading the catalogue is easier once you know the naming pattern:

The permission catalogue#

Every permission Athena guards, grouped by category. This is the authoritative list the authorization checks use; the descriptions are the same operator-facing sentences shown in the console and returned by the API.

Agents#

PermissionWhat it grants
agents.viewSee the agent list and open an agent's details, status and history.
agents.api.viewRead agents, their status, statistics and tags through the REST API.
agents.manageEdit agent details, tags, notes and settings, and trigger agent-side actions.
agents.deleteDelete an agent and every record that belongs to it — this cannot be undone.
agents.revokeRevoke an agent's registration so it can no longer talk to this server.
agents.filesBrowse and download files from a remote agent's filesystem.
agents.diagnosticsRun connectivity and relay diagnostics against an agent.
agents.restartRestart a device (Windows), after a delay the operator chooses and the logged-on user is told about. Held by Operator and Admin. See Restarting Computers.
agents.logs.traceSet an agent's log level to Verbose (Trace), where the agent records the script text of the commands it runs. Admin only by default. See Agent Logs.
secureboot.updateStart the Secure Boot 2023 certificate update on a device — it changes firmware variables on the next reboots. Held by Operator and Admin. See Secure Boot 2023 Certificate Update.
agents.migrateMove agents to a different Athena server or re-enroll them elsewhere.
agents.migrate.viewReview the history of agent migrations without being able to start one.
agents.updatePush an agent software update to selected agents.
agents.update.viewReview agent update history and the outcome of past update pushes.

Inventory#

PermissionWhat it grants
inventory.viewView collected hardware, software and configuration inventory for agents.

Remote Support#

PermissionWhat it grants
remote.viewStart a remote session and watch a device's screen, without being able to interact.
remote.controlTake keyboard and mouse control of a device during a remote session.
recordings.viewList and play back recordings of past remote support sessions.
recordings.deletePermanently delete a remote session recording and its audit-visible evidence.
relay.manageProvision and rotate the TURN relay credentials an agent uses for remote sessions.
rustdesk.viewView the RustDesk connection details configured for an agent.
rustdesk.manageInstall, configure and reset RustDesk on a single agent.
rustdesk.global.manageApply RustDesk settings to every agent at once and generate server-wide passwords.

Commands#

PermissionWhat it grants
commands.viewOpen the command history screens and read the output of commands other people ran.
commands.api.viewRead commands, their scripts and their output through the REST API.
commands.executeRun arbitrary commands and scripts on devices — the most powerful grant in Athena.
commands.deleteDelete a command and its recorded output from the history — this cannot be undone.
commands.templates.manageCreate, edit and delete the saved command templates other operators run.

Deployments#

PermissionWhat it grants
deployments.viewOpen the active-deployment, deployment-history and per-device result screens.
deployments.api.viewRead deployments, their statistics and their per-device results through the REST API.
deployments.executeDeploy an existing, pre-authored package to devices.
deployments.manageCancel, retry and clean up deployments that are running or finished.
deployments.deleteDelete a deployment and its per-device result records — this cannot be undone.
packages.viewBrowse the deployment package library and inspect what a package does.
packages.manageUpload, edit, build and delete deployment packages and their installer files.
packages.executeRun a package straight from the package library against a set of devices.
packages.templates.manageAuthor and edit deployment packages in the web UI package editor.

Collections#

PermissionWhat it grants
collections.viewOpen the collection screens and see which devices currently match each collection.
collections.api.viewRead collections, their membership rules and their members through the REST API.
collections.manageCreate, edit and re-evaluate agent collections and their membership rules.
collections.deleteDelete an agent collection and every targeting rule attached to it.

Compliance#

PermissionWhat it grants
compliance.viewSee compliance baselines, rules, assignments and per-device compliance results.
compliance.manageAssign baselines to devices and trigger compliance evaluation and remediation.
compliance.baselines.manageAuthor compliance baselines and choose which rules belong to each one.
compliance.rules.manageAuthor the detection and remediation scripts inside compliance rules.

Scheduler#

PermissionWhat it grants
scheduler.viewOpen the scheduler screens and see each job's next run time and history.
scheduler.api.viewRead scheduled jobs, their history and scheduler statistics through the REST API.
scheduler.manageCreate, edit, pause, resume and trigger scheduled jobs.
scheduler.deleteDelete a scheduled job and the run history attached to it.

Reports#

PermissionWhat it grants
reports.viewRun saved reports and export their results.
reports.manageBuild, edit, share and delete report definitions.
reports.settings.viewRead the server-wide report defaults such as branding and export limits.
reports.settings.manageChange the server-wide report defaults such as branding and export limits.

Monitoring#

PermissionWhat it grants
monitors.viewSee monitor definitions and the results they have produced on each agent.
monitors.manageCreate, edit, enable and delete the monitors that raise alerts.

Alerts#

PermissionWhat it grants
alerts.viewSee raised alerts, their state and the device that triggered them.
alerts.acknowledgeAcknowledge and resolve alerts without being able to change what raises them.
alerts.manageDelete alerts and change how alerts are routed and retained.

Tagging#

PermissionWhat it grants
tagging.viewSee automatic tagging rules and the tags they have applied to devices.
tagging.tags.viewSee the known tag pool and matchable fields, and preview what a rule would tag.
tagging.manageCreate, edit, run and delete the rules that tag devices automatically.

Audit#

PermissionWhat it grants
audit.viewRead the audit trail of who did what, without any ability to change settings.

Settings#

PermissionWhat it grants
settings.viewView server configuration without being able to change any of it.
settings.health.viewRead the detailed server health report, including per-check database and service state.
settings.manageChange server configuration, including retention, notifications and agent defaults.
settings.identity.manageConfigure how people sign in — LDAP/Active Directory and OIDC providers.

Users#

PermissionWhat it grants
users.viewSee the list of user accounts and the role each one holds.
users.manageCreate and edit user accounts, reset passwords and change the role a user holds.
users.deletePermanently delete a user account and revoke its access.

Security#

PermissionWhat it grants
credentials.viewSee which stored credentials exist and where they are used — never their secrets.
credentials.manageAdd, update and remove the stored credentials Athena uses to reach devices.
credentials.useRun commands and deployment steps as a stored credential — never reveals its secret.
credentials.revealReveal the value of a stored Secret (such as a BIOS password). Every reveal is audited; Local and Domain account passwords are never revealed. See Revealing a Secret.
pki.viewInspect the certificate authority and the certificates issued to agents.
pki.manageIssue and renew agent certificates and manage the certificate authority.
pki.revokeRevoke a certificate, immediately cutting off the agent that holds it.
tokens.manageCreate and revoke the enrollment tokens that let new agents join.

Agent Software#

PermissionWhat it grants
binaries.viewSee which agent and helper binaries are published and their versions.
binaries.manageUpload, replace and delete the agent and helper binaries devices download.
updates.viewSee the state of the offline Windows Update scan catalogue.
updates.manageUpload and remove the offline Windows Update scan catalogue used by agents.

Module permissions — BitLocker, Sysmon and Power Management#

The BitLocker, Sysmon and Power Management modules add their own permissions to the catalogue. Once added, they behave exactly like any other permission: they show up on Settings → Security → Permissions, in api/permissions and in Get-AthenaPermission, and the server checks them the same way. Each module's permissions are listed under the module's name as the category — BitLocker, Sysmon or Power Management — so you can filter them with ?category=BitLocker or -Category "Power Management".

The default holders differ from the core naming pattern. Admin holds every module permission. The read-only ones (bitlocker.view, sysmon.view, power.view) and the help-desk PIN reveal (bitlocker.pin.reveal) are also given to Helpdesk and Operator. The policy-editing ones (bitlocker.manage, sysmon.manage, power.manage) are also given to Operator. The rest (bitlocker.reveal, bitlocker.decrypt, sysmon.config.delete) are Admin-only. These pages live in the Policies group.

PermissionCategoryWhat it grantsHeld by default
bitlocker.viewBitLockerSee BitLocker volume status and policies.Helpdesk, Operator, Admin
bitlocker.manageBitLockerEdit BitLocker policies, assignments and per-agent overrides, and trigger BitLocker actions.Operator, Admin
bitlocker.revealBitLockerReveal an escrowed BitLocker recovery key (a reason is required and the reveal is audited).Admin
bitlocker.decryptBitLockerSet an agent's Decrypt override, which makes the agent remove BitLocker from its volumes (also needs bitlocker.manage).Admin
bitlocker.pin.revealBitLockerShow a stored TPM+PIN startup PIN (a policy PIN or a device override). Every reveal is audited.Helpdesk, Operator, Admin
sysmon.viewSysmonView fleet Sysmon status, configurations and revisions. Read-only.Helpdesk, Operator, Admin
sysmon.manageSysmonView fleet Sysmon status, upload Sysmon config revisions and deploy them to agents.Operator, Admin
sysmon.config.deleteSysmonDelete a Sysmon configuration and its revisions from the server. Agents keep the config they run.Admin
power.viewPower ManagementSee power policies, their assignments and the power configuration agents report.Helpdesk, Operator, Admin
power.managePower ManagementCreate, edit, assign and apply power policies, and turn power enforcement on or off.Operator, Admin
bios.viewBIOS ConfigurationSee each agent's BIOS settings, the fleet-learned model catalog, the baselines and their drift, and ask an agent to read its BIOS settings again. See BIOS Configuration.Helpdesk, Operator, Admin
bios.baselines.manageBIOS ConfigurationCreate, edit and delete BIOS baselines (desired attribute values per vendor and model). Saving only re-evaluates drift; nothing is written to any machine.Operator, Admin
bios.remediateBIOS ConfigurationSend a drifted machine its baseline's values through the vendor's firmware interface; they take effect at the next restart. Using a stored BIOS password also needs credentials.use. See Remediating drift.Admin
bios.passwordBIOS ConfigurationSet, change or remove a machine's BIOS administrator password through the vendor's firmware interface, and see which credential is escrowed as its current password. Also needs credentials.use. See BIOS administrator password.Admin

For what each permission unlocks on screen, see BitLocker Management, Sysmon Configuration Management and Power Management.

The license comes before the role

Each module is licensed separately. If your license is valid but doesn't include a module, that module's permissions are refused for every role, Admin included, whatever the role's bundle says. Its controls are hidden in the console, and its REST calls return 403 with a license reason. The permissions still appear in the role bundles, so an account's effective permissions can list an id the license currently blocks. The same applies to the core license-governed areas (remote control and recordings, reports, and the offline Windows Update catalogue). An expired or missing license does not trigger this block. See Separately licensed modules.

Effective permissions — what an account can really do#

An account's effective permissions are simply the bundle for its role, resolved from the same source the authorization check itself uses. That means a permissions view can never show a set the server would not honour. Every account can look up its own effective permissions — even a User-role account — from its Profile or the api/permissions/me endpoint. Looking up another account's permissions requires the users.view permission.

Answer access questions without guessing

To explain a denial, compare the permission the action needs (from the catalogue) against the account's effective set. To plan a promotion, diff the two role bundles and you see exactly what the change would add.

REST API#

The permission model is read-only over the API — you inspect it, you don't edit it (role bundles are fixed in this release). All endpoints require an authenticated session; the per-endpoint permission is noted below. See the API Reference for authentication details.

Method & pathPurposePermission
GET api/permissionsList the whole permission catalogue. Optional ?category=Agents filter (matched case-insensitively; an unmatched category returns an empty list).settings.view
GET api/permissions/rolesList all four role bundles, least-privileged first.settings.view
GET api/permissions/roles/{role}One role's bundle, by name (User, Helpdesk, Operator, Admin).settings.view
GET api/permissions/meThe calling account's effective permissions.Any authenticated account
GET api/permissions/users/{id}Another account's effective permissions.users.view

PowerShell#

The Athena module reads the same model. Connect first with Connect-Athena. The catalogue and role-bundle cmdlets require the settings.view permission; asking about your own effective permissions needs only a connected session.

CmdletWhat it does
Get-AthenaPermissionReturn the catalogue. Filter with -Category or look one up with -Id (exact, case-sensitive).
Get-AthenaRolePermissionReturn every role's bundle, or one role's with -Role. Each result carries RoleName, PermissionIds and PermissionCount.
Get-AthenaEffectivePermissionReturn the connected account's effective permissions, or another account's with -UserId (accepts a user piped from Get-AthenaUser).

A few practical one-liners, from a connected session:

# What can I do right now?
Get-AthenaEffectivePermission | Select-Object Username, RoleName, PermissionCount

# List just the agent permissions and what each one allows
Get-AthenaPermission -Category "Agents" | Format-Table Id, Description

# Can Helpdesk acknowledge an alert?
(Get-AthenaRolePermission -Role Helpdesk).PermissionIds -contains 'alerts.acknowledge'

# Exactly what would promoting someone from Helpdesk to Operator add?
$hd = (Get-AthenaRolePermission -Role Helpdesk).PermissionIds
$op = (Get-AthenaRolePermission -Role Operator).PermissionIds
Compare-Object $hd $op

# Does a specific user hold the (Admin-only) delete-agent permission?
Get-AthenaUser -Username jsmith | Get-AthenaEffectivePermission |
  ForEach-Object { $_.PermissionIds -contains 'agents.delete' }
Roles are fixed — grant access by changing the role

Because bundles are fixed in this release, you don't grant individual permissions; you give an account the role whose bundle covers what it needs. Change a user's role on User Accounts, or map directory groups to roles with LDAP / Active Directory and Keycloak SSO. A role change takes effect on the account's next sign-in.

Common questions#

QuestionAnswer
Why was a user refused an action their role “should” allow?Check the permission the action needs against the user's effective set (Get-AthenaEffectivePermission or api/permissions/users/{id}). If the id isn't in the set, the role's bundle doesn't include it — the action belongs to a higher role.
Can I create a custom role or grant one extra permission?Not in this release. There are exactly four fixed roles and no per-permission grants; assign the role whose bundle fits.
Does Admin have a wildcard “allow everything”?No. Admin holds every catalogue id explicitly — there is no wildcard — so destructive permissions are always individually visible.
Why does an account's permission count not change after I changed its role?A role change applies at the next sign-in. Have the user sign out and back in, then re-read the effective permissions.
Can an Operator change BitLocker, Sysmon or power policies?Yes. Since October 2026 the built-in Operator role also holds bitlocker.manage, sysmon.manage and power.manage. Revealing BitLocker recovery keys, Decrypt and deleting Sysmon configurations stay Admin-only. See Module permissions.
Why is an Admin refused a BitLocker, Sysmon or Power Management action?If your license is valid but doesn't include that module, the module's permissions are refused for every role. The 403 response gives the license reason. See Separately licensed modules.
Why are there both agents.view and agents.api.view?Console reads and REST reads sit at slightly different tiers for a few areas. The *.api.view ids keep the REST read at the Operator tier while the console read stays broader.