github apollographql/router v1.15.0

latest releases: v2.0.0-preview.1, v1.57.1, v1.57.1-rc.0...
19 months ago

🚀 Features

GraphOS Enterprise: Allow JWT algorithm restrictions (Issue #2714)

It is now possible to restrict the list of accepted algorthms to a well-known set for cases where an issuer's JSON Web Key Set (JWKS) contains keys which are usable with multiple algorithms.

By @Geal in #2852

🐛 Fixes

Invalid requests now return proper GraphQL-shaped errors (Issue #2934), (Issue #2946)

Unsupported content-type and accept headers sent on requests now return proper GraphQL errors nested as elements in a top-level errors array, rather than returning a single GraphQL error JSON object.

This also introduces a new error code, INVALID_CONTENT_TYPE_HEADER, rather than using INVALID_ACCEPT_HEADER when an invalid content-type header was received.

By @EverlastingBugstopper in #2947

🛠 Maintenance

Remove redundant println!() that broke json formatted logging (PR #2923)

The println!() statement being used in our trace transmission logic was redundant since it was already covered by a pre-existing WARN log line. Most disruptively though, it broke JSON logging.

For example, this previously showed as:

Got error sending request for url (https://example.com/api/ingress/traces): connection error: unexpected end of file
{"timestamp":"2023-04-11T06:36:27.986412Z","level":"WARN","message":"attempt: 1, could not transfer: error sending request for url (https://example.com/api/ingress/traces): connection error: unexpected end of file"}

It will now merely log the second line.

By @garypen in #2923

Adds HTTP status code to subgraph HTTP error type

When contextually available, the SubrequestHttpError now includes the HTTP status code. This provides plugins with the ability to access the status code directly. Previously, parsing the reason value as a string was the only way to determine the status code.

By @scottdouglas1989 in #2902

Pin the router-bridge version

When using the router as a library, router-bridge versions can be automatically updated, which can result in incompatibilities. We want to ensure that the Router and router-bridge always work with vetted versions, so we now pin it in our Cargo.toml and update it using our tooling.

By @Geal in #2916

Update to Federation v2.4.1 (2937)

The Router has been updated to use Federation v2.4.1, which includes a fix involving @interfaceObject.

By @o0Ignition0o in #2957

Don't miss a new router release

NewReleases is sending notifications on new releases.