chore(deps): update ghcr.io/apollographql/router docker tag to v1.40.0 #700
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.39.1
->v1.40.0
Release Notes
apollographql/router (ghcr.io/apollographql/router)
v1.40.0
Compare Source
🚀 Features
GraphOS entity caching (Issue #4478)
The Apollo Router can now cache fine-grained subgraph responses at the entity level, which are reusable between requests.
Caching federated GraphQL responses can be done at the HTTP level, but it's inefficient because a lot of data can be shared between different requests. The Apollo Router now contains an entity cache that works at the subgraph level: it caches subgraph responses, splits them by entities, and reuses entities across subgraph requests.
Along with reducing the cache size, the router's entity cache brings more flexibility in how and what to cache. It allows the router to store different parts of a response with different expiration dates, and link the cache with the authorization context to avoid serving stale, unauthorized data.
As a preview feature, it's subject to our Preview launch stage expectations. It doesn't support cache invalidation. We're making it available to test and gather feedback.
By @Geal in https://github.com/apollographql/router/pull/4195
Graduate distributed query plan caching from experimental (Issue #4575)
[Distributed query plan caching] (https://www.apollographql.com/docs/router/configuration/distributed-caching#distributed-query-plan-caching) has been validated in production deployments and is now a fully supported, non-experimental Enterprise feature of the Apollo Router.
To migrate your router configuration, replace
supergraph.query_planning.experimental_cache
withsupergraph.query_planning.cache
.This release also adds improvements to the distributed cache:
1. The
.
separator is replaced with:
in the Redis cache key to align with conventions.2. The cache key length is reduced.
3. A federation version is added to the cache key to prevent confusion when routers with different federation versions (and potentially different ways to generate a query plan) target the same cache.
4. Cache insertion is moved to a parallel task. Once the query plan is created, this allows a request to be processed immediately instead of waiting for cache insertion to finish. This improvement has also been applied to the APQ cache.
By @Geal in https://github.com/apollographql/router/pull/4583
Replace selector to extract body elements from subgraph responses via JSONPath (Issue #4443)
The
subgraph_response_body
selector has been deprecated and replaced with selectors for a response body's constituent elements:subgraph_response_data
andsubgraph_response_errors
.When configuring
subgraph_response_data
andsubgraph_response_errors
, both use a JSONPath expression to fetch data or errors from a subgraph response.An example configuration:
By @bnjjj in https://github.com/apollographql/router/pull/4579
Add a
.remove
method for headers in RhaiThe router supports a new
.remove
method that enables users to remove headers in a Rhai script.For example:
By @lrlna in https://github.com/apollographql/router/pull/4632
Helm update to allow a list of gateways to
VirtualService
(Issue #4464)Configuration of the router's Helm chart has been updated to allow multiple gateways. This enables configuration of multiple gateways in an Istio
VirtualService
.The previous configuration for a single
virtualservice.gatewayName
has been deprecated in favor of a configuration for an array ofvirtualservice.gatewayNames
.By @marcantoine-bibeau in https://github.com/apollographql/router/pull/4520
Configure logging format automatically based on terminal (Issue #4369)
You can configure the logging output format when running with an interactive shell.
If both
format
andtty_format
are configured, then the format used depends on how the router is run:tty_format
takes precedence.format
takes precedence.You can explicitly set the format in
router.yaml
withtelemetry.exporters.logging.stdout.tty_format
:By @bnjjj in https://github.com/apollographql/router/pull/4567
Add configurable histogram buckets per metric (Issue #4543)
The router supports overriding instrument settings for metrics with OpenTelemetry views. You can use views to override default histogram buckets.
Configure views with the
views
option. For example:By @bnjjj in https://github.com/apollographql/router/pull/4572
🐛 Fixes
Fix
active_session_count
when future is dropped (Issue #4601)Fixes an issue where
apollo_router_session_count_active
would increase indefinitely dueto the request future getting dropped before a counter could be decremented.
By @xuorig in https://github.com/apollographql/router/pull/4619
Configuration
📅 Schedule: Branch creation - "after 10pm every weekday,before 5am every weekday,every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.