gate_definitions
GET /gate-definitions
Get promotion gate definitions
Returns the G1–G6 plain-language catalog verbatim from tessera_core.gates.CATALOG (WP-M14). The catalog describes what each gate measures, why it matters, how to respond, and its default advisory-or-blocking severity; clients must use the server-resolved model promotion verdict rather than re-derive policy from this data. Since WP-M26 G3 documents its exception for count- and velocity-bearing representations (ruling D-3), G1–G3 stay advisory, and G1's display name is "Label quality vs baselines", while its key G1, gate_id and slug are unchanged, and so are its docs_url path and fragment (the host moved to docs.staging.tessera.zone, ERRATA 2026-10-21). G1 requires every gating label both to clear the previous promoted estimate minus 0.005 (or the trivial predictor on a first promotion) and to be competitive with the strongest completed safeguard arm of the same report: a point delta of at least -0.01 and a paired 95% CI lower bound of at least -0.03.
Operation ID: getGateDefinitions · Service: gateway-api
Authentication
apiKey(http (bearer)) — Project API key (003 §2):tsk_live_…ortsk_test_…inAuthorization: Bearer. Scoped to exactly one project + environment; scopes are a subset ofingest,read,admin. Keys are stored hashed and shown once at creation.consoleSession(http (bearer)) — Console session (003 §2): Identity Platform JWT. Data-plane calls addX-Tessera-Project+X-Tessera-Environmentheaders, validated against org membership.
Responses
| Status | Schema | Description |
|---|---|---|
200 | GateDefinitionCatalog | The complete mandatory-gate catalog, keyed by gate id. |
default | ErrorEnvelope | Error response (003 §1). Every non-2xx response uses this envelope; the HTTP status matches error.code. Rate-limited requests get 429 resource_exhausted with retry_after_seconds and a Retry-After header; the X-RateLimit-* headers ride on EVERY response, success or error (003 §1; plan-driven per API key + endpoint class — WP-B2). A 503 unavailable carries retry_after_seconds too for a lock-wait timeout (SQLSTATE 55P03), a rule preview at capacity (preview_capacity_exhausted), or a label preview during which the erasure of every entity holding its censor clock began (label_preview_clock_entity_erased): how long to wait before retrying. |
Errors
Every non-2xx response uses the 003 §1 error envelope; error.request_id
matches the X-Request-Id response header, and the HTTP status always
matches error.code:
{
"error": {
"code": "invalid_argument",
"details": [
{
"type": "field_violation"
}
],
"message": "human-readable",
"request_id": "req_01hxample"
}
}
Closed error-code set (003 §1): invalid_argument, unauthenticated, permission_denied, not_found, already_exists, failed_precondition, resource_exhausted, internal, unavailable.
resource_exhausted responses (HTTP 429) additionally carry
retry_after_seconds. See ErrorEnvelope.