Documentation · API: Releases

API: Releases

Generated from openapi.json 0.1.0-draft (draft)

The release pointer every scale-out and healing action boots from.

Create a release and move the group's current pointer to it

post/groups/{groupId}/releases

Records a release and makes it the group's current release. Every scale-out and every healing action boots from current; :latest is never used. The group's generation is incremented, which discards scaling decisions made against the previous release, and the group.release_changed event is sent.

Parameters

ParameterTypeDescription
groupId (path)*stringGroup identifier, a ULID prefixed with grp_. Example: grp_01J8X4V9K2N7Q3R5S6T7V8W9XB.

* required

Request body

FieldTypeDescription
ref*stringThe artefact to boot from: a Hetzner snapshot id, an image digest or a Coolify deployment reference, depending on the group's adapter.
build_idstringThe customer's own build identifier for this release; nodes report it so stale nodes can be found.

* required

{
  "ref": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "build_id": "4711"
}

Responses

201
The release was recorded and is now the group's current release.

Body: Release

401
The API token is missing, invalid or revoked.

Body: Error

404
The group or node does not exist or belongs to another organisation.

Body: Error

422
The request body failed validation.

Body: Error

429
The organisation's API rate limit is exhausted; retry later.

Example

curl -X POST https://api.hetscale.com/groups/grp_01J8X4V9K2N7Q3R5S6T7V8W9XB/releases \
  -H "Authorization: Bearer $HETSCALE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "ref": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "build_id": "4711" }'

See what Hetscale would have done with your real data — connect read-only, get your report in minutes.

Connect read-only