{
  "product": "Specification (reference)",
  "title": "API Gateway",
  "summary": "One front door to many services: routing, auth, limits and observability.",
  "category": "services",
  "entries": [
    {
      "path": [
        "AI",
        "Routing",
        "Route by host, path, method and header"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Routing",
        "Path rewriting and prefix stripping"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Routing",
        "Versioning strategy for the public surface"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Auth",
        "Validate tokens at the edge before the backend sees them"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Auth",
        "API keys with per-key quota"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Auth",
        "Pass verified identity downstream, signed"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Limits",
        "Rate limiting per key, per IP and per route"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Limits",
        "Request and response size caps"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Limits",
        "Quotas with a documented reset window"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Resilience",
        "Timeouts, retries and circuit breaking per upstream"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Resilience",
        "Graceful degradation with a cached or static response"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Transform",
        "Request and response transformation"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Transform",
        "Protocol translation where offered"
      ],
      "value": "REST ↔ gRPC",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Observability",
        "Correlation id propagated end to end"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Observability",
        "Per-route latency, error rate and traffic"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Governance",
        "Declarative configuration under version control"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Governance",
        "Staged rollout of configuration changes"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
