Skip to content

v0.3.0

Choose a tag to compare

@mgurevin mgurevin released this 21 Jul 10:51
v0.3.0
731f5a9

Added

  • Add pinned Go and ESLint pipelines with automatic Go formatting, whitespace enforcement, TypeScript correctness checks, and React Hooks validation.
  • Use the stable TypeScript 7 native compiler while providing ESLint with Microsoft's supported TypeScript 6 compatibility API.
  • Add a complete streaming CSV redactor example and a library-owned, bounded streaming BodyValue contract so custom formats and built-ins use the same centralized redact, encrypt, tokenize, size-limit, failure, and audit path.
  • Add an independently pinned, end-to-end tested example for streaming Brotli and Zstandard record-time content decoding.
  • Add immutable, additive request-scoped redaction rules carried by context, with independent request/response selectors, redirect inheritance, shared client concurrency isolation, and per-request custom body redactors.
  • Extend otelrecorder with bounded metrics for HTTP phase latency, captured body size and outcome, protection-mode value counts, fail-closed fallbacks, and body-redactor outcomes.

Changed

  • Change the pre-1.0 BodyRedactor.Redact signature to receive a body-scoped BodyValueProtector; custom implementations must stream each selected value through NewValue, Write, and Finish instead of buffering values or constructing replacements and protected tokens themselves. Remove the redundant BodyRedactionReporter; the central value lifecycle now owns all replacement and protection counts.
  • Replace the separate WithRedact* and WithBodyRedactor APIs with one RedactionConfig model shared by WithRedaction, WithRequestRedaction, and RequestWithRedaction. Common rules apply to both directions, while Request and Response add direction-specific rules.
  • Rename the pre-1.0 BodyCaptureDecision.BodyRedactor field to RedactorOverride, clarifying that nil preserves RedactionConfig and a non-nil value is the final override for one runtime-selected body.