Skip to main content

Service

Service config allows you to configure global (system) service settings, related to overall Inigo agent operability.

Configurations starting with path_ are telling the Inigo agent how to fetch key information used to process and analyze the request. These paths can be configured to fetch data from the request header, jwt token, or ctx object for middleware deployments.


Sample Config

service.yaml
kind: Service
name: demo
label: starwars
spec:
path_user_profile: jwt.user_profile
path_user_role: jwt.user_roles
path_user_id: jwt.user_name

anonymous_profile: guest
anonymous_roles:
- viewer

# Only applicable for sidecar deployments
polling_interval_schema: 300

enable_extensions_output: true

Spec

This section defines the format of Inigo's Service type configuration files. Fields marked as required must be specified if the parent is defined.

FieldTypeDescription
registrystringAttach registry to the service.
path_trace_idstring default:"header.Inigo-Router-TraceID"Path to the Trace ID header. Inigo can fetch the trace id from a header, ctx, or jwt.
In each case prefix the path with the corresponding source. For example: "header.TRACE_ID"
path_user_profilestringPath to a user profile header.

For JWT headers, you can use jwt.user_profile or jwt.<some_path_to_user_profile_key>.
path_user_rolestringPath to a user role header.

For JWT headers, you can use jwt.roles or jwt.<some_path_to_user_roles_key>.
path_user_idstringPath to a user ID header.

For JWT headers, you can use jwt.user_id or jwt.<some_path_to_user_id_key>.
path_client_infostringPath to the client version header.
path_client_addressstringPath to get the client address.

Inigo can fetch the client address from headers only.
If not provided agent will attempt to get data from the headers in the following sequence:
1. x-real-ip
2. x-forwarded-for
path_organization_idstringPath to organization id.

examples: header.organization_id, jwt.<some_path_to_organization_id_key> or ctx.organizationId.
path_user_statestringPath to user state to be matched with minimum required state of the query.
introspection_query_filestring
introspection_headerobject
polling_interval_schemaintInterval (in seconds) to poll the GraphQL schema from the application.
polling_interval_profileintInterval (in seconds) to poll new configurations.
enable_extensions_outputbooleanEnable the exposure of the GraphQL extensions response key.
anonymous_profilestringName of an anonymous profile.
anonymous_roles[string]List of roles that are considered anonymous.
schema_files[string]Relative path to the filesystem location of your files containing GraphQL schemas.
For example: ../../schemas/prod.graphql.
reduct_extension_output[string]List of extensions JSON keys to reduce from the response.
failure_modestring default:openDefault action to take upon failure mode.

One of:
- open: Pass failed requests to the service.
- block: Blocks failed requests from reaching the service.
- query_only: Blocks failed requests from reaching the service.
urlstringPublic facing URL of the service (used to configure the ui playground)
collect_variable_valuesCollectVariableValuesEnable collection of query variable values.
To omit certain sensitive inputs use the omit_args and omit_input_fields configurations.

CollectVariableValues

FieldTypeDescription
enabledboolean
omit_args[CollectVariablesOmitArgs]
omit_input_fields[CollectVariablesOmitInput]

CollectVariablesOmitArgs

FieldTypeDescription
typestring
fieldstring
argstring

CollectVariablesOmitInput

FieldTypeDescription
inputstring
fieldstring