github apollographql/federation @apollo/query-graphs@2.10.0-alpha.1

latest releases: @apollo/subgraph@2.10.0-alpha.3, @apollo/query-planner@2.10.0-alpha.3, @apollo/query-graphs@2.10.0-alpha.3...
pre-release2 months ago

CHANGELOG for @apollo/query-graphs

2.9.0

Patch Changes

2.8.5

Patch Changes

  • Updated dependencies []:
    • @apollo/federation-internals@2.8.5

2.8.4

Patch Changes

2.8.3

Patch Changes

2.8.3-beta.2

Patch Changes

2.8.3-beta.1

Patch Changes

  • Updated dependencies []:
    • @apollo/federation-internals@2.8.3-beta.1

2.8.3-beta.0

Patch Changes

2.8.2

Patch Changes

2.8.1

Patch Changes

  • Updated dependencies []:
    • @apollo/federation-internals@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)

  • 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/federation-internals@2.8.0

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/federation-internals@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!
    }

Patch Changes

2.7.8

Patch Changes

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/federation-internals@2.7.7

2.7.6

Patch Changes

  • Updated dependencies []:
    • @apollo/federation-internals@2.7.6

2.7.5

Patch Changes

  • Updated dependencies []:
    • @apollo/federation-internals@2.7.5

2.7.4

Patch Changes

2.7.3

Patch Changes

2.7.2

Patch Changes

2.7.1

Patch Changes

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

2.6.3

Patch Changes

  • Updated dependencies []:
    • @apollo/federation-internals@2.6.3

2.6.2

Patch Changes

  • fix: handle directive conditions on fragments when building query graphs (#2875)

    This fix addresses issues with handling fragments when they specify directive conditions:

    • when exploding the types we were not propagating directive conditions
    • when processing fragment that specifies super type of an existing type and also specifies directive condition, we were incorrectly preserving the unnecessary type condition. This type condition was problematic as it could be referencing types from supergraph that were not available in the local schema. Instead, we now drop the redundant type condition and only preserve the directives (if specified).
  • 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

Minor Changes

  • Update license field in package.json to use Elastic-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 a String, similar to the FieldSet 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"])

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

  • 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

  • More aggressive ignoring of indirect paths from root types when a more direct alternative exists. This optimisation (#2669)
    slightly generalize an existing heuristic of the query planner, allowing it to ignore some known inefficient options
    earlier in its process. When this optimisation can be used, this yield faster query plan computation, but by reducing
    the number of plans to be consider, this can sometimes prevent the planner to degrade it's output when it consider
    there is too many plans to consider, which can result in more optimal query plans too.
  • Updated dependencies [4b9a512b, c6e0e76d, 1add932c]:
    • @apollo/federation-internals@2.5.3

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

  • Do not run the full suite of graphQL validations on supergraphs and their extracted subgraphs by default in production environment. (#2657)

    Running those validations on every updates of the schema takes a non-negligible amount of time (especially on large
    schema) and mainly only serves in catching bugs early in the supergraph handling code, and in some limited cases,
    provide slightly better messages when a corrupted supergraph is received, neither of which is worth the cost in
    production environment.

    A new validateSupergraph option is also introduced in the gateway configuration to force this behaviour.

Patch Changes

2.4.10

Patch Changes

  • Updated dependencies [b6be9f96]:
    • @apollo/federation-internals@2.4.10

2.4.9

Patch Changes

2.4.8

Patch Changes

  • Fix query planner heuristic that could lead to ignoring some valid option and yielding a non-optimal query plan. (#2623)

  • Updated dependencies [62e0d254, 7f1ef73e]:

    • @apollo/federation-internals@2.4.8

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

  • Updated dependencies [f6a8c1ce]:
    • @apollo/federation-internals@2.4.3

2.4.2

Patch Changes

2.4.1

Patch Changes

  • Fix issues (incorrectly rejected composition and/or subgraph errors) with @interfaceObject. Those issues may occur (#2494)
    either due to some use of @requires in an @interfaceObject type, or when some subgraph S defines a type that is an
    implementation of an interface I in the supergraph, and there is an @interfaceObject for I in another subgraph,
    but S does not itself defines I.

  • 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

  • Refactor the internal implementation of selection sets used by the query planner to decrease the code complexity and (#2387)
    improve query plan generation performance in many cases.

  • 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

  • Updated dependencies [6e2d24b5, 1a555d98]:
    • @apollo/federation-internals@2.4.0-alpha.0

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

  • Update ts-graphviz dependency (#2395)

  • 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

  • Fix assertion errors thrown by the query planner when querying fields for a specific interface implementation in some cases where @interfaceObject is involved (#2362)

  • Updated dependencies []:

    • @apollo/federation-internals@2.3.1

2.2.0

2.1.0

  • Fix abnormally high memory usage when extracting subgraphs for some fed1 supergraphs (and small other memory footprint improvements) PR #2089.
  • Fix issue when type is only reachable through a @provides PR #2083.
  • Update peer dependency graphql to ^16.5.0 to use GraphQLErrorOptions PR #2060
  • Add @defer support PR #1958
  • Fix issue generating plan for a "diamond-shaped" dependency PR #1900
  • Avoid type-explosion with fed1 supergraphs using a fed2 query planner PR #1994.
  • Expand support for Node.js v18 PR #1884

2.0.5

  • Fix bug with unsatisfiable query branch when handling federation 1 supergraph PR #1908.

2.0.2

  • Fix bug where planning a query with @require impacts the plans of followup queries PR #1783.

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.9

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, only transitive updates to @apollo/federation-internals.

v2.0.0-alpha.5

  • Remove graphql@15 from peer dependencies PR #1472.

v2.0.0-alpha.4

  • Add missing deep-equal dependency PR #1391

v2.0.0-alpha.3

  • Fix issue with nested @requires directives PR #1306.

v2.0.0-alpha.2

  • BREAKING: Bump graphql peer dependency to ^15.7.0 PR #1200
  • Fix the handling of nested @provides directives PR #1148.

v2.0.0-alpha.1

  • 🎉 Initial alpha release of Federation 2.0. For more information, see our documentation. We look forward to your feedback!

Don't miss a new federation release

NewReleases is sending notifications on new releases.