Releases: apollographql/federation
@apollo/[email protected]
CHANGELOG for @apollo/subgraph
2.9.0
Patch Changes
- Updated dependencies [
02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
2.8.5
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.4
Patch Changes
-
Add descriptions for federation directives (#3095)
-
Updated dependencies [
5f4bb160d024678d6facd471c43c8ec61c86e701
,672aca7cbeb0a6a38586357a4e154f2dd91caa0c
]:- @apollo/[email protected]
2.8.3
Patch Changes
- Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
,f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
2.8.3-beta.2
Patch Changes
- Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
]:- @apollo/[email protected]
2.8.3-beta.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.3-beta.0
Patch Changes
- Updated dependencies [
f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
2.8.2
Patch Changes
- Updated dependencies [
b2e5ab66f84688ec304cfcf2c6f749c86aded549
]:- @apollo/[email protected]
2.8.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.0
Patch Changes
-
Various set context bugfixes (#3017)
-
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
,8a936d741a0c05835ff2533714cf330d18209179
]:- @apollo/[email protected]
2.8.0-alpha.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.0-alpha.0
Patch Changes
- Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
]:- @apollo/[email protected]
2.7.8
Patch Changes
-
Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
-
Updated dependencies [
2ad72802044310a528e8944f4538efe519424504
]:- @apollo/[email protected]
2.7.7
Patch Changes
-
No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in the release process, so we need to publish a new patch version (2.7.7). (#2999)
-
Updated dependencies [
bee0b0828b4fb6a1d3172ac330560e2ab6c046bb
]:- @apollo/[email protected]
2.7.6
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.7.5
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.7.4
Patch Changes
- Updated dependencies [
d80b7f0ca1456567a0866a32d2b2abf940598f77
]:- @apollo/[email protected]
2.7.3
Patch Changes
- Updated dependencies [
ec04c50b4fb832bfd281ecf9c0c2dd7656431b96
,a494631918156f0431ceace74281c076cf1d5d51
]:- @apollo/[email protected]
2.7.2
Patch Changes
- Updated dependencies [
33b937b18d3c7ca6af14b904696b536399e597d1
,09cd3e55e810ee513127b7440f5b11af7540c9b0
,d7189a86c27891af408d3d0184db6133d3342967
]:- @apollo/[email protected]
2.7.1
Patch Changes
- Updated dependencies [
493f5acd16ad92adf99c963659cd40dc5eac1219
]:- @apollo/[email protected]
2.7.0
Minor Changes
-
Implement progressive
@override
functionality (#2911)The progressive
@override
feature brings a new argument to the@override
directive:label: String
. When a label is added to an@override
application, the override becomes conditional, depending on parameters provided to the query planner (a set of which labels should be overridden). Note that this feature will be supported in router for enterprise users only.Out-of-the-box, the router will support a percentage-based use case for progressive
@override
. For example:type Query { hello: String @override(from: "original", label: "percent(5)") }
The above example will override the root
hello
field from the "original" subgraph 5% of the time.More complex use cases will be supported by the router via the use of coprocessors/rhai to resolve arbitrary labels to true/false values (i.e. via a feature flag service).
Patch Changes
- Updated dependencies [
6ae42942b13dccd246ccc994faa2cb36cd62cb3c
,66833fb8d04c9376f6ed476fed6b1ca237f477b7
,931f87c6766c7439936df706727cbdc0cd6bcfd8
]:- @apollo/[email protected]
2.6.3
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.6.2
Patch Changes
- Updated dependencies [
7b5b836d15247c997712a47847f603aa5887312e
,74ca7dd617927a20d79b824851f7651ef3c40a4e
]:- @apollo/[email protected]
2.6.1
Patch Changes
- Updated dependencies [
0d5ab01a
]:- @apollo/[email protected]
2.6.0
Patch Changes
- Updated dependencies [
b18841be
,e325b499
]:- @apollo/[email protected]
2.5.7
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.5.6
Patch Changes
- Updated dependencies [
c719214a
]:- @apollo/[email protected]
2.5.5
Patch Changes
-
Fix specific case for requesting __typename on interface entity type (#2775)
In certain cases, when resolving a __typename on an interface entity (due to it actual being requested in the operation), that fetch group could previously be trimmed / treated as useless. At a glance, it appears to be a redundant step, i.e.:
{ ... on Product { __typename id }} => { ... on Product { __typename} }
It's actually necessary to preserve this in the case that we're coming from an interface object to an (entity) interface so that we can resolve the concrete __typename correctly.
-
Updated dependencies []:
- @apollo/[email protected]
2.5.4
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.5.3
Patch Changes
@apollo/[email protected]
CHANGELOG for @apollo/query-planner
2.9.0
Patch Changes
-
Fix issue where variable was not passed into subgraph when embedded in a fragment (#3119)
-
Updated dependencies [
acfe3193429c7f99b4fc564b20828aaa8659a75c
,02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.5
🔒 Security
CVE-2024-43414: Prevent uncontrolled recursion for complex queries
Correct a bug where complex queries can cause uncontrolled recursion due to failure to reduce the number of possible query plans (classified as CWE-674). (#3128)
This weakness impacts all v2 versions of @apollo/query-planner
prior to this release. See the associated Github Advisory, GHSA-fmj9-77q8-g6c4, for more information.
- Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.8.4
Patch Changes
- Updated dependencies [
5f4bb160d024678d6facd471c43c8ec61c86e701
,672aca7cbeb0a6a38586357a4e154f2dd91caa0c
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.3
Patch Changes
-
Query graph caches now use maps instead of sparsely-populated arrays for per-subgraph data. (#3066)
-
Use sets instead of arrays for tracking schema type/directive referencers. (#3067)
-
Updated dependencies [
38debcf2f9af1a719bd1c8acbd9335efa8427ddb
,50d648ccffb05591878de75dc5522914ed48698f
,860aace9904e787f9bf05aad94be5b5920f10543
,f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.2
Patch Changes
- Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.0
Patch Changes
-
Query graph caches now use maps instead of sparsely-populated arrays for per-subgraph data. (#3066)
-
Use sets instead of arrays for tracking schema type/directive referencers. (#3067)
-
Updated dependencies [
38debcf2f9af1a719bd1c8acbd9335efa8427ddb
,860aace9904e787f9bf05aad94be5b5920f10543
,f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.2
Patch Changes
- Updated dependencies [
b2e5ab66f84688ec304cfcf2c6f749c86aded549
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.8.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
-
Various set context bugfixes (#3017)
-
Fix relative path logic when eliding subgraph jumps for
@fromContext
(#3005) -
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
,8a936d741a0c05835ff2533714cf330d18209179
,f5fe3e74d36722f78004c1e2e03c77d8b95cd6bf
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.0-alpha.1
Patch Changes
- Updated dependencies [
f5fe3e74d36722f78004c1e2e03c77d8b95cd6bf
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.0-alpha.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
-
Fix relative path logic when eliding subgraph jumps for
@fromContext
(#3005) -
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
]:- @apollo/[email protected]
- @apollo/[email protected]
2.7.8
Patch Changes
-
Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
-
Updated dependencies [
2ad72802044310a528e8944f4538efe519424504
]:- @apollo/[email protected]
- @apollo/[email protected]
2.7.7
Patch Changes
-
No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in the release process, so we need to publish a new patch version (2.7.7). (#2999)
-
Updated dependencies [
bee0b0828b4fb6a1d3172ac330560e2ab6c046bb
]:- @apollo/[email protected]
- @apollo/[email protected]
2.7.6
Patch Changes
-
There is no functionality change between 2.7.5 and 2.7.6. Triggering new release as previous one released partially leading to a broken experience. (#2997)
-
Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.7.5
Patch Changes
-
Fix issue with missing fragment definitions due to
generateQueryFragments
. (#2993)An incorrect implementation detail in
generateQueryFragments
caused certain queries to be missing fragment definitions. Specifically, subsequent fragment "candidates" with the same type condition and the same length of selections as a previous fragment weren't correctly added to the list of fragments. An example of an affected query is:query { t { ... on A { x y } } t2 { ... on A { y z } } }
...
@apollo/[email protected]
CHANGELOG for @apollo/query-graphs
2.9.0
Patch Changes
-
Avoid type explosion for inline fragments where the type condition is an interface that implements the parent type. (#3122)
-
Updated dependencies [
02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
2.8.5
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.4
Patch Changes
- Updated dependencies [
5f4bb160d024678d6facd471c43c8ec61c86e701
,672aca7cbeb0a6a38586357a4e154f2dd91caa0c
]:- @apollo/[email protected]
2.8.3
Patch Changes
-
Error messages are now lazily evaluated for satisfiability validations. (#3068)
-
Query graph caches now use maps instead of sparsely-populated arrays for per-subgraph data. (#3066)
-
Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
,f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
2.8.3-beta.2
Patch Changes
- Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
]:- @apollo/[email protected]
2.8.3-beta.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.3-beta.0
Patch Changes
-
Error messages are now lazily evaluated for satisfiability validations. (#3068)
-
Query graph caches now use maps instead of sparsely-populated arrays for per-subgraph data. (#3066)
-
Updated dependencies [
f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
2.8.2
Patch Changes
- Updated dependencies [
b2e5ab66f84688ec304cfcf2c6f749c86aded549
]:- @apollo/[email protected]
2.8.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.8.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
-
Various set context bugfixes (#3017)
-
Fix bug in context-matching logic for interfaces-implementing-interfaces (#3014) (#3015)
A field is considered to match a context if the field's parent type (in the original query) either has
@context
on it, or implements/is a member of a type with@context
on it. We ended up missing the case where interfaces implement interfaces; this PR introduces a fix. -
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
,8a936d741a0c05835ff2533714cf330d18209179
]:- @apollo/[email protected]
2.8.0-alpha.1
Patch Changes
-
Fix bug in context-matching logic for interfaces-implementing-interfaces (#3014) (#3015)
A field is considered to match a context if the field's parent type (in the original query) either has
@context
on it, or implements/is a member of a type with@context
on it. We ended up missing the case where interfaces implement interfaces; this PR introduces a fix. -
Updated dependencies []:
- @apollo/[email protected]
2.8.0-alpha.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
- Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
]:- @apollo/[email protected]
2.7.8
Patch Changes
-
Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
-
Updated dependencies [
2ad72802044310a528e8944f4538efe519424504
]:- @apollo/[email protected]
2.7.7
Patch Changes
-
No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in the release process, so we need to publish a new patch version (2.7.7). (#2999)
-
Updated dependencies [
bee0b0828b4fb6a1d3172ac330560e2ab6c046bb
]:- @apollo/[email protected]
2.7.6
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.7.5
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
2.7.4
Patch Changes
- Updated dependencies [
d80b7f0ca1456567a0866a32d2b2abf940598f77
]:- @apollo/[email protected]
2.7.3
Patch Changes
- Updated dependencies [
ec04c50b4fb832bfd281ecf9c0c2dd7656431b96
,a494631918156f0431ceace74281c076cf1d5d51
]:- @apollo/[email protected]
2.7.2
Patch Changes
- Updated dependencies [
33b937b18d3c7ca6af14b904696b536399e597d1
,09cd3e55e810ee513127b7440f5b11af7540c9b0
,d7189a86c27891af408d3d0184db6133d3342967
]:- @apollo/[email protected]
2.7.1
Patch Changes
- Updated dependencies [
493f5acd16ad92adf99c963659cd40dc5eac1219
]:- @apollo/[email protected]
2.7.0
Minor Changes
-
Implement progressive
@override
functionality (#2911)The progressive
@override
feature brings a new argument to the@override
directive:label: String
. When a label is added to an@override
application, the override becomes conditional, depending on parameters provided to the query planner (a set of which labels should be overridden). Note that this feature will be supported in router for enterprise users only.Out-of-the-box, the router will support a percentage-based use case for progressive
@override
. For example:type Query { hello: String @override(from: "original", label: "percent(5)") }
The above example will override the root
hello
field from the "original" subgraph 5% of the time.More complex use cases will be supported by the router via the use of coprocessors/rhai to resolve arbitrary l...
@apollo/[email protected]
CHANGELOG for @apollo/gateway
2.9.0
Patch Changes
-
Avoid type explosion for inline fragments where the type condition is an interface that implements the parent type. (#3122)
-
Reduce memory overhead during satisfiability checking when there are many options. (#3109)
-
Updated dependencies [
02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.5
🔒 Security
CVE-2024-43414: Prevent uncontrolled recursion for complex queries
Correct a bug where complex queries can cause uncontrolled recursion due to failure to reduce the number of possible query plans (classified as CWE-674). (#3128)
This weakness impacts all v2 versions of @apollo/gateway
prior to this release. See the associated Github Advisory, GHSA-fmj9-77q8-g6c4, for more information.
- Updated dependencies [
926cbb7949200e12b81100a07fa3438b5ae9efd0
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.4
Patch Changes
- Updated dependencies [
4d9e0f6390c5114132d205ab73b6aa1b9ffa8cd8
,5f4bb160d024678d6facd471c43c8ec61c86e701
,672aca7cbeb0a6a38586357a4e154f2dd91caa0c
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.3
Patch Changes
- Updated dependencies [
38debcf2f9af1a719bd1c8acbd9335efa8427ddb
,50d648ccffb05591878de75dc5522914ed48698f
,860aace9904e787f9bf05aad94be5b5920f10543
,67b70c6e68b1cdbf8f03dacafd636e27ed9b7814
,f753d55e9a49d11389ee4f8d7976533447e95ede
,f5f6a799d6b3675eecb0eaec7a816d746cd136b2
,42bd27af6a23bcfdd36951dbfa3fb9f7ba833f3a
,f376447a820e3c0ae41d16d1fd3b681d2f1e8c14
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.2
Patch Changes
- Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.1
Patch Changes
- Updated dependencies [
f376447a820e3c0ae41d16d1fd3b681d2f1e8c14
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.0
Patch Changes
- Updated dependencies [
38debcf2f9af1a719bd1c8acbd9335efa8427ddb
,860aace9904e787f9bf05aad94be5b5920f10543
,67b70c6e68b1cdbf8f03dacafd636e27ed9b7814
,f753d55e9a49d11389ee4f8d7976533447e95ede
,f5f6a799d6b3675eecb0eaec7a816d746cd136b2
,42bd27af6a23bcfdd36951dbfa3fb9f7ba833f3a
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.2
Patch Changes
- Updated dependencies [
b2e5ab66f84688ec304cfcf2c6f749c86aded549
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.1
Patch Changes
- Updated dependencies [
61f2b6b12ee83e7ecb6509f7131f9412a37e194b
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
-
Various set context bugfixes (#3017)
-
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
,8a936d741a0c05835ff2533714cf330d18209179
,daf36bd242ba4db0cfcf0e18c1eed235ff0dfaf2
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.0-alpha.1
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.8.0-alpha.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
- Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
,daf36bd242ba4db0cfcf0e18c1eed235ff0dfaf2
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.7.8
Patch Changes
-
Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
-
Updated dependencies [
2ad72802044310a528e8944f4538efe519424504
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]
2.7.7
Patch Changes
-
No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in the release process, so we need to publish a new patch version (2.7.7). (#2999)
-
Updated dependencies [[
bee0b0828b4fb6a1d3172ac330560e2ab6c046bb
](bee0b0828b4fb6a1d3172ac330560...
@apollo/[email protected]
CHANGELOG for @apollo/federation-internals
2.9.0
Minor Changes
- Implements two new directives for defining custom costs for demand control. The
@cost
directive allows setting a custom weight to a particular field in the graph, overriding the default cost calculation. The@listSize
directive gives the cost calculator information about how to estimate the size of lists returned by subgraphs. This can either be a static size or a value derived from input arguments, such as paging parameters. (#3074)
Patch Changes
-
Reduce memory overhead during satisfiability checking when there are many options. (#3109)
-
Fix issue where variable was not passed into subgraph when embedded in a fragment (#3119)
2.8.5
2.8.4
Patch Changes
-
When auto-upgrading schemas from fed1, never add @Shareable on subscription fields. (#3094)
-
Save time in SchemaUpgrader by pre-computing which subgraphs contain each type (#3057)
2.8.3
Patch Changes
-
dummy commit to force beta.2 (#3078)
-
For very large graphs cloning types with lots of join directives can be expensive. Since these directives will not be used in the Schema that is cloned for toAPISchema(), add the ability to optionally omit them (#3053)
-
Use sets instead of arrays for tracking schema type/directive referencers. (#3067)
2.8.3-beta.2
Patch Changes
- dummy commit to force beta.2 (#3078)
2.8.3-beta.1
2.8.3-beta.0
Patch Changes
-
For very large graphs cloning types with lots of join directives can be expensive. Since these directives will not be used in the Schema that is cloned for toAPISchema(), add the ability to optionally omit them (#3053)
-
Use sets instead of arrays for tracking schema type/directive referencers. (#3067)
2.8.2
Patch Changes
- generateQueryFragments() could generate fragments with naming collisions when nested (#3043)
2.8.1
2.8.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
- Various set context bugfixes (#3017)
2.8.0-alpha.1
2.8.0-alpha.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
2.7.8
Patch Changes
- Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
2.7.7
Patch Changes
- No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in the release process, so we need to publish a new patch version (2.7.7). (#2999)
2.7.6
2.7.5
2.7.4
Patch Changes
- Fixed a regression created by PR (#2967), where directives would not be properly attached to their parent. (#2982) (#2984)
2.7.3
Patch Changes
-
Fix a query planning bug where invalid subgraph queries are generated with
reuseQueryFragments
set true. (#2952) (#2963) -
Fixed query planner to pass the directives from original query to subgraph operations (#2961) (#2967)
2.7.2
Patch Changes
-
When a linked directive requires a federation version higher than the linked federation spec, upgrade to the implied version and issue a hint (#2929)
-
When auto-upgrading a subgraph (i.e. one that does not explicitly @link the federation spec) do not go past v2.4. This is so that subgraphs will not inadvertently require the latest join spec (which cause the router or gateway not to start if running an older version). (#2933)
-
Add new
generateQueryFragments
option to query planner config (#2958)If enabled, the query planner will extract inline fragments into fragment definitions before sending queries to subgraphs. This can significantly reduce the size of the query sent to subgraphs, but may increase the time it takes to plan the query.
2.7.1
Patch Changes
- Additional
SourceSpecDefinition
validations and bug fixes (#2914)
2.7.0
Minor Changes
-
Implement progressive
@override
functionality (#2911)The progressive
@override
feature brings a new argument to the@override
directive:label: String
. When a label is added to an@override
application, the override becomes conditional, depending on parameters provided to the query planner (a set of which labels should be overridden). Note that this feature will be supported in router for enterprise users only.Out-of-the-box, the router will support a percentage-based use case for progressive
@override
. For example:type Query { hello: String @override(from: "original", label: "percent(5)") }
The above example will override the root
hello
field from the "original" subgraph 5% of the time.More complex use cases will be supported by the router via the use of coprocessors/rhai to resolve arbitrary labels to true/false values (i.e. via a feature flag service).
-
Allow known
FeatureDefinition
subclasses to define custom subgraph schema validation rules (#2910) -
Support
@join__directive(graphs, name, args)
directives (#2894)
2.6.3
2.6.2
Patch Changes
-
Avoid
>=
comparison forFeatureVersion
objects (#2883) -
Fix query planning bug where
__typename
on interface object types in named fragments can cause query plan execution to fail. (#2886) (#2886)
2.6.1
Patch Changes
- Add missing
@policy
directive top level exports (#2869)
2.6.0
Minor Changes
-
Update
license
field inpackage.json
to useElastic-2.0
SPDX identifier (#2741) -
Introduce the new
@policy
scope for composition (#2818)Note that this directive will only be fully supported by the Apollo Router as a GraphOS Enterprise feature at runtime. Also note that composition of valid
@policy
directive applications will succeed, but the resulting supergraph will not be executable by the Gateway or an Apollo Router which doesn't have the GraphOS Enterprise entitlement.Users may now compose
@policy
applications from their subgraphs into a supergraph.The directive is defined as follows:
scalar federation__Policy directive @policy( policies: [[federation__Policy!]!]! ) on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM
The
Policy
scalar is effectively aString
, similar to theFieldSet
type.In order to compose your
@policy
usages, you must update your subgraph's federation spec version to v2.6 and add the@policy
import to your existing imports like so:@link(url: "https://specs.apollo.dev/federation/v2.6", import: [..., "@policy"])
2.5.7
2.5.6
Patch Changes
- Fixing issue where redeclaration of custom scalars in a fed1 schema may cause upgrade errors (#2809)
2.5.5
2.5.4
2.5.3
Patch Changes
- Modifies the type for the argument of the
@requiresScopes
from `[federation__Scope!]!...
@apollo/[email protected]
CHANGELOG for @apollo/composition
2.9.0
Minor Changes
- Implements two new directives for defining custom costs for demand control. The
@cost
directive allows setting a custom weight to a particular field in the graph, overriding the default cost calculation. The@listSize
directive gives the cost calculator information about how to estimate the size of lists returned by subgraphs. This can either be a static size or a value derived from input arguments, such as paging parameters. (#3074)
Patch Changes
-
Reduce memory overhead during satisfiability checking when there are many options. (#3109)
-
Updated dependencies [
acfe3193429c7f99b4fc564b20828aaa8659a75c
,02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.5
Patch Changes
- Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.8.4
Patch Changes
-
When doing interface type intersection detection, allow @interfaceObject to stand in for any type (#3087)
-
Updated dependencies [
5f4bb160d024678d6facd471c43c8ec61c86e701
,672aca7cbeb0a6a38586357a4e154f2dd91caa0c
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.3
Patch Changes
-
Error messages are now lazily evaluated for satisfiability validations. (#3068)
-
Query graph caches now use maps instead of sparsely-populated arrays for per-subgraph data. (#3066)
-
Add a fast path to skip override validation for fields without any subgraph
@override
s. (#3070) -
Type merging now uses maps instead of sparsely-populated arrays for per-subgraph data. (#3069)
-
Stop duplicating hints for inconsistent value type fields per subgraph. (#3071)
-
Fix logic to compute missing subgraphs when generating composition hints/errors (#3076)
-
Use sets instead of arrays for tracking schema type/directive referencers. (#3067)
-
Updated dependencies [
38debcf2f9af1a719bd1c8acbd9335efa8427ddb
,50d648ccffb05591878de75dc5522914ed48698f
,860aace9904e787f9bf05aad94be5b5920f10543
,f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.2
Patch Changes
- Updated dependencies [
50d648ccffb05591878de75dc5522914ed48698f
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.1
Patch Changes
-
Fix logic to compute missing subgraphs when generating composition hints/errors (#3076)
-
Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.8.3-beta.0
Patch Changes
-
Error messages are now lazily evaluated for satisfiability validations. (#3068)
-
Query graph caches now use maps instead of sparsely-populated arrays for per-subgraph data. (#3066)
-
Add a fast path to skip override validation for fields without any subgraph
@override
s. (#3070) -
Type merging now uses maps instead of sparsely-populated arrays for per-subgraph data. (#3069)
-
Stop duplicating hints for inconsistent value type fields per subgraph. (#3071)
-
Use sets instead of arrays for tracking schema type/directive referencers. (#3067)
-
Updated dependencies [
38debcf2f9af1a719bd1c8acbd9335efa8427ddb
,860aace9904e787f9bf05aad94be5b5920f10543
,f753d55e9a49d11389ee4f8d7976533447e95ede
,3af790517d662f3bec9064c0bf243014c579e9cd
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.2
Patch Changes
- Updated dependencies [
b2e5ab66f84688ec304cfcf2c6f749c86aded549
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.1
Patch Changes
-
Fix performance regression in needsJoinField() for large graphs (#3038)
-
Updated dependencies []:
- @apollo/[email protected]
- @apollo/[email protected]
2.8.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
-
Various set context bugfixes (#3017)
-
Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
,8a936d741a0c05835ff2533714cf330d18209179
,f5fe3e74d36722f78004c1e2e03c77d8b95cd6bf
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.0-alpha.1
Patch Changes
- Updated dependencies [
f5fe3e74d36722f78004c1e2e03c77d8b95cd6bf
]:- @apollo/[email protected]
- @apollo/[email protected]
2.8.0-alpha.0
Minor Changes
-
Implement new directives to allow getting and setting context. This allows resolvers to reference and access data referenced by entities that exist in the GraphPath that was used to access the field. The following example demonstrates the ability to access the
prop
field within the Child resolver. (#2988)type Query { p: Parent! } type Parent @key(fields: "id") @context(name: "context") { id: ID! child: Child! prop: String! } type Child @key(fields: "id") { id: ID! b: String! field(a: String @fromContext(field: "$context { prop }")): Int! }
Patch Changes
- Updated dependencies [
c4744da360235d8bb8270ea048f0e0fa5d03be1e
]:- @apollo/[email protected]
- @apollo/[email protected]
2.7.8
Patch Changes
-
Triggering a clean 2.7.8 release now that harmonizer build has been fixed. (#3010)
-
Updated dependencies [
2ad72802044310a528e8944f4538efe519424504
]:- @apollo/[email protected]
- @apollo/[email protected]
2.7.7
Patch Changes
- No logical changes since 2.7.5 or 2.7.6, but we fixed a bug in th...
@apollo/[email protected]
Patch Changes
- Updated dependencies [
02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Fix issue where variable was not passed into subgraph when embedded in a fragment (#3119)
-
Updated dependencies [
acfe3193429c7f99b4fc564b20828aaa8659a75c
,02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Avoid type explosion for inline fragments where the type condition is an interface that implements the parent type. (#3122)
-
Updated dependencies [
02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
@apollo/[email protected]
Patch Changes
-
Avoid type explosion for inline fragments where the type condition is an interface that implements the parent type. (#3122)
-
Reduce memory overhead during satisfiability checking when there are many options. (#3109)
-
Updated dependencies [
02c2a34a62c3717a4885449172e404f19ebf66c9
,0ccfd937d4b4a576f890665ceebbd7986fac5d0c
,e0a5075c0d12a0e2f7ef303b246e3216a139d3e0
]:- @apollo/[email protected]
- @apollo/[email protected]
- @apollo/[email protected]