Package-level declarations
Types
When a captured body reaches the exchange line - per direction, the switch that decides log VOLUME. The normative contract of the log-request-body / log-response-body keys (the reference YAML names them and points here); the decision and its derivation are ADR-0006.
How far the application consumed a body, as observed by a twin's tee. UNREAD: the body was never selected/subscribed to - the bytes, if the client sent any, never reached the application. PARTIAL: consumption started but the end of the stream was not observed - an early-exiting parser, an exception or cancellation mid-read, or a read loop that never asked for the final EOF. COMPLETE: the end of the stream was observed. The values are the state tag of the endpoint.request.body.read counter and therefore a twin contract; the exact observation points are documented on each twin's BoundedBodyCapture (deliberately separate implementations - ADR-0003).
Supplies the correlation id for a TRACELESS request (ADR-0002) that did not carry one in the configured correlation header (RequestLoggingProperties.correlationIdHeader in each twin).
One header section (request-headers / response-headers): which header names are logged, and which of the logged values appear in plaintext. Shared by both endpoint-logging twins (ADR-0003 amendment): selection semantics are a cross-twin contract, and THIS KDoc is its normative text - the reference YAML names the keys and defaults and points here (CONTRIBUTING, "one normative source").
Redacts the VALUE of a logged header - every one, by default (ADR-0005), unless a section's HeaderLogProperties.unmasked allows the name in plaintext - before it reaches the log line. The rendering is a stable PSEUDONYM, not anonymisation: equal values stay recognisable as equal, which is the point (correlation) and the limit (a keyed masker is what stops a reader from confirming a guess).
The masking-key property as a SECRET-bearing value (code-style audit of 2026-09-05, finding 5): the string that keys the built-in fingerprint (HeaderValueMasker.forKey), or the empty string for the unkeyed default. A type of its own rather than a String so that the properties classes keep their GENERATED toString: this class renders itself as <redacted> whenever it holds a key, and a properties dump - a startup log, a debug endpoint - can never print the secret.
MDC keys the twins maintain while a request is being handled. The values carry the module's endpoint_ prefix, so an encoder that emits MDC entries as fields lands them in the same namespace as the EndpointLogField family each twin owns. ROUTE carries the request path: the scope opens BEFORE the chain, when the handler pattern is not yet known.
Injectable monotonic time, used exclusively for measuring the duration of an HTTP exchange.