# Console Exceptions API Schema (Web I) **Status:** Interim contract shipped by Web I to unblock SDK/UI work. Align to the authoritative Policy/Events schema when published. ## Scope - `/exceptions` CRUD/workflow (create, propose, approve/reject, revoke, list, history) proxied by the gateway. - Deterministic pagination (`continuationToken`), stable sorting, and explicit audit trails. ## Headers - `X-StellaOps-Tenant` (required) - `X-Stella-Project` (optional) - `X-Stella-Trace-Id` (required) - `X-Stella-Request-Id` (required; defaults to trace ID) ## Scopes - Read: `exception:read` - Create/edit: `exception:write` - Approve/reject/revoke: `exception:approve` ## Endpoints - `GET /exceptions?status=&severity=&search=&sortBy=&sortOrder=&limit=&continuationToken=` - `GET /exceptions/{exceptionId}` - `POST /exceptions` - `PATCH /exceptions/{exceptionId}` - `DELETE /exceptions/{exceptionId}` - `POST /exceptions/{exceptionId}/transition` - `GET /exceptions/stats` ## Entity shape This doc mirrors the web contract used by the Angular SDK (`src/Web/StellaOps.Web/src/app/core/api/exception.contract.models.ts`). - Sample exception: `docs/api/console/samples/exception-schema-sample.json` ## Status transitions (baseline) - `draft` → `pending_review` (submit) - `pending_review` → `approved` | `rejected` - `approved` → `revoked` - `approved` → `expired` (timebox lapse; system-driven)