TrayPage Docs

Permission reference

Role-based reference for common organization, project, and page operations.

TrayPage uses separate permission checks for in-app operations and shared-page viewing.

  • Management operations such as creating projects, updating settings, and managing members are decided from organization and project roles.
  • In-app page operations such as opening the page workbench, uploading versions, reading/writing comments, approving versions, and managing access are decided by the role-based CRUD policy plus explicit per-page grants.
  • Shared-page viewing through a share URL is decided from visibility presets, share links, domain-user settings, and link expiration. public_link and domain-user visibility do not allow comment APIs, revision prompts, the generic viewer-ticket API, editing, approval, or access management.
  • Button visibility in the app is based on capabilities returned by the server. Final enforcement always happens server-side.

Management operations

If either the organization role or the project role says "Yes" for an operation, the user can perform that operation. For example, organization owners and admins can manage broadly across projects and page publishing, while project editors can publish pages and issue API tokens for projects they belong to.

This section is generated from the CRUD policy in src/lib/authz/crud-policy.ts.

Organization and members

OperationDescriptionOrganization ownerOrganization adminOrganization memberOrganization viewerProject adminProject editorProject commenterProject viewer
Open organizationRead organization basics and membership contextYesYesYesYes----
Update organization settingsChange organization name or slugYesYes------
View audit logRead the organization's audit logYesYes------
View allowed email domainsRead settings for domain-user visibilityYesYes------
Update allowed email domainsChange settings for domain-user visibilityYesYes------
List membersView organization membersYesYesYesYes----
Invite membersInvite or add organization membersYesYes------
Change member roleChange an organization member's roleYesYes------
Remove membersRemove members from the organizationYesYes------

Projects

OperationDescriptionOrganization ownerOrganization adminOrganization memberOrganization viewerProject adminProject editorProject commenterProject viewer
List projectsView projects in an organizationYesYesYesYes----
Create projectCreate a new project in an organizationYesYesYes-----
Open projectRead project surfaces and basic settingsYesYes--YesYesYesYes
Update project settingsChange project name or default visibilityYesYes--Yes---
Archive projectArchive a projectYesYes--Yes---
Add project memberAdd an organization member to a projectYesYes------

Pages and tokens in a project

OperationDescriptionOrganization ownerOrganization adminOrganization memberOrganization viewerProject adminProject editorProject commenterProject viewer
List own API tokensView API/MCP tokens you issued for a projectYesYes--YesYes--
Issue API tokenIssue an API/MCP token for a projectYesYes--YesYes--
List pagesView pages in a projectYesYes--YesYesYesYes
Publish pagePublish a page into a projectYesYes--YesYes--
Restore archived pageRestore an archived page from the project viewYesYes--Yes---
Open pageOpen the in-app page workbench and internal page APIsYesYes--YesYesYesYes
Upload versionUpload a new version or change editable page metadataYesYes--YesYes--
Approve versionApprove a version and publish or pin it as sharedYesYes--Yes---
Manage accessManage visibility, grants, share links, moves, and archive stateYesYes--Yes---
Read commentsRead review comments and revision promptsYesYes--YesYesYesYes
Write commentsCreate review comments and repliesYesYes--YesYesYes-
Resolve commentsResolve review comment threadsYesYes--YesYesYes-

Shared-Page Viewing And Explicit Grants

Shared-page viewing is evaluated separately from the management table above because it depends on visibility presets, share links, domain-user settings, and link expiration.

Page permissionWhat it allows
viewerView a page
commenterView and comment on a page
editorPublish a new version
adminApprove versions, pin the published version, and manage access

Users with explicit page grants can use these page permissions for in-app operations. Users who only reach a page through public_link, a share link, or domain-user visibility are limited to shared-page body viewing. Being able to view the same page through a share URL does not imply access to in-app comments, revision prompts, version operations, or access management.

See How it works for visibility presets.

On this page