1.14.0
-
Added
argon2iandargon2idpassword hash support forbasic_authhtpasswd_file(#866)beta_rate_limiteraccess control for fixed/sliding window rate limiting (#881)beta_introspectionblock injwtblock to facilitate token introspection in order to detect revoked tokens (#649)startup_delayattribute forjobblock to delay the first job execution after startup (#836)- OpenTelemetry tracing documentation with configuration reference for
beta_traces, trace propagation settings, and CLI flags (#672) - Access control metrics:
couper_access_control_total,couper_access_control_duration_seconds,couper_access_control_rate_limited_total, andcouper_access_control_rate_limiter_active_keys; Grafana dashboard updated with Access Control row (#924) - Documentation website dark theme support and improved styling for readability (#931)
- Devcontainer feature to install Couper in development containers (
ghcr.io/coupergateway/features/couper) (#931) - Couper documentation available as Context7 MCP library for LLM-assisted development (#931)
- SAML IdP metadata auto-update:
idp_metadata_urlattribute to fetch IdP metadata from a URL with automatic refresh viametadata_ttlandmetadata_max_staleattributes (#912)
-
Changed
beta_rate_limitblock inbackendblock has left beta and is renamed tothrottle; the old name is deprecated and will be removed in version 1.15 (#914)beta_backend_rate_limit_exceedederror type is renamed tobackend_throttle_exceeded; the old name is deprecated and will be removed in version 1.15 (#914)beta_jobblock has left beta and is renamed tojob; the old name is deprecated and will be removed in version 1.15 (#898)
-
Fixed
- Fix
traceparentheader not being propagated to backends when usingbeta_tracesdue to trace context injection into the wrong (request) headers; now correctly injected into response headers byTraceHandlerand into outgoing request headers byInstrumentedRoundTripper(#923) - Fix redundant span creation in producers and
innerRoundTripwhen usingbeta_traces; consolidate all backend tracing into a singleInstrumentedRoundTripperwith correctSpanKindClient(#923) - Fix
TraceContextpropagator missingBaggagesupport when usingbeta_traces; use composite propagator with bothTraceContextandBaggage(#923) - Fix
backend_responsenot being available incustom_log_fieldsfor OIDC/OAuth2 token and userinfo backend requests; also fixes requestnameshowing as<nil>in upstream logs for these requests (#797)
- Fix
-
Security
- Return explicit error when backend
originevaluates to empty string instead of falling back to the client request URL (#920) - Sanitize
\r,\n, and\0characters from header values set via HCL expressions to prevent header injection (#920) - Reject path traversal sequences (
..,%2e%2e) inpathandpath_prefixattributes (#920) - Remove rate limiter key value from error messages to prevent information leakage (#920)
- Use constant-time comparison for username in
basic_auth(#920)
- Return explicit error when backend
-
Dependencies