Skip to main content

Rover CLI Migration

If you're currently using Apollo's rover CLI to compose and publish supergraph schemas, and are evaluating or using Inigo, then this tutorial demonstrates how to replace rover with Inigo's inigo CLI for the same functions.

Install the Inigo CLI

First, install the inigo CLI using your preferred method.

Local Schema Composition

rover

If you're using rover for local schema composition, the rover supergraph compose command is used like the following:

rover supergraph compose --config supergraph.yaml > supergraph.graphql

inigo

Inigo offers an equivalent inigo compose command that supports Apollo Federation:

inigo compose supergraph.yaml > supergraph.graphql

See the documentation for specifics on the YAML format used by inigo.

Checking and Linting a Subgraph for Managed Supergraph Schemas

Both Apollo GraphOS and Inigo support managed supergraph schemas that are composed automatically in the cloud when a subgraph schema change is published. Additionally, both GraphOS and Inigo support schema checks and linting of subgraphs before they are published.

rover (GraphOS)

GraphOS requires two separate commands for performing schema checks and linting:

rover subgraph check my-gateway@dev --name accounts --schema services/accounts/schema.graphql
rover subgraph lint my-gateway@dev --name accounts --schema services/accounts/schema.graphql

inigo

Inigo integrates both schema checks and linting into the check command.

inigo subgraph check my-gateway --label dev  --subgraph accounts --schema services/accounts/schema.graphql --url http://localhost:4001/graphql

Publishing a Subgraph for Managed Supergraph Schemas

rover (GraphOS)

GraphOS requires a separate publish command to be run after the schema checks and linting are run.

rover subgraph publish my-gateway@dev --name accounts --schema services/accounts/schema.graphql  --routing-url http://localhost:4001/graphql

inigo

When automatic publishing (the default setting) is enabled for an Inigo Checks, inigo subgraph apply will automatically perform the schema checks and publish the supergraph.

inigo subgraph apply my-gateway --label dev  --subgraph accounts --schema services/accounts/schema.graphql --url http://localhost:4001/graphql

If automatic publishing is disabled, inigo publish can be run separately:

inigo publish my-gateway --label dev