absinthe_federation
absinthe_federation copied to clipboard
Adds Apollo Federation Spec conformance to the absinthe GraphQL library
It would be great if we had a schema phase that validated the federated aspects of the schema to give end users more insight into why the schema may be...
While implementing this PR https://github.com/apollographql/apollo-federation-subgraph-compatibility/pull/35 I found we are not filtering federated schema fields from the SDL render like we should
I was working on updating the https://github.com/apollographql/apollo-federation-subgraph-compatibility elixir implementation to use more recent versions and to fix CI and I am now seeing errors with this validation phase. ``` ==...
This switches over to the built in absinthe directive macros instead of us building these ourselves. It also deprecates the previous macros and lets consumers know to use the new...
What do we need to do to make this transition as smooth as possible? v2 is backwards compatible but I think under the hood validations could change quite a bit....
I think we were incorrectly using the prototype schema to define directives but if we move them directly to the schema we get these errors. This may be a bug...
Closes #9 - [x] Support GQL field aliases - [x] Add docs to show how to enable - [x] Only run if `apollo-federation-include-trace=ftv1` header is sent from gateway - [...
This new PR in absinthe might be useful for us to learn from and apply when using type system directives in the future https://github.com/absinthe-graphql/absinthe/pull/1140
Docs on federated tracing https://www.apollographql.com/docs/federation/metrics/ Proto file: https://github.com/apollographql/apollo-server/blob/main/packages/apollo-reporting-protobuf/src/reports.proto See example tracing library for absinthe https://github.com/sikanhe/apollo-tracing-elixir Possible design 1. `CreateTrace` document phase that creates a stub `%Trace{}` and stuffs it into...
Apollo Federation v2.3 introduced new `@interfaceObject` directive that allows users to extend entity functionality through inheritance, i.e. given subgraph A ```graphql interface Product { id: ID! title: String } #...