Skip to main content

Bundles

POST/v1/orgs/{org_id}/projects/{project_id}/envs/{env_name}/bundles/{version}/activate

Activate Bundle

Activate a specific bundle version (rollback).

Bearer token or X-API-Keyscope: bundle:publishoperation_id: bundles.activate

Authentication

Send either Authorization: Bearer <token> or X-API-Key: <token>. The caller must hold the "bundle:publish" role on the organization. CI token — create via POST /v1/orgs/{org_id}/tokens/ci. Project-scoped, allows the bundle lifecycle. Requests without a valid credential are rejected with 401.

SDK install

pip install znyx-sdknpm install @znyx/sdk

Code samples

Request

curl -X POST "$ZNYX_API_URL/v1/orgs/00000000-0000-0000-0000-000000000000/projects/00000000-0000-0000-0000-000000000000/envs/prod/bundles/42/activate" \
  -H "Authorization: Bearer $ZNYX_TOKEN"

Response

application/json

Successful Response

{
  "id": "string",
  "version": 0,
  "policy_hash": "string",
  "is_active": false,
  "published_by": null,
  "published_at": "string",
  "scope_count": 0
}

Schema: object

Path parameters

NameTypeRequiredDescription
org_id#pathstringrequired-
project_id#pathstringrequired-
env_name#pathstringrequired-
version#pathintegerrequired-

Header parameters

NameTypeRequiredDescription
X-API-Key#headerstring | nulloptional-
authorization#headerstring | nulloptional-

Responses

StatusDescription
200Successful Response
422Validation Error

Response schema

idrequiredstring
versionrequiredinteger
policy_hashrequiredstring
is_activerequiredboolean
published_byrequiredstring | null
published_atrequiredstring
scope_countinteger

Errors & what triggers them

CodeTriggerFix
403Token lacks `bundle:publish` scope.-
404Bundle version does not exist in this environment.-

Notes & examples

When to use this

  • Incident response — the new bundle broke something, jump back to the last known good version without re-uploading anything.
  • A/B testing — keep two versions published, flip between them.
  • Manual promotion — if your CI publishes to dev but you want to activate in prod by hand.

Runtimes polling /v1/bundles/latest will see the change within the poll interval (30-60s typically).

What gets audited

Every activate call writes an audit event with the acting token's prefix and the version numbers (from → to). If you're in a regulated industry, this is what you show the auditor during the change-management review.

  • POST .../bundles/publish — create a new version.
  • POST .../envs/{source}/promote — promote the current active from dev→staging→prod.
  • GET .../bundles — list all versions to pick one.