Skip to content
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.49.1 #1933

Merged
merged 1 commit into from
Jul 1, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 18, 2024

Mend Renovate

This PR contains the following updates:

Package Update Change
apollographql/router minor v1.48.1 -> v1.49.1

Release Notes

apollographql/router (apollographql/router)

v1.49.1

Compare Source

[!IMPORTANT]
If you have enabled Distributed query plan caching, this release changes the hashing algorithm used for the cache keys. On account of this, you should anticipate additional cache regeneration cost when updating between these versions while the new hashing algorithm comes into service.

🔒 Security

Replace dependency included in security advisory (Issue #​5484)

This removes our use of a dependency that was cited in security advisories RUSTSEC-2024-0344 and GHSA-x4gp-pqpj-f43q.

We have carefully analyzed our usages and determined that Apollo Router is not impacted. We only relied on different functions from the same dependency that were easily replaced. Despite lack of impact, we have opted to remove the dependency entirely out of an abundance of caution. This not only clears the warning on our side immediately, but also provides a clear path forward in the event that this shows up in any of our user's own scans.

Users may upgrade at their own discretion, though as it was determined there is no impact, upgrading is not being explicitly recommended.

See the corresponding GitHub issue.

By @​Geal in https://github.com/apollographql/router/pull/5483

🐛 Fixes

Update to Federation v2.8.1 (PR #​5483)

The above security fix was in router-bridge which had already received a Federation version bump. This bump takes Federation to v2.8.1, which fixes a performance-related matter in composition. However, it does not impact query planning, which means this particular update is a no-op and this is simply a symbolic bump of the number itself, rather than any functional change.

By @​Geal in https://github.com/apollographql/router/pull/5483

v1.49.0

Compare Source

🚀 Features

Override tracing span names using custom span selectors (Issue #​5261)

Adds the ability to override span names by setting the otel.name attribute on any custom telemetry selectors .

This example changes the span name to router:

telemetry:
  instrumentation:
    spans:
      router:
        otel.name:
           static: router # Override the span name to router 

By @​bnjjj in https://github.com/apollographql/router/pull/5365

Add description and units to standard instruments (PR #​5407)

This PR adds description and units to standard instruments available in the router. These descriptions and units have been copy pasted directly from the OpenTelemetry semantic conventions and are needed for better integrations with APMs.

By @​bnjjj in https://github.com/apollographql/router/pull/5407

Add with_lock() method to Extensions to facilitate avoidance of timing issues (PR #​5360)

In the case that you necessitated writing custom Rust plugins, we've introduced with_lock() which explicitly restricts the lifetime of the Extensions lock.

Without this method, it was too easy to run into issues interacting with the Extensions since we would inadvertently hold locks for too long. This was a source of bugs in the router and caused a lot of tests to be flaky.

By @​garypen in https://github.com/apollographql/router/pull/5360

Add support for unix_ms_now in Rhai customizations (Issue #​5182)

Rhai customizations can now use the unix_ms_now() function to obtain the current Unix timestamp in milliseconds since the Unix epoch.

For example:

fn supergraph_service(service) {
    let now = unix_ms_now();
}

By @​shaikatzz in https://github.com/apollographql/router/pull/5181

🐛 Fixes

Improve error message produced when subgraphs responses don't include an expected content-type header value (Issue #​5359)

To enhance debuggability when a subgraph response lacks an expected content-type header value, the error message now includes additional details.

Examples:

HTTP fetch failed from 'test': subgraph response contains invalid 'content-type' header value \"application/json,application/json\"; expected content-type: application/json or content-type: application/graphql-response+json
HTTP fetch failed from 'test': subgraph response does not contain 'content-type' header; expected content-type: application/json or content-type: application/graphql-response+json

By @​IvanGoncharov in https://github.com/apollographql/router/pull/5223

Performance improvements for demand control (PR #​5405)

Removes unneeded logic in the hot path for our recently released public preview of demand control feature to improve performance.

By @​BrynCooke in https://github.com/apollographql/router/pull/5405

Skip hashing the entire schema on every query plan cache lookup (PR #​5374)

This fixes performance issues when looking up query plans for large schemas.

[!IMPORTANT]
If you have enabled Distributed query plan caching, this release changes the hashing algorithm used for the cache keys. On account of this, you should anticipate additional cache regeneration cost when updating between these versions while the new hashing algorithm comes into service.

By @​Geal in https://github.com/apollographql/router/pull/5374

Optimize GraphQL instruments (PR #​5375)

When processing selectors for GraphQL instruments, heap allocations should be avoided for optimal performance. This change removes Vec allocations that were previously performed per field, yielding significant performance improvements.

By @​BrynCooke in https://github.com/apollographql/router/pull/5375

Log metrics overflow as a warning rather than an error (Issue #​5173)

If a metric has too high a cardinality, the following is displayed as a warning instead of an error:

OpenTelemetry metric error occurred: Metrics error: Warning: Maximum data points for metric stream exceeded/ Entry added to overflow

By @​bnjjj in https://github.com/apollographql/router/pull/5287

Add support of response_context selectors for error conditions (PR #​5288)

Provides the ability to configure custom instruments. For example:

http.server.request.timeout:
  type: counter
  value: unit
  description: "request in timeout"
  unit: request
  attributes:
    graphql.operation.name:
      response_context: operation_name
  condition:
    eq:
    - "request timed out"
    - error: reason

By @​bnjjj in https://github.com/apollographql/router/pull/5288

Inaccurate apollo_router_opened_subscriptions counter (PR #​5363)

Fixes the apollo_router_opened_subscriptions counter which previously only incremented. The counter now also decrements.

By @​bnjjj in https://github.com/apollographql/router/pull/5363

📃 Configuration

🛠 Maintenance

Skip GraphOS tests when Apollo key not present (PR #​5362)

Some tests require APOLLO_KEY and APOLLO_GRAPH_REF to execute successfully.
These are now skipped if these env variables are not present allowing external contributors to the router to successfully run the entire test suite.

By @​BrynCooke in https://github.com/apollographql/router/pull/5362

📚 Documentation

Standard instrument configuration documentation for subgraphs (PR #​5422)

Added documentation about standard instruments available at the subgraph service level:

  • http.client.request.body.size - A histogram of request body sizes for requests handled by subgraphs.
  • http.client.request.duration - A histogram of request durations for requests handled by subgraphs.
  • http.client.response.body.size - A histogram of response body sizes for requests handled by subgraphs.

These instruments are configurable in router.yaml:

telemetry:
  instrumentation:
    instruments:
      subgraph:
        http.client.request.body.size: true # (default false)
        http.client.request.duration: true # (default false)
        http.client.response.body.size: true # (default false)

By @​bnjjj in https://github.com/apollographql/router/pull/5422

Update docs frontmatter for consistency and discoverability (PR #​5164)

Makes title case consistent for page titles and adds subtitles and meta-descriptions are updated for better discoverability.

By @​Meschreiber in https://github.com/apollographql/router/pull/5164

🧪 Experimental

Warm query plan cache using persisted queries on startup (Issue #​5334)

Adds support for the router to use persisted queries to warm the query plan cache upon startup using a new experimental_prewarm_query_plan_cache configuration option under persisted_queries.

To enable:

persisted_queries:
  enabled: true
  experimental_prewarm_query_plan_cache: true

By @​lleadbet in https://github.com/apollographql/router/pull/5340

Apollo reporting signature enhancements (PR #​5062)

Adds a new experimental configuration option to turn on some enhancements for the Apollo reporting stats report key:

  • Signatures will include the full normalized form of input objects
  • Signatures will include aliases
  • Some small normalization improvements

This new configuration (telemetry.apollo.experimental_apollo_signature_normalization_algorithm) only works when in experimental_apollo_metrics_generation_mode: new mode and we don't yet recommend enabling it while we continue to verify that the new functionality works as expected.

By @​bonnici in https://github.com/apollographql/router/pull/5062

Add experimental support for sending traces to Studio via OTLP (PR #​4982)

As the ecosystem around OpenTelemetry (OTel) has been expanding rapidly, we are evaluating a migration of Apollo's internal
tracing system to use an OTel-based protocol.

In the short-term, benefits include:

  • A comprehensive way to visualize the router execution path in GraphOS Studio.
  • Additional spans that were previously not included in Studio traces, such as query parsing, planning, execution, and more.
  • Additional metadata such as subgraph fetch details, router idle / busy timing, and more.

Long-term, we see this as a strategic enhancement to consolidate these two disparate tracing systems.
This will pave the way for future enhancements to more easily plug into the Studio trace visualizer.

Configuration

This change adds a new configuration option experimental_otlp_tracing_sampler. This can be used to send
a percentage of traces via OTLP instead of the native Apollo Usage Reporting protocol. Supported values:

  • always_off (default): send all traces via Apollo Usage Reporting protocol.
  • always_on: send all traces via OTLP.
  • 0.0 - 1.0: the ratio of traces to send via OTLP (0.5 = 50 / 50).

Note that this sampler is only applied after the common tracing sampler, for example:

Sample 1% of traces, send all traces via OTLP:
telemetry:
  apollo:

### Send all traces via OTLP
    experimental_otlp_tracing_sampler: always_on

  exporters:
    tracing:
      common:

### Sample traces at 1% of all traffic
        sampler: 0.01

by @​timbotnik in https://github.com/apollographql/router/pull/4982

Set Apollo metrics generation mode to new by default (PR #​5265)

Changes the default value of experimental_apollo_metrics_generation_mode to
new. All metrics are showing that identical signatures are being generated in
this mode.

By @​bonnici in https://github.com/apollographql/router/pull/5265


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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from a team as a code owner June 18, 2024 21:07
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch from a7da94a to 00483de Compare June 19, 2024 19:55
@renovate renovate bot changed the title chore(deps): update dependency apollographql/router to v1.49.0 chore(deps): update dependency apollographql/router to v1.49.1 Jun 19, 2024
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch 4 times, most recently from 3791c02 to f184223 Compare June 21, 2024 10:03
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch 4 times, most recently from 64f2a67 to 6181738 Compare July 1, 2024 10:59
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch from 6181738 to 8153e16 Compare July 1, 2024 11:10
Copy link
Contributor

@jonathanrainer jonathanrainer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jonathanrainer jonathanrainer merged commit c4bdc20 into main Jul 1, 2024
15 checks passed
@jonathanrainer jonathanrainer deleted the renovate/apollographql-router-1.x branch July 1, 2024 12:28
@jonathanrainer jonathanrainer added this to the v0.24.0 milestone Jul 10, 2024
@jonathanrainer jonathanrainer mentioned this pull request Jul 12, 2024
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant