The JSON shapes a workspace, a project, a tenant, an API key and a secret key are returned as.
Generated from packages/api/src/resources/serialize.ts by packages/docs/tools/generate-reference.mjs.
Every resource carries an object field naming its type. Timestamps are ISO 8601 strings or null. A minted or rotated key adds key and key_shown_once: true to the object below, in that one response and never again.
Neither hash is in the column list these rows come from, so no serialiser can
leak one by forgetting to omit it. The plaintext is not on the row at all --
it exists only in the response the mint or rotate handler builds by hand.
active_tenants_this_month is the one definition of the billing number,
read through keyring.billable_tenant_month and not recomputed -- the same
rule GET /v1/usage/billing follows. It arrives as a bigint string from
count(distinct …).
budget_cap_cents is the overage the workspace has opted in to per month, in
currency's minor unit and on the overage alone; 0 is "none allowed".
effective_tenant_ceiling is the tenant count it buys (null: unbounded) and
tenants_held is the number the tenant gate compares against it.