🚀 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.
🐛 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.
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.
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