- Added
responseBytesandactorfields to the/api/billingstructured access log so every entry carries request ID, latency, status, response size, and the authenticated actor. - Stamp
Deprecation: trueandSunset: 2026-12-31T00:00:00.000Zon legacy/v1responses and emit a structured warning log with the request correlation ID whenever a legacy endpoint is used. - Added per-user and per-IP rate limiting for the public API routes under
/api/apis, returning a standard429 TOO_MANY_REQUESTSenvelope withRetry-Afterand request correlation details. - Added a dedicated Prometheus histogram for refresh-token requests at
/api/refresh-tokenwith explicit 1ms–10s buckets and route/status labels for SLO monitoring.
- Propagated
X-Correlation-Idacross the quota self-service routes and outbound webhook dispatches so quota requests and related notifications can be traced end-to-end. - Removed a broken, unmounted CORS middleware call and a duplicate import from
src/routes/billing.tsthat were left over from a conflicted merge and failed to compile. - Removed a duplicated, syntactically invalid test block in
src/middleware/etag.test.tsthat was blockingtsc --noEmitfor the entire project. - Return
400 BAD_REQUESTfromPOST /api/billing/deductwhen a client provides a null or emptydeveloperIdinstead of allowing the request to proceed into billing logic.
- Structured access logs now preserve
x-correlation-idvalues for API requests so downstream tracing can correlate requests across services.