Configuration
Configuration for all Inigo services is done using yaml configuration files. Using these files you can configure general service info, security knobs, access control, rate limits, and observability configs. Configurations are applied using the inigo cli apply command. This can be done manually in the terminal or part of a ci|cd pipeline.
All of Inigo's configuration files have global fields, the table below summarizes these fields:
Field | Type | Required | Description |
---|---|---|---|
kind | string | Yes | The type of configuration file. One of: Service , Security , RateLimit , Observe , Access |
name | string | Yes | Service name |
label | string | No default: null | Label used to distinguish different environments such as dev , stagining , prod |
spec | object | Yes | The specifications of the configuration file |
Every configuration file starts with these four fields. An example beginning of a configuration file for the Security
kind can be seen below:
kind: Security
name: demo
label: starwars
spec:
...
validation:
alias_name: "^[a-zA-Z]+$"
...
There are five different kinds of configuration files in the Inigo platform.
More details for each kind can be found in the corresponding kind's page.
All configuration kinds are available whether your service corresponds to a gateway, subgraph, or standalone GraphQL endpoint.
Kind | Description |
---|---|
Service | General service endpoint configuration |
Security | Security knobs to protect your endpoint |
Access | Define access control policies |
RateLimit | Rate limit different parts of your schema |
Observe | Let you define advanced configurations to observe your api |
Checks | Let you configure schema processing and linting checks |
Pro Tip
Enable suggestions and validation for your Inigo YAML configuration files by specifying the schema your editor should follow. To do this, add the following line at the beginning of your file:
# yaml-language-server: $schema=https://docs.inigo.io/schemas/inigo.<kind>.schema.json
Example:
# yaml-language-server: $schema=https://docs.inigo.io/schemas/inigo.service.schema.json
kind: Service
name: gateway
spec:
path_trace_id: header.X-Trace-ID