Chapters Permission Reference

Appendices 12

Permission Reference

Every permission key, which page it opens, and which button it reveals.

Updated

1. How a permission key is written

<resource>:<action>
ActionLetterMeaning
CreateCCreate new records
ReadRView lists and details
UpdateUModify, activate, deactivate
DeleteDDelete records

The catalogue holds exactly 42 permissions across 12 resources, and the set is fixed — Merak does not mint new permissions at runtime. Ten resources carry the full C/R/U/D set; permission and auditLog are read-only and exist solely as permission:R and auditLog:R (10 × 4 + 2 = 42).

ResourceKeyGoverns
UseruserConsole administrator accounts
MembermemberManaged people
DevicedeviceDevices registered to members
ApplicationapplicationPublished services
OrganizationorganizationGroups of members and applications
RoleroleRoles
PermissionpermissionThe permission catalogue itself
Token requesttokenRequestApprovals
Audit logauditLogAudit log and connection log
TenanttenantTenant information
LicenselicenseLicence and quota information
Merak NodemerakNodeEdge routing nodes

2. Page access matrix

Holding the listed permission is what makes the menu entry appear and the route open. Without it, the menu entry is hidden and typing the URL shows a “no access” result.

PageRouteRequired
Dashboard/none
Members/membermember:R
Applications/applicationapplication:R
Organizations/organizationorganization:R
Merak Nodes/meraknodemerakNode:R
Approvals/approvetokenRequest:R
Audit Log/audit-logauditLog:R
Connection Log/connection-logauditLog:R
Users (admins)/useruser:R
Roles/rolerole:R
Profile/profilenone
Preferences/preferencenone

A menu group disappears when every one of its children is hidden.


3. Action matrix by resource

3.1 Members

ActionPermission
View list and detailmember:R
Create / copy / importmember:C
Editmember:U
Deactivate / Unactivate / Unlock / Start / Send Email / Reset MFAmember:U
Deletemember:D

Cross-feature: the Devices card needs device:R, Organizations organization:R, Applications application:R, the Log tab auditLog:R. Losing one hides that card or tab entirely.

3.2 Devices

ActionPermission
View devicesdevice:R
Rename / deactivatedevice:U
Deletedevice:D

3.3 Applications

ActionPermission
View list and detailapplication:R
Create / copy / importapplication:C
Edit, activate, deactivateapplication:U
Deleteapplication:D
Edit member accessapplication:U + member:R + member:U
Edit organization accessapplication:U + organization:R + organization:U
See the Members cardmember:R
See the Organizations cardorganization:R
Filter by organizationorganization:R
Add a member node in the topology chartmember:R

3.4 Organizations

ActionPermission
View list and detailorganization:R
Create / copy / importorganization:C
Edit name and descriptionorganization:U
Add or remove members / applicationsorganization:U
Deleteorganization:D
See the Members card and filtermember:R
See the Applications card and filterapplication:R

3.5 Merak Nodes

ActionPermission
View list and detailmerakNode:R — gates the page
CreatemerakNode:C — enforced by the backend only
Rename, regenerate JWTmerakNode:U — enforced by the backend only
DeletemerakNode:D — enforced by the backend only

⚠️ Merak Nodes are the one exception to “missing permission = missing button”. The Console gates the page on merakNode:R, but the create, rename, regenerate and delete controls are shown to anyone who can open the page — they are filtered by deployment status only. The merakNode:C/U/D keys exist and the backend applies them, so an action you are not entitled to fails at submit rather than being hidden. Treat a visible button here as “you may try”, not “you may do”.

3.6 Approvals

ActionPermission
Open the page, see the queuetokenRequest:R
Approve or reject (single or batch)tokenRequest:U

3.7 Logs

ActionPermission
Audit log: view, filter, exportauditLog:R
Connection log: view, filter, exportauditLog:R
A member’s or user’s Log tabauditLog:R

3.8 Users (Console administrators)

ActionPermission
View list and detailuser:R
Create / copy / importuser:C
Edit / Deactivate / Activate / Unlock / Resend activation mail / Reset MFAuser:U
Deleteuser:D
Edit the role fielduser:U and role:U
Validate a role selectionpermission:R

3.9 Roles

ActionPermission
View list and detailrole:R
Create / copy / importrole:C
Edit name and descriptionrole:U
Deleterole:D
Add or remove a role’s permissionsrole:U + permission:R

3.10 Profile and Preferences

ActionPermission
Open both pagesnone
Edit your own name, password, MFAnone
See tenant informationtenant:R — degrades to - without it
See licence and quotalicense:R — degrades to a notice without it

4. Rules that apply everywhere

4.1 Missing permission = missing button

A control you have no permission for is not rendered, not disabled. If a button you expect is absent, check the permission before you file a bug.

One exception: Merak Nodes. Its create, rename, regenerate and delete controls are not permission-filtered in the Console — only the page is. See §3.5.

4.2 Cross-feature dependencies hide whole sections

When a page needs another resource’s data, losing that resource’s read permission removes the whole card, tab or filter field — Merak does not show an empty card you could mistake for “there is nothing here”. It also stops asking the server for data you may not read.

4.3 Both sides are needed to grant access

Granting access writes to two records, so it needs permission on both:

GrantNeeds
Application → membersapplication:U + member:R + member:U
Application → organizationsapplication:U + organization:R + organization:U
User → rolesuser:U + role:U

A field you cannot fully edit becomes read-only and submits as empty — it never smuggles a pre-ticked seed value past your permissions.

Read-only pickers used purely to find a source (the organization option in the quick-select pickers) need only that resource’s read permission, because nothing is written to it.

4.4 You can never grant what you do not hold

Enforced in four places — copying a user, copying a role, assigning a role manually, and importing roles. All of them fail closed: if the check cannot be completed, the grant is refused rather than allowed through unverified. See 08 · Administrators & Roles §11.

4.5 Every default role carries tenant:R and license:R

That is why tenant name and quota normally work. An account with no roles at all may still be refused, and every screen that reads them degrades gracefully rather than failing.


5. System accounts and system roles

ThingProtection
System roleCannot be edited or deleted. Can be viewed and copied — a copy only reads the source and produces a new ordinary role.
System userMarked with a System chip in the list.

Batch delete on roles excludes system roles from the eligible set up front, rather than letting each one fail against the server.