Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ Features
Apollo Studio usage reporting agent and operation-level reporting (PR #309, PR #420)
While there are several levels of Apollo Studio integration, the initial phase of our Apollo Studio reporting focuses on operation-level reporting.
At a high-level, this will allow Apollo Studio to have visibility into some basic schema details, like graph ID and variant, and per-operation details, including:
apollographql-client-*
headers to give visibility into which clients are making which operations.This should enable several Apollo Studio features including the Clients and Checks pages as well as the Checks tab on the Operations page.
Overall, this marks a notable but still incremental progress toward more of the Studio integrations which are laid out in #66.
Complete GraphQL validation (PR #471 via federation-rs#37)
We now apply all of the standard validations which are defined in the
graphql
(JavaScript) implementation's default set of "specified rules" during query planning.Operations can now be made via
GET
requests (PR #429)Previously, the Apollo Router only supported making requests via
POST
requests. We've always intended on supportingGET
support, but needed some additional support in place to make sure we could prevent allowingmutation
s to happen overGET
requests.The Router now supports
GET
requests forquery
operations, and this is also the foundation for supporting [automated persisted queries] (APQ) in an upcoming release. APQs pair really well withGET
requests since they allow read operations (e.g.,GET
requests) to be more easily cached by intermediary proxies and CDNs, which typically forbid cachingPOST
requests by specification (even if they often are just reads in GraphQL).🐛 Fixes
No more double
http://http://
in logs (PR #448)The server logs will no longer advertise the listening host and port with a doubled-up
http://
prefix. You can once again click happily into Studio Explorer!Improved handling of Federation 1 supergraphs (PR #446 via federation#1511)
Our partner team has improved the handling of Federation 1 supergraphs in the implementation of Federation 2 alpha (which the Router depends on and is meant to offer compatibility with Federation 1 in most cases). We've updated our query planner implementation to the version with the fixes.
This also was the first time that we've leveraged the new
federation-rs
repository to handle our bridge, bringing a huge developmental advantage to teams working across the various concerns!Resolved incorrect subgraph ordering during merge (PR #460)
A fix was applied to fix the behavior which was identified in Issue #451 which was caused by a misconfigured filter which was being applied to field paths.