LinkMablnet

Publish a new mablnet worker release (operator / release CI)

Changed on

Stores a signed release manifest and initialises the channel's rollout. The request body is the signed manifest produced by the release pipeline (see link/mablnet/docs/deployment/release-pipeline.md § Aggregate job). The api derives artifact, channel and version from the manifest, stores the manifest verbatim, sets the channel's current_version to the new version and fallback_version to the prior current, and applies the default staged rollout schedule (1% → 10% → 50% → 100% over 24h). Auth: a release-engineering identity, not an interactive customer. The publishing principal is CI rather than a user-OAuth admin, so the exact machine-auth shape is an open api-team decision — see design doc § Release-publisher auth.

post/link/mablnet/releases

Request

  • Base URL: https://api.mabl.com
  • URL: https://api.mabl.com/link/mablnet/releases
  • Auth: one of:
    • HTTP basic
    • API key in header Authorization

Request body

manifeststring required

Base64 of the exact signed manifest bytes. Decode, then verify + parse per manifest-format.md.

resolved_channelstring

The channel the returned manifest was resolved on, after channel aliasing and any per-tenant release override. Equals the requested channel unless one of those redirected it. A consumer that checks the manifest's signed channel compares it to this, so a renamed channel keeps working; the check catches a manifest moved between channels by a publishing mistake or a middlebox, not a substitution by the api itself, which the signature covers.

Response

Release stored; the resulting channel rollout state is returned.

idstring

Datastore key for this entity — <artifact>/<channel> (one entity per artifact + channel). Server-set.

artifactstring required

Release artifact this state governs (mablnet-host, link-agent).

channelstring required

Release channel this state governs, within artifact.

current_versionstring required

The version being rolled out to (Hosts inside the rolled-out percentage receive this).

fallback_versionstring

What Hosts not yet inside the rollout receive. Unset once a rollout reaches 100% and the current version is fully rolled out.

force_percentinteger

When set, overrides the time-based schedule with an explicit rolled-out percentage (operator force-advance). Cleared by resuming the schedule.

published_atstring date-time

When the current rollout started; the schedule's since_ms offsets are relative to this.

pausedboolean required

When true, the manifest endpoint stops advancing the rollout — Hosts stay on whichever version they have.

Changes