This repository was archived by the owner on Oct 31, 2024. It is now read-only.
Open
Conversation
|
Graph was successfully deployed. |
☁️ Nx Cloud ReportCI is running/has finished running commands for commit a229d95. As they complete they will appear below. Click to see the status, the terminal output, and the build insights. 📂 See all runs for this CI Pipeline Execution ✅ Successfully ran 2 targetsSent with 💌 from NxCloud. |
69452e2 to
4967a64
Compare
4967a64 to
f77aa1d
Compare
f77aa1d to
c1a6eb3
Compare
c1a6eb3 to
c8352b7
Compare
c8352b7 to
cd980fb
Compare
cd980fb to
41827e9
Compare
d2fea7d to
100f9c6
Compare
3275ee9 to
0e2c4d8
Compare
c6191ea to
264052b
Compare
0037e73 to
7893dac
Compare
64b931a to
cc056ae
Compare
5791b3b to
a83bc88
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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:
4.10.0->4.11.22.6.2->2.9.3v1.39.0->v1.57.0v1.39.0->v1.57.0Release Notes
apollographql/apollo-server (@apollo/server)
v4.11.2Compare Source
(No change; there is a change to the
@apollo/server-integration-testsuiteused to test integrations, and the two packages always have matching versions.)v4.11.1Compare Source
Patch Changes
#7952
bb81b2cThanks @glasser! - Upgrade dependencies so that automated scans don't detect a vulnerability.@apollo/serverdepends onexpresswhich depends oncookie. Versions ofexpressolder than v4.21.1 depend on a version ofcookievulnerable to CVE-2024-47764. Users of olderexpressversions who callres.cookie()orres.clearCookie()may be vulnerable to this issue.However, Apollo Server does not call this function directly, and it does not expose any object to user code that allows TypeScript users to call this function without an unsafe cast.
The only way that this direct dependency can cause a vulnerability for users of Apollo Server is if you call
startStandaloneServerwith a context function that calls Express-specific methods such asres.cookie()orres.clearCookies()on the response object, which is a violation of the TypeScript types provided bystartStandaloneServer(which only promise that the response object is a core Node.jshttp.ServerResponserather than the Express-specific subclass). So this vulnerability can only affect Apollo Server users who use unsafe JavaScript or unsafeastypecasts in TypeScript.However, this upgrade will at least prevent vulnerability scanners from alerting you to this dependency, and we encourage all Express users to upgrade their project's own
expressdependency to v4.21.1 or newer.v4.11.0Compare Source
Minor Changes
#7916
4686454Thanks @andrewmcgivery! - AddhideSchemaDetailsFromClientErrorsoption to ApolloServer to allow hiding 'did you mean' suggestions from validation errors.Even with introspection disabled, it is possible to "fuzzy test" a graph manually or with automated tools to try to determine the shape of your schema. This is accomplished by taking advantage of the default behavior where a misspelt field in an operation
will be met with a validation error that includes a helpful "did you mean" as part of the error text.
For example, with this option set to
true, an error would readCannot query field "help" on type "Query".whereas with this option set tofalseit would readCannot query field "help" on type "Query". Did you mean "hello"?.We recommend enabling this option in production to avoid leaking information about your schema to malicious actors.
To enable, set this option to
truein yourApolloServeroptions:v4.10.5Compare Source
Patch Changes
#7821
b2e15e7Thanks @renovate! - Non-major dependency updates#7900
86d7111Thanks @trevor-scheer! - Inline a small dependency that was causing build issues for ESM projectsv4.10.4Compare Source
Patch Changes
18a3827Thanks @tninesling! - Subscription heartbeats are initialized prior to awaiting subscribe(). This allows long-running setup to happen in the returned Promise without the subscription being terminated prior to resolution.v4.10.3Compare Source
Patch Changes
5f335a5Thanks @tninesling! - Catch errors thrown by subscription generators, and gracefully clean up the subscription instead of crashing.v4.10.2Compare Source
Patch Changes
c7e514cThanks @TylerBloom! - In the subscription callback server plugin, terminating a subscription now immediately closes the internal async generator. This avoids that generator existing after termination and until the next message is received.v4.10.1Compare Source
Patch Changes
72f568eThanks @bscherlein! - Improves timing of thewillResolveFieldend hook on fields which return Promises resolving to Arrays. This makes the use of thesetCacheHintmethod more reliable.apollographql/federation (@apollo/subgraph)
v2.9.3Compare Source
Patch Changes
cc4573471696ef78d04fa00c4cf8e5c50314ba9f,062572b3253e8640b60a0bf58b83945094b76b6f,df5eb3cb0e2b4802fcd425ab9c23714de2707db3,1c99cb0dcc6c639ac351210932623ab0bd6907e4]:v2.9.2Compare Source
Patch Changes
2192f355f50db33fe0807d16153f357696b9f190,5ac01b534318105e904c1e6598070f753add3bb1]:v2.9.1Compare Source
Patch Changes
b8e4ab5352a4dfd262af49493fdd42e86e5e3d99,e6c05b6c96023aa3dec79889431f8217fcb3806d]:v2.9.0Compare Source
Patch Changes
02c2a34a62c3717a4885449172e404f19ebf66c9,0ccfd937d4b4a576f890665ceebbd7986fac5d0c,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0]:v2.8.5Compare Source
Patch Changes
v2.8.4Compare Source
Patch Changes
Add descriptions for federation directives (#3095)
Updated dependencies [
5f4bb160d024678d6facd471c43c8ec61c86e701,672aca7cbeb0a6a38586357a4e154f2dd91caa0c]:v2.8.3Compare Source
Patch Changes
50d648ccffb05591878de75dc5522914ed48698f,f753d55e9a49d11389ee4f8d7976533447e95ede,3af790517d662f3bec9064c0bf243014c579e9cd]:v2.8.2Compare Source
Patch Changes
b2e5ab66f84688ec304cfcf2c6f749c86aded549]:v2.8.1Compare Source
Patch Changes
v2.8.0Compare Source
Patch Changes
Various set context bugfixes (#3017)
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e,8a936d741a0c05835ff2533714cf330d18209179]:v2.7.8Compare Source
Patch Changes
Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
Updated dependencies [
2ad72802044310a528e8944f4538efe519424504]:v2.7.7Compare Source
Patch Changes
No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in the release process, so we need to publish a new patch version (2.7.7). (#2999)
Updated dependencies [
bee0b0828b4fb6a1d3172ac330560e2ab6c046bb]:v2.7.6Compare Source
Patch Changes
v2.7.5Compare Source
Patch Changes
v2.7.4Compare Source
Patch Changes
d80b7f0ca1456567a0866a32d2b2abf940598f77]:v2.7.3Compare Source
Patch Changes
ec04c50b4fb832bfd281ecf9c0c2dd7656431b96,a494631918156f0431ceace74281c076cf1d5d51]:v2.7.2Compare Source
Patch Changes
33b937b18d3c7ca6af14b904696b536399e597d1,09cd3e55e810ee513127b7440f5b11af7540c9b0,d7189a86c27891af408d3d0184db6133d3342967]:v2.7.1Compare Source
Patch Changes
493f5acd16ad92adf99c963659cd40dc5eac1219]:v2.7.0Compare Source
Minor Changes
Implement progressive
@overridefunctionality (#2911)The progressive
@overridefeature brings a new argument to the@overridedirective:label: String. When a label is added to an@overrideapplication, the override becomes conditional, depending on parameters provided to the query planner (a set of which labels should be overridden). Note that this feature will be supported in router for enterprise users only.Out-of-the-box, the router will support a percentage-based use case for progressive
@override. For example:The above example will override the root
hellofield from the "original" subgraph 5% of the time.More complex use cases will be supported by the router via the use of coprocessors/rhai to resolve arbitrary labels to true/false values (i.e. via a feature flag service).
Patch Changes
6ae42942b13dccd246ccc994faa2cb36cd62cb3c,66833fb8d04c9376f6ed476fed6b1ca237f477b7,931f87c6766c7439936df706727cbdc0cd6bcfd8]:v2.6.3Compare Source
Patch Changes
apollographql/router (ghcr.io/apollographql/router)
v1.57.0Compare Source
🚀 Features
Remove legacy schema introspection (PR #6139)
Schema introspection in the router now runs natively without JavaScript. We have high confidence that the new native implementation returns responses that match the previous Javascript implementation, based on differential testing: fuzzing arbitrary queries against a large schema, and testing a corpus of customer schemas against a comprehensive query.
Changes to the router's YAML configuration:
experimental_introspection_modekey has been removed, with thenewmode as the only behavior in this release.supergraph.query_planning.legacy_introspection_cachingkey is removed, with the behavior in this release now similar to what wasfalse: introspection responses are not part of the query plan cache but instead in a separate, small in-memory—only cache.When using the above deprecated configuration options, the router's automatic configuration migration will ensure that existing configuration continue to work until the next major version of the router. To simplify major upgrades, we recommend reviewing incremental updates to your YAML configuration by comparing the output of
./router config upgrade --config path/to/config.yamlwith your existing configuration.By @SimonSapin in https://github.com/apollographql/router/pull/6139
Support new
request_contextselector for telemetry (PR #6160)The router supports a new
request_contextselector for telemetry that enables access to the supergraph schema ID.You can configure the context to access the supergraph schema ID at the router service level:
You can use the selector in any service at any stage. While this example applies to
eventsattributes, the selector can also be used on spans and instruments.By @bnjjj in https://github.com/apollographql/router/pull/6160
Support reading and setting
porton request URIs using Rhai (Issue #5437)Custom Rhai scripts in the router now support the
request.uri.portandrequest.subgraph.uri.portfunctions for reading and setting URI ports. These functions enable you to update the full URI for subgraph fetches. For example:By @lleadbet in https://github.com/apollographql/router/pull/5439
🐛 Fixes
Fix various edge cases for
__typenamefield (PR #6009)The router now correctly handles the
__typenamefield used on operation root types, even when the subgraph's root type has a name that differs from the supergraph's root type.For example, given a query like this:
{ ...RootFragment } fragment RootFragment on Query { __typename me { name } }Even if the subgraph's root type returns a
__typenamethat differs fromQuery, the router will still useQueryas the value of the__typenamefield.This change also includes fixes for other edge cases related to the handling of
__typenamefields. For a detailed technical description of the edge cases that were fixed, please see this description.By @IvanGoncharov in https://github.com/apollographql/router/pull/6009
Support
uriandmethodproperties on router "request" objects in Rhai (PR #6147)The router now supports accessing
request.uriandrequest.methodproperties from custom Rhai scripts. Previously, when trying to accessrequest.uriandrequest.methodon a router request in Rhai, the router would return error messages stating the properties were undefined.An example Rhai script using these properties:
By @andrewmcgivery in https://github.com/apollographql/router/pull/6114
Cost calculation for subgraph requests with named fragments (PR #6162)
In some cases where subgraph GraphQL operations contain named fragments and abstract types, demand control used the wrong type for cost calculation, and could reject valid operations. Now, the correct type is used.
This fixes errors of the form:
By @goto-bus-stop in https://github.com/apollographql/router/pull/6162
Federation v2.9.3 (PR #6161)
This release updates to Federation v2.9.3, with query planner fixes:
__typenamemay be omitted in the subgraph query.@key/@requiresselection sets were not optimized away.@context/@fromContext.By @sachindshinde in https://github.com/apollographql/router/pull/6161
v1.56.0Compare Source
🚀 Features
Native query planner is now in public preview
The native query planner is now in public preview. You can configure the
experimental_query_planner_modeoption in the router configuration YAML to change the mode of the native query planner. The following modes are available:new: Enable only the new Rust-native query planner in the hot-path of query execution.legacy: Enable only the legacy JavaScript query planner in the hot-path of query execution.both_best_effort: Enables both the new and legacy query planners. They are configured in a comparison-based mode of operation with the legacy planner in the hot-path and the and the new planner in the cold-path. Comparisons are made between the two plans on a sampled basis and metrics are available to analyze the differences in aggregate.Support loading Apollo key from file (PR #5917)
You can now specific the location to a file containing the Apollo key that's used by Apollo Uplink and usage reporting. The router now supports both the
--apollo-key-pathCLI argument and theAPOLLO_KEY_PATHenvironment variable for passing the file containing your Apollo key.Previously, the router supported only the
APOLLO_KEYenvironment variable to provide the key. The new CLI argument and environment variable help users who prefer not to pass sensitive keys through environment variables.Note: This feature is unavailable for Windows.
By @lleadbet in https://github.com/apollographql/router/pull/5917
🐛 Fixes
Prevent sending internal
apollo_private.*attributes to Jaeger collector (PR #6033)When using the router's Jaeger collector to send traces, you will no longer receive span attributes with the
apollo_private.prefix. Those attributes were incorrectly sent, as that prefix is reserved for internal attributes.By @bnjjj in https://github.com/apollographql/router/pull/6033
Fix displaying custom event attributes on subscription events (PR #6033)
The router now properly displays custom event attributes that are set with selectors at the supergraph level.
An example configuration:
By @bnjjj in https://github.com/apollographql/router/pull/6033
Update to Federation v2.9.2 (PR #6069)
This release updates to Federation v2.9.2, with a small fix to the internal
__typenameoptimization and a fix to prevent argument name collisions in the@context/@fromContextdirectives.By @dariuszkuc in https://github.com/apollographql/router/pull/6069
📃 Configuration
Add metrics for Rust vs. Deno configuration values (PR #6056)
To help track the migration from JavaScript (Deno) to native Rust implementations, the router now reports the values of the following configuration options to Apollo:
apollo.router.config.experimental_query_planner_modeapollo.router.config.experimental_introspection_modeBy @goto-bus-stop in https://github.com/apollographql/router/pull/6056
v1.55.0Compare Source
🚀 Features
Support aliasing standard attributes for telemetry (Issue #5930)
The router now supports creating aliases for standard attributes for telemetry.
This fixes issues where standard attribute names collide with reserved attribute names. For example, the standard attribute name
entity.typeis a reserved attribute name for New Relic, so it won't work properly. Moreoverentity.typeis inconsistent with our other GraphQL attributes prefixed withgraphql.The example configuration below renames
entity.typetographql.type.name:By @bnjjj in https://github.com/apollographql/router/pull/5957
Enable router customizations to access demand control info (PR #5972)
Rhai scripts and coprocessors can now access demand control information via the context. For more information on Rhai constants to access demand control info, see available Rhai API constants.
By @tninesling in https://github.com/apollographql/router/pull/5972
Support Redis connection pooling (PR #5942)
The router now supports Redis connection pooling for APQs, query planners and entity caches. This can improve performance when there is contention on Redis connections or latency in Redis calls.
By @Geal in https://github.com/apollographql/router/pull/5942
🐛 Fixes
Remove unused fragments and input arguments when filtering operations (PR #5952)
This release fixes the authorization plugin's query filtering to remove unused fragments and input arguments if the related parts of the query are removed. Previously the plugin's query filtering generated validation errors when planning certain queries.
By @Geal in https://github.com/apollographql/router/pull/5952
Hot-reloads will no longer interrupt certain gauges (PR #5996, PR #5999, PR #5999)
Previously when the router hot-reloaded a schema or a configuration file, the following gauges stopped working:
apollo.router.cache.storage.estimated_sizeapollo_router_cache_sizeapollo.router.v8.heap.usedapollo.router.v8.heap.totalapollo.router.query_planning.queuedThis issue has been fixed in this release, and the gauges now continue to function after a router hot-reloads.
By @BrynCooke in https://github.com/apollographql/router/pull/5996 and https://github.com/apollographql/router/pull/5999 and https://github.com/apollographql/router/pull/6012
Datadog sample propagation will respect previous sampling decisions (PR #6005)
PR #5788 introduced a regression where sampling was set on propagated headers regardless of the sampling decision in the router or upstream.
This PR reverts the code in question and adds a test to check that a non-sampled request doesn't result in sampling in the downstream subgraph service.
By @BrynCooke in https://github.com/apollographql/router/pull/6005
Include request variables when scoring for demand control (PR #5995)
Demand control scoring in the router now accounts for variables in queries.
By @tninesling in https://github.com/apollographql/router/pull/5995
📃 Configuration
Enable new and old schema introspection implementations by default (PR #6014)
Starting with this release, if schema introspection is enabled, the router runs both the old Javascript implementation and a new Rust implementation of its introspection logic by default.
The more performant Rust implementation will eventually replace the Javascript implementation. For now, both implementations are run by default so we can definitively assess the reliability and stability of the Rust implementation before removing the Javascript one.
You can still toggle between implementations using the
experimental_introspection_modeconfiguration key. Its valid values:newruns only Rust-based validationlegacyruns only Javascript-based validationboth(default) runs both in comparison and logs errors if differences ariseHaving
bothas the default causes no client-facing impact. It will record and output the metrics of its comparison as aapollo.router.operations.introspection.bothcounter. (Note: if this counter in your metrics hasrust_error = trueoris_matched = false, please open an issue with Apollo.)Note: schema introspection itself is disabled by default, so its implementation(s) are run only if it's enabled in your configuration:
By @SimonSapin in https://github.com/apollographql/router/pull/6014
🧪 Experimental
Allow disabling persisted-queries-based query plan cache prewarm on schema reload
The router supports the new
persisted_queries.experimental_prewarm_query_plan_cache.on_reloadconfiguration option. It toggles whether a query plan cache that's prewarmed upon loading a new schema includes operations from persisted query lists. Its default istrue. Setting itfalseprecludes operations from persisted query lists from being added to the prewarmed query plan cache.Some background about the development of this option:
In router v1.31.0, we started including operations from persisted query lists when the router prewarms the query plan cache when loading a new schema.
Then in router v1.49.0, we let you also prewarm the query plan cache from the persisted query list during router startup by setting
persisted_queries.experimental_prewarm_query_plan_cacheto true.In this release, we now allow you to disable the original feature so that the router can prewarm only recent operations from the query planning cache (and not operations from persisted query lists) when loading a new schema.
Note: the option added in v1.49.0 has been renamed from
persisted_queries.experimental_prewarm_query_plan_cachetopersisted_queries.experimental_prewarm_query_plan_cache.on_startup. Existing configuration files will keep working as before, but with a warning that can be resolved by updating your config file:By @glasser in https://github.com/apollographql/router/pull/5990
v1.54.0Compare Source
🚀 Features
Add configurability of span attributes in logs (Issue #5540)
The router supports a new
telemetry.exporters.logging.stdout.format.json.span_attributesoption that enables you to choose a subset of all span attributes to display in your logs.When
span_attributesis specified, the router searches for the first attribute in its input list of span attributes from the root span to the current span and attaches it to the outermost JSON object for the log event. If you set the same attribute name for different spans at different levels, the router chooses the attributes of child spans before the attributes of parent spans.For example, if you have spans that contains
span_attr_1attribute and you only want to display this span attribute:Example output with a list of spans:
{ "timestamp": "2023-10-30T14:09:34.771388Z", "level": "INFO", "fields": { "event_attr_1": "event_attr_1", "event_attr_2": "event_attr_2" }, "target": "event_target", "span_attr_1": "span_attr_1" }To learn more, go to
span_attributesdocs.By @bnjjj in https://github.com/apollographql/router/pull/5867
Add a histogram metric tracking evaluated query plans (PR #5875)
The router supports the new
apollo.router.query_planning.plan.evaluated_planshistogram metric to track the number of evaluated query plans.You can use it to help set an optimal
supergraph.query_planning.experimental_plans_limitoption that limits the number of query plans evaluated for a query and reduces the time spent planning.By @Geal in https://github.com/apollographql/router/pull/5875
🐛 Fixes
Fix Datadog sampling (PR #5788)
The router's Datadog exporter has been fixed so that traces are sampled as intended.
Previously, the Datadog exporter's context may not have been set correctly, causing traces to be undersampled.
By @BrynCooke & @bnjjj in https://github.com/apollographql/router/pull/5788
📃 Configuration
General availability of Apollo usage report generation (#5807)
The router's Apollo usage report generation feature that was previously experimental is now generally available.
If you used its experimental configuration, you should migrate to the new configuration options:
telemetry.apollo.experimental_apollo_metrics_reference_modeis nowtelemetry.apollo.metrics_reference_modetelemetry.apollo.experimental_apollo_signature_normalization_algorithmis nowtelemetry.apollo.signature_normalization_algorithmexperimental_apollo_metrics_generation_modehas been removed because the Rust implementation (the default since router v1.49.0) is generating reports identical to the previous router-bridge implementationThe experimental configuration options are now deprecated. They are functional but will log warnings.
By @bonnici in https://github.com/apollographql/router/pull/5807
Helm: Enable easier Kubernetes debugging with heaptrack (Issue #5789)
The router's Helm chart has been updated to help make debugging with heaptrack easier.
Previously, when debugging multiple Pods with heaptrack, all Pods wrote to the same file, so they'd overwrite each others' results. This issue has been fixed by adding a
hostnameto each output data file from heaptrack.Also, the Helm chart now supports a
restartPolicythat enables you to configure a Pod's restart policy. The default value ofrestartPolicyisAlways(the same as the Kubernetes default).By @cyberhck in https://github.com/apollographql/router/pull/5850
📚 Documentation
Document OpenTelemetry information for operation limits (PR #5884)
The router's docs for operation limits now describe using telemetry to set operation limits and logging values.
By @andrewmcgivery in https://github.com/apollographql/router/pull/5884
v1.53.0Compare Source
🚀 Features
Support demand control directives (PR #5777)
The router supports two new demand control directives,
@costand@listSize, that you can use to provide more accurate estimates of GraphQL operation costs to the router's demand control plugin.Use the
@costdirective to customize the weights of operation cost calculations, particularly for expensive resolvers.Use the
@listSizedirective to provide a more accurate estimate for the size of a specific list field, particularly for those that differ greatly from the global list size estimate.To learn more, go to Demand Control docs.
By @tninesling in https://github.com/apollographql/router/pull/5777
General Availability (GA) of Demand Control (PR #5868)
Demand control in the router is now a generally available (GA) feature.
GA compatibility update: if you used demand control during its preview, to use it in GA you must update your configuration from
preview_demand_controltodemand_control.To learn more, go to Demand Control docs.
By @tninesling in https://github.com/apollographql/router/pull/5868
Enable native query planner to run in the background (PR #5790, PR #5811, PR #5771, PR #5860)
The router now schedules background jobs to run the native (Rust) query planner to compare its results to the legacy implementation. This helps ascertain its correctness before making a decision to switch entirely to it from the legacy query planner.
To learn more, go to Experimental Query Planner Mode docs.
The router continues to use the legacy query planner to plan and execute operations, so there is no effect on the hot path.
To disable running background comparisons with the native query planner, you can configure the router to enable only the
legacyquery planner:By @SimonSapin in (PR #5790, PR #5811, PR #5771 PR #5860)
Add warnings for invalid configuration of custom telemetry ([PR #5759
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.