Skip to main content
Admin UI extensions are static bundles rendered by the admin runtime in sandboxed iframes. Each published version declares the slots it can mount into and the admin UI extension API range it expects.

Manifest

Every bundle includes a manifest validated as voyant.extension-manifest.v1:

Slots

Supported slots:

Publish

Use voyant publish to upload a gzipped tarball and its manifest to Cloud. The compressed bundle must be 5 MB or smaller and must expand to 20 MB or smaller. During upload Cloud extracts the tarball, rejects absolute paths and path traversal, verifies the manifest entry exists, and stores the versioned files as immutable R2 objects. Published files are served from:
HTML responses include Content-Security-Policy: frame-ancestors * because extension documents are token-free static content rendered in sandboxed iframes.

Versioning

Versions are immutable. Publish a new semver version for every bundle change, then update installs to pin that version. If no version is provided during install, Cloud installs the newest published version. At install time, embedded admin sessions can carry adminUiExtensionApiVersion. Cloud rejects installs when the runtime version does not satisfy the selected version’s extensionApi range.

Visibility and installs

Extensions start as private. Owners can set visibility to private or unlisted; listed is reserved for platform operations in v1. Install rules: An install is organization-scoped, pinned to a specific extension version, can be enabled or disabled, and can store optional config matching the selected version’s configSchema. Versions without configSchema do not accept install config.