Skip to main content
Version: v5.6.1

opschain admin packs

Included from Basic tier

Manage the platform's installed pack store: signed pack bundles uploaded as whole versioned units. A bundle is the canonical offline distribution form of an action pack — a snapshot of the pack's tree plus a signed manifest carrying the pack's name, its semantic version, the entitlement it requires, the minimum platform version it runs on and a content digest for every file. The platform verifies all of that against its embedded keyring before a byte is stored, so a bundle downloaded to an air-gapped estate and carried in installs with no network at all.

The version inside the signed manifest is the authoritative one — the bundle's filename and any release tag are decoration. Versions are immutable: re-uploading an installed version with identical content is idempotent, re-uploading it with different content refuses, and a fix is always a new version. Prior versions stay installed side by side, so different template versions can pin different pack versions and run concurrently; rolling back is a re-pin, never a re-upload.

A template opts in to an installed pack through .opschain/packs.yaml:

packs:
- name: infrastructure
installed: opschain-pack-infrastructure
version: 1.2.3 # optional — omit to track the store

With version: the declaration pins that exact installed version. Without it, the version is chosen when the template version resolves — the pack's pinned version if an administrator set one with pin, otherwise the highest installed semantic version — and that exact version is sealed into the template version, so runs stay reproducible and upgrades are a deliberate re-resolution.

The same signed bundle file also mounts directly in a --local run with bundle: <path> in .opschain/packs.yaml — verified identically, no store involved — so one artefact serves both lanes (see opschain docs getting-started/2-4-using-packs).

SubcommandPurpose
install -f <file>Upload and install a signed bundle.
listInstalled versions: entitlement, platform floor, pin state.
pin <pack> [<version>]Set (or --clear) the unversioned resolution target.
delete <pack> <version>Remove one version (refuses while referenced).

Every verb rides the v2 PackStoreService and requires the /admin updatable determination; every write is audited (api:packs:* events).

Exit codes: 0 on success, 1 when a call fails or the token is rejected, 2 for usage errors.

See also​

  • opschain docs cli/admin-packs-install — uploading a bundle.
  • opschain docs entitlements — the pack entitlements bundles may require.