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.57.0 #2235

Merged
merged 1 commit into from
Oct 28, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 22, 2024

This PR contains the following updates:

Package Update Change
apollographql/router minor v1.56.0 -> v1.57.0

Release Notes

apollographql/router (apollographql/router)

v1.57.0

Compare Source

[!IMPORTANT]
If you have enabled Distributed query plan caching, updates to the query planner in this release will result in query plan caches being re-generated rather than re-used. On account of this, you should anticipate additional cache regeneration cost when updating between these versions while the new query plans come into service.

🚀 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:

  • The experimental_introspection_mode key has been removed, with the new mode as the only behavior in this release.
  • The supergraph.query_planning.legacy_introspection_caching key is removed, with the behavior in this release now similar to what was false: 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.yaml with your existing configuration.

By @​SimonSapin in https://github.com/apollographql/router/pull/6139

Support new request_context selector for telemetry (PR #​6160)

The router supports a new request_context selector 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:

telemetry:
  instrumentation:
    events:
      router:
        my.request_event:
          message: "my request event message"
          level: info
          on: request
          attributes:
            schema.id:
              request_context: "apollo::supergraph_schema_id" # The key containing the supergraph schema id

You can use the selector in any service at any stage. While this example applies to events attributes, the selector can also be used on spans and instruments.

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

Support reading and setting port on request URIs using Rhai (Issue #​5437)

Custom Rhai scripts in the router now support the request.uri.port and request.subgraph.uri.port functions for reading and setting URI ports. These functions enable you to update the full URI for subgraph fetches. For example:

fn subgraph_service(service, subgraph){
    service.map_request(|request|{
        log_info(``);
        if request.subgraph.uri.port == {} {
            log_info("Port is not explicitly set");
        }
        request.subgraph.uri.host = "api.apollographql.com";
        request.subgraph.uri.path = "/api/graphql";
        request.subgraph.uri.port = 1234;
        log_info(``);
    });
}

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

🐛 Fixes

Fix various edge cases for __typename field (PR #​6009)

The router now correctly handles the __typename field 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 __typename that differs from Query, the router will still use Query as the value of the __typename field.

This change also includes fixes for other edge cases related to the handling of __typename fields. 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 uri and method properties on router "request" objects in Rhai (PR #​6147)

The router now supports accessing request.uri and request.method properties from custom Rhai scripts. Previously, when trying to access request.uri and request.method on a router request in Rhai, the router would return error messages stating the properties were undefined.

An example Rhai script using these properties:

fn router_service(service) {
  let router_request_callback = Fn("router_request_callback");
  service.map_request(router_request_callback);
}

fn router_request_callback (request) {
  log_info(`Router Request... Host: , Path: `);
}

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:

Attempted to look up a field on type MyInterface, but the field does not exist

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:

  • Fixes a query planning bug where operation variables for a subgraph query wouldn't match what's used in that query.
  • Fixes a query planning bug where directives applied to __typename may be omitted in the subgraph query.
  • Fixes a query planning inefficiency where some redundant subgraph queries were not removed.
  • Fixes a query planning inefficiency where some redundant inline fragments in @key/@requires selection sets were not optimized away.
  • Fixes a query planning inefficiency where unnecessary subgraph jumps were being added when using @context/@fromContext.

By @​sachindshinde in https://github.com/apollographql/router/pull/6161


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 was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team as a code owner October 22, 2024 21:13
@svc-apollo-docs
Copy link
Collaborator

svc-apollo-docs commented Oct 22, 2024

✅ Docs Preview Ready

No new or changed pages found.

@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch from 0adcce5 to afd1908 Compare October 25, 2024 11:44
@renovate renovate bot force-pushed the renovate/apollographql-router-1.x branch from afd1908 to 5e04b28 Compare October 28, 2024 08:18
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 76ac124 into main Oct 28, 2024
23 checks passed
@jonathanrainer jonathanrainer deleted the renovate/apollographql-router-1.x branch October 28, 2024 08:31
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.

2 participants