Integrations
Resolve renderers and open-with options for resources, and manage integration launches
postCreate open-with launch
Creates a callback launch URL with a signed token for an integration open-with flow.
postGenerate integration token
Generates a long-lived access token scoped to an integration and resource. Requires upl:private scope and optionally auth:forever for non-expiring tokens.
postInstall an integration on a bucket
Installs an integration onto a bucket. Bucket admin only. Idempotent — reinstalling an uninstalled row flips status back to active without losing installed_at / installed_by_subject_key. Bucket-scoped integrations cannot be manually installed; they're implicit at bucket-create time.
postList integrations available to install
Catalogue of integrations the bucket admin can install: APPLICATION-mode integrations plus owned integrations with discoverable=true.
postList content types visible in a bucket
Per-bucket scoping for the consumer portal's icon resolver / Open-With picker. Returns the system Default integration's content types plus the CTs of every integration with an active install on the bucket. Apps' CTs only show in buckets where the app is installed — pre-M3 they leaked globally via ListInstalledContentTypes.
postList bucket default Open-With preferences
Lists all (content_type, extension) → app defaults configured for the bucket.
postList installations on a bucket
Returns every BucketIntegrationInstallation row for the bucket (active + uninstalled). Same set surfaces to every viewer; UI filters by status.
postList integrations
Lists global integrations registered in the system.
postList new file options
Lists new file templates from all integrations the user has access to, for populating the new file menu.
postReport a renderer crash
Records that the renderer for an integration archive failed (render error, unhandled exception, or unhandled rejection). Best-effort telemetry used for diagnosing broken renderers in production.
postResolve open-with token
Resolves a signed open-with token into resource details and download URL.
postResolve resource integrations
Resolves renderer and open-with options for an upload or folder by matching against integration content types.
postInstall the calling integration on a bucket
Lets an integration with a user-delegated bearer install itself on a bucket the user administers. Rejects bare API-key / client-credentials callers (no user identity). Rejects buckets where the integration was previously uninstalled (bucket admin must reinstall manually via the bucket settings UI).
postSet bucket default Open-With
Records the bucket's default app for the (content_type, extension) pair. Bucket admin only. An empty integration_id records 'use built-in preview'.
postUninstall an integration from a bucket
Soft-uninstalls: status flips to uninstalled, API access from the integration's bearer is blocked, files retain integration_id with a UI marker. Bucket admin only. Cascades the bucket's open-with defaults that referenced the integration. Rejects bucket-scoped integrations — delete the bucket instead.