Skip to content
SurfaceDocs
FRGet started
DocsManage & troubleshoot

Publication and catalog

Distribute reusable apps and control activation.

Publish a definition

A published Model distributes an app definition rather than its author’s private data. The catalog lets people discover and install Workspaces as needed. Clients does not need to anticipate every future quotes, billing or supplier app to be reusable.

Information Expected values Description
Identity Model name, key and description Recognize the app
Version Identifiable published revision Reproduce the installed definition
Capabilities Required functions and connections Prepare installation
Initial content Authorized definitions and examples Start without private data
Migration Policy and structural changes Evolve installations

Prepare publication

Validate references and try creation, editing and browsing. Check permissions and connection requirements. Review labels, errors and help in supported languages. Publication produces an identifiable version; activation in an environment is a separate decision.

Assemble after installation

Users can install Clients, add Quotes and connect them through integrations. They can adapt Fields and views or add a missing Workspace. Link configuration remains visible; AI can propose it for user review.

Example

Publish Clients with its record, table and Actions. Installation in a new organization creates authorized structure; the organization adds data and connections. Further publication uses migration instead of silently changing existing records.

Browse and install from Marketplace

In Surface, Marketplace opens in a centered modal, up to 1,900 pixels wide, with its own scrolling content. Use the close icon or Escape to return to Portfolio. The public catalogue also remains available as a standalone page.

Discover, My publications and Installed separate discovery, publication history and your installed collection. Discover filters by Category, Type, Scope and Search. Public discovery is available without a paid plan. Public publication requires Plus or higher. Pro or Business provides a personal Private Repository; an authorized Business organization provides its Organization repository. Losing a publication entitlement does not erase your public history.

Cards and details show recorded successful installations and ratings. Installations count once per profile and exact release; retries and reinstalling that release do not inflate the total. An unavailable historical measure is shown as unavailable. An installed user can publish or update one review. Its update replaces its contribution to the rating. Review authors use a public pseudonym, rather than exposing private account identifiers.

A listing keeps its primary action beside its title and Installed status pill. Its preview gallery shows published screenshots and declared template images. Overview presents the native Summary with a compact Details sidebar. Extension Overview shows publisher-authored information; technical capabilities are not repeated there. Templates and applications also show their preview or included Spaces. The remaining tabs show Reviews, Permissions, Installation guide and Manage installation. Manage installation contains application creation, template availability and the applicable uninstall controls; publishers use Publication for their editorial actions. Publishers can compose the Summary and guide as native Surfaces included in the reviewed release. Publishers may also provide a public contact email and an HTTPS logo URL. The publication menu offers contact by email when provided, available extension updates and uninstall. These facts belong to the immutable release; existing listings need a new publication to add them. Missing editorial content has an illustrated empty state. Installed extensions do not show a View templates button. Permissions lists the exact release’s permissions and those of its required extensions. Before installation or update, review the dialog and choose Accept and install. Cancelling leaves the installation unchanged. Your existing access rights still apply; external connections and sensitive operations keep their separate setup or confirmation. AI and MCP can inspect the plan, but cannot accept permissions for you.

In Manage installation, review the acceptance status, reaccept a release or choose Revoke permissions. Revoking an extension stops its actions; revoking an application or template stops new creations from that package until reacceptance. Existing content and history are retained. An existing installation without an agreement must be reviewed before use.

Publish and install a Surface template

My publications → Publish template prepares a native Surface, its presentation, compatible Content, Knowledge or Data Spaces, and required extensions. Publishing a new version keeps the previous release immutable.

The template detail offers All compatible Spaces, including future compatible Spaces, or an explicit selection. The compatible template is then offered by New Surface in those Spaces. Required extensions are installed with the template, just as they are with an application package. Missing or unauthorized dependencies prevent installation. Uninstalling a template removes it from future creation choices while retaining Surfaces already created from it. Data blocks in a distributable template remain unlinked; the recipient chooses their source after creation. Existing live Data links and extension runtime contents are not included in portable templates.

Publish a Surface extension

An extension adds Surface types, compatible Space types and illustrated templates. It can also declare user Settings and supported data providers. It has its own version and does not create a Portfolio application. Installing it makes its templates available in the declared Spaces.

The Marketplace lists applications and extensions separately. Extension publication follows the same review and account checks as applications: public Marketplace, personal Private Repository with Pro or Business, or an authorized Organization repository with Business. The publication identifies an exact approved package; a listing does not grant access to private content or sources.

Existing Surfaces retain their exact extension release. Uninstalling prevents creation and new writes while retaining stored content and history. Reinstall the required release to resume editing.

Manage and create extensions

Settings → Extensions lists installed extensions as illustrated Surface cards. Open a card to check available updates or uninstall it. The uninstall dialog lists applications requiring the extension and Surfaces using it. Required installations (application packages, instances or templates) block removal until their requirements are removed or they are uninstalled. Stored Surfaces and History are retained.

My extensions lists the extensions you are developing. New extension creates an extension with the Surface SDK and opens Extension Builder. Enter its name and your package namespace (for example, acme for @acme); its internal identity is generated automatically. An extension can provide Surface types, templates and user Settings. A template is the starting content for a new Surface, while the extension supplies its capabilities. Configure compatible Spaces and template images, edit the source files or open the assistant with this extension selected. Saving records a source revision; it does not activate executable code. Review changes, validate the source and try the isolated preview.

Export extension downloads its source folder for local development and CI. Use an independent repository named dagio-surface-ext-<id> for delivered versions. Associating its URL does not connect or authorize Git delivery. Test and build the exported source, then admit its exact package before submitting it for publication. The source fingerprint must match that build. There is no automatic two-way Git synchronization.

An application can declare required extension versions in its Builder. Installation resolves their reviewed publications and installs the dependencies before activating the application. Private repository access is checked again; a public application cannot require a private extension.

Applied examples : Publish a reusable app

Publication describes the app; policies preserve access to instance Actions.

Configuration

Fragment placed in publication. Properties and accepted values.

{
  "kind": "workspace-application",
  "license": "Proprietary",
  "requiredCapabilities": [],
  "requiredConnections": []
}

Variation and connection

Fragment placed in contentActions[]. Properties and accepted values.

{
  "contract": "ContentSpaceActionPolicy@1",
  "spaceKey": "clients",
  "actionKey": "prepare-quote",
  "minimumRole": "editor"
}

UI layout example

The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.

  1. Target object
  2. Proposed change
  3. Checks
  4. Confirm
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
Publication and catalogPublish a reusable app
Clients
NS
North StudioQuote S-1042
Needs review
Proposed change
Publication describes the app; policies preserve access to instance Actions.
Data and references
Client · Need · Pricing
BackReview then confirm
Search for a concept, field or action.Esc