All skills
apollographql avatar

/apollo-federation

@1e3bb5f official
by Apollo GraphQLapollographql/skills115 stars
13

Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation directives (@external, @requires, @provides, @override, @inaccessible), (5) troubleshooting composition errors, (6) any task involving federation schema design patterns.

Use this Skill: https://skilld.dev/gh/apollographql/skills/apollo-federation

This session only. Nothing lands on disk.

SKILL.md

≈115 tokens always: the name and description. ≈826 when used: this file. ≈8.7k more on demand in 3 files.

Apollo Federation Schema Authoring

Apollo Federation enables composing multiple GraphQL APIs (subgraphs) into a unified supergraph.

Federation 2 Schema Setup

Every Federation 2 subgraph must opt-in via @link:

extend schema
  @link(url: "https://specs.apollo.dev/federation/v2.12",
        import: ["@key", "@shareable", "@external", "@requires", "@provides"])

Import only the directives your subgraph uses. The version shown (v2.12) is illustrative — check the Federation changelog for currently supported versions before copying it verbatim.

A subgraph's @link version is a floor, not the composition version — see Federation versions for the full explanation.

Core Directives Quick Reference

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
  • Schema Patterns - Multi-subgraph patterns and recipes
  • 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

Source: SKILL.md on GitHub

1 warning16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill is a specialized guide for Apollo Federation schema authoring, enabling the agent to create and validate subgraph schemas using the official Apollo rover CLI. All tools, URLs, and package references are verified as authoritative vendor resources. The skill contains no malicious patterns and follows safe practices for schema management.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer7mo

    4/4 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 1e3bb5f. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago
What it can do
Runs commands
metadata
{
  "author": "apollographql",
  "version": "1.0.2"
}
All 1 allowed tools
Bash(rover:*) Read Write Edit Glob Grep
Other metadata
compatibility
Works with any Federation 2.x compatible subgraph library (Apollo Server, GraphQL Yoga, etc.)
  • TypeScript
  • apollo
  • graphql
  • federation
  • schema
  • subgraph
  • directives
  • composition

README badge

README badge for apollographql/skills/apollo-federation

Provides guidance for authoring Apollo Federation subgraph schemas using Federation 2.x directives like @key, @shareable, @external, @requires, and @provides. Use this when defining entities, composing multiple subgraphs into a unified supergraph, or troubleshooting federation composition errors.

Generated from the current SKILL.md.

Does this skill work with Apollo Server and other GraphQL frameworks?
Yes. The skill works with any Federation 2.x compatible subgraph library, including Apollo Server, GraphQL Yoga, and others.
What Federation version does this skill target?
This skill is for Federation 2.x only. It uses the @link directive syntax and Federation 2 directives.
Can I use this skill to debug composition errors?
Yes. The skill includes guidance on troubleshooting composition errors and references composition rules and error codes.
Does this skill cover cross-subgraph type sharing?
Yes. The skill covers sharing types and fields across subgraphs using @shareable, as well as entity contributions across multiple subgraphs.
What tools does this skill rely on?
The skill uses rover (rover supergraph compose and rover subgraph check) for schema validation and composition.

Generated from the current SKILL.md. These answers refresh after source changes.