Request minimum permissions
Permissions are declared at the app level and validated against how the manifest uses the platform.
| Capability | Accepted permission |
|---|---|
| Read a Data Workspace surface | data-workspace.read or data-workspace.write |
| Open a document surface | documents.read or documents.write |
| Open scoped AI chat | ai-chat.use |
Allow workflow.launch | workflows.execute |
| Open the content scheduler | content-scheduler.read or content-scheduler.write |
permissions: [
'data-workspace.read',
'documents.write',
'workflows.execute',
'ai-chat.use',
'content-scheduler.write',
]
The SDK removes duplicate permission strings. The server still performs authoritative validation and rejects a manifest whose surfaces require permissions it does not request.
Frontend Page authority
Custom pages do not receive a host session token or a general backend proxy. Their effective authority is narrower than the app-wide list:
navigatetargets only surfaces declared by the app.workflow.runtargets only aliases listed in that page'sworkflowBindings.- context includes only resolved bindings declared for that page.
This makes the manifest the reviewable boundary between developer code and organization resources.