Capability authorization¶
An API-key identity binding may restrict access to named runtime capabilities:
TRUSSIUM_AUTHENTICATION__IDENTITY_BINDINGS='[{"key":"replace-with-a-secret","tenant_id":"acme","capabilities":["chat","embeddings"]}]'
Capability names are derived from the first path segment after /v1/ (for example, /v1/chat/completions uses chat). A non-empty capabilities list denies requests outside that list with a generic 403 response. An empty list means the authenticated binding is not capability-restricted. Unbound legacy keys remain compatible and are not subject to binding policies.
This is a bounded allow-list, not a role hierarchy or external policy engine. The runtime also provides optional local quotas, budgets, provider policies, and audit snapshots; it does not validate tenant/project relationships or persist governance records.