From 2ecefc1e104320c5c139beb01750fd06915ee31a Mon Sep 17 00:00:00 2001 From: Eric Gullickson <16152721+ericgullickson@users.noreply.github.com> Date: Tue, 3 Feb 2026 19:41:19 -0600 Subject: [PATCH] chore: configure Traefik X-Request-Id header forwarding (refs #83) - Add X-Request-Id to access log fields for request correlation - Add request-id middleware documenting backend UUID generation - Add X-Request-Id to CORS allowed headers Co-Authored-By: Claude Opus 4.5 --- config/traefik/dynamic/middleware.yml | 12 ++++++++++++ config/traefik/traefik.yml | 1 + 2 files changed, 13 insertions(+) diff --git a/config/traefik/dynamic/middleware.yml b/config/traefik/dynamic/middleware.yml index 0653e6a..37df4df 100755 --- a/config/traefik/dynamic/middleware.yml +++ b/config/traefik/dynamic/middleware.yml @@ -1,5 +1,16 @@ http: middlewares: + # Request ID forwarding middleware + # Note: Traefik v3 lacks native UUID generation + # Backend generates X-Request-Id if not present in request + # This middleware ensures the header is forwarded when present + request-id: + headers: + customRequestHeaders: + X-Forwarded-Host: "{{ .Request.Host }}" + # X-Request-Id forwarded automatically via passthrough + # Backend responsibility: generate UUID if header missing + # Security headers middleware secure-headers: headers: @@ -33,6 +44,7 @@ http: - "Content-Type" - "X-Requested-With" - "X-Tenant-ID" + - "X-Request-Id" accessControlAllowMethods: - "GET" - "POST" diff --git a/config/traefik/traefik.yml b/config/traefik/traefik.yml index bfceb1f..4f7f779 100755 --- a/config/traefik/traefik.yml +++ b/config/traefik/traefik.yml @@ -68,6 +68,7 @@ accessLog: User-Agent: redact Authorization: drop Cookie: drop + X-Request-Id: keep # Metrics for monitoring metrics: -- 2.49.1