❗ BREAKING ❗
🚀 Features
Scaffold custom binary support (PR #1104)
Added CLI support for scaffolding a new Router binary project. This provides a starting point for people who want to use the Router as a library and create their own plugins
By @BrynCooke in #1104
rhai Context::upsert()
supported with example (Issue #648)
Rhai plugins can now interact with Context::upsert()
. We provide an example in ./examples/rhai-surrogate-cache-key
to illustrate its use.
Measure APQ cache hits and registers (Issue #1014)
The APQ layer will now report cache hits and misses to Apollo Studio if telemetry is configured
Add more information to the subgraph_request
span (PR #1119)
Add a new span only for the subgraph request, with all HTTP and net information needed for the OpenTelemetry specs.
🐛 Fixes
Compute default port in span information (Issue #1160)
Compute default port in span information for net.peer.port
regarding the scheme of the request URI.
Response Content-Type
is, again, application/json
(Issue #636)
The router was not setting a content-type
on client responses. This fix ensures that a content-type
of application/json
is set when returning a GraphQL response.
Prevent memory leaks when tasks are cancelled (PR #767)
Cancelling a request could put the router in an unresponsive state where the deduplication layer or cache would make subgraph requests hang.
🛠 Maintenance
Use subgraphs deployed on Fly.io in CI (PR #1090)
The CI needs some Node.js subgraphs for integration tests, which complicates its setup and increases the run time. By deploying, in advance, those subgraphs on Fly.io, we can simplify the CI run.
Unpin schemars version (Issue #1074)
schemars
v0.8.9 caused compile errors due to it validating default types. This change has, however, been rolled back upstream and we can now depend on schemars
v0.8.10.
By @o0Ignition0o in #1135
Update Moka to fix occasional panics on AMD hardware (Issue #1137)
Moka has a dependency on Quanta which had an issue with AMD hardware. This is now fixed via moka-rs/moka#119
By @BrynCooke in 6b20dc85
📚 Documentation
rhai Context::upsert()
supported with example (Issue #648)
Rhai documentation now illustrates how to use Context::upsert()
in rhai code.