Skip to content

Latest commit

 

History

History
437 lines (301 loc) · 17.7 KB

CHANGELOG.md

File metadata and controls

437 lines (301 loc) · 17.7 KB

@graphql-tools/federation

1.1.29

Patch Changes

  • #6109 074fad4 Thanks @ardatan! - Show responses in debug logging with DEBUG env var

  • Updated dependencies [074fad4, 074fad4]:

    • @graphql-tools/delegate@10.0.7
    • @graphql-tools/stitch@9.2.3

1.1.28

Patch Changes

  • #6091 9bca9e0 Thanks @User, @User! - If the gateway receives a query with an overlapping fields for the subschema, it uses aliases to resolve it correctly.

    Let's say subschema A has the following schema;

      type Query {
    
      }
    
      interface User {
        id: ID!
        name: String!
      }
    
      type Admin implements User {
        id: ID!
        name: String!
        role: String!
      }
    
      type Customer implements User {
        id: ID!
        name: String
        email: String
      }

    And let's say the gateway has the following schema instead;

      type Query {
    
      }
    
      interface User {
        id: ID!
        name: String!
      }
    
      type Admin implements User {
        id: ID!
        name: String!
        role: String!
      }
    
      type Customer implements User {
        id: ID!
        name: String!
        email: String!
      }

    In this case, the following query is fine for the gateway but for the subschema, it's not;

    query {
      user {
        ... on Admin {
          id
          name # This is nullable in the subschema
          role
        }
        ... on Customer {
          id
          name # This is non-nullable in the subschema
          email
        }
      }
    }

    So the subgraph will throw based on this rule OverlappingFieldsCanBeMerged

    To avoid this, the gateway will use aliases to resolve the query correctly. The query will be transformed to the following;

    query {
      user {
        ... on Admin {
          id
          name # This is nullable in the subschema
          role
        }
        ... on Customer {
          id
          name: _nullable_name # This is non-nullable in the subschema
          email
        }
      }
    }
  • Updated dependencies [9bca9e0, 9bca9e0, 243c353]:

    • @graphql-tools/stitch@9.2.0
    • @graphql-tools/delegate@10.0.5

1.1.27

Patch Changes

1.1.26

Patch Changes

1.1.25

Patch Changes

1.1.24

Patch Changes

1.1.23

Patch Changes

1.1.22

Patch Changes

1.1.21

Patch Changes

1.1.20

Patch Changes

1.1.19

Patch Changes

1.1.18

Patch Changes

  • #5946 107c021 Thanks @ardatan! - If an interface or scalar type is not annotated for a subgraph explicitly, consider them as a shared type

1.1.17

Patch Changes

1.1.16

Patch Changes

  • 7583729 Thanks @ardatan! - Fix getSubschemaForFederationWithTypeDefs for non-supergraph merging of subgraphs

1.1.15

Patch Changes

1.1.14

Patch Changes

1.1.13

Patch Changes

  • 974df8a Thanks @ardatan! - Debug logging & expose the subgraph schema

  • Updated dependencies [b798b3b]:

    • @graphql-tools/executor-http@1.0.6

1.1.12

Patch Changes

1.1.11

Patch Changes

1.1.10

Patch Changes

  • cda328c3 Thanks @ardatan! - Support for multiple key entrypoints for an object, and avoid sending whole object if possible

  • Updated dependencies [cda328c3]:

    • @graphql-tools/stitch@9.0.2

1.1.9

Patch Changes

1.1.8

Patch Changes

1.1.7

Patch Changes

1.1.6

Patch Changes

1.1.5

Patch Changes

1.1.4

Patch Changes

1.1.3

Patch Changes

1.1.2

Patch Changes

1.1.1

Patch Changes

1.1.0

Minor Changes

1.0.0

Major Changes

Patch Changes

  • Updated dependencies [944a68e8, 8fba6cc1, 944a68e8, 944a68e8, 944a68e8]:
    • @graphql-tools/executor-http@1.0.0
    • @graphql-tools/delegate@10.0.0
    • @graphql-tools/schema@10.0.0
    • @graphql-tools/stitch@9.0.0
    • @graphql-tools/merge@9.0.0
    • @graphql-tools/utils@10.0.0
    • @graphql-tools/wrap@10.0.0

0.0.3

Patch Changes

0.0.2

Patch Changes

0.0.1

Patch Changes