@graphql-mesh/fusion-composition
Changelog for @graphql-mesh/fusion-composition: every release with its changes and the pull requests behind them.
0.11.2
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.107.1
0.11.1
Patch Changes
- #9635
c47a0c0Thanks @ardatan! - Preserve interface implementors and union members when encapsulating a subgraph, keep original field directives on wrapped fields, and nest a second encapsulate (same outer name across subgraphs) without dropping inner namespaces.
0.11.0
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.107.0
0.10.0
Minor Changes
-
#6007
0f4ec4aThanks @SGudbrandsson! - Add optionalforceto prefix protected custom scalars (e.g. from graphql-scalars) that are ignored by default. GraphQL-specified scalars stay unprefixed.Note: v1
createPrefixTransformpreviously prefixed those protected scalars by default; that was a bug. Aligning with the legacy ignore behavior is a bug fix (not a breaking change). Useforceto opt in.
Patch Changes
-
#9609
07c7b8eThanks @ardatan! - Batched@resolveTojoins can now match results to keys by a field on each result (valueKeyField), instead of assuming the upstream returns one row per key in request order. Use this for collection-style sources (Strapi filters, Hasurawhere, SQLIN (...), and similar) that return rows in their own order, skip missing keys, or return multiple rows per key.Example:
extend type SearchResult { products: [Product!]! @resolveTo( sourceName: "Products" sourceTypeName: "Query" sourceFieldName: "productsBySkus" keyField: "sku" keysArg: "skus" valueKeyField: "sku" ) }Docs: Schema Extensions → Matching results by a field (
valueKeyField) -
Updated dependencies [
a7cbeef,e148b13,07c7b8e]:- @graphql-mesh/utils@0.106.0
0.9.2
Patch Changes
-
#9603
f2f715fThanks @enisdenjo! - Hide types that become unreachable whencreateFilterTransformfilters their last accessible fieldThe filter transform keeps filtered fields in the executable subgraph schema and marks them with
@inaccessible. This is necessary because their definitions can still carry execution metadata, but it also means that a later prune transform considers their referenced types reachable. Those types were consequently left in the public API schema, including generated unions whose operations had all been filtered.The transform now compares schema reachability before and after applying its filters. Types that were reachable before filtering but are unreachable afterward are marked with
@inaccessible, allowing composition to omit them from the public API while retaining them in the supergraph for execution. Types that were already unreachable before filtering and root operation types are preserved to avoid changing existing filtering behavior. Enum types are also preserved because federation validates enum values used in argument defaults before removing inaccessible fields from the API schema.
0.9.1
Patch Changes
-
#9586
096ed33Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.38↗︎ (from^10.0.36, independencies) - Updated dependency
@graphql-tools/stitching-directives@^4.0.27↗︎ (from^4.0.24, independencies) - Updated dependency
@graphql-tools/utils@^11.2.2↗︎ (from^11.2.0, independencies)
- Updated dependency
-
#9592
7383889Thanks @dependabot! - dependencies updates:- Updated dependency
minimatch@^10.2.6↗︎ (from^10.2.5, independencies)
- Updated dependency
-
Updated dependencies [
096ed33]:- @graphql-mesh/utils@0.105.1
0.9.0
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.105.0
0.8.50
Patch Changes
-
#9465
eece882Thanks @zcag! - dependencies updates:- Updated dependency
@graphql-mesh/utils@^0.104.37↗︎ (from^0.104.36, independencies) - Updated dependency
@graphql-tools/schema@^10.0.34↗︎ (from^10.0.32, independencies) - Updated dependency
@graphql-tools/stitching-directives@^4.0.22↗︎ (from^4.0.20, independencies) - Updated dependency
@graphql-tools/utils@^11.1.1↗︎ (from^11.1.0, independencies)
- Updated dependency
-
#9530
6282a71Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.34↗︎ (from^10.0.33, independencies) - Updated dependency
@graphql-tools/stitching-directives@^4.0.22↗︎ (from^4.0.21, independencies) - Updated dependency
@graphql-tools/utils@^11.1.1↗︎ (from^11.1.0, independencies)
- Updated dependency
-
#9547
b28d9ecThanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.36↗︎ (from^10.0.34, independencies) - Updated dependency
@graphql-tools/stitching-directives@^4.0.23↗︎ (from^4.0.22, independencies) - Updated dependency
@graphql-tools/utils@^11.2.0↗︎ (from^11.1.1, independencies)
- Updated dependency
-
#9560
1b0e3c4Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.24↗︎ (from^4.0.23, independencies)
- Updated dependency
-
Updated dependencies [
eece882,444fbbe,6282a71,2c347d5,b28d9ec,1b0e3c4,4c56adc]:- @graphql-mesh/utils@0.104.38
0.8.49
Patch Changes
-
#9470
1da4b45Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.33↗︎ (from^10.0.32, independencies)
- Updated dependency
-
#9490
fa18e2dThanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.21↗︎ (from^4.0.20, independencies)
- Updated dependency
-
Updated dependencies [
1da4b45,fa18e2d,7cfc2a0]:- @graphql-mesh/utils@0.104.37
0.8.48
Patch Changes
- #9454
9e23b1fThanks @ardatan! - Do not mark root types inaccessible solely because all of their fields were filtered out. Previously, filtering allMutationfields also made theMutationtype inaccessible, which was unintended. Now, root types are only marked inaccessible when explicitly marked as such. If allMutationfields are filtered, theMutationtype remains accessible while those fields are marked inaccessible.
0.8.47
Patch Changes
-
#9430
8c7b764Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.20↗︎ (from^4.0.19, independencies)
- Updated dependency
-
#9446
6943e28Thanks @enisdenjo! - dependencies updates:- Updated dependency
@graphql-tools/utils@^11.1.0↗︎ (from^11.0.1, independencies)
- Updated dependency
-
Updated dependencies [
8c7b764,6943e28,6943e28]:- @graphql-mesh/utils@0.104.36
0.8.46
Patch Changes
0.8.45
Patch Changes
-
#9406
af31a59Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.32↗︎ (from^10.0.31, independencies) - Updated dependency
@graphql-tools/utils@^11.0.1↗︎ (from^11.0.0, independencies)
- Updated dependency
-
#9407
6449161Thanks @dependabot! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.22.2↗︎ (from^0.22.1, independencies)
- Updated dependency
-
Updated dependencies [
af31a59]:- @graphql-mesh/utils@0.104.35
0.8.44
Patch Changes
0.8.43
Patch Changes
-
#9398
bc4b5d0Thanks @ardatan! - Add validation for transforms such as Federation Transform to provide better error messages when the configuration is incorrect. This includes suggestions for field names and argument names when they are not found in the schema. Additionally, improve error messages when applying transforms to subgraphs.This also adds validation for
@mergeand@resolveTodirectives to ensure that the referenced fields and arguments exist in the subgraph schemas, providing suggestions when they do not.
0.8.42
Patch Changes
- #9389
95a2d10Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.19↗︎ (from^4.0.18, independencies)
- Updated dependency
- Updated dependencies
[
95a2d10]:- @graphql-mesh/utils@0.104.34
0.8.41
Patch Changes
- #9375
5c4b93bThanks @dependabot! - dependencies updates:- Updated dependency
minimatch@^10.2.5↗︎ (from^10.2.4, independencies)
- Updated dependency
- Updated dependencies
[
46d8eed]:- @graphql-mesh/utils@0.104.33
0.8.40
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.32
0.8.39
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.31
0.8.38
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.30
0.8.37
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.29
0.8.36
Patch Changes
- #9329
300aea0Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.18↗︎ (from^4.0.17, independencies)
- Updated dependency
- Updated dependencies
[
300aea0]:- @graphql-mesh/utils@0.104.28
0.8.35
Patch Changes
-
#9323
94c37cdThanks @dependabot! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.22.1↗︎ (from^0.22.0, independencies)
- Updated dependency
-
#9311
17630d2Thanks @ardatan! - Fix incompatibility when encapsulation and prefix transforms are combined
0.8.34
Patch Changes
- #9315
2c80833Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.17↗︎ (from^4.0.14, independencies)
- Updated dependency
- Updated dependencies
[
2c80833]:- @graphql-mesh/utils@0.104.27
0.8.33
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.26
0.8.32
Patch Changes
-
#9278
04df502Thanks @ardatan! - If the encapsulated fields are conflicting, they will be renamed to include the subgraph name as a prefix and the renamed fields will be marked with the@inaccessibledirective. For example, if both Subgraph A and Subgraph B have agetItemsfield, they will be renamed to_encapsulated_SubgraphA_getItemsand_encapsulated_SubgraphB_getItemsrespectively, and the originalgetItemsfields will be removed from the root type to prevent conflicts.Subgraph A
type Query { getItems: [SubgraphA_Item] } type SubgraphA_Item { id: ID }Subgraph B
type Query { getItems: [SubgraphB_Item] } type SubgraphB_Item { id: ID } -
Updated dependencies []:
- @graphql-mesh/utils@0.104.25
0.8.31
Patch Changes
- #9268
457549eThanks @dependabot! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.22.0↗︎ (from^0.21.3, independencies)
- Updated dependency
0.8.30
Patch Changes
-
#9258
e42819bThanks @dependabot! - dependencies updates:- Updated dependency
minimatch@^10.2.4↗︎ (from^10.2.2, independencies)
- Updated dependency
-
#9261
a442cbeThanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.14↗︎ (from^4.0.13, independencies)
- Updated dependency
-
Updated dependencies [
a442cbe]:- @graphql-mesh/utils@0.104.24
0.8.29
Patch Changes
- #9244
63b2a0bThanks @dependabot! - dependencies updates:- Updated dependency
minimatch@^10.2.2↗︎ (from^10.1.2, independencies)
- Updated dependency
0.8.28
Patch Changes
- #9228
d213cd9Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.13↗︎ (from^4.0.12, independencies)
- Updated dependency
- Updated dependencies
[
d213cd9]:- @graphql-mesh/utils@0.104.23
0.8.27
Patch Changes
-
#9199
6c65df7Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.12↗︎ (from^4.0.10, independencies)
- Updated dependency
-
#9203
b25cc8eThanks @dependabot! - dependencies updates:- Updated dependency
minimatch@^10.1.2↗︎ (from^10.0.3, independencies)
- Updated dependency
-
#9149
235c56bThanks @ardatan! - AssignQuery.typenamesByKeysListsemantic convention as the entity resolver.Previously it only assigned
Query.typenamesByKeyssemantic convention for batched type resolutions -
Updated dependencies [
6c65df7]:- @graphql-mesh/utils@0.104.22
0.8.26
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.21
0.8.25
Patch Changes
-
#9120
c219668Thanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.31↗︎ (from^10.0.30, independencies) - Updated dependency
@graphql-tools/stitching-directives@^4.0.9↗︎ (from^4.0.8, independencies) - Updated dependency
@graphql-tools/utils@^11.0.0↗︎ (from^10.11.0, independencies)
- Updated dependency
-
#9129
3f91b5aThanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.10↗︎ (from^4.0.9, independencies)
- Updated dependency
-
Updated dependencies [
c219668,3f91b5a]:- @graphql-mesh/utils@0.104.20
0.8.24
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.19
0.8.23
Patch Changes
-
#9061
3878067Thanks @dependabot! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.21.1↗︎ (from^0.21.0, independencies)
- Updated dependency
-
#9112
d420cb2Thanks @tazsingh! - Fix Fusion Composition not forwarding sourceArgs to @resolveTo
0.8.22
Patch Changes
-
#9027
72c443cThanks @dependabot! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.30↗︎ (from^10.0.5, independencies) - Updated dependency
@graphql-tools/stitching-directives@^4.0.8↗︎ (from^4.0.0, independencies) - Updated dependency
@graphql-tools/utils@^10.11.0↗︎ (from^10.8.0, independencies)
- Updated dependency
-
#9040
ff31a2bThanks @dependabot! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.21.0↗︎ (from^0.20.0, independencies)
- Updated dependency
-
Updated dependencies [
72c443c]:- @graphql-mesh/utils@0.104.18
0.8.21
Patch Changes
- Updated dependencies
[
3987b80]:- @graphql-mesh/utils@0.104.17
0.8.20
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.16
0.8.19
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.15
0.8.18
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.14
0.8.17
Patch Changes
-
#8745
dfc6bc1Thanks @renovate! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^4.0.0↗︎ (from^3.1.9, independencies)
- Updated dependency
-
#8761
c880540Thanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.20.0↗︎ (from^0.19.0, independencies)
- Updated dependency
-
Updated dependencies [
dfc6bc1,865b000]:- @graphql-mesh/utils@0.104.13
0.8.16
Patch Changes
-
8c1456dThanks @ardatan! - Fix issues with missing query type andextendsmodifier -
Updated dependencies [
ffec6e7]:- @graphql-mesh/utils@0.104.12
0.8.15
Patch Changes
- Updated dependencies
[
d61faf0]:- @graphql-mesh/utils@0.104.11
0.8.14
Patch Changes
0.8.13
Patch Changes
- Updated dependencies
[
0c18fe1]:- @graphql-mesh/utils@0.104.9
0.8.12
Patch Changes
-
#8710
76df3d1Thanks @ardatan! - Use the latest compatible federation version v2.6 not v2.3 when upgrading the existing import -
Updated dependencies [
fb6e935]:- @graphql-mesh/utils@0.104.8
0.8.11
Patch Changes
- #8683
00dd66aThanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.19.0↗︎ (from^0.18.2, independencies)
- Updated dependency
- Updated dependencies
[
c37c23b]:- @graphql-mesh/utils@0.104.7
0.8.10
Patch Changes
- Updated dependencies
[
e2666bc]:- @graphql-mesh/utils@0.104.6
0.8.9
Patch Changes
- Updated dependencies
[
9d61d75]:- @graphql-mesh/utils@0.104.5
0.8.8
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.104.4
0.8.7
Patch Changes
74672d0Thanks @ardatan! - Bump Federation Composition package to get the fix -> https://github.com/graphql-hive/federation-composition/pull/141
0.8.6
Patch Changes
0.8.5
Patch Changes
- #8570
3528ddbThanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.18.0↗︎ (from^0.17.0, independencies)
- Updated dependency
0.8.4
Patch Changes
-
#8564
3d33f2cThanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.16.0↗︎ (from^0.15.0, independencies)
- Updated dependency
-
#8568
b432f1dThanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.17.0↗︎ (from^0.16.0, independencies)
- Updated dependency
0.8.3
Patch Changes
- #8554
cedadc5Thanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.15.0↗︎ (from^0.14.0, independencies)
- Updated dependency
0.8.2
Patch Changes
- Updated dependencies
[
1b5d072]:- @graphql-mesh/utils@0.104.2
0.8.1
Patch Changes
0.8.0
Patch Changes
0.7.27
Patch Changes
- Updated dependencies
[
903124f]:- @graphql-mesh/utils@0.103.21
0.7.26
Patch Changes
- Updated dependencies
[
3f5e0a1]:- @graphql-mesh/utils@0.103.20
0.7.25
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.103.19
0.7.24
Patch Changes
- Updated dependencies
[
ab0863b]:- @graphql-mesh/utils@0.103.18
0.7.23
Patch Changes
- Updated dependencies
[
eee582a]:- @graphql-mesh/utils@0.103.17
0.7.22
Patch Changes
- Updated dependencies
[
b44f8b7]:- @graphql-mesh/utils@0.103.16
0.7.21
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.103.15
0.7.20
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.103.14
0.7.19
Patch Changes
- #8362
ce5e094Thanks @renovate! - dependencies updates:- Updated dependency
@graphql-tools/utils@^10.8.0↗︎ (from^10.6.0, independencies)
- Updated dependency
- Updated dependencies
[
ce5e094]:- @graphql-mesh/utils@0.103.13
0.7.18
Patch Changes
-
#8268
f1b5e8eThanks @ardatan! - Respect other@composeDirectivedefinitions other than Mesh -
Updated dependencies [
5180b06]:- @graphql-mesh/utils@0.103.12
0.7.17
Patch Changes
- Updated dependencies
[
4011203]:- @graphql-mesh/utils@0.103.11
0.7.16
Patch Changes
- Updated dependencies
[
b750a41]:- @graphql-mesh/utils@0.103.10
0.7.15
Patch Changes
- Updated dependencies
[
10ba2c4]:- @graphql-mesh/utils@0.103.9
0.7.14
Patch Changes
- Updated dependencies
[
93fb364]:- @graphql-mesh/utils@0.103.8
0.7.13
Patch Changes
-
Updated dependencies []:
- @graphql-mesh/utils@0.103.7
0.7.12
Patch Changes
- Updated dependencies
[
2ef651a]:- @graphql-mesh/utils@0.103.6
0.7.11
Patch Changes
0.7.10
Patch Changes
0.7.9
Patch Changes
0.7.8
Patch Changes
0.7.7
Patch Changes
-
750ce54Thanks @ardatan! - Respect resolveTo directives in rename transform -
Updated dependencies [
9f9f6fe]:- @graphql-mesh/utils@0.103.5
0.7.6
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.103.4
0.7.5
Patch Changes
- Updated dependencies
[
6360755]:- @graphql-mesh/utils@0.103.3
0.7.4
Patch Changes
- Updated dependencies
[
bfd8929]:- @graphql-mesh/utils@0.103.2
0.7.3
Patch Changes
- #7993
8154187Thanks @ardatan! - Do not apply semantic conventions if there is already defined some federation annotations
0.7.2
Patch Changes
0.7.1
Patch Changes
- #7978
92d3ce1Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/utils@^10.6.0↗︎ (from^10.5.5, independencies)
- Updated dependency
- Updated dependencies
[
92d3ce1]:- @graphql-mesh/utils@0.103.1
0.7.0
Patch Changes
0.6.7
Patch Changes
-
#7936
4236099Thanks @ardatan! - Do not create extra `@transport` annotation if the subgraph is a regular HTTP subgraph -
Updated dependencies []:
- @graphql-mesh/utils@0.102.13
0.6.6
Patch Changes
- Updated dependencies
[
eee53b9]:- @graphql-mesh/utils@0.102.12
0.6.5
Patch Changes
- #7838
de41fc2Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^3.1.9↗︎ (from^3.1.8, independencies)
- Updated dependency
- Updated dependencies
[
de41fc2]:- @graphql-mesh/utils@0.102.11
0.6.4
Patch Changes
- #7828
997b81cThanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^3.1.8↗︎ (from^3.1.7, independencies)
- Updated dependency
- Updated dependencies
[
997b81c]:- @graphql-mesh/utils@0.102.10
0.6.3
Patch Changes
-
#7816
fad4d27Thanks @ardatan! - Fix subscription fields fed by webhooks and defined in `additionalTypeDefs` with `@resolveTo` -
Updated dependencies [
fad4d27]:- @graphql-mesh/utils@0.102.9
0.6.2
Patch Changes
- #7769
518c42cThanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^3.1.7↗︎ (from^3.1.4, independencies)
- Updated dependency
- Updated dependencies
[
518c42c]:- @graphql-mesh/utils@0.102.8
0.6.1
Patch Changes
-
#7781
50bf472Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^3.1.4↗︎ (from^3.1.2, independencies) - Updated dependency
@graphql-tools/utils@^10.5.5↗︎ (from^10.5.3, independencies)
- Updated dependency
-
#7772
7c24dedThanks @ardatan! - Choose correct key fields and arguments for type merging during Mesh Compose -
Updated dependencies [
50bf472]:- @graphql-mesh/utils@0.102.7
0.6.0
Minor Changes
Patch Changes
- #7746
c8b1309Thanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.14.0↗︎ (from^0.12.0, independencies)
- Updated dependency
0.5.4
Patch Changes
- Updated dependencies
[
bf588d3]:- @graphql-mesh/utils@0.102.6
0.5.3
Patch Changes
- #7722
e9483d6Thanks @ardatan! - Do not add another@hiddendirective definition if it already exists
0.5.2
Patch Changes
-
#7676
adc3293Thanks @ardatan! - If the target hoisted field is a new field name that doesn’t exist, create that field and keep the existing one;createHoistFieldTransform({ mapping: [ { typeName: 'Query', pathConfig: ['users', 'results'], newFieldName: 'usersResults' } ] })type Query { users(limit: Int!, page: Int): UserSearchResult # Keep this + usersResults(limit: Int!, page: Int): [User!]! # Add a new one } scalar _HoistConfig type UserSearchResult { page: Int! } type User { id: ID! name: String! }
0.5.1
Patch Changes
28cd8b0Thanks @ardatan! - Automatically upgrade Federation v2.0 to v2.x because Mesh Compose doesn’t support v2.0 and it needs `@composeDirective` which is available since v2.1
0.5.0
Minor Changes
-
#7580
75e9f63Thanks @ardatan! - BREAKING: All types prefixed withMeshServe, now are prefixed withGateway. e.g.MeshServeRuntime->GatewayRuntimeRuntime factory is renamed;
createServeRuntime->createGatewayRuntimeThe expected export name for config files are renamed from
serveConfigtogatewayConfigRENAMING:
You can rename the product, config file name etc by using the following config options;
For example;
productName = 'Mesh Gateway' productDescription = 'Mesh Gateway is a GraphQL Gateway that can be used to serve a supergraph schema.' productLogo = '<svg>...</svg>' productPackageName = '@graphql-mesh/gateway'
Patch Changes
0.4.5
Patch Changes
0.4.4
Patch Changes
- Updated dependencies
[
edbc074]:- @graphql-mesh/utils@0.102.4
0.4.3
Patch Changes
- Updated dependencies
[
14ec31f]:- @graphql-mesh/utils@0.102.3
0.4.2
Patch Changes
- Updated dependencies
[
5d95aad]:- @graphql-mesh/utils@0.102.2
0.4.1
Patch Changes
-
#7550
102d970Thanks @ardatan! - New Transport and Loader implementation for OData -
Updated dependencies [
e49a7e6]:- @graphql-mesh/utils@0.102.1
0.4.0
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.102.0
0.3.0
Patch Changes
-
#7497
d784488Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.5↗︎ (from^10.0.4, independencies) - Updated dependency
@graphql-tools/utils@^10.5.2↗︎ (from^10.3.4, independencies)
- Updated dependency
-
#7512
190e9ecThanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/utils@^10.5.3↗︎ (from^10.5.2, independencies)
- Updated dependency
-
Updated dependencies [
d784488,190e9ec,d784488]:- @graphql-mesh/utils@0.101.0
0.2.0
Patch Changes
- #7477
c06a048Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/utils@^10.3.4↗︎ (from^10.3.2, independencies)
- Updated dependency
- Updated dependencies
[
c06a048,a324c5e,4d1eb28,a324c5e]:- @graphql-mesh/utils@0.100.0
0.1.9
Patch Changes
- Updated dependencies []:
- @graphql-mesh/utils@0.99.7
0.1.8
Patch Changes
0.1.7
Patch Changes
-
#7192
1905f53Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/stitching-directives@^3.1.2↗︎ (from^3.0.2, independencies)
- Updated dependency
0.1.6
Patch Changes
- Updated dependencies
[
33c23e8]:- @graphql-mesh/utils@0.99.5
0.1.5
Patch Changes
- #7241
7b474afThanks @renovate! - dependencies updates:- Updated dependency
minimatch@^10.0.0↗︎ (from^9.0.0, independencies)
- Updated dependency
0.1.4
Patch Changes
0.1.3
Patch Changes
0.1.2
Patch Changes
- Updated dependencies
[
4bc495c]:- @graphql-mesh/utils@0.99.2
0.1.1
Patch Changes
- #7286
e3714fbThanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/utils@^10.3.2↗︎ (from^10.2.3, independencies)
- Updated dependency
- Updated dependencies
[
7800514]:- @graphql-mesh/utils@0.99.1
0.1.0
Patch Changes
-
#7218
ededa2cThanks @EmrysMyrddin! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.12.0↗︎ (from^0.11.2, independencies)
- Updated dependency
-
#7255
94245c7Thanks @renovate! - dependencies updates:- Updated dependency
@theguild/federation-composition@^0.12.0↗︎ (from^0.11.2, independencies)
- Updated dependency
-
Updated dependencies [
a8e3f00,a8e3f00]:- @graphql-mesh/utils@0.99.0
0.0.8
Patch Changes
- #7185
0d916a4Thanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/utils@^10.2.3↗︎ (from^10.2.1, independencies)
- Updated dependency
- Updated dependencies
[
0d916a4]:- @graphql-mesh/utils@0.98.10
0.0.7
Patch Changes
-
#7145
7544594Thanks @ardatan! - dependencies updates:- Added dependency
@graphql-tools/stitching-directives@^3.0.2↗︎ (todependencies) - Added dependency
@theguild/federation-composition@^0.11.2↗︎ (todependencies)
- Added dependency
-
#7145
7544594Thanks @Author, @User! - New Federation Composition Approach for the new Mesh v1 alpha; (If you are using Mesh v0 legacy, ignore this changelog)Now Mesh Compose produces a superset of Federated Supergraph.
- Drop any options and implementation related to the old
fusiongraph -
- The output is a valid supergraph that can be consumed by any Federation router. But if it is not Mesh Serve, the subgraph should still be served via Mesh Serve then consumed by that Federation router. If it is Mesh Serve, no additional server is needed because Mesh Serve already knows the additional directives etc of the transports
- Compose the subgraphs using
@theguild/federation-compositionpackage -
- So benefit from the validation rules of Federation in Mesh Compose
- Ability to consume existing federated subgraphs
-
- Since the composition is now Federation, we can accept any federated subgraph
- Implement Federation transform to transform any subgraph to a federated subgraph by adding
Federation directives (v2 only) . This is on user’s own because they add the directives
manually. And for
__resolveReference, we use@mergedirective to mark a root field as an entity resolver for Federation - Use additional
@sourcedirective to consume transforms on the subgraph execution (field renames etc) - Use additional
@resolveTodirective to consume additional stitched resolvers - Use additional
@transportdirective to choose and configure a specific transport for subgraphs - Handle unsupported additional directives with another set of additional directives on
Queryfor example directives on unions, schema definitions, enum values etc and then@extraUnionDirectiveadded with missing directives for unions then on the runtime these directives are added back to the union for the subgraph execution of the transports.
Basically Mesh Compose uses Federation spec for composition, validation and runtime BUT the output is a superset with these additional directives imported via
@composeDirective;@merge(Taken from Stitching Directives) If a custom entity resolver is defined for a root field like below, the gateway will pick it up as an entity resolver;
type Query { fooById(id: ID!): Foo @merge(keyField: 'id', keyArg: 'id', subgraph: Foo) }@resolveTo(Taken from v0) This allows to delegate to a field in any subgraph just like Schema Extensions in old Schema Stitching approach;
extend type Book { @resolveTo( sourceName: "authors" sourceTypeName: "Query" sourceFieldName: "authors" keyField: "authorId" keysArg: "ids" ) }@sourceTaken from Fusion This allows us to know how the original definition is in the subgraph. If this directive exists, the runtime applies the transforms from Schema Stitching during the subgraph execution. This directive can exist in arguments, fields, types etc.
type Query { @source(type: "MyUser") # This means `User` is actually `MyUser` in the actual subgraph } type User @source(name: "MyUser") { id: ID name: String }@transportTaken from Fusion This allows us to choose a specific transport (rest, mysql, graphql-ws, graphql-http etc) for the subgraph execution with some configuration. In the runtime, the gateway loads the transports and passes the subgraph schema with annotations if needed to get an executor to execute queries against that subgraph.
schema @transport(subgraph: "API", kind: "rest", location: "http://0.0.0.0:<api_port>") { query: Query mutation: Mutation subscription: Subscription }@extraSchemaDefinitionDirectiveBy default, it is not possible to add directives from subgraph to the supergraph but it is possible to do the same thing on types or fields. So we add this directive toQueryfor the directives we want to add to the schema. Then the runtime picks those persubgraphto put the directives back to their original places;
type Query @extraSchemaDefinitionDirective( directives: {transport: [{subgraph: "petstore", kind: "rest", location: "http://0.0.0.0:<petstore_port>/api/v3"}]} ) {@extraEnumValueDirectiveand@extraTypeDirectiveSame for enum values and unions etc that are not supported by the composition library
Thanks to these directives, subgraphs can be published individually to Hive for example then the supergraph stored there can be handled by Mesh Gateway since the composition is the same. All the additions etc are done on the subgraph level. For the Fed gateways except Mesh Serve, subgraphs can be served individually by Mesh Serve again while they are consumed by any gw like Apollo Router Shareable is enabled by default for non-federated subgraphs
Documentation PR has details for users; https://github.com/ardatan/graphql-mesh/pull/7109
- Drop any options and implementation related to the old
-
Updated dependencies [
f985978,7544594]:- @graphql-mesh/utils@0.98.9
0.0.6
Patch Changes
-
#7009
b5bf97cThanks @ardatan! - dependencies updates:- Added dependency
@graphql-mesh/utils@^0.98.6↗︎ (todependencies) - Added dependency
graphql-scalars@^1.23.0↗︎ (todependencies) - Added dependency
minimatch@^9.0.0↗︎ (todependencies)
- Added dependency
-
#7009
b5bf97cThanks @ardatan! - Implement declarative transforms -
#7054
88d6232Thanks @ardatan! - UseDisposablepattern for plugins and transports -
#7009
b5bf97cThanks @User! - Respect existing transformation done in the given subgraph schemaIf the given subgraph has the transformed elements with
@sourcedirective, then the composition should respect it;type Query { @source(type: "MyUser") # This means `User` is actually `MyUser` in the actual subgraph } type User @source(name: "MyUser") { id: ID name: String } -
Updated dependencies [
88d6232,b5bf97c,88d6232,88d6232]:- @graphql-mesh/utils@0.98.8
0.0.5
Patch Changes
- #7030
270679bThanks @ardatan! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.4↗︎ (from^10.0.2, independencies) - Updated dependency
@graphql-tools/utils@^10.2.1↗︎ (from^10.2.0, independencies)
- Updated dependency
0.0.4
Patch Changes
0.0.3
Patch Changes
- #6872
2fcadceThanks @ardatan! - dependencies updates:- Removed dependency
pascal-case@^3.0.0↗︎ (fromdependencies)
- Removed dependency
0.0.2
Patch Changes
-
#6602
915b8f8Thanks @ardatan! - dependencies updates:- Added dependency
pluralize@^8.0.0↗︎ (todependencies)
- Added dependency
-
#6602
915b8f8Thanks @ardatan! - Supportwhere.id_inAPI (Graph Node subgraphs)