v3.0.0-alpha.0
3.0.0-alpha.0
3.0.0-alpha.0
🚀 Features response_cache can now emit a Cache-Tag header for CDN-side purging (Issue #9481) If you cache router responses at a CDN or reverse proxy in front of the router, the CDN previously had no way to know what to purge when your underlying data changed — Cache-Control only governs freshness (TTL), not invalidation. A new opt-in response_cache.cdn_invalidation block closes that gap: the route…
No content.
🐛 Fixes Fix input-object and enum variable coercion to respect the API schema Variable coercion validated input-object fields and enum values against the internal supergraph schema rather than the client-facing API schema, so a variable could reference an @inaccessible field or enum value even though the same reference would be rejected in the operation document itself. Variable coercion now valid…
🐛 Fixes Fix input-object and enum variable coercion to respect the API schema When a client sent an operation with an unknown field on an input-object variable, the router's VALIDATION_INVALID_TYPE_VARIABLE error message embedded the full composed input type definition, including federation directives (@join__type, @tag, etc.) and internal subgraph names, regardless of the introspection or redact_…
🚀 Features Add header masking for sensitive data in logs and telemetry (PR #9155) Adds header masking configuration to automatically mask sensitive header values in router logs, telemetry events, and coprocessor communications. This prevents accidental exposure of credentials, API keys, session tokens, and other sensitive information in observability data. Key Features: Automatic masking of common…
No content.
No content.
🐛 Fixes Fix Redis replica routing failure caused by lazy connections with even replica counts (Issue/PR #9589) When a Redis cluster had an even number of replicas, the router's use of lazy_connections = true could trigger a bug in fred's round-robin replica selection logic. Fred increments its round-robin counter when searching for a routable replica, and increments it again when it can't find one…
🐛 Fixes Preserve null propagation when multiple fragments select the same non-null field (PR #9032) When a query uses multiple fragment spreads on the same parent type and a subgraph response is missing a required non-null field on a union member, the router now correctly returns null for the affected field rather than a partial object like {"__typename": "A"}. The GraphQL specification requires t…
No content.
🐛 Fixes Support non-ASCII (UTF-8) WebSocket header values (Issue #1485, PR #9051) The router can now handle WebSocket connections with UTF-8 encoded header values, including non-ASCII characters like "Montréal". Previously, such connections failed because of serialization issues in the underlying tungstenite library. The fix comes from updating tokio-tungstenite from v0.28.0 to v0.29.0. By @BobaFe…
No content.
🚀 Features Add ignore_auth_context option to subscription deduplication config (PR #9078) When the router's JWT authentication plugin validates a token, it decodes the claims and stores them internally on the request — before any subgraph request is built. The router then factors those stored claims into its check for whether two subscriptions are identical, separately from any HTTP headers it may…
No content.