Prerequisites
- Organization Admin role in Kestrel
- A reachable Vault cluster (the Kestrel control plane must be able to reach the Vault address over HTTPS)
- A Vault token for Kestrel — a periodic service token bound to a dedicated policy is recommended over a root token
- KV v2 secrets engines for secret triggers and secret actions; the database secrets engine for static-role rotation
Setup
1
Create a policy and token for Kestrel
Create a dedicated policy that grants only what your workflows need. A typical policy grants
read, list on sys/health, sys/mounts, sys/policies/acl/*, and sys/auth, plus read, list on the metadata paths of the KV mounts you want monitored (e.g. secret/metadata/*), and — only if your workflows write secrets or rotate credentials — create, update on the matching secret/data/* and database/rotate-role/* paths.Then create a token bound to that policy:2
Connect in Kestrel
- Navigate to Integrations → Vault in your Kestrel dashboard.
- Enter your Vault address (e.g.
https://vault.example.com:8200). - Paste the token.
- Optionally set a namespace (Vault Enterprise / HCP Vault).
- Click Connect Vault — Kestrel validates the connection by reading
sys/healthand starts polling.
All Vault triggers are detected by polling, so there may be up to one poll interval of delay before a workflow fires. The poll cadence is configurable per trigger (1m–30m; seal-status checks default to 1 minute, secret and policy checks to 5 minutes). Pollers read only KV metadata — never secret values.
How It’s Used
In Workflows
Trigger blocks (all poll-based):- Vault Sealed / Vault Unsealed — fire when the cluster’s seal status changes (a sealed Vault cannot serve secrets)
- Health Degraded — fires when Vault becomes unreachable or reports an unhealthy status
- Secret Version Created — fires when a KV v2 secret gets a new version (metadata diff; values are never read)
- Secret Stale — fires when a secret’s latest version exceeds a rotation age threshold (default 90 days, configurable per trigger)
- Policy Created / Deleted — fires when ACL policies change
- Auth Method Enabled / Disabled — fires when authentication methods change
{{signal.mount}}, {{signal.secret_path}}, {{signal.secret_version}}, {{signal.secret_age_days}}, {{signal.policy_name}}, and {{signal.auth_method}} for downstream steps.
Action blocks:
- Read Secret — read a KV v2 secret (the value output is marked sensitive: it is redacted in run history but can be templated into downstream steps, e.g. to sync into another system)
- Write Secret — create or update a KV v2 secret (creates a new version); the data can reference previous step outputs, e.g. a freshly generated credential
- Delete Secret — soft-delete the latest version, or permanently destroy all versions (gate behind an Approval node)
- List Secrets / Get Secret Metadata — enumerate secret names and check version/age metadata without reading values
- Rotate Static Role — rotate the credentials of a database static role immediately
- List Mounts / List Auth Methods — inventory of secrets engines and auth methods
- List Policies / Read Policy / Write Policy — inspect and manage ACL policies from HCL
- List Leases / Revoke Lease / Renew Lease — manage dynamic-credential leases (revoke during credential-leak response)
- Get Health — check seal/init status and server version
- List Token Accessors / Revoke Token Accessor — audit and revoke tokens without knowing the token itself
- Investigate Vault — run a read-only AI investigation across health, mounts, secret metadata, policies, and leases (the investigation can never read secret values)
{{signal.mount}} and {{signal.secret_path}} from the trigger.
Example (rotation — the flagship Vault flow): When a secret goes stale in secret/app/prod, post the secret’s metadata to Slack with approve/reject buttons, then Rotate Static Role (or write a newly generated value with Write Secret) on approval and confirm the new version.
Example (incident): When Vault seals, page on-call via PagerDuty with the health summary and open a Jira ticket, then post an all-clear to Slack when the Unsealed trigger fires.
Example (security): When an auth method is enabled, run an AI investigation of recent policy and auth changes and post the findings to your security Slack channel.
Disconnecting
- Navigate to Integrations → Vault
- Click Disconnect
- Confirm the disconnection
vault token revoke) if it is no longer needed. You can reconnect at any time.