Files
support_backend/specs/012-admin-list-views/contracts/admin-list-views-contract.md
T

1.7 KiB

Contract: Admin List Views

GET /admin/sla-runs

Auth: fastify.authenticate only (agent-usable, per spec.md Assumptions).

Query: status?: 'running' | 'paused' | 'warning' | 'breached' | 'completed'

Response 200:

{
  "success": true,
  "data": [
    {
      "ticketId": "string",
      "ticketCode": "string",
      "status": "string",
      "firstResponseDueAt": "ISO 8601 datetime | null",
      "resolutionDueAt": "ISO 8601 datetime | null",
      "breachedAt": "ISO 8601 datetime | null",
      "firstResponseBreachedAt": "ISO 8601 datetime | null"
    }
  ],
  "meta": null
}

Response 400: an invalid status value.

GET /admin/escalation-events

Auth: fastify.authenticate only.

Query: limit?: number (1-200, default 50)

Response 200:

{
  "success": true,
  "data": [
    {
      "ticketId": "string",
      "ticketCode": "string",
      "reason": "string",
      "ruleId": "string | null",
      "triggeredBy": "string",
      "toNodeId": "string | null",
      "createdAt": "ISO 8601 datetime"
    }
  ],
  "meta": null
}

Ordered most-recent-first (createdAt desc).

GET /admin/products

Auth: fastify.authenticate + requireRole('ADMIN').

Response 200:

{
  "success": true,
  "data": [
    {
      "id": "string",
      "externalProductId": "string",
      "name": "string",
      "status": "string",
      "supportEnabled": true,
      "integrationStatus": "active | suspended | null"
    }
  ],
  "meta": null
}

integrationStatus is null when the product has no ProductIntegration at all — never defaulted to "active" or any other value that could be mistaken for a real integration state.