Skip to content

Update metadata of an existing release

PATCH
/v1/apps/{appName}/deployments/{deploymentName}/release
curl --request PATCH \
--url https://api.aetherpush.com/v1/apps/example/deployments/example/release \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "packageInfo": { "rollout": 50, "description": "Bumped rollout to 50%" } }'

Patches mutable metadata of the latest release (or a specific release identified by label in the body). Useful for changing description, increasing rollout percentage, toggling isDisabled, or correcting appVersion.

Returns 204 if no fields actually changed.

appName
required
string
deploymentName
required
string
Media typeapplication/json
object
packageInfo
required

Mutable package metadata. Used as the body shape for release patches and as a sub-object on promote/rollback bodies.

object
appVersion

Semver version or range that this release targets.

string
description

Release notes shown to the client. The limit is counted in UTF-16 code units, so characters outside the Basic Multilingual Plane consume two units each. JSON request bodies are additionally capped at 10 KB in total and refused with 413, so a description whose UTF-8 size approaches that can only be set on the multipart release upload. Promoting carries the source release’s description over without resending it; changing one afterwards means releasing again.

string
<= 10000 characters
isDisabled
boolean
isMandatory
boolean
label
string
/^v[1-9][0-9]*$/
packageHash

SHA-256 hash of the package contents.

string
rollout

Percentage of clients eligible for this release.

integer
>= 1 <= 100
Example
{
"packageInfo": {
"rollout": 50,
"description": "Bumped rollout to 50%"
}
}

Release updated.

Media typeapplication/json
object
package
required
object
appVersion
string
blobUrl
required

Signed URL to download the package bundle.

string format: uri
description
string
diffPackageMap

Map of source package hash to diff blob info.

object
key
additional properties
object
size
required
integer format: int64
url
required
string format: uri
isDisabled
boolean
isMandatory
boolean
label
string
manifestBlobUrl

Signed URL to the package manifest (file hash map).

string format: uri
originalDeployment

Set when releaseMethod is Promote.

string
originalLabel

Set when releaseMethod is Promote or Rollback.

string
packageHash
string
releasedBy

Account email of the releaser.

string format: email
releaseMethod
string
Allowed values: Upload Promote Rollback
rollout
integer | null
>= 1 <= 100
size
required

Package size in bytes.

integer format: int64
uploadTime

Unix timestamp in milliseconds.

integer format: int64
Example
{
"package": {
"appVersion": "1.0.0",
"label": "v3",
"releaseMethod": "Upload"
}
}

No changes detected; release left untouched.

Validation error.

Media typeapplication/json
One of:
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}

Unauthenticated, or not a collaborator.

Media typeapplication/json
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}

App, deployment, or labeled release not found.

Media typeapplication/json
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}

Rollout cannot be decreased, or rollout cannot be modified on a completed release.

Media typeapplication/json
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}