List deployments whose pack service runs on values that changed
const url = 'https://example.com/v1/system/pack-env?limit=25';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/system/pack-env?limit=25' \ --header 'Authorization: Bearer <token>'Across tenants: deployments with a ready pack service, whose pack declares an environment, and whose values changed since the revision their service runs (and weren’t held back at this revision, but for one held as pack-env-update-failed, listed for an hour after it was first held so it’s tried again, and one held for a cause the platform fixes, pack-env-secret-unreadable or pack-env-secrets-unaudited, listed every time with its held, as the revision doesn’t move when that’s fixed). Read each one’s values with GET …/deployments/{deploymentId}/pack-env, give them to the service, and record it with PUT …/pack-env, sending back the appliedRevision it was listed with. Ids, the image and the revision each runs, never a value. Takes system:pack-env.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Where the previous page ended: its nextCursor, as it came. A runtime that seals cursors takes one only for the same list, filters and caller, within a day; otherwise 400 bad-input, and the list starts again without it. Absent → first page.
1..100. Default 25.
Responses
Section titled “Responses”One page of deployments.
object
A deployment whose pack service runs on declared env values that changed since: ids, the image, and the revision it runs. Never a value. Name the service packServiceName(tenantId, deploymentId) (@kindgi/api).
object
The pack it deploys (the image index’s packId).
The deployment’s project, as a call routes in it: the one it named, else the tenant’s Default. Absent only when the tenant has no Default project.
Digest-pinned, as registered: the pack service is created from exactly this.
The revision its service runs: given with its endpoint, or recorded since. Absent: none was. Send it back as appliedRevision with PUT …/pack-env.
Only when it’s held at its current revision for a cause the platform fixes, not the owner: it’s listed every time, as the revision doesn’t move when that’s fixed. Read its values again when your back-off says. Absent otherwise.
object
When it was first held.
Opaque cursor for the next page. Absent when hasMore: false.
Example
{ "data": [ { "held": { "code": "pack-env-secret-unreadable" } } ]}A limit out of range, or a cursor refused.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}A tenant’s key or session (system-principal-required), or a system key without system:pack-env (system-scope-missing).
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}The server doesn’t give a pack service its declared env: its pack services take theirs from how they’re run (pack-env-unsupported).
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}