Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.alterauth.com/llms.txt

Use this file to discover all available pages before exploring further.

A managed secret is a credential that the operator stores in Alter instead of an environment variable or external secret manager. Same vault, same app.request() surface, no end-user OAuth flow. Where a connection is a credential the end user authorizes for themselves, a managed secret is a credential the operator already holds — a Stripe API key, a Datadog token, an AWS access key. Alter stores it encrypted, binds it to a principal, and returns a grant_id that the SDK uses the same way it uses any other grant.

When to use a managed secret

  • The credential already exists (generated at the provider’s console).
  • The credential is per-service or per-tenant, not per-end-user.
  • Centralized credential management is preferable to scattering API keys across environments.
For credentials that end users authorize on their own behalf (Gmail, Slack, GitHub), use connections instead.

Principal binding

A managed secret is stored once and issued as one or more grants, each bound to a different principal. The bindings decide who can use the credential:
Bound toWho can use itTypical use
UserOne named user, resolved by their JWTA per-user Stripe API key
GroupMembers of an IDP groupA shared Datadog key for everyone in the support group
SystemThe app itself (no user in scope)A background-job AWS credential
AgentOne named agentAn agent-owned Anthropic API key
The same credential can back many grants. Issuing a new grant against an existing secret is a metadata operation; the underlying credential stays put.

Credential types

Managed secrets ship with templates for common header shapes:
TypeWhat Alter injects
Bearer tokenAuthorization: Bearer <token>
API key (custom header)A configured header name, e.g. X-API-Key: <key>
Basic authAuthorization: Basic <base64(user:pass)>
AWS SigV4A full AWS Signature Version 4 computed per request
For providers not in the catalog, the Custom template supports any header name, any injection format, and multi-header or query-parameter injection.

Rotation

When a credential at the provider rotates, update the stored value in the developer portal. Every existing grant_id for that secret keeps working — the credential is replaced in place; the grant identity is unchanged.

Write-only storage

Once stored, a managed secret can never be read back from the portal or the SDK. The only path to the plaintext is the outgoing HTTP request Alter makes on behalf of a grant. This eliminates “the operator emailed the API key” as a credential exposure path.

What’s next