curo1305
abe8f8ee90
feat(06-02): wire CorrelationIDMiddleware + config fields + promote 5 test stubs
- backend/config.py: add log_level: str = "INFO" and log_json: bool = False
fields under Observability (Phase 6 — D-01) comment; pydantic-settings reads
LOG_LEVEL / LOG_JSON env vars automatically
- backend/main.py: add imports (uuid, time, structlog, ASGIApp/Receive/Scope/Send,
setup_logging); add CorrelationIDMiddleware raw-ASGI class (NOT BaseHTTPMiddleware
— avoids streaming buffering); call setup_logging() as first lifespan statement;
register CorrelationIDMiddleware LAST so it runs FIRST (Starlette reverse order)
- backend/tests/test_logging.py: remove all 5 xfail decorators; replace single-line
bodies with real assertions for JSON renderer, contextvar binding, X-Correlation-ID
header, no-bleed between requests, uvicorn.access propagate=False
2026-06-03 18:47:49 +02:00
..
2026-05-22 08:53:28 +02:00
2026-05-30 23:09:39 +02:00
2026-05-31 11:00:45 +02:00
2026-05-23 13:42:37 +02:00
2026-06-01 20:59:09 +02:00
2026-05-25 18:50:52 +02:00
2026-05-22 19:25:16 +02:00
2026-05-22 19:52:36 +02:00
2026-06-02 16:10:35 +02:00
2026-05-28 21:06:14 +02:00
2026-05-28 20:58:40 +02:00
2026-05-30 18:04:09 +02:00
2026-05-31 12:04:21 +02:00
2026-05-31 15:21:02 +02:00
2026-05-22 08:53:28 +02:00
2026-05-28 17:10:52 +02:00
2026-05-22 09:53:39 +02:00
2026-05-28 17:10:52 +02:00
2026-06-03 18:47:49 +02:00
2026-06-01 15:43:01 +02:00
2026-06-03 18:36:35 +02:00
2026-05-31 12:04:21 +02:00
2026-05-31 15:21:02 +02:00
2026-05-23 20:32:55 +02:00
2026-05-31 15:04:53 +02:00
2026-05-30 18:56:58 +02:00
2026-05-22 19:19:52 +02:00
2026-05-22 19:23:42 +02:00
2026-05-23 20:15:44 +02:00
2026-05-31 12:04:21 +02:00
2026-05-28 21:07:18 +02:00