diff --git a/core/testkit/src/main/resources/logback.xml b/core/testkit/src/main/resources/logback.xml index a38273b..d9abfca 100644 --- a/core/testkit/src/main/resources/logback.xml +++ b/core/testkit/src/main/resources/logback.xml @@ -25,6 +25,41 @@ + {# Dedicated audit appender — SYNCHRONOUS, never wrapped by ASYNC/neverBlock (C4): audit lines + must never be silently dropped under backpressure. PVC-backed file, ~1y of daily rolls; Loki + holds the authoritative 1y via the promtail sidecar that tails this file → {stream="audit"}. #} + + audit.log + + audit-%d{yyyy-MM-dd}.log + 7 + {# Bound total on-disk audit size so a burst can't fill the log PVC. The appender is + synchronous/non-dropping, so a full disk would otherwise stall the emitting thread. #} + 1GB + + + {# Do NOT ServiceLoader-scan the classpath for Jackson modules. Under JDK 11+ the + transitive jackson-module-jaxb-annotations (from rapidoid/dumbster) would try to load + javax.xml.bind.annotation.XmlElement — removed from the JDK in Java 11 — and blow up + with NoClassDefFoundError. The encoder registers the modules it actually needs itself. #} + false + false + + (?i)[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}***@*** + (?i)\b(?:sk|pk|whsec|rk)_[a-z0-9_]+\b*** + (?i)bearer\s+[a-z0-9._/+=-]+Bearer *** + + + + + {# additivity=false so audit lines do NOT also propagate to root (no duplicate in app.log). + Audit routes ONLY to AUDIT_FILE; the sidecar tails it for {stream="audit"}. No STDOUT copy — + that would be re-shipped to {stream="app"} by the node promtail, double-ingesting every audit + line and polluting the operational stream. #} + + + +