---
title: "Publication and catalog"
url: https://developers.dagio.ai/publication/
---

# Publication and catalog

   
                                
                                                               
                   
                
          
   

## 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](https://developers.dagio.ai/migrations/) 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.

<!-- surface-examples:start -->

## 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](https://developers.dagio.ai/reference/workspace-model-foundation/).

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

### Variation and connection

Fragment placed in `contentActions[]`. [Properties and accepted values](https://developers.dagio.ai/reference/content-space-action-policy/).

```json
{
  "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

<!-- surface-examples:end -->
