-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(deps): update dependency apollographql/router to v1.50.0 #1954
Merged
Conversation
This file contains 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
renovate
bot
force-pushed
the
renovate/apollographql-router-1.x
branch
5 times, most recently
from
July 8, 2024 13:24
c744934
to
d310130
Compare
renovate
bot
force-pushed
the
renovate/apollographql-router-1.x
branch
from
July 8, 2024 13:30
d310130
to
8687ea9
Compare
jonathanrainer
approved these changes
Jul 8, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Merged
jonathanrainer
added a commit
that referenced
this pull request
Jul 15, 2024
# [0.24.0] > Important: 1 potentially breaking change below, indicated by **❗ BREAKING ❗** ## ❗ BREAKING ❗ - **Removed the deprecated `plain` and `json` options for `--output` - @dylan-apollo PR [#1804](#1804 The `--output` option is now only for specifying a file to write to. The `--format` option should be used to specify the format of the output. ## 🚀 Features - **Return the name of the linting rule that is violated, as well as the code - @jonathanrainer PR [#1907](#1907 Originally only the message from the linting violation was included in the response, but now it also includes the name of the specific linting rule to aid debugging - **Use the Router's `/health?ready` endpoint to check readiness - @nmoutschen PR [#1939](#1939 Previously `rover dev` used a simple query to establish readiness, but this did not allow for router customizations. - **Adding architecture and OS metrics - @aaronArinder PR [#1947](#1947 Allows us to track the Operating Systems and Architectures in use by our users, this will give us more information as to where to focus support efforts - **Allow `aarch64` macOS to pull correct `supergraph` binaries where available - @jonathanrainer PR [#1971](#1971 We recently started publishing `supergraph` binaries for `aarch64`, so if they are available Rover will use them in preference to x86_64 binaries. ## 🐛 Fixes - **Don't panic if the telemetry client cannot be initialised - @dylan-apollo PR [#1897](#1897) - Issue [#1893](#1893 - **Rename `.cargo/config` to `.cargo/config.toml` - @jonathanrainer PR [#1921](#1921 - **Fix `pnpm` installs by moving the binary download location - @jonathanrainer PR [#1927](#1927) - Issue [#1881](#1881 After we inlined the `binary-install` dependency in v0.23.0 this changed where the downloaded binary was stored when using `pnpm`. This caused users running the binary to enter an infinite loop. This moves the binary to a new location which avoids this. - **Don't panic on file watcher errors - @nmoutschen PR [#1935](#1935 Instead of panicking when errors occur watching files return those errors gracefully to the user. - **Store binaries with version numbers attached so upgrades are possible - @jonathanrainer PR [#1932](#1932) - Issue [#1563](#1563 When downloading binaries via `npm` they were always stored as `rover` despite the version. As such, when a new version came out the upgrade would fail. This now doesn't happen, as binaries are stored with their versions number in the name. - **Ensure correct URL is used if `subgraph_url` and `routing_url` are provided in a supergraph schema - @jonathanrainer PR [#1948](#1948) - Issue [#1782](#1782 - **Let `--output` accept paths with missing intermediate directories - @jonathanrainer PR [#1944](#1944) - Issue [#1787](#1787 - **Allow `rover dev` to read Federation Version from supergraph schema - @jonathanrainer PR [#1950](#1950) - Issue [#1735](#1735 The Federation version could be set in the supegraph schema but was being ignored by `rover dev`. It now is taken into account, along with the overriding environment variable. - **Stop .exe being printed after Federation version during composition - @jonathanrainer PR [#1951](#1951) - Issue [#1390](#1390 - **Reinstate support for `glibc` 2.17 - @jonathanrainer PR [#1953](#1953 In resolving the issues with CentOS 7 we accidentally removed support for `glibc` 2.17, this has now been restored - **Be more lenient about `supergraph` binary versions - @dylan-apollo PR [#1966](#1966 In resolving #1390, we were too restrictive in what counted as a valid version. This restores the correct behaviour - **Set `package.json` to a stable version when testing NPM Installers - @jonathanrainer PR [#1967](#1967 When testing whether our NPM installers worked correctly we were trying to download the latest `rover` binary. On release PRs, where the binary didn't yet exist, this was causing problems. - **Fix mocking of calls to Orbiter in Installer tests - @jonathanrainer PR [#1968](#1968 - **Remove noisy errors from intermediate composition states - @aaronArinder PR [#1956](#1956 When `rover dev` composes multiple subgraphs it does so one at a time. As such if there are dependencies there can be noisy ephemeral errors, this fixes that by waiting until all subgraphs are added before trying composition. ## 🛠 Maintenance - **Update GitHub CircleCI Orb to v2.3.0 - @Geal PR [#1831](#1831 - **Update plugins to Fed 2.7 and Router 1.43.0 - @smyrick PR [#1877](#1877 - **Update CODEOWNERS - @dotdat PR [#1890](#1890 Make Betelgeuse the primary owners of the Rover repository - **Update lychee-lib to v0.15 - @dotData PR [#1902](#1902 - **Add tests and provide status codes as part of linter errors - @dotdat PR [#1903](#1903 - **Add nix files to .gitignore - @aaronArinder PR [#1908](#1908 - **Update apollographql/router to v1.47.0 - @aaronArinder PR [#1841](#1841 - **Update apollographql/federation-rs to v2.7.8 - @aaronArinder PR [#1746](#1746 - **Update node.js to v20 - @aaronArinder PR [#1778](#1778 - **Update Rust to v1.76.0 and the Rust CircleCI Orb to v1.6.1 - @aaronArinder PR [#1788](#1788 - **Update serial_test to v3 - @jonathanrainer PR [#1836](#1836 - **Update which to v6 - @jonathanrainer PR [#1835](#1835 - **Update apollographql/federation-rs to v2.8.0 - @aaronArinder PR [#1909](#1909 - **Update tar to v6.2.1 - @aaronArinder PR [#1888](#1888 - **Update tar to v7 - @aaronArinder PR [#1914](#1914 - **Update node.js packages - @aaronArinder PR [#1830](#1830 Includes `eslint` to v8.57.0, `node.js` to v20.14.0, `nodemon` to v3.1.2, `npm` to v10.8.1 and `prettier` to v3.3.0 - **Update Rust to v1.78.0 - @aaronArinder PR [#1912](#1912 - **Update apollographql/router to v1.48.0 - @aaronArinder PR [#1917](#1917 - **Update zip to v2 - @jonathanrainer PR [#1916](#1916 - **Update eslint to v9.4.0 - @dotdat PR [#1913](#1913 - **Update hyper to v1.0 - @dotdat PR [#1789](#1789 - **Add tests for socket names - @jonathanrainer PR [#1918](#1918 In future dependency upgrades we want to ensure that behaviour around socket naming works as expected, so add a test to ensure that. - **Update rust packages - @jonathanrainer PR [#1755](#1755 Consolidates updates of pre-1.0 rust crates, check PR for full details of crates updated - **Update notify to v6 - @jonathanrainer PR [#1603](#1603 - **Include cargo-deny checks on PRs - @jonathanrainer PR [#1910](#1910 Now we can check for licences that don't correspond to our allowed list and pick up on dependency issues live on PRs - **Pin node.js dev dependencies - @aaronArinder PR [#1923](#1923 - **Allow 0BSD licence - @aaronArinder PR [#1924](#1923 - **Update interprocess to v2 - @dotdat PR [#1915](#1915 - **Update apollographql/router to v1.48.1 - @dotdat PR [#1926](#1926 - **Update Rust to v1.79.0 - @jonathanrainer PR [#1931](#1931 - **Update git2 to v0.19 - @jonathanrainer PR [#1930](#1930 - **Update node.js packages - @jonathanrainer PR [#1929](#1929 Includes `@eslint/compat` to v1.1.0, `eslint` to v9.5.0, `graphql` to v16.8.2 and `prettier` to v3.3.2 - **Migrate CI to use manylinux rather than CentOS 7 - @jonathanrainer PR [#1952](#1952 As CentOS 7 has now entered End-of-Life, migrate our CI to use a different Linux distribution. - **Update apollographql/router to v1.49.1 - @jonathanrainer PR [#1933](#1933 - **Update apollographql/federation-rs to v2.8.2 - @jonathanrainer PR [#1934](#1934 - **Update node.js packages - @jonathanrainer PR [#1940](#1940 Includes `eslint` to v9.6.0, `node.js` to v20.15.0, `nodemon` to v3.1.4, `graphql` to v16.9.0 - **Fix clippy warnings - @loshz PR [#1955](#1955 - **Allow integration tests to accept a pre-compiled binary - @jonathanrainer PR [#1957](#1957 - **Run macOS x86_64 integration tests in GitHub Actions - @nmoutschen PR [#1958](#1958 Due to CircleCI's deprecation of x86_64 macOS executors use GitHub Actions to still run our tests on this architecture - **Add smoke tests for `rover dev` - @jonathanrainer PR [#1961](#1961 - **Update apollographql/router to v1.50.0 - @jonathanrainer PR [#1954](#1954 - **Trigger GitHub Actions from CircleCI - @nmoutschen PR [#1959](#1959 - **Add docs team to CODEOWNERS - @aaronArinder PR [#1965](#1965 - **Fix up Release CI and explicitly add tokio `rt-multi-thread flag` - @jonathanrainer PR [#1972](#1972 - **Add context to auth output when saving an API Key - @loshz PR [#1974](#1974 ## 📚 Documentation - **Minor update to README.md - @tratzlaff PR [#1880](#1880 Fixes use of numbered lists in the README.md - **Remove failing/redundant links from docs - @dotdat PR [#1894](#1894 - **Update docs style - @Meschreiber PR [#1883](#1883 Update formatting and admonitions to most recent conventions. - **Update frontmatter - @Meschreiber PR [#1898](#1898 Updates title casing and adds metadata to subtitles - **Clarify `subgraph publish` can only create variants not graphs - @Meschreiber PR [#1938](#1938 - **Make example using `-` instead of filepath clearer - @aaronArinder PR [#1963](#1963 - **Update Router terminology - @Meschreiber PR [#1925](#1925 Update the uses of Apollo Router to GraphOS Router or Apollo Router Core where necessary - **Update documentation to make it clear we collect CPU Architecture, per command - @aaronArinder PR [#1964](#1964
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.49.1
->v1.50.0
Release Notes
apollographql/router (apollographql/router)
v1.50.0
Compare Source
🚀 Features
Support local persisted query manifests for use with offline licenses (Issue #4587)
Adds experimental support for passing persisted query manifests to use instead of the hosted Uplink version.
For example:
By @lleadbet in https://github.com/apollographql/router/pull/5310
Support conditions on standard telemetry events (Issue #5475)
Enables setting conditions on standard events.
For example:
Not supported for batched requests.
By @bnjjj in https://github.com/apollographql/router/pull/5476
Make
status_code
available forrouter_service
responses in Rhai scripts (Issue #5357)Adds
response.status_code
on Rhairouter_service
responses. Previously,status_code
was only available onsubgraph_service
responses.For example:
By @IvanGoncharov in https://github.com/apollographql/router/pull/5358
Add new values for the supergraph
query
selector (PR #5433)Adds support for four new values for the supergraph
query
selector:aliases
: the number of aliases in the querydepth
: the depth of the queryheight
: the height of the queryroot_fields
: the number of root fields in the queryYou can use this data to understand how your graph is used and to help determine where to set limits.
For example:
By @garypen in https://github.com/apollographql/router/pull/5433
Add the ability to drop metrics using otel views (PR #5531)
You can drop specific metrics if you don't want these metrics to be sent to your APM using otel views.
By @bnjjj in https://github.com/apollographql/router/pull/5531
Add
operation_name
selector for router service in custom telemetry (PR #5392)Adds an
operation_name
selector for the router service.Previously, accessing
operation_name
was only possible through theresponse_context
router service selector.For example:
By @bnjjj in https://github.com/apollographql/router/pull/5392
🐛 Fixes
Fix Cache-Control aggregation and age calculation in entity caching (PR #5463)
Enhances the reliability of caching behaviors in the entity cache feature by:
max-age
ands-max-age
fields in theCache-Control
header sent to clients.Cache-Control
header.Cache-Control
header is aggregated consistently, even if the plugins is disabled entirely or on specific subgraphs.By @Geal in https://github.com/apollographql/router/pull/5463
Fix telemetry events when trace isn't sampled and preserve attribute types (PR #5464)
Improves accuracy and performance of event telemetry by:
http.response.body.size
andhttp.request.body.size
attributes are treated as numbers, not stringsBy @bnjjj in https://github.com/apollographql/router/pull/5464
Enable coprocessors for subscriptions (PR #5542)
Ensures that coprocessors correctly handle subscriptions by preventing skipped data from being overwritten.
By @bnjjj in https://github.com/apollographql/router/pull/5542
Improve accuracy of
query_planning.plan.duration
(PR #5)Previously, the
apollo.router.query_planning.plan.duration
metric inaccurately included additional processing time beyond query planning. The additional time included pooling time, which is already accounted for in the metric. After this update, apollo.router.query_planning.plan.duration now accurately reflects only the query planning duration without additional processing time.For example, before the change, metrics reported:
Post-change metrics now accurately reflect:
By @xuorig and @lrlna in https://github.com/apollographql/router/pull/5530
Remove
deno_crypto
package due to security vulnerability (Issue #5484)Removes deno_crypto due to the vulnerability reported in
curve25519-dalek
.Since the router exclusively used
deno_crypto
for generating UUIDs using the package's random number generator, this vulnerability had no impact on the router.By @Geal in https://github.com/apollographql/router/pull/5483
Add content-type header to failed auth checks (Issue #5496)
Adds
content-type
header when returningAUTH_ERROR
from authentication service.By @andrewmcgivery in https://github.com/apollographql/router/pull/5497
Implement manual caching for AWS Security Token Service credentials (PR #5508)
In the AWS Security Token Service (STS), the
CredentialsProvider
chain includes caching, but this functionality was missing forAssumeRoleProvider
.This change introduces a custom
CredentialsProvider
that functions as a caching layer with these rules:credentials.expiry()
time if specified, or indefinitely (ever
) if not.CredentialsProvider
will expose arefresh_credentials()
function. This can be manually invoked, for instance, upon receiving a401
error during a subgraph call.By @o0Ignition0o in https://github.com/apollographql/router/pull/5508
📃 Configuration
Align entity caching configuration structure for subgraph overrides (PR #5474)
Aligns the entity cache configuration structure to the same
all
/subgraphs
override pattern found in other parts of the router configuration. For example, see the header propagation configuration.An automated configuration migration is provided so existing usage is unaffected.
By @Geal in https://github.com/apollographql/router/pull/5474
Restrict custom instrument
value
s to relevant stages (PR #5472)Previously, custom instruments at each request lifecycle stage could specify unrelated values, like using
event_unit
for a router instrument. Now, only relevant values for each stage are allowed.Additionally, GraphQL instruments no longer need to specify
field_event
. There is no automatic migration for this change since GraphQL instruments are still experimental.The following misconfiguration is now not possible:
By @BrynCooke in https://github.com/apollographql/router/pull/5472
🛠 Maintenance
Add cost information to protobuf traces (PR #5430)
Exports query cost information on Apollo protobuf traces if
experimental_demand_control
is enabled. Also displays exported information in GraphOS Studio.By @BrynCooke in https://github.com/apollographql/router/pull/5430
Improve
xtask
release process (PR #5275)Introduces a new
xtask
command to automate the release process by:RELEASE_CHECKLIST.md
file.release-state.json
fileThese changes remove a lot of the manual environment variable setup and command copying previously required.
Executed the new command by running
cargo xtask release start
, then callingcargo xtask release continue
at each step.By @Geal in https://github.com/apollographql/router/pull/5275
Isolate usage of hyper v0.14 types for future compatibility (PR #5175)
Isolates usage of hyper types in response to the recent release of hyper v1.0. The new major version introduced improvements along with breaking changes. The goal is to reduce the impact of these breaking changes for the upcoming Router upgrade to the new hyper, and ensure that future upgrades are straightforward.
This change only affects internal code and doesn't affect the router's public API or execution.
By @Geal in https://github.com/apollographql/router/pull/5175
Introduce fuzz testing comparison between the router and monolithic subgraph (PR #5302)
Implements a fuzzer that can run on any router configuration to enhance router robustness and battle test new features.
Adds a router fuzzing target, to compare the result of a query sent to to router vs a monolithic subgraph, with a supergraph schema that points all subgraphs to that same monolith.
The monolithic subgraph consolidates code from typical subgraphs like accounts, products, reviews, and inventory (taken from the starstuff repository).
This setup allows the subgraph to directly handle queries traditionally handled by individual subgraphs.
The invariant we check is that we should get the same result by sending the query to the subgraph directly or through a router that will artificially cut up the query into multiple subgraph requests, according to the supergraph schema.
To execute it:
fuzz/subgraph/supergraph.graphql
cargo run --release
infuzz/subgraph
. It will start a subgraph on port 4005.cargo +nightly fuzz run router
By @Geal in https://github.com/apollographql/router/pull/5302
📚 Documentation
Add telemetry docs pages for Dynatrace (PR #5533)
Adds telemetry documentation for Dynatrace metrics and trace exporters.
By @andrewmcgivery in https://github.com/apollographql/router/pull/5533
Fix docs for 'exists' condition (PR #5446)
Fixes documentation example for the
exists
condition.The condition expects a single selector instead of an array.
For example:
By @bnjjj in https://github.com/apollographql/router/pull/5446
🧪 Experimental
Add experimental extended reference reporting configuration (PR #5331)
Adds an experimental configuration to turn on extended references in Apollo usage reports, including references to input object fields and enum values.
This new configuration (
telemetry.apollo.experimental_apollo_metrics_reference_mode: extended
) only works whenexperimental_apollo_metrics_generation_mode: new
is configured.Apollo doesn't yet recommend these configurations in production while we continue to verify that the new functionality works as expected.
By @bonnici in https://github.com/apollographql/router/pull/5331
Add experimental field metric reporting configuration (PR #5443)
Adds an experimental configuration to report field usage metrics to GraphOS Studio without requiring subgraphs to support federated tracing (
ftv1
).The reported field usage data doesn't currently appear in GraphOS Studio.
There is currently a small performance impact from enabling this feature.
By @tninesling, @geal, @bryn in https://github.com/apollographql/router/pull/5443
Add experimental h2c communication capability for communicating with coprocessor (Issue #5299)
Allows HTTP/2 Cleartext (h2c) communication with coprocessors for scenarios where the networking architecture/mesh connections don't support or require TLS for outbound communications from the router.
Introduces a new
coprocessor.client
configuration. The first and currently only option isexperimental_http2
. The available option settings are the same as the asexperimental_http2
traffic shaping settings.disable
- disable HTTP/2, use HTTP/1.1 onlyenable
- HTTP URLs use HTTP/1.1, HTTPS URLs use TLS with either HTTP/1.1 or HTTP/2 based on the TLS handshakehttp2only
- HTTP URLs use h2c, HTTPS URLs use TLS with HTTP/2enable
By @theJC in https://github.com/apollographql/router/pull/5300
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.
🔕 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.