Apollo Federation · Schema

Apollo Federation Supergraph Configuration

JSON Schema for Apollo Router and Federation supergraph configuration (supergraph.yaml / router.yaml).

API GatewayFederationGraphQLMicroservicesOpen SourceSubgraphsSupergraph

Properties

Name Type Description
federation_version string Federation version for composition.
subgraphs object Subgraph definitions keyed by name.
View JSON Schema on GitHub

JSON Schema

supergraph-configuration.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/apollo-federation/json-schema/supergraph-configuration.json",
  "title": "Apollo Federation Supergraph Configuration",
  "description": "JSON Schema for Apollo Router and Federation supergraph configuration (supergraph.yaml / router.yaml).",
  "type": "object",
  "properties": {
    "federation_version": {
      "type": "string",
      "enum": ["=2.0.0", "=2.3.0", "=2.5.0", "=2.6.0", "=2.7.0", "=2.8.0", "=2.9.0"],
      "description": "Federation version for composition."
    },
    "subgraphs": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/SubgraphConfig"
      },
      "description": "Subgraph definitions keyed by name."
    }
  },
  "$defs": {
    "SubgraphConfig": {
      "type": "object",
      "required": ["routing_url", "schema"],
      "properties": {
        "routing_url": {
          "type": "string",
          "format": "uri",
          "description": "URL where the subgraph can be reached at runtime."
        },
        "schema": {
          "type": "object",
          "properties": {
            "file": {
              "type": "string",
              "description": "Path to the subgraph schema file."
            },
            "subgraph_url": {
              "type": "string",
              "format": "uri",
              "description": "URL to introspect the subgraph schema from."
            },
            "graphref": {
              "type": "string",
              "description": "Apollo Studio graph reference (graph@variant)."
            }
          },
          "description": "Subgraph schema source."
        }
      }
    }
  }
}