Start

The nouns behind every release.

Apps define identity and delivery. Channels separate release streams. Releases group one version’s artifacts, notes, and state.

Organization scopedApp scoped credentials
01
App

A distributable product with a dashboard slug, public release address, default channel, and updater adapter.

02
Channel

A named stream such as stable, beta, or nightly. Each channel has an independent latest published release.

03
Publish key

A revocable credential with the publish scope, bound to one app.

Release and artifact

A release is a version inside one channel. It begins as a draft and becomes published only after at least one artifact exists and the publish endpoint verifies that every declared upload object exists with the declared size.

An artifact is one downloadable file for one target. It records:

  • target, such as linux-x86_64 or aarch64-apple-darwin
  • format, including its leading dot, such as .zip or .app.tar.gz
  • byte size
  • lowercase SHA-256
  • an optional adapter-specific signature

One release may contain at most one artifact for a given target, and at most 32 artifacts in total.

App slug and public slug

The current creation flow uses the claimed public slug as the dashboard app slug. The public slug is globally unique and becomes {public-slug}.mateality.app. API keys authenticate against the app slug in publishing URLs, while public edge lookups resolve the public slug.

Adapter

The adapter is selected when the app is created:

  • tauri-v2 returns Tauri’s signed updater response.
  • generic-rest returns a JSON contract with version, integrity, and download data.

Retention and pruning

Rolling plans always keep the newest two published releases in each channel. Older releases receive a plan-specific prune date. Pruning removes the stored binary while retaining release and artifact metadata; downloading that artifact then returns 410 Gone.