diff --git a/Cargo.lock b/Cargo.lock index a4d9bbcbbb..323bf47b26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4315,9 +4315,9 @@ dependencies = [ [[package]] name = "router-bridge" -version = "0.1.0-alpha.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f76769e567afde5e5e51f36f96bc734b35eb77d38668f6cf07e2784b3f303ed" +checksum = "700465195ab6ed2241cd3bf76b9c08c2672d2437db0788ea03e85f5a7814225d" dependencies = [ "anyhow", "async-channel", diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index c92f53c9b5..fe876cd26a 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -35,6 +35,13 @@ The helm chart never used to have a registry, so our docs were really just place By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/1649 + +### Update router-bridge to `query-planner` v2.1.0 ([PR #1650](https://github.com/apollographql/router/pull/1650)) + +The 2.1.0 release of the query planner comes with fixes to fragment interpretation and reduced memory usage. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/1650 + ## 🛠 Maintenance ### Remove cache layer ([PR #1647](https://github.com/apollographql/router/issues/1647)) @@ -46,7 +53,7 @@ By [@garypen](https://github.com/garypen) in https://github.com/apollographql/ro ### Refactor `SupergraphService` ([PR #1615](https://github.com/apollographql/router/issues/1615)) -The `SupergrapHService` code became too complex, so much that `rsutfmt` could not modify it anymore. +The `SupergraphService` code became too complex, so much that `rsutfmt` could not modify it anymore. This breaks up the code in more manageable functions. By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/1615 diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index fc5bc8b9ea..655ce388c1 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -119,7 +119,7 @@ reqwest = { version = "0.11.11", default-features = false, features = [ "json", "stream", ] } -router-bridge = "0.1.0-alpha.1" +router-bridge = "0.1.0" schemars = { version = "0.8.10", features = ["url"] } sha2 = "0.10.2" serde = { version = "1.0.144", features = ["derive", "rc"] } diff --git a/apollo-router/src/introspection.rs b/apollo-router/src/introspection.rs index aa25f45b19..8727d8d1e1 100644 --- a/apollo-router/src/introspection.rs +++ b/apollo-router/src/introspection.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use router_bridge::introspect; use router_bridge::introspect::IntrospectionError; -use router_bridge::planner::DeferStreamSupport; +use router_bridge::planner::IncrementalDeliverySupport; use router_bridge::planner::QueryPlannerConfig; use crate::cache::storage::CacheStorage; @@ -58,7 +58,7 @@ impl Introspection { schema_sdl, vec![query.to_owned()], QueryPlannerConfig { - defer_stream_support: Some(DeferStreamSupport { + incremental_delivery: Some(IncrementalDeliverySupport { enable_defer: Some(self.defer_support), }), }, diff --git a/apollo-router/src/query_planner/bridge_query_planner.rs b/apollo-router/src/query_planner/bridge_query_planner.rs index b43eb7e9a0..9b6bc8435e 100644 --- a/apollo-router/src/query_planner/bridge_query_planner.rs +++ b/apollo-router/src/query_planner/bridge_query_planner.rs @@ -5,7 +5,7 @@ use std::sync::Arc; use futures::future::BoxFuture; use opentelemetry::trace::SpanKind; -use router_bridge::planner::DeferStreamSupport; +use router_bridge::planner::IncrementalDeliverySupport; use router_bridge::planner::PlanSuccess; use router_bridge::planner::Planner; use router_bridge::planner::QueryPlannerConfig; @@ -51,7 +51,7 @@ impl BridgeQueryPlanner { Planner::new( schema.as_string().to_string(), QueryPlannerConfig { - defer_stream_support: Some(DeferStreamSupport { + incremental_delivery: Some(IncrementalDeliverySupport { enable_defer: Some(configuration.server.experimental_defer_support), }), }, diff --git a/apollo-router/src/spec/schema.rs b/apollo-router/src/spec/schema.rs index 6b92bec12a..f0cc30f0dd 100644 --- a/apollo-router/src/spec/schema.rs +++ b/apollo-router/src/spec/schema.rs @@ -840,7 +840,14 @@ mod tests { Err(SchemaError::Api(s)) => { assert_eq!( s, - "The supergraph schema failed to produce a valid API schema" + r#"The supergraph schema failed to produce a valid API schema. Caused by: +Input field "InputObject.privateField" is @inaccessible but is used in the default value of "@foo(someArg:)", which is in the API schema. + +GraphQL request:42:1 +41 | +42 | input InputObject { + | ^ +43 | someField: String"# ); } other => panic!("unexpected schema result: {:?}", other),