Skip to main content
Version: v5.7.0

opschain admin secrets providers update

Included from Basic tiersecrets:multi-vaultpacks:secrets-awspacks:secrets-azure

Updates a secrets provider by its code or row id. Only the flags you pass change — an untouched field keeps its stored value; the code and kind are immutable. Supplying a credential (--credential-env / --credential-prompt, never argv) rotates the stored one; the rotation is audited without the value.

Enabling a provider (--enabled) while another enabled provider exists is refused with the typed SECRETS_PROVIDER_SINGLE_DEFAULT error (the base platform is single-vault); disabling the enabled default makes secret resolution refuse loudly until a provider is enabled again — it never silently falls back to the dev store. Enabling a disabled cloud-kind provider additionally requires its pack entitlement: packs:secrets-aws for aws-secrets-manager (see opschain docs packs-secrets-aws), packs:secrets-azure for azure-key-vault (see opschain docs packs-secrets-azure).

OPSCHAIN_VAULT_CRED=s.yyyy opschain admin secrets providers update vault --credential-env OPSCHAIN_VAULT_CRED
Updated secrets provider vault

-o, --output json|yaml emits the updated provider document.

--resolution runner moves the locus to the runner and clears the stored credential and reference (the server never holds a way to reach a runner provider); --resolution server on a runner provider needs the credential in the same write (--credential-env/--credential-prompt or --credential-ref).

Reference custody​

A secrets provider's own credential may be pinned as a provider-qualified secret-vault://<code>@<path>/<key> reference. The reference must name ANOTHER enabled secrets provider and resolve at write time - a vault cannot custody its own key, so unqualified and self-qualified references refuse by name. An inline credential stays encrypted at rest on the record (vault-write sugar would store the vault's own key inside a vault); records keep their inline credential until a reference is pinned, which clears it.

Flags​

FlagMeaning
--display-name <name>Human name the GUI renders.
--kv-version <1|2>KV secrets-engine version.
--address <url>Vault endpoint URL (azure-key-vault: the vault URL; aws-secrets-manager: an optional endpoint-URL override).
--region <region>AWS region (aws-secrets-manager kind only).
--tenant-id <guid>Microsoft Entra ID tenant id (azure-key-vault kind only).
--auth-method <method>token, userpass or approle (vault kinds); access-key (aws-secrets-manager); client-secret (azure-key-vault).
--username <name>Userpass username, the IAM access key id (access-key auth), or the Entra ID client id (client-secret auth).
--role-id <id>AppRole role id (the secret id rides the credential flags).
--credential-ref <ref>Provider-qualified secret-vault://<code>@<path>/<key> reference to pin - it must name another enabled secrets provider (mutually exclusive with the inline channel).
--credential-promptPrompt for the replacement credential without echo.
--mount-path <path>KV secrets-engine mount path.
--ssl-verifyVerify the vault's TLS certificate.
--ssl-ca-cert <path>CA certificate file path trusted for the vault connection.
--cipher-stackingCipher-stack values written through /api/secrets/store.
--password-length <n>Length of server-generated secret values (0: the endpoint default).
--enabledEnable/disable the provider (without secrets:multi-vault: at most one enabled).
--resolution server|runnerMove the resolution locus (see above).
--rate-limit-reads-per-second <n>Rate budget: KV reads per second. A positive integer sets this provider's own budget; 0 returns the lane to the estate default secrets.default_rate_limit; -1 lifts it (unlimited at this provider even when the estate default is bounded; pass it as --rate-limit-reads-per-second=-1).
--rate-limit-mints-per-minute <n>Rate budget: vault token mints per minute — the same three values (-1 unlimited, 0 the estate default, n this provider's own budget).
--server <url>Server base URL (default: the active context / OPSCHAIN_SERVER).
--auth-token <token>Admin bearer token override (default: your opschain login session, then $OPSCHAIN_ADMIN_TOKEN, then the token stored by opschain admin login).

See also​

  • opschain docs cli/admin-secrets-providers-test — verify after a change.