github apollographql/router v1.0.0-rc.2

latest releases: v2.0.0-preview.1, v1.57.1, v1.57.1-rc.0...
2 years ago

Note
There are no breaking changes in this release! Thank you for the constructive and positive feedback and validation as well as the contributions from our external contributors. We look forward to seeing you at v1.0.0 soon!

🐛 Fixes

Update apollo-parser to v0.2.11 (PR #1841)

Fixes error creation for missing selection sets in named operation definitions by updating to apollo-rs's apollo-parser v0.2.11.

By @lrlna in #1841

Fix router scaffold version (Issue #1836)

Add v prefix to the package version emitted in our scaffold tooling when a published version of the crate is available. This results in packages depending (appropriately, we would claim!) on our published Cargo crates, rather than Git references to the repository.

By @bnjjj in #1838

Fixed extraVolumeMounts in Helm charts (Issue #1824)

Correct a case in our Helm charts where extraVolumeMounts was not be being filled into the deployment template correctly.

By @LockedThread in #1831

Do not fill in a skeleton object when canceling a subgraph request (Issue #1819)

Given a supergraph with multiple subgraphs USER and ORGA, like this example supergraph, if a query spans multiple subgraphs, like this:

query {
  currentUser { # USER subgraph
    activeOrganization { # ORGA subgraph
      id
      creatorUser {
        name
      }
    }
  }
}

...when the USER subgraph returns {"currentUser": { "activeOrganization": null }}, then the request to the ORGA subgraph
should be cancelled and no data should be generated. This was not occurring since the query planner was incorrectly creating an object at the target path. This is now corrected.

This fix also improves the internal usage of mocked subgraphs with TestHarness.

By @Geal in #1819

Default conditional @defer condition to true (Issue #1820)

According to recent updates in the @defer specification, defer conditions must default to true. This corrects a bug where that default value wasn't being initialized properly.

By @o0Ignition0o in #1832

Support query plans with empty primary subselections (Issue #1778)

When a query with @defer would result in an empty primary response, the router was returning
an error in interpreting the query plan. It is now using the query plan properly, and detects
more precisely queries containing @defer.

By @Geal in #1778

🛠 Maintenance

Add more compilation gates to hide noisy warnings (PR #1830)

Add more gates (for the console feature introduced in PR #1632) to not emit compiler warnings when using the --all-features flag. (See original PR for more details on the flag usage.)

By @bnjjj in #1830

Deny panic, unwrap and expect in the spec module (Issue #1844)

We are generally working to eliminate unwrap() and expect() statements from critical paths in the codebase and have done so on the spec module. The spec module, in particular, is reached after parsing has occurred so any invariants expressed by these expects would have already been enforced or validated. Still, we've decided to tighten things even further, by raising errors instead to provide end-users with even more stability.

To further defend against re-introduction, the spec module now has linting annotations that prevent its content from using any code that explicitly panics.

#![deny(clippy::unwrap_used)]
#![deny(clippy::expect_used)]
#![deny(clippy::panic)]

By @o0Ignition0o in #1844

Remove potential panics from query plan execution (PR #1842)

Some remaining parts of the query plan execution code were using expect(), unwrap() and panic() to guard against assumptions
about data. These conditions have been replaced with errors which will returned in the response preventing the possibility of panics in these code paths.

By @Geal in #1842

Don't miss a new router release

NewReleases is sending notifications on new releases.