Verentis

Scopes

Scopes & permissions

The Verentis scope naming scheme, the scopes your apps and engines will commonly request, and the full scope catalogue.

A scope is a fine-grained permission. Tokens carry only the scopes that were both requested (in your manifest's permissions) and granted (by an admin at consent, or via a role/grant). Request the minimum your extension needs.

Naming scheme

Scopes describe what a caller can do to a thing, not which service hosts it:

<resource>.<action>

For example file.read — read files. A third segment is used where it makes the name clearer or marks a tier: ai.policy.write, or billing.admin.read for platform-operator scopes. Every name matches ^[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*){1,2}$ and is unique across the platform.

Actions come from a small fixed set:

  • read covers reading and listing (including search and aggregates).
  • write covers create and update.
  • delete stays separate, because it is the action most worth holding back.
  • A few risky actions get their own verb: publish, history, run, approve, accept, replay, rotate, operate, visibility, connect, start.

<thing>.admin.* scopes are platform-operator tiers. They are never granted by the default account or workspace roles, and apps cannot request them.

Scopes you'll commonly request

Most extensions work with files and content in a workspace:

file.read

Read and list files, folders and file content. Needed by any viewer or any engine that reads inputs.

file.write

Create and update files and folders — this is what file upload and editors that save require.

file.delete

Delete files.

file.history

Read a single file's version history. Intended for power users and tools.

file.publish

Make a path anonymously readable. Held by owners and admins only; avoid requesting it.

Upload uses file.write

To write/upload file content — new or existing files — request file.write. There are no separate create, update or journal scopes.

Workspace shell scopes

The workspace home and global shell use several read-only APIs. Apps need these scopes only if they call the same APIs themselves:

ScopeAuthorises
setting.readRead workspace policy settings, such as the workspace time zone.
notification.readRead the authenticated user's notification feed for the token workspace.
notification.writeMark notifications read, mark all read, or dismiss them.
activity.readRead the workspace activity feed shown on the dashboard.
quota.readRead the workspace's storage plan and cap.
execution.readRead executions, logs, engine resolution and the schedule/trigger automation projection.

execution.read does not permit starting or cancelling a run; that requires execution.run. Notification and current-storage endpoints derive their workspace (and, for notifications, user) from token claims rather than caller-supplied ids.

See Workspace shell & routes for the endpoint and response contracts.

Scope catalogue

The full list of platform scopes. Tokens are already bound to one account or workspace, so a scope does not repeat which kind of resource it applies to.

Files and workspaces

ScopeAuthorises
file.readRead and list files, folders and content.
file.writeCreate and update files and folders, including uploads.
file.deleteDelete files.
file.historyRead a file's version history.
file.publishMake a path anonymously readable (owners and admins only).
activity.readRead the workspace activity feed.
workspace.readRead workspaces, their URLs, storage and navigation.
workspace.writeCreate workspaces and update their details, URLs and slugs.
account.readRead the account.
account.writeCreate and update the account.
profile.writeUpdate the caller's own profile, avatar and navigation state.
onboarding.startCreate a new user's first account and workspace.
invitation.readList pending account or workspace invitations.
invitation.writeSend, resend and revoke invitations.
invitation.acceptAccept an invitation.

Billing, metering and quota

ScopeAuthorises
billing.readRead invoices, payments, payment methods, budgets, balance and app subscriptions.
billing.writeEdit billing details and budgets, auto-recharge, redeem promo codes and top up.
metering.readRead account and workspace usage.
quota.readRead a workspace's storage plan and cap.
quota.writeSet a workspace's storage quota.

Apps, installations and the Marketplace

ScopeAuthorises
app.readRead app registrations, file types, icons and creatable items.
app.writeRegister or update an app from its manifest.
app.deleteUnregister and delete an app.
publisher-service.readRead a publisher's app backends.
publisher-service.writeRegister app backends, rotate their secrets and disable their clients.
installation.readPreview, resolve and list installations.
installation.writeInstall, update and consent to an installation.
installation.deleteUninstall.
package.readRead Marketplace packages.
package.writeCreate and update packages.
package.deleteDelete packages.
package.publishPublish or yank package versions.
package.visibilityChange package visibility and private grants.
publisher.readRead publishers.
publisher.writeCreate and update publishers, signing keys and regional ownership.
entitlement.readRead entitlements.
entitlement.writePurchase an entitlement.
entitlement.deleteRevoke an entitlement.
price.readRead price plans and price books.
price.writeEdit price plans and price books, and submit them for approval.
review.writeWrite a package review.
report.writeReport a package or publisher for abuse.
stats.readRead Marketplace statistics.

AI and execution

ScopeAuthorises
conversation.readRead AI conversations.
conversation.writeConverse with the AI assistant.
conversation.deleteDelete AI conversations.
tool.readRead the AI tool catalogue.
tool.runRun an AI tool.
ai.readRead agent runs, their events and approvals.
ai.writeSubmit, message, pause, resume and cancel agent runs.
ai.approveApprove an agent's action.
ai.model.readList available models.
ai.policy.readRead the account or workspace model policy.
ai.policy.writeUpdate the account or workspace model policy.
execution.readRead executions, logs and engine resolution.
execution.runStart and cancel executions.

Platform services

ScopeAuthorises
setting.readRead settings.
setting.writeUpdate settings.
setting.deleteDelete settings.
governance.readRead workspace governance rules, the effective policy and decision explanations.
governance.writeCreate and update governance rules.
notification.readRead notifications.
notification.writeMark notifications read or dismiss them.
webhook.readRead webhook delivery history.
webhook.writeConfigure webhooks and their retention.
webhook.replayReplay webhook deliveries.
webhook.rotateRotate webhook signing credentials.
realtime.connectConnect to the realtime hub.

Platform operator scopes

These are granted on the Platform resource to operators only. Apps cannot request them.

ScopeAuthorises
billing.admin.read / billing.admin.writePlatform billing: ledger, credits, rate rules, FX, revenue shares, period close.
metering.admin.readPlatform-wide usage.
ai.admin.read / ai.admin.writeSystem models and the system model policy.
fabric.admin.read / fabric.admin.write / fabric.admin.deleteThe service catalogue: services, instances and declared scopes.
fabric.admin.operateShut down a service instance.
directory.admin.read / directory.admin.writeThe global directory.
file.admin.read / file.admin.writeMaximum upload size per account or workspace.
moderation.admin.read / moderation.admin.writeMarketplace moderation queues.
trust.admin.read / trust.admin.writeMarketplace trust flags.
report.admin.read / report.admin.writeMarketplace abuse reports.

Identity and access

ScopeAuthorises
user.readRead and list users.
user.createCreate a user.
user.writeUpdate users.
role.readRead and list roles.
role.writeCreate and update roles.
member.readRead role memberships.
member.writeAssign a person to a role.
member.deleteRemove a person from a role.
grant.readRead and list permission grants.
grant.writeGrant a permission.
grant.deleteRevoke a permission.
api-key.readRead and list API keys.
api-key.writeCreate and update API keys.
service-account.readRead and list service accounts.
service-account.writeCreate and update service accounts.
service-account.deleteDelete service accounts.
sso.readRead the workspace's single sign-on configuration.
sso.writeChange the workspace's single sign-on configuration.

Request write and delete only when your extension genuinely performs those actions. Tighter scope sets are easier for admins to approve.

Custom scopes you define

Apps and engines can define their own scopes (manifest spec.scopes), registered in the Fabric catalog so other callers can be granted them — the basis of app-to-app authorization. Name them the same way, prefixed with your extension's name:

acme-editor.document.export
acme-editor.template.write

Next

Calling the Verentis API

Use your scoped token to make requests.