Vault Unseal
Execute one least-privilege request to make an opaque secret reference available
to one principal for one purpose, scope, and short access window. The default
execute runner sends that exact request through a configured vault adapter
after approval and independently reads the resulting handle metadata.
vault-unseal remains the explicit plan-only runner. Neither runner retrieves
or reveals secret material.
Use it when a later workload needs a bounded secret handle and the request must
pass a human approval and real vault adapter. Do not use it as a secret store,
credential loader, environment-file parser, or way to put secret values into an
agent context.
How it works
- Bind the opaque secret reference to the requesting principal, declared
purpose, allowed scope, and requested time window.
- Validate that the reference is opaque and the TTL is between one minute and
one hour.
- Reject raw secret-shaped input, ambiguous principals, broad purpose, or
unbounded scope.
- Emit an approval-ready request and exact provider handoff.
- With
execute, request approval for that exact plan, invoke
secret.unseal under one idempotency key, then call handle.read for the
returned opaque reference. Completion requires both provider operations.
The local plan needs no approval because it exposes no secret and changes no
provider state. The unseal operation is consequential and remains a separate
gate. Credential custody stays in the operator-selected local, self-hosted,
third-party, or Runx-hosted vault binding; the package receives no token and
owns no request client.
Result and stop conditions
A ready plan contains the bounded request, expiry, approval requirement, and
provider handoff with provider_status: not_called and no secret value. A
successful execution additionally carries native mutation and handle-readback
packets. The provider result is required to expose only an opaque handle_ref,
expiry, and status metadata; a raw secret is a provider contract violation.
Missing or unsafe inputs return a useful stop packet rather than a guessed
request.
- Never accept or emit raw credentials, key material, tokens, or secret values.
- Refuse TTL below one minute or above one hour.
- Refuse wildcard principals, purposes, scopes, or an opaque ref that cannot be
distinguished from secret material.
- Refuse a missing, ambiguous, wrong-provider, or under-scoped vault binding;
never fall back to local environment parsing or a raw vault token.
- Do not claim a handle was issued, mounted, used, or revoked without adapter
evidence and independent handle readback.
Example
A deployment runner needs database credentials for fifteen minutes. The skill
can prepare a request binding vault://prod/db/deployer to that runner, the
single deployment purpose, and the exact environment scope. execute may then
issue an opaque handle after approval and confirm its metadata. It cannot reveal
the password or treat a provider acknowledgement without handle.read as
complete.
1---2name: vault-unseal3description: Plan or execute a scoped, time-bounded vault-unseal request through any compatible vault binding, returning only opaque handle metadata and provider readback.4---56# Vault Unseal78Execute one least-privilege request to make an opaque secret reference available9to one principal for one purpose, scope, and short access window. The default10`execute` runner sends that exact request through a configured vault adapter11after approval and independently reads the resulting handle metadata.12`vault-unseal` remains the explicit plan-only runner. Neither runner retrieves13or reveals secret material.1415Use it when a later workload needs a bounded secret handle and the request must16pass a human approval and real vault adapter. Do not use it as a secret store,17credential loader, environment-file parser, or way to put secret values into an18agent context.1920## How it works21221. Bind the opaque secret reference to the requesting principal, declared23 purpose, allowed scope, and requested time window.242. Validate that the reference is opaque and the TTL is between one minute and25 one hour.263. Reject raw secret-shaped input, ambiguous principals, broad purpose, or27 unbounded scope.284. Emit an approval-ready request and exact provider handoff.295. With `execute`, request approval for that exact plan, invoke30 `secret.unseal` under one idempotency key, then call `handle.read` for the31 returned opaque reference. Completion requires both provider operations.3233The local plan needs no approval because it exposes no secret and changes no34provider state. The unseal operation is consequential and remains a separate35gate. Credential custody stays in the operator-selected local, self-hosted,36third-party, or Runx-hosted vault binding; the package receives no token and37owns no request client.3839## Result and stop conditions4041A ready plan contains the bounded request, expiry, approval requirement, and42provider handoff with `provider_status: not_called` and no secret value. A43successful execution additionally carries native mutation and handle-readback44packets. The provider result is required to expose only an opaque `handle_ref`,45expiry, and status metadata; a raw secret is a provider contract violation.46Missing or unsafe inputs return a useful stop packet rather than a guessed47request.4849- Never accept or emit raw credentials, key material, tokens, or secret values.50- Refuse TTL below one minute or above one hour.51- Refuse wildcard principals, purposes, scopes, or an opaque ref that cannot be52 distinguished from secret material.53- Refuse a missing, ambiguous, wrong-provider, or under-scoped vault binding;54 never fall back to local environment parsing or a raw vault token.55- Do not claim a handle was issued, mounted, used, or revoked without adapter56 evidence and independent handle readback.5758## Example5960A deployment runner needs database credentials for fifteen minutes. The skill61can prepare a request binding `vault://prod/db/deployer` to that runner, the62single deployment purpose, and the exact environment scope. `execute` may then63issue an opaque handle after approval and confirm its metadata. It cannot reveal64the password or treat a provider acknowledgement without `handle.read` as65complete.