Permission names

v0.0.1

Every permission name is a plain string that an account holds, and the CMS checks it before it opens an admin screen, an admin API route or a locked page. This page lists each name the installer creates and each name an extension adds, with the description the code gives it. For how names, wildcards and sites work, read How permissions work.

How to read this list

  • The installer creates 35 core names. Mishka Blog adds 6 when you install it, and Mishka Document adds 6.
  • admin:dashboard:<area> names open the admin screens. admin:api:<area> names open the same areas over the admin JSON:API. A name counts only on its own surface.
  • A name ending in * covers every name below it. A name without one covers only itself.
  • The Permissions screen under Account lists the stored names with these descriptions, sorted by name by default. A name that is already stored keeps its description when the installer runs again.

Core wildcard names

NameWhat it opens
*Every permission within the holder's own site. For a master that means every site. It never makes anyone a master.
admin:*Full admin of the dashboard and the API.
admin:dashboard:*Full dashboard admin: every dashboard area, every builder and code.
admin:api:*Full API admin: every admin JSON:API and GraphQL area, and code.
admin:dashboard:runtime:*Every runtime section on the dashboard, their code included, and opening every builder.
admin:api:runtime:*Every runtime section over the admin JSON:API, their code included.

Core dashboard names: runtime

NameWhat it opens
admin:dashboard:runtime:siteThe Sites screen and site data: read, create, edit and archive. A site-wide action still needs a master.
admin:dashboard:runtime:pageWriting pages, their drafts and versions, their code included, and opening the page builder.
admin:dashboard:runtime:layoutWriting layouts, their drafts and versions, their code included, and opening the layout builder.
admin:dashboard:runtime:componentWriting components and their versions, their code included, and opening the component builder.
admin:dashboard:runtime:error_pageWriting error pages, their drafts and versions, their code included, and opening the error page builder.
admin:dashboard:runtime:stylesheetWriting stylesheets, their CSS included.
admin:dashboard:runtime:js_hookWriting JS hooks, their content included.
admin:dashboard:runtime:mediaWriting media, media categories and their versions. Every dashboard admin reads them.
admin:dashboard:runtime:translationWriting translation rows. Every dashboard admin reads them.
admin:dashboard:runtime:redirectWriting the site's redirect rules. Every dashboard admin reads them.
admin:dashboard:runtime:activityThe Activity screen, activity entries and the recent-activity widget.

Core dashboard names: accounts, settings and code

NameWhat it opens
admin:dashboard:settingWriting site settings that declare no permission of their own, the extension switches and the notification toggles included.
admin:dashboard:userThe Users screen: list, read, create, edit and delete the accounts of the holder's own site.
admin:dashboard:permissionThe Permissions screen: read the permission names, and grant or revoke permissions within what the holder holds.
admin:dashboard:codeWriting pages, layouts, components, error pages, stylesheets and JS hooks, their code included, and opening every builder.

Core API names

NameWhat it opens
admin:api:runtime:siteSite data over the admin JSON:API.
admin:api:runtime:pageWriting pages over the admin JSON:API, their code included.
admin:api:runtime:layoutWriting layouts over the admin JSON:API, their code included.
admin:api:runtime:componentWriting components over the admin JSON:API, their code included.
admin:api:runtime:error_pageWriting error pages over the admin JSON:API, their code included.
admin:api:runtime:stylesheetWriting stylesheets over the admin JSON:API, their CSS included.
admin:api:runtime:js_hookWriting JS hooks over the admin JSON:API, their content included.
admin:api:runtime:mediaWriting media and media categories over the admin JSON:API.
admin:api:runtime:translationWriting translations over the admin JSON:API.
admin:api:runtime:redirectWriting redirect rules over the admin JSON:API.
admin:api:runtime:activityThe activity log over the admin JSON:API.
admin:api:userAccounts over the admin JSON:API.
admin:api:permissionThe permission names and the grants over the admin JSON:API.
admin:api:codeWriting pages, layouts, components, error pages, stylesheets and JS hooks over the admin JSON:API, their code included.

Mishka Blog names

The blog creates these when you install it on a site. See Start a blog.

NameWhat it opens
admin:dashboard:blog:*The whole blog on the dashboard: posts and comments.
admin:dashboard:blog:postThe editorial side of the blog: posts, collections, tags, bloggers, teams and auto posting, with their views, ratings, bookmarks and follows. Holders are told when a post is published.
admin:dashboard:blog:commentComment moderation: comments and comment votes.
admin:api:blog:*The whole blog over the admin JSON:API.
admin:api:blog:postPosts, collections, tags, bloggers, teams and auto posting over the admin JSON:API.
admin:api:blog:commentComments over the admin JSON:API.

Mishka Document names

The document extension creates these when you install it on a site.

NameWhat it opens
admin:dashboard:document:*The whole document extension on the dashboard.
admin:dashboard:document:workspaceWorkspaces, their versions and lineage, other users' follows, the Home workspace form and the Workspace Versions screen.
admin:dashboard:document:sectionSections, notes, drafts, tags, issues and issue comments, other users' bookmarks, section views, and their screens.
admin:api:document:*The whole document extension over the admin JSON:API.
admin:api:document:workspaceWorkspace, workspace version and version lineage routes.
admin:api:document:sectionSection, note, draft, tag, issue and issue comment routes.

Names you add yourself

A master can add any other name on the Permissions screen with + Add Permission. A name is lowercase letters, digits and underscores, joined by colons, up to 200 characters. A * may end it. A page, a post or a collection can be locked with any name, such as members:read.