Set or replace the release token.
curl --request PUT \ --url https://stratum.example.com/v1/admin/upgrades/release-token \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "token": "rel_0123456789abcdef" }'Stores the token in OpenBao, replacing any earlier one, and asks for an
update check now, which reads the stable channel with it. The response
never holds the token, and the audit event does not either.
Install-scope; gates on upgrade:ConfigureMirror.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”A release token from the Stratum Account (Company page, Enterprise support).
object
Printable ASCII without spaces; surrounding space is trimmed. Errors never echo it.
Example
rel_0123456789abcdefResponses
Section titled “Responses”The release token’s state (status is unchecked, or unused).
The release token: the credential that opens the stable
release channel (stableUrl). The token is in OpenBao and never
returned. With a token, and the release mirror set to the default (or to
stableUrl), the update check and every release download read the
stable channel, sending the token as Authorization: Bearer to that host
and no other. When the stable channel does not serve a usable index (it
refuses the token, answers another HTTP error, cannot be reached, or
serves an index that does not verify), that check reads the default
mirror instead, and every later check tries the stable channel again.
status:
none: no token is set.unchecked: set; the next update check uses it.accepted: the stable channel served its release index to the token.revoked: it answered 401, an unknown or revoked token.plan_ended: it answered 403, the company’s Enterprise plan is not in force.unreachable: no connection, a timeout, or another HTTP error (a 404);messagegives the status or the error.invalid: it served an index that does not verify, or one older than the one already read from it;messagesays why.unused: set, but never sent: the release mirror is set to another host, or the update check is off.
object
True when a token is set.
The status in a sentence, for the upgrade settings.
The stable release channel the token is sent to.
When this token was set; null when not known (set before this field existed, or none).
When the stable channel was last read with this token.
Example
{ "status": "none", "stableUrl": "https://releases.stratum-labs.cloud"}Bad request.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}Authenticated but not authorized.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}Upstream temporarily unavailable (driver / scheduler / dependency).
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}