Tool Credentials
The encrypted upstream-credential vault Interven uses when forwarding inbound-route traffic โ rotate and revoke per-route.
When you set up an inbound route for a SaaS agent, the upstream credential (the real Bearer token, API key, or signed-request secret that calls your real backend) lives in Interven's encrypted tool credential vault.
The SaaS agent never sees the credential โ Interven injects it on the way out.
This page covers managing those credentials independently from the routes that use them. If you only manage them inline when creating a route, you may never need to visit this page directly.
The list view
/tool-credentials
| Column | Notes |
|---|---|
| Name | Human-readable label |
| Type | bearer ยท header_set ยท oauth_static ยท aws_sigv4 |
| Used by | Number of inbound routes attached |
| Last rotated | Days since the value was last updated |
| Created by | Operator + timestamp |
| Actions | View metadata ยท Rotate ยท Revoke |
Filter by type, by which routes reference them, or by rotation staleness.
Credential types
| Type | What it stores |
|---|---|
bearer | A single Authorization: Bearer <token> value |
header_set | An arbitrary map of headers โ e.g. X-API-Key, plus X-Internal-Auth |
oauth_static | An OAuth client_id + client_secret pair for client-credentials flow |
aws_sigv4 | An AWS access key + secret used to SigV4-sign the outbound request |
Only the metadata is shown in the UI after save. The value can be rotated but never read back.
At-rest encryption
- Each credential is encrypted with AES-256-GCM.
- Encryption key is
INTERVEN_CREDENTIAL_ENCRYPTION_KEYโ a per-tenant 32-byte secret. - On hosted Interven, that key lives in our infrastructure secrets manager and rotates independently of customer action.
- On self-hosted, you generate and store the key (
openssl rand -hex 32). Back it up separately from the database; losing it means losing all stored credentials.
Rotation
/tool-credentials/<id> โ Rotate
Enter the new value. Save. The old value is purged from active config immediately and the next outbound forward uses the new one. All existing inbound routes that reference this credential pick up the new value with zero downtime โ no route edits needed.
Revocation
/tool-credentials/<id> โ Revoke
Removes the credential entirely. Any inbound routes that reference it stop forwarding (HTTP 502 from the route) until you attach a replacement.
For graceful cutover, create the replacement credential first, point routes at it, then revoke the old one.
Audit
Every credential operation writes an audit row visible in Settings โ Audit Log:
- Created (by whom, when, for which routes)
- Rotated (without revealing old or new value)
- Revoked (by whom, when, affected routes)
- Used (aggregate โ count of outbound forwards per route per day)
API access
GET /v1/tool-credentialsโ list (metadata only, no secret values)POST /v1/tool-credentialsโ create (value supplied once, never returned)POST /v1/tool-credentials/{id}/rotateโ rotate the valueDELETE /v1/tool-credentials/{id}โ revoke
Security best practices
- One credential per upstream / environment. Don't share a "production Slack" credential across dev + prod inbound routes โ separate them so a dev key leak doesn't compromise prod.
- Rotate quarterly minimum โ and immediately on personnel change, on any suspected credential exposure, or on any incident-resolution requiring rotation.
- Use route-level allowed-path patterns (Inbound Routes) to constrain what an attached credential can be used for.