CHANGELOG for @apollo/subgraph
2.7.4
Patch Changes
- Updated dependencies [
d80b7f0ca1456567a0866a32d2b2abf940598f77
]:- @apollo/federation-internals@2.7.4
2.7.3
Patch Changes
- Updated dependencies [
ec04c50b4fb832bfd281ecf9c0c2dd7656431b96
,a494631918156f0431ceace74281c076cf1d5d51
]:- @apollo/federation-internals@2.7.3
2.7.2
Patch Changes
- Updated dependencies [
33b937b18d3c7ca6af14b904696b536399e597d1
,09cd3e55e810ee513127b7440f5b11af7540c9b0
,d7189a86c27891af408d3d0184db6133d3342967
]:- @apollo/federation-internals@2.7.2
2.7.1
Patch Changes
- Updated dependencies [
493f5acd16ad92adf99c963659cd40dc5eac1219
]:- @apollo/federation-internals@2.7.1
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/federation-internals@2.7.0
2.6.3
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.6.3
2.6.2
Patch Changes
- Updated dependencies [
7b5b836d15247c997712a47847f603aa5887312e
,74ca7dd617927a20d79b824851f7651ef3c40a4e
]:- @apollo/federation-internals@2.6.2
2.6.1
Patch Changes
- Updated dependencies [
0d5ab01a
]:- @apollo/federation-internals@2.6.1
2.6.0
Patch Changes
2.5.7
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.5.7
2.5.6
Patch Changes
- Updated dependencies [
c719214a
]:- @apollo/federation-internals@2.5.6
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/federation-internals@2.5.5
2.5.4
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.5.4
2.5.3
Patch Changes
2.5.2
Patch Changes
- Updated dependencies [
35179f08
]:- @apollo/federation-internals@2.5.2
2.5.1
Patch Changes
- Updated dependencies [
b9052fdd
]:- @apollo/federation-internals@2.5.1
2.5.0
Minor Changes
-
Introduce the new
@authenticated
directive for composition (#2644)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
@authenticated
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
@authenticated
applications from their subgraphs into a supergraph. This addition will support a future version of Apollo Router that enables authenticated access to specific types and fields via directive applications.The directive is defined as follows:
directive @authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM
In order to compose your
@authenticated
usages, you must update your subgraph's federation spec version to v2.5 and add the@authenticated
import to your existing imports like so:@link(url: "https://specs.apollo.dev/federation/v2.5", import: [..., "@authenticated"])
Patch Changes
- Updated dependencies [
fe1e3d7b
,6b18af50
,9396c0d6
,2b5796a9
,4f3c3b9e
]:- @apollo/federation-internals@2.5.0
2.4.10
Patch Changes
- Updated dependencies [
b6be9f96
]:- @apollo/federation-internals@2.4.10
2.4.9
Patch Changes
- Updated dependencies [
7ac83456
,d60349b3
,1bb7c512
,02eab3ac
,fd4545c2
]:- @apollo/federation-internals@2.4.9
2.4.8
Patch Changes
2.4.7
Patch Changes
- Updated dependencies [
2d44f346
]:- @apollo/federation-internals@2.4.7
2.4.6
Patch Changes
2.4.5
Patch Changes
-
Supersedes v2.4.4 due to a publishing error with no dist/ folder (#2583)
-
Updated dependencies [
c96e24c4
]:- @apollo/federation-internals@2.4.5
2.4.4
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.4.4
2.4.3
Patch Changes
-
Resolve
Promise
references before calling__resolveType
on interface (#2556)Since the introduction of entity interfaces, users could not return
aPromise
from__resolveReference
while implementing a synchronous,
custom__resolveType
function. This change fixes/permits this use case.Additional background / implementation details:
Returning a
Promise
from__resolveReference
has historically never
been an issue. However, with the introduction of entity interfaces, the
calling of an interface's__resolveType
function became a new concern.__resolveType
functions expect a reference (and shouldn't be concerned
with whether those references are wrapped in aPromise
). In order to
address this, we canawait
the reference before calling the
__resolveType
(this handles both the non-Promise
andPromise
case). -
Updated dependencies [
f6a8c1ce
]:- @apollo/federation-internals@2.4.3
2.4.2
Patch Changes
2.4.1
Patch Changes
-
Start building packages with TS 5.x, which should have no effect on consumers (#2480)
-
Updated dependencies [
450b9578
,afde3158
,eafebc3c
,01fe3f83
]:- @apollo/federation-internals@2.4.1
2.4.0
Patch Changes
-
Optimises query plan generation for parts of queries that can statically be known to not cross across subgraphs (#2449)
-
Updated dependencies [
260c357c
,7bc0f8e8
,1a555d98
,cab383b2
]:- @apollo/federation-internals@2.4.0
2.4.0-alpha.1
Patch Changes
- Updated dependencies [
7bc0f8e8
]:- @apollo/federation-internals@2.4.0-alpha.1
2.4.0-alpha.0
Patch Changes
2.3.5
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.3.5
2.3.4
Patch Changes
- Updated dependencies [
6e2d24b5
]:- @apollo/federation-internals@2.3.4
2.3.3
Patch Changes
-
Correctly attach provided subscription resolvers to the schema object (#2388)
-
Updated dependencies []:
- @apollo/federation-internals@2.3.3
2.3.2
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.3.2
2.3.1
Patch Changes
- Updated dependencies []:
- @apollo/federation-internals@2.3.1
This CHANGELOG pertains only to Apollo Federation packages in the 2.x range. The Federation v0.x equivalent for this package can be found here on the version-0.x
branch of this repo.
2.3.0-beta.2
@tag
directive support for theSCHEMA
location. This has been added to the 2.3 version of the federation spec, so to access this functionality you must bump your federation spec version to 2.3 by using@link(url: "https://specs.apollo.dev/federation/v2.3", ...)
on yourschema
element. PR #2314.
2.3.0
- Adds support for the 2.3 version of the federation spec (that is,
@link(url: "https://specs.apollo.dev/federation/v2.3")
), with: - New
@interfaceObject
directive and support for keys on interfaces.
2.2.0
- Adds support for the 2.2 version of the federation spec (that is,
@link(url: "https://specs.apollo.dev/federation/v2.2")
), which: - allows
@shareable
to be repeatable so it can be allowed on both a type definition and its extensions PR #2175. - Drop support for node12 PR #2202
2.1.0
- Update peer dependency
graphql
to^16.5.0
to useGraphQLErrorOptions
PR #2060 - Remove dependency on apollo-server-types PR #2037
- Expand support for Node.js v18 PR #1884
2.0.3
- Fix output of
printSubgraphSchema
method, ensuring it can be read back by composition andbuildSubgraphSchema
PR #1831. - Fix definition of
@key
to be repeatable PR #1826.
2.0.2
- Add __resolveType to _Entity union PR #1773
v2.0.1
- Released in sync with other federation packages but no changes to this package.
v2.0.0
- Previous preview release promoted to general availability! Please see previous changelog entries for full info.
v2.0.0-preview.14
- Implement
buildSubgraphSchema
using federation internals PR #1697
v2.0.0-preview.13
- Revert previous
@apollo/core-schema
update due to incopatibilities with some existing schemas PR #1704
v2.0.0-preview.12
- Generate a core schema in
buildSubgraphSchema
, incorporating the latest changes from@apollo/core-schema
PR #1554
v2.0.0-preview.9
- Adds Support for
@tag/v0.2
, which allows the@tag
directive to be additionally placed on arguments, scalars, enums, enum values, input objects, and input object fields. PR #1652. - Adds support for the
@override
directive on fields to indicate that a field should be moved from one subgraph to another. PR #1484
v2.0.0-preview.7
- Automatically add the
@tag
directive definition inbuildSubgraphSchema
(but still support it if the definition is present in the input document) PR #1600.
v2.0.0-preview.2
- Re-publishing release which published to npm with stale build artifacts from
version-0.x
release.
v2.0.0-preview.1
- No-op publish to account for publishing difficulties.
v2.0.0-preview.0
- Initial "preview" release.
v2.0.0-alpha.6
- No direct changes. Just bumping to maintain version alignment with other v2.0.0 alpha packages.
v2.0.0-alpha.5
- No direct changes. Just bumping to maintain version alignment with other v2.0.0 alpha packages.
v2.0.0-alpha.4
- Print description text for the
schema
definition node, as allowed per the October 2021 edition of the GraphQL specification PR #1464. - Make sure scalars don't print a
specifiedBy
directive unless specified in the subgraph. PR #1463 - Remove
graphql@15
from peer dependencies PR #1472.
v2.0.0-alpha.2
- BREAKING: Bump graphql peer dependency to
^15.7.0
PR #1200
v2.0.0-alpha.1
- 🎉 Initial alpha release of Federation 2.0. For more information, see our [documentation](https://www.apollographql.com/d ocs/federation/v2/). We look forward to your feedback!
Note! While packages like
@apollo/gateway
and@apollo/query-planner
do have substantial changes in Federation 2, currently, there are no substantial changes to this package. We anticipate that could change by the end of the v2 series.
v0.1.3
- Updates to transitive dependencies. No other substantial changes.
v0.1.2
- Expose
printSubgraphSchema()
as a top-level export of the@apollo/subgraph
package to maintain backwards compatibility with theprintSchema()
export from@apollo/federation
#1078
v0.1.1
- Correctly print
@tag
definitions and usages in subgraph SDL query #1071
v0.1.0
- Initial release of new
@apollo/subgraph
package. This package is the subgraph-related slice of the@apollo/federation
package which was previously responsible for both subgraph and composition bits.@apollo/federation
users will experience no change in behavior for now, but our docs will suggest the usage of the@apollo/subgraph
package going forward. For past iterations and CHANGELOG information of related work, see the@apollo/federation
CHANGELOG.mdPR #1058