Utility 04 / 05
Ship with confidenceEvery build signed
Upload, hash, sign and deliver by channel, with forced updates and blocked builds
Signed releasesEvery build carries a signature
How it works
- 01
Upload the build
sha256 is computed as it lands, the file is signed
- 02
Publish to a channel
Stable for everyone, beta for the people you pick
- 03
The app checks
The SDK accepts only a manifest signed by the app
Everything in it
- Signed manifestsEd25519, with a key id and a 10 minute life
- Short-lived linksEach download link lives 5 minutes, bound to the session
- Forced updatesA minimum version per app
- Blocked releasesA blocked build no longer opens
- Unknown buildsA strange hash is refused or only reported, your call
- Stable and betaOne newest build per channel
In code
const clavis = new ClavisClient({ appId, appPublicKey, device, appVersion: "1.1.4", buildHash });
const { app } = await clavis.init();
if (app.update?.required) return showUpdateScreen(app.update.minVersion);
const manifest = await clavis.checkUpdates({ channel: "stable" }); // signature checked
if (manifest) {
const bytes = await clavis.download(manifest.files[0]); // sha256 checked
}
Which plan has it
- Basic
- 500 MB of release storage
- Premium
- 20 GB of release storage
Read more in Protect Hub