Skip to main content

Schema Management

Inigo provides a set of schema management features that simplify the process of evolving and maintaining GraphQL schemas. These capabilities are designed to ensure a smooth transition without causing disruptions to existing GraphQL clients.

For instance, consider the scenario where you need to eliminate a field from your schema. In this situation, Inigo can analyze the historical usage of that field across all clients for the past 30 days. Inigo checks for any conflicts, and it will prevent you from publishing the schema changes until you've addressed and resolved these conflicts.

Capabilities

The schema management capabilities are integrated into the Inigo cloud service, inigo CLI, and the Inigo agent installations, and they work in tandem to check, apply, and publish schema updates.

You can use Inigo’s schema management features with a single schema for an Inigo Service. This allows you to check and apply a single schema to prevent breaking changes.

Additionally, Inigo supports Apollo Federation for an Inigo Gateway and Subgraph, giving you an alternative to Apollo Rover and GraphOS for composing and managing subgraph and supergraph schemas. The schema composition fully integrates with Inigo’s schema management capabilities, such as schema checking and publishing.

Inigo also has schema versioning and a schema registry, and you can optionally run your own private registry to have more control over where your GraphQL schemas are published.

Check, Apply, and Publish Workflow

The intended workflow for Inigo's Schema Management is to run Check, Apply, and Publish. First you should run inigo check to identify any breaking changes. Then, after inigo check passes, you can then run inigo apply. Yet, the checks are still run both both inigo check and inigo apply as a safeguard to make sure no breaking changes are introduced for either command.

For federated schemas, there is also an inigo publish step that must be run to store the composed schema into the schema registry and push down the updated federation schema to your gateways.

CI/CD Pipeline Integration

You can integrate the Check, Apply, and Publish Workflow into your CI/CD pipeline by running inigo check, inigo apply, and inigo publish for your schema changes. Additionally, inigo bypass allows an administrator to bypass failing checks as necessary, such as schema refactoring that may temporarily introduce failures on composition checks.

  • inigo check fits into Continuous Integration (CI) to make sure there are no breaking changes introduced into the current GraphQL service/subgraph build
  • inigo apply and inigo publish fits into Continuous Deployment (CD) to perform a final set of checks and publish the schema changes with confidence that there are not breaking changes
  • inigo bypass is run by an administrator outside of the CI/CD pipeline and after running, the CI/CD pipeline can be restarted and proceed without failure

Next Steps