apollo-federation

>

INSTALLATION
npx skills add https://github.com/apollographql/skills --skill apollo-federation
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$27

Directive

Purpose

Example

@key

Define entity with unique key

type Product @key(fields: "id")

@shareable

Allow multiple subgraphs to resolve field

type Position @shareable { x: Int! }

@external

Reference field from another subgraph

weight: Int @external

@requires

Computed field depending on external fields

shippingCost: Int @requires(fields: "weight")

@provides

Conditionally resolve external field

@provides(fields: "name")

@override

Migrate field to this subgraph

@override(from: "Products")

@inaccessible

Hide from API schema

internalId: ID! @inaccessible

@interfaceObject

Add fields to entity interface

type Media @interfaceObject

Reference Files

Detailed documentation for specific topics:

  • Directives - All federation directives with syntax, examples, and rules
  • Composition - Composition rules, error codes, and debugging

Key Patterns

Entity Definition

type Product @key(fields: "id") {

  id: ID!

  name: String!

  price: Int

}

Entity Contributions Across Subgraphs

# Products subgraph

type Product @key(fields: "id") {

  id: ID!

  name: String!

  price: Int

}

# Reviews subgraph

type Product @key(fields: "id") {

  id: ID!

  reviews: [Review!]!

  averageRating: Float

}

Computed Fields with @requires

type Product @key(fields: "id") {

  id: ID!

  size: Int @external

  weight: Int @external

  shippingEstimate: String @requires(fields: "size weight")

}

Value Types with @shareable

type Money @shareable {

  amount: Int!

  currency: String!

}

Entity Stub (Reference Without Contributing)

type Product @key(fields: "id", resolvable: false) {

  id: ID!

}

Ground Rules

  • ALWAYS use Federation 2.x syntax with @link directive
  • ALWAYS import only the directives your subgraph uses
  • NEVER use @shareable without ensuring all subgraphs return identical values for that field
  • PREFER @key with single ID field for simple entity identification
  • USE rover supergraph compose to validate composition locally
  • USE rover subgraph check to validate against production supergraph
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card