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 buildinigo apply
andinigo 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 changesinigo 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
- If you are not using Apollo Federation, please proceed to Single Schema.
- If you are using Apollo Federation, please proceed to Federated Schema.