apollographql / apollo-federation-subgraph-compatibility

A repo to test subgraph libraries compatibility with the Apollo Federation Specification
https://www.apollographql.com/docs/federation/building-supergraphs/supported-subgraphs/
MIT License
77 stars 58 forks source link

chore(deps): update dependency apollographql.hotchocolate.federation to v1 #645

Open renovate[bot] opened 2 months ago

renovate[bot] commented 2 months ago

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
ApolloGraphQL.HotChocolate.Federation 0.2.0 -> 1.3.0 age adoption passing confidence

Release Notes

apollographql/federation-hotchocolate (ApolloGraphQL.HotChocolate.Federation) ### [`v1.3.0`](https://redirect.github.com/apollographql/federation-hotchocolate/releases/tag/v1.3.0) #### Minor Changes - Enable Source link for debugging enhancements ([#​60](https://redirect.github.com/apollographql/federation-hotchocolate/issues/60)) [@​damienpontifex](https://redirect.github.com/damienpontifex) #### Patch Changes - chore(deps): update all non-major dependencies ([#​41](https://redirect.github.com/apollographql/federation-hotchocolate/issues/41)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update dependency microsoft.sourcelink.github to v8 ([#​57](https://redirect.github.com/apollographql/federation-hotchocolate/issues/57)) [@​renovate](https://redirect.github.com/renovate) #### Other Changes - Add Codeowners ([#​56](https://redirect.github.com/apollographql/federation-hotchocolate/issues/56)) [@​svc-secops](https://redirect.github.com/svc-secops) ### [`v1.2.1`](https://redirect.github.com/apollographql/federation-hotchocolate/releases/tag/v1.2.1) #### Patch Changes - fix: new NonResolvableKey attribute ([#​54](https://redirect.github.com/apollographql/federation-hotchocolate/issues/54)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) #### Other Changes - add compatibility warning ([#​50](https://redirect.github.com/apollographql/federation-hotchocolate/issues/50)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) ### [`v1.2.0`](https://redirect.github.com/apollographql/federation-hotchocolate/releases/tag/v1.2.0) #### Minor Changes - feat: expose IRequestExecutorBuilder extensions to apply schema directives ([#​47](https://redirect.github.com/apollographql/federation-hotchocolate/issues/47)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) #### Patch Changes - fix: use implicit binding for federated POCO ([#​39](https://redirect.github.com/apollographql/federation-hotchocolate/issues/39)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) #### Other Changes - chore(deps): update hotchocolate to v13.6.1 ([#​42](https://redirect.github.com/apollographql/federation-hotchocolate/issues/42) [#​43](https://redirect.github.com/apollographql/federation-hotchocolate/issues/43)) [@​renovate](https://redirect.github.com/renovate) - chore(renovate): group HotChocolate updates together ([#​40](https://redirect.github.com/apollographql/federation-hotchocolate/issues/40)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) ### [`v1.1.0`](https://redirect.github.com/apollographql/federation-hotchocolate/releases/tag/v1.1.0) #### Minor Changes Adds support for `HotChocolate` **v13.6.0**. ### [`v1.0.0`](https://redirect.github.com/apollographql/federation-hotchocolate/releases/tag/v1.0.0) #### Apollo Federation for HotChocolate [**Apollo Federation**](https://www.apollographql.com/docs/federation/) is a powerful, open architecture that helps you create a **unified supergraph** that combines multiple GraphQL APIs. `ApolloGraphQL.HotChocolate.Federation` provides Apollo Federation support for building subgraphs in the `HotChocolate` ecosystem. Individual subgraphs can be run independently of each other but can also specify relationships to the other subgraphs by using Federated directives. See [Apollo Federation documentation](https://www.apollographql.com/docs/federation/) for details. ##### Generating Federated Schemas `ApolloGraphQL.HotChocolate.Federation` package is published to [Nuget](https://www.nuget.org/packages/ApolloGraphQL.HotChocolate.Federation). Update your `.csproj` file with following package references ```xml ``` After installing the necessary packages, you need to register Apollo Federation with your GraphQL service. You need to opt-in to Federation v1 or v2 schema by invoking corresponding builder extension ```csharp var builder = WebApplication.CreateBuilder(args); builder.Services .AddGraphQLServer() // .AddApolloFederation() // use this instead if you want to opt-in to fed v1 .AddApolloFederationV2() // register your types and services ; var app = builder.Build(); app.MapGraphQL(); app.Run(); ``` Apollo Federation requires subgraphs to provide some additional metadata to make them supergraph aware. Entities are GraphQL objects that can be uniquely identified across the supergraph by the specified `@key`s. Since entities can be extended by various subgraphs, we need an extra entry point to access the entities, i.e. subgraphs need to implement reference resolvers for entities that they support. All federated directives are provided as attributes that can be applied directly on classes/fields/methods. Alternatively, if you need more granular control, you can use code first approach and manually populate federation information on the underlying GraphQL type descriptor. All federated directives expose corresponding methods on the applicable descriptor. Example attribute usage ```csharp [Key("id")] public class Product { public Product(string id, string name, string? description) { Id = id; Name = name; Description = description; } [ID] public string Id { get; } public string Name { get; } public string? Description { get; } // assumes ProductRepository with GetById method exists // reference resolver method must be public static [ReferenceResolver] public static Product GetByIdAsync( string id, ProductRepository productRepository) => productRepository.GetById(id); } ``` ##### Federation v1 directives - `Extends` applicable on objects, see [`@extends` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#extends) - `External` applicable on fields, see [`@external` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#external) - `Key` applicable on objects, see [`@key` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#key) - `Provides` applicable on fields, see [`@provides` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#provides) - `Requires` applicable on fields, see [`@requires` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#requires) ##### Federation v2 directives (includes all of the v1 directives) - `ApolloTag` applicable on schema, see [`@tag` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#tag) - `ApolloAuthenticated` **(since v2.5)** applicable on enum, field, interface and object, [`@authenticated` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives/#authenticated) - `ComposeDirective` **(since v2.1)** applicable on schema, see [`@composeDirective` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#composedirective) - `Contact` applicable on schema, see [`@contact` usage](#providing-subgraph-contact-information) - `Inaccessible` applicable on all type definitions, see [`@inaccessible` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#inaccessible) - `InterfaceObject` **(since v2.3)** applicable on objects, see [`@interfaceObject` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#interfaceobject) - `KeyInterface` applicable on interfaces, see [entity interface `@key` documentation](https://www.apollographql.com/docs/federation/federated-types/interfaces) - `Link` applicable on schema, see [`@link` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#the-link-directive) - `RequiresScopes` **(since v2.5)** applicable on enum, field, interface and object, [`@requiresScopes` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives/#requiresscopes) - `Shareable` applicable on schema, see [`@shareable` documentation](https://www.apollographql.com/docs/federation/federated-types/federated-directives#shareable) ##### Entity resolution - `Map` applicable on entity resolver method paramaters, allows you to map complex argument to a simpler representation value, e.g. `[Map("foo.bar")] string bar` - `ReferenceResolver` applicable on **public static methods** within an entity class to indicate entity resolver ### [`v0.3.0`](https://redirect.github.com/apollographql/federation-hotchocolate/releases/tag/v0.3.0) #### Minor Changes - feat: support `@authenticated` and `@requiresScopes` ([#​33](https://redirect.github.com/apollographql/federation-hotchocolate/issues/33)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) - feat: new AddApolloFederationV2 that accepts target version ([#​32](https://redirect.github.com/apollographql/federation-hotchocolate/issues/32)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) - feat: allow users specifying supported federation version ([#​23](https://redirect.github.com/apollographql/federation-hotchocolate/issues/23)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc) #### Other Changes - chore(deps): update dependency coverlet.msbuild to v6 ([#​31](https://redirect.github.com/apollographql/federation-hotchocolate/issues/31)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update dependency snapshooter.xunit to v0.13.0 ([#​29](https://redirect.github.com/apollographql/federation-hotchocolate/issues/29)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update actions/checkout action to v4 ([#​12](https://redirect.github.com/apollographql/federation-hotchocolate/issues/12)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update xunit-dotnet monorepo to v2.5.3 ([#​30](https://redirect.github.com/apollographql/federation-hotchocolate/issues/30)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update dependency moq to v4.20.69 ([#​28](https://redirect.github.com/apollographql/federation-hotchocolate/issues/28)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update dependency microsoft.net.test.sdk to v17.7.2 ([#​27](https://redirect.github.com/apollographql/federation-hotchocolate/issues/27)) [@​renovate](https://redirect.github.com/renovate) - chore(deps): update dependency coverlet.msbuild to v3.2.0 ([#​26](https://redirect.github.com/apollographql/federation-hotchocolate/issues/26)) [@​renovate](https://redirect.github.com/renovate) - chore: simplify project structure ([#​25](https://redirect.github.com/apollographql/federation-hotchocolate/issues/25)) [@​dariuszkuc](https://redirect.github.com/dariuszkuc)

Configuration

πŸ“… Schedule: Branch creation - "every weekend" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

πŸ”• Ignore: Close this PR and you won't be reminded about this update again.



This PR was generated by Mend Renovate. View the repository job log.

github-actions[bot] commented 2 months ago

Apollo Federation Subgraph Compatibility Results

Federation 1 Support Federation 2 Support
_service🟒
@key (single)🟒
@key (multi)🟒
@key (composite)🟒
repeatable @key🟒
@requires🟒
@provides🟒
federated tracingπŸ”²
@link🟒
@shareable🟒
@tag🟒
@override🟒
@inaccessible🟒
@composeDirective🟒
@interfaceObject🟒
svc-apollo-docs commented 2 weeks ago

βœ… Docs Preview Ready

No new or changed pages found.

github-actions[bot] commented 2 weeks ago

Apollo Federation Subgraph Compatibility Results

Federation 1 Support Federation 2 Support
_service🟒
@key (single)🟒
@key (multi)🟒
@key (composite)🟒
repeatable @key🟒
@requires🟒
@provides🟒
federated tracingπŸ”²
@link🟒
@shareable🟒
@tag🟒
@override🟒
@inaccessible🟒
@composeDirective🟒
@interfaceObject🟒
github-actions[bot] commented 1 week ago

Apollo Federation Subgraph Compatibility Results

Federation 1 Support Federation 2 Support
_service🟒
@key (single)🟒
@key (multi)🟒
@key (composite)🟒
repeatable @key🟒
@requires🟒
@provides🟒
federated tracingπŸ”²
@link🟒
@shareable🟒
@tag🟒
@override🟒
@inaccessible🟒
@composeDirective🟒
@interfaceObject🟒
github-actions[bot] commented 6 days ago

Apollo Federation Subgraph Compatibility Results

Federation 1 Support Federation 2 Support
_service🟒
@key (single)🟒
@key (multi)🟒
@key (composite)🟒
repeatable @key🟒
@requires🟒
@provides🟒
federated tracingπŸ”²
@link🟒
@shareable🟒
@tag🟒
@override🟒
@inaccessible🟒
@composeDirective🟒
@interfaceObject🟒