graphql-python / graphene-federation

Federation implementation for Graphene.
MIT License
40 stars 10 forks source link

`Query` not being extended #25

Open MrSaints opened 1 year ago

MrSaints commented 1 year ago

It seems Graphene Federation has stopped returning an SDL with extend type Query, and instead returns type Query. I'm not sure if this is intentional, but it is not compatible with some implementations of Federation Gateway.

See diff: https://github.com/graphql-python/graphene-federation/pull/4/files#diff-3111b5ad3ddd7af276c62d4c15988d6c6f3ee13f1b6eaa87725f4fe94cc65867L42-L43

(EDIT: It seems perhaps it was never included by default)

Other Federation implementation seems to include this, e.g. gqlgen (Go): https://github.com/99designs/gqlgen/blob/2d8673a691deffe6ddd1f4d5f013a52dc91aef91/plugin/federation/federation.go#L223, Ariadne (Python) https://github.com/apollographql/apollo-federation-subgraph-compatibility/blob/1bc1ddd56c796f2a7ff9256d279c7780dd48f582/implementations/ariadne/schema.graphql#L65

Apollo docs seems to suggest it too, but to be honest, it's not too clear. Let me know what y'all think.

erikwrede commented 1 year ago

Hey there, which Federation version are you using?

MrSaints commented 1 year ago

@erikwrede I'm still on V1. But enabling V2 doesn't seem to help either.

erikwrede commented 1 year ago

AFAIK the extend is optional on type Query in Federation v2. However, we can surely add it back for both federation versions, as this should not break things. /cc @patrick91

patrick91 commented 1 year ago

AFAIK the extend is optional on type Query in Federation v2. However, we can surely add it back for both federation versions, as this should not break things. /cc @patrick91

I'd only add it for version 1, as it might be removed in future 😊

erikwrede commented 1 year ago

Makes sense. @MrSaints it might be worthwhile to open a bug report at your specific Gateway implementation. Which one are you using? 😊

MrSaints commented 1 year ago

We're using Mercurius. I believe they have one opened already tbf, so this isn't totally Graphene Federation's problem.

https://github.com/mercurius-js/mercurius-gateway/issues/23