Documentation
Role-Based Access Control
Build custom roles from permissions, assign them to people, require MFA per role, and see which page needs which permission.
Overview
Role-Based Access Control (Admin → Security → RBAC, /admin/security/rbac) decides what each person can see and do. A permission allows one kind of action, for example assets:read or scans:write. A role is a named set of permissions. People get permissions only through the roles they hold, and a person who holds several roles has every permission of all of them.
DeviceQuest has one built-in system role, admin. It holds every permission, and DeviceQuest adds new permissions to it automatically when they are introduced. You can’t rename, edit or delete it. Every other role is a custom role that you create, edit, clone and delete as you need, for example a read-only auditor role or an analyst role.
Viewing roles needs roles:read. Creating and editing roles, changing members and changing the MFA requirement need roles:write. Deleting roles needs roles:delete.
Screen tour
- New role: opens Create role.
- Summary: how many Roles there are, split into System and Custom, the total Members, how many distinct Permissions the roles grant, and how many roles have MFA required.
- Access change activity: a sentence such as “7 roles managing 2 users across 59 permissions.”, how many roles changed this week, and when the last change happened. Role changes charts role updates per day over the last 14 days. Click “N roles changed this week” to sort by most recently updated, or click the time of the last change to open that role.
- System roles and Custom roles: jump to that section. Each shows how many roles it contains.
- Search roles…: filters by role name or description.
- Class filter: All roles, System or Custom.
- Sort by: Name A–Z, Name Z–A, Most members, Fewest members, Recently updated or Oldest update.
- View: a table or a grid of cards. DeviceQuest remembers your choice in this browser.
- Export: downloads all roles as
rbac-roles.csv. - Class chip: system for
admin, custom for every other role. - Row actions: Edit role, Clone role and Delete role. Delete role appears on custom roles only.
Each row shows the role’s Role name and description, its Class, a Permissions bar with the permission count, how many Members hold it, an MFA badge when MFA is required, and when it was Updated. The Permission mix legend explains the bar’s colours:
| Colour | Counts permissions that… |
|---|---|
| Read | only read data, for example assets:read. |
| Write | create or change data, for example assets:write. |
| Admin | administer a feature, for example admin:manage or vulnerabilities:admin. |
| Dangerous | delete data, for example assets:delete or roles:delete. |
Click a row to open the role in a side panel. The filters, sort order, open role, open tab and open dialog are kept in the address bar, so you can share a link to a role or to a filtered list. A banner such as “2 new roles since your last visit” points out roles created since you last opened the page; click × to dismiss it.
Role details
- Class and MFA: the system or custom chip, and MFA required when the role requires it. Below the name you see the description and when the role was updated and created.
- Edit: rename the role or change its description. On
adminit opens a read-only View role dialog. - Clone: create a new role that starts from this one’s permissions.
- Copy ID: copies the role ID to the clipboard.
- MFA required: the switch that requires multi-factor authentication for everyone holding the role.
- Delete: deletes a custom role.
- Tabs: Overview, Permissions, Members and History.
The side panel’s title shows the role name and the start of its ID. Every role also has a page of its own at /admin/security/rbac/<role ID>, with the same hero and tabs and a Back to RBAC link; the Roles summary on Users links there.
- Overview lists the Role ID, Class, number of Permissions and Members (click either to jump to its tab), MFA required, Created and Updated, and the role’s top five Permission categories with a count each.
- Permissions shows and edits the role’s permissions. See Change a role’s permissions.
- Members lists who holds the role. See Manage members.
- History lists every change to the role: who made it, what it was (created, updated, deleted, user assigned, user removed or MFA policy updated), when, the recorded details and the IP address. Choose Last 7d, Last 30d, Last 90d or All time, and click Load more for older entries. Click a details block to expand it.
Create a role
- Role name: required, for example
Security Analyst. - Description: optional. Say what people with this role do.
- Permissions: every permission, grouped by area. Tick the ones the role grants. The label shows how many are selected.
- Cancel: closes the dialog without creating a role.
- Create role: creates the role.
- Click New role (or press n).
- Enter a Role name and, optionally, a Description.
- Tick the Permissions the role needs. Use the permission reference and the page access table to choose.
- Click Create role.
The new role appears under Custom roles with “Role “name” created”. Give it to people from its Members tab, from User details, or when you invite them.
Grant only what the role needs. For a read-only role, pick the :read permissions of the areas people must see. Add a :write, :delete or :admin permission only for the areas where they act.
Clone a role
Cloning is the quickest way to make a variant of an existing role, including admin.
- Click Clone in the role’s hero, or Clone role on its row (or press c).
- In Clone “role”, change the New role name. It starts as “Copy of role”.
- Adjust the Description and the ticked Permissions. All of the source role’s permissions start ticked.
- Click Clone role.
The clone is a new custom role with no members.
Edit a role
- Click Edit in the role’s hero, or Edit role on its row (or press e).
- Change the Role name or Description.
- Click Save.
The system role admin opens in a read-only View role dialog that says “System roles cannot be renamed.”
Change a role’s permissions
- This role: the permissions the role grants, grouped by area, with a count. Untick one to remove it. Filter the list with Filter permissions….
- Search catalog…: searches the Full catalog of every permission by name or area.
- Tick a permission in Full catalog to add it to the role.
- Change bar: shows how many permissions you are adding (+N) and removing (−N), or No changes. Reset discards your changes; Save applies them.
- Open the role and select the Permissions tab.
- Tick permissions in Full catalog to add them, and untick them in either list to remove them.
- Click Save.
DeviceQuest confirms with “Permissions updated”. Everyone holding the role gets the new permissions. The admin role’s permissions are fixed: its tab says “System role permissions cannot be modified. View them in the catalog below.”
Delete a role
- Click Delete in a custom role’s hero, or Delete role on its row (or press d).
- Read the dialog. It tells you how many members the role has; they lose every permission the role grants.
- If the role has members, type the role name in Type name to confirm.
- Click Delete role, or Cancel.
DeviceQuest confirms with “Role deleted”. When you delete a role from its own page, you return to the role list.
You can’t delete admin, and you can’t delete a role while a pending invitation uses it: DeviceQuest says “cannot delete a role with a pending invitation; revoke the invitation first”. Revoke the invitation on Users first.
Require MFA for a role
When a role requires MFA, everyone who holds it must use multi-factor authentication. People who aren’t enrolled yet are asked to enroll at their next sign-in.
- Open the role.
- Click the MFA required switch.
- Read the dialog. Enable MFA requirement says “Users holding the “role” role will be prompted to enroll in MFA on their next login.” Disable MFA requirement says they will no longer be required to have MFA enrolled. Both apply to everyone currently holding the role.
- Click Enable MFA or Disable MFA, or Cancel.
You can set the requirement on admin too. For an overview of enrollment across roles, and to help people who aren’t enrolled, see MFA policy.
Manage members
- Search members…: filters members by email or name.
- Add users: opens Assign users to “role”.
- you: marks your own account.
- Remove: removes this person from the role after you confirm.
Add people to a role
- On the Members tab, click Add users.
- In Assign users to “role”, search with Search by email or name… and tick the people to add. People who already hold the role aren’t listed.
- Click Assign N users.
Remove people from a role
- To remove one person, click the remove icon on their row and confirm with Remove. If it’s your own account, the dialog warns “Warning: you are removing yourself from this role.”
- To remove several people from a custom role, tick them, click Remove N, optionally pick a Reason (Left organisation, Role no longer needed, Compliance review or Other) and add Notes, then click Remove N users.
DeviceQuest always keeps at least one active admin: you can’t remove your own admin role, and you can’t remove admin from the last active admin. See At least one admin must remain.
Act on several roles
Tick roles in the list to show the bulk bar at the bottom of the page:
- MFA policy: Require or Make optional sets the MFA requirement on every selected role, and reports how many roles changed.
- Export N: downloads the selected roles as
rbac-roles.csv. - Delete N: deletes the selected custom roles after you confirm with Delete roles. It is unavailable while
adminis selected. - ×: clears the selection.
Export roles
Export in the toolbar, or Export N in the bulk bar, downloads rbac-roles.csv with one row per role and the columns ID, Name, Description, Class (system or custom), Permission Count, User Count, Requires MFA (yes or no), Created and Updated.
Fields
| Field | Description | Rules |
|---|---|---|
| Role name | The role’s name, shown everywhere roles appear. | Required. Unique in your workspace. Fixed for admin. |
| Description | What the role is for. | Optional. |
| Permissions | The permissions the role grants. | Any set, including none. Fixed for admin. |
| MFA required | Whether holders must use MFA. | Off by default for new and cloned roles. |
Statuses
| Class | Meaning | Can change to |
|---|---|---|
| system | The built-in admin role. It holds every permission and can’t be renamed, edited or deleted. | — |
| custom | A role you created or cloned. Fully editable. | — |
Permission reference
These are all the permissions in DeviceQuest, grouped by area as the permission pickers show them. The admin role holds all of them.
Administration and security
| Permission | Description |
|---|---|
admin:manage | Manage admin settings |
api_keys:read | Read API key data |
api_keys:write | Create and revoke API keys |
audit:read | View audit log events and facets |
mfa:read | View own MFA enrollment status and audit trail |
mfa:write | Manage own MFA enrollment and backup codes |
roles:read | Read role data |
roles:write | Write role data |
roles:delete | Delete roles |
sso:read | Read SSO configuration and audit events |
sso:write | Configure, test, disable, delete, and refresh SSO providers |
users:read | Read user data |
users:write | Write user data |
users:delete | Delete users |
Assets and discovery
| Permission | Description |
|---|---|
assets:read | Read asset data |
assets:write | Write asset data |
assets:delete | Delete assets |
assets:manage | Moderate (edit or delete) other users’ asset comments |
topology:read | Read network topology |
scans:read | Read scan data |
scans:write | Write scan data |
credentials:write | Create and update scan credentials |
curation:read | Read the normalization curation queue |
curation:write | Approve / reject normalization curation items |
Risk
| Permission | Description |
|---|---|
vulnerabilities:read | Read vulnerability triage data |
vulnerabilities:write | Acknowledge / assign / dismiss / resolve vulnerability matches |
vulnerabilities:admin | Configure vulnerability feed sources and trigger syncs |
remediation:read | Read remediation tasks |
remediation:write | Create and update remediation tasks |
exceptions:request | Request a risk-acceptance exception on a vulnerability match |
exceptions:approve | Approve, reject, or revoke risk-acceptance exceptions |
Cloud
| Permission | Description |
|---|---|
cloud:connector:read | Read cloud connectors and their status |
cloud:connector:write | Create and remove cloud connectors |
cloud:connector:run | Trigger a cloud connector discovery run |
cloud_costs:read | Read cloud cost data |
cloud_costs:write | Create and update cloud cost budgets |
posture:read | Read cloud posture checks |
posture:write | Run cloud security posture scans |
Govern
| Permission | Description |
|---|---|
compliance:read | Read compliance reports and controls |
compliance:write | Generate and export compliance reports |
licenses:read | Read software licenses and compliance |
licenses:write | Create, update and delete software licenses |
reports:read | Read reports |
reports:write | Create, edit and delete saved reports |
exports:read | Read export data |
Dashboards, views and automation
| Permission | Description |
|---|---|
dashboard:read | Read dashboard metrics |
dashboard:write | Create and manage dashboards and widgets |
views:read | Read custom views |
views:write | Create, update, delete and share custom views |
flows:read | Read automation flows and executions |
flows:write | Create and update flows |
flows:command | Approve high-risk local command actions in automation flows |
helpdesk:read | Read helpdesk tickets and comments |
helpdesk:write | Create, update, comment on, and delete helpdesk tickets |
Integrations
| Permission | Description |
|---|---|
connectors:read | Read third-party connector configurations |
connectors:write | Create, update, and delete third-party connector configurations |
webhooks:read | Read outbound webhook endpoints and deliveries |
webhooks:write | Create, update, delete and test outbound webhooks |
Which page needs which permission
To open a page, a person needs at least one of the permissions listed for it. Without one, DeviceQuest shows an Access restricted page instead (see Signing in). A rule also covers every page below its path, for example /assets/<id>. Actions inside a page can need more, typically the matching :write, :delete or :admin permission.
| Page | Path | Needs any of |
|---|---|---|
| Dashboard | /dashboard | dashboard:read |
| Asset Inventory | /assets | assets:read |
| Scanning (schedules, targets, credentials, profiles) | /scanning | scans:read |
| Scan Results | /scan-results | scans:read |
| Ingestion | /ingestion | assets:write |
| Vulnerabilities | /vulnerabilities | vulnerabilities:read |
| Remediations | /remediations | remediation:read |
| Exceptions | /exceptions | exceptions:request, exceptions:approve |
| Cloud Resources | /cloud | cloud:connector:read, cloud_costs:read, posture:read |
| Compliance | /compliance | compliance:read |
| Licenses | /licenses | licenses:read |
| Reports | /reports | reports:read |
| Flows | /flows | flows:read |
| Views | /views | views:read |
| Helpdesk | /helpdesk | helpdesk:read |
| Developer | /developer | webhooks:read, api_keys:read |
| Integrations | /integrations | connectors:read |
| Users | /admin/users | users:read |
| Host agents | /admin/host-agents | admin:manage |
| Enroll an agent | /admin/host-agent-setup, /admin/windows-agent | admin:manage |
| Software curation | /admin/curation | curation:read |
| Roles and permissions | /admin/security/rbac | roles:read |
| MFA policy | /admin/security/mfa | roles:read |
| Audit retention | /admin/security/audit-retention | admin:manage |
| Single sign-on (SAML) | /admin/security/sso | sso:read, admin:manage |
| API keys | /admin/security/api-keys | api_keys:read |
| Audit log | /admin/audit-log | audit:read, admin:manage |
| CVE feeds | /admin/cve-feeds | vulnerabilities:admin |
| Cleanup rules | /admin/cleanup-rules | admin:manage |
| Custom fields | /admin/custom-fields | admin:manage |
Pages that aren’t listed, such as your profile and MFA Settings, are open to every signed-in user.
Keyboard shortcuts
These work on the role list when you aren’t typing in a field.
| Key | Action |
|---|---|
| j / k | Move the focus to the next or previous role. |
| Enter | Open the focused role. |
| / | Focus Search roles…. |
| n | Open Create role. |
| e | Edit the focused role. |
| c | Clone the focused role. |
| d | Delete the focused custom role. |
| g then s | Jump to System roles. |
| g then c | Jump to Custom roles. |
| Esc | Close the open role or dialog. |
| ← →, Home / End | In the role side panel, move between tabs. |