Skip to main content

Virtual keys

A virtual key is the credential an application presents to the gateway (Authorization: Bearer zea-…). ZeaLLM stores only a SHA-256 digest and the last four characters. The plaintext secret exists once, at reveal time.

Lifecycle

StatusMeaning
PENDINGKey request waiting for a reviewer
PENDING_REVEALApproved; secret not yet shown
ACTIVEIn use
BLOCKEDGateway rejects calls (admin block or budget)
REVOKEDPermanently destroyed
EXPIREDPast expiry date

Request statuses: PENDING, APPROVED, REJECTED, CANCELLED.

Ownership

TypeWho owns itTypical use
PERSONALThe requesting userExperiments, notebooks
SERVICE_ACCOUNTA teamProduction apps — survives membership changes

Service accounts require a team.

What is configured on a key

  • Alias (display name)
  • Access group — which model groups the key may call
  • EnvironmentDEVELOPMENT, STAGING, PRODUCTION
  • Budget and duration (1d, 7d, 30d) or a budget tier
  • RPM / TPM
  • Expiry — 30 / 90 / 180 days, or never
  • Optional application and policy attachment (otherwise policies inherit org → team → key)

Who can do what

ActionWho
RequestAny writable user
Approve / rejectPlatform admin, org admin, or that team's admin
Reveal / rotate / revokeOwner, original requester, team admin, or platform admin
Block / unblockTeam admin or platform admin

Rotate mints a new secret once; the old secret stops immediately. Block, revoke and rotate take effect on the gateway as soon as Redis invalidates the cache (or after the in-memory TTL if Redis is down).