sangria-graphql / sangria-federated

Running a sangria server as federated
Apache License 2.0
19 stars 6 forks source link

[federation] support new @composeDirective #221

Closed dariuszkuc closed 1 year ago

dariuszkuc commented 1 year ago

Apollo Federation v2.1 introduced new @composeDirective directive that allows users to specify directives that should be preserved in the supergraph composition (by default composition strips out most directives from supergraph).

extend schema
  @link(
    url: "https://specs.apollo.dev/federation/v2.3",
    import: ["@composeDirective", "@extends", "@external", "@key", "@inaccessible", "@interfaceObject", "@override", "@provides", "@requires", "@shareable", "@tag"]
  )
  @link(url: "https://myspecs.dev/myCustomDirective/v1.0", import: ["@custom"])
  @composeDirective(name: "@custom")

// will be present in the supergraph definition
directive @custom on OBJECT

type Product @custom @key(fields: "id")
  id: ID!
  // other fields omitted for clarity
}

Additional resources:


New directive functionality can be tested using Apollo Federation Subgraph Compatibility NPX script (and Github Action). Example integration project is already provided in the subgraph compatibility testing repository.

yanns commented 1 year ago

This was already introduced in https://github.com/sangria-graphql/sangria-federated/releases/tag/v0.6.0

dariuszkuc commented 1 year ago

Awesome!