The nouns behind every release.
Apps define identity and delivery. Channels separate release streams. Releases group one version’s artifacts, notes, and state.
A distributable product with a dashboard slug, public release address, default channel, and updater adapter.
A named stream such as stable, beta, or nightly. Each channel has an
independent latest published release.
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 aslinux-x86_64oraarch64-apple-darwinformat, including its leading dot, such as.zipor.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-v2returns Tauri’s signed updater response.generic-restreturns 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.