Add configuration files and comprehensive project documentation
CI / Lint & Format (push) Failing after 11s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 7s
CI / Docker Build (push) Has been skipped

- Add .env.backup with full application configuration template
- Create RequestIDMiddleware for trace ID injection in logs
- Implement ARQ fallback pool for Redis unavailability
- Add Dead Letter Queue module for failed job handling
- Include project ROADMAP with audit and 27 applied corrections
- Add Grafana monitoring dashboard with 10 panels
This commit is contained in:
2026-06-22 14:50:05 -04:00
parent 0d2ecbd218
commit caefc1b1a0
6 changed files with 696 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
"""
Middleware RequestID — injecte un identifiant unique de requête (trace_id)
dans les logs structlog pour le tracing de bout en bout.
Usage : le trace_id est disponible dans structlog.contextvars.bind_contextvars(trace_id=...)
et dans la réponse via l'en-tête X-Request-ID.
"""
import uuid
import structlog
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
from starlette.responses import Response
class RequestIDMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next) -> Response:
trace_id = str(uuid.uuid4())
# Injecter dans structlog pour toute la durée de la requête
structlog.contextvars.bind_contextvars(trace_id=trace_id)
response = await call_next(request)
# Ajouter l'en-tête dans la réponse pour le client
response.headers["X-Request-ID"] = trace_id
return response