Inigo Configuration
Inigo provides flexible service configuration options to suit different development workflows and team preferences. All configurations can be managed through two primary methods: a declarative approach using YAML files (recommended for production environments) or an interactive web-based UI (ideal for quick iterations and testing).
YAML File Configuration (Declarative Approach)
This approach involves defining your Inigo configurations in YAML files. These files are typically stored in your Git, making them part of your codebase.
Key Features of YAML Configuration
- Configuration as Code: Define service configurations in
.yaml
files and store in GIT to maintain configuration history - CLI Integration: Use the Inigo CLI to apply and manage configurations and integrate in your CI/CD pipelines
This is a simple example of the service.yaml configuration for the Inigo service named demo-service
.
kind: Service
name: demo-service
spec:
path_client_info: "header.x-client-name"
path_user_id: jwt.email
path_organization_id: jwt.org_name
schema_files:
- ./schema.graphql
UI Configuration
The UI configuration approach allows you to manage Inigo settings directly through our web app, eliminating the need for local files. The UI provides a comprehensive list of all available configuration kinds, making it easy to discover and configure different aspects of your services.
Figure 1: Config page
When to use it:
- Rapid prototyping and testing: Quickly experiment with different settings.
- One-time configurations: Ideal for occasional updates that don't require version control.
- Small-scale projects: For simpler deployments where the overhead of managing YAML files in VCS might be unnecessary.
Avoid mixing YAML and UI configuration approaches for the same service. Using both methods simultaneously can lead to configuration conflicts and unintended overwrites. For example, if you initially configure using YAML files and then make changes through the UI, subsequent YAML file updates will override any UI-made changes. While all configuration changes are tracked in the Activity page for reference, it's recommended to stick to one configuration method per service for consistency and predictability.
In summary, the YAML file configuration offers a robust, version-controlled, and automatable approach, ideal for production environments and collaborative development. The UI configuration provides a quick and easy way to manage settings, suitable for rapid experimentation or simpler deployments where the benefits of a declarative approach are less critical.