From 2aee9de733b24f15320fd8a71e6ba66e916cc5de Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Thu, 24 Apr 2025 11:41:09 +0000
Subject: [PATCH 1/4] Documentation edits made through Mintlify web editor
---
docs/router/configuration.mdx | 177 +++++++++++++++++-----------------
1 file changed, 90 insertions(+), 87 deletions(-)
diff --git a/docs/router/configuration.mdx b/docs/router/configuration.mdx
index 57599fd..38a3d66 100644
--- a/docs/router/configuration.mdx
+++ b/docs/router/configuration.mdx
@@ -1,8 +1,8 @@
---
title: "Router Configuration"
description: "Router Configuration Reference"
-icon: circle-info
-sidebarTitle: Overview
+icon: "circle-info"
+sidebarTitle: "Overview"
---
The router provides three different ways of customization:
@@ -126,6 +126,7 @@ The following sections describe each configuration in detail with all available
| LOCALHOST_FALLBACK_INSIDE_DOCKER | localhost_fallback_inside_docker | | Enable fallback for requests that fail to connect to localhost while running in Docker | true |
| DEV_MODE | dev_mode | | Enables pretty log output and allows to use [Advanced Request Tracing (ART)](/router/advanced-request-tracing-art) without further security protection. | false |
| INSTANCE_ID | instance_id | | If not specified, a new ID will be generated with each router start. A stable ID ensures that metrics with the same ID are grouped together and the same server can be identified on the platform. | |
+| DEMO | demo | | If set to true, the router will start even if no execution configuration is found, using a demo configuration instead. | |
### Example configuration:
@@ -252,16 +253,16 @@ graph:
The Model Context Protocol (MCP) server allows AI models to discover and interact with your GraphQL API in a secure way.
-| Environment Variable | YAML | Required | Description | Default Value |
-| ------------------------------ | ----------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
-| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
-| MCP_SERVER_PORT | mcp.server.port | | The port where the MCP server will listen for requests | 5025 |
-| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy. Purely metadata for AI model. | - |
-| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | |
-| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | cosmo |
-| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
-| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
-| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
+| Environment Variable | YAML | Required | Description | Default Value |
+| ------------------------------- | ------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------- |
+| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
+| MCP_SERVER_PORT | mcp.server.port | | The port where the MCP server will listen for requests | 5025 |
+| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy. Purely metadata for AI model. | - |
+| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | |
+| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | cosmo |
+| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
+| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
+| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
Example YAML config:
@@ -976,10 +977,10 @@ storage_providers:
This provider allows you to load files from the local file system. This is particularly useful for the MCP server to load GraphQL operations.
-| Environment Variable | YAML | Required | Description | Default Value |
-| ------------------------- | ---- | --------------------------------------------- | ---------------------------------------------------------------- | ------------- |
-| STORAGE_PROVIDER_FS_ID | id | | The ID of the provider to reference in other configurations | |
-| STORAGE_PROVIDER_FS_PATH | path | | The path on the file system where files should be loaded from | |
+| Environment Variable | YAML | Required | Description | Default Value |
+| ------------------------ | ---- | --------------------------------------------- | ------------------------------------------------------------- | ------------- |
+| STORAGE_PROVIDER_FS_ID | id | | The ID of the provider to reference in other configurations | |
+| STORAGE_PROVIDER_FS_PATH | path | | The path on the file system where files should be loaded from | |
The file system storage provider is **currently only supported by the MCP feature**. It cannot be used for persisted operations or execution configurations.
@@ -989,34 +990,34 @@ This provider allows you to load files from the local file system. This is parti
Used for distributed caching like automatic persisted queries.
-| Environment Variable | YAML | Required | Description | Default Value |
-| --------------------------------- | --------------- | --------------------------------------------- | ------------------------------------------------------------------------------------- | ------------- |
-| STORAGE_PROVIDER_REDIS_ID | id | | The ID of the provider to reference in other configurations | |
-| STORAGE_PROVIDER_REDIS_URLS | urls | | List of Redis URLs to connect to. If cluster_enabled is true, these are the seeds to discover the cluster | |
-| STORAGE_PROVIDER_REDIS_CLUSTER_ENABLED | cluster_enabled | | Whether to use the Redis Cluster client | false |
+| Environment Variable | YAML | Required | Description | Default Value |
+| -------------------------------------- | --------------- | --------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------- |
+| STORAGE_PROVIDER_REDIS_ID | id | | The ID of the provider to reference in other configurations | |
+| STORAGE_PROVIDER_REDIS_URLS | urls | | List of Redis URLs to connect to. If cluster_enabled is true, these are the seeds to discover the cluster | |
+| STORAGE_PROVIDER_REDIS_CLUSTER_ENABLED | cluster_enabled | | Whether to use the Redis Cluster client | false |
#### S3 Storage Provider
For storing operations and configs in S3-compatible storage.
-| Environment Variable | YAML | Required | Description | Default Value |
-| -------------------- | ---------- | --------------------------------------------- | -------------------------------------------------------------- | ------------- |
-| | id | | The ID of the provider to reference in other configurations | |
-| | endpoint | | The endpoint of the S3 service | |
-| | access_key | | The access key for the S3 service | |
-| | secret_key | | The secret key for the S3 service | |
-| | bucket | | The bucket where objects will be stored | |
-| | region | | The region of the S3 bucket | |
-| | secure | | Whether to use HTTPS for S3 connections | true |
+| Environment Variable | YAML | Required | Description | Default Value |
+| -------------------- | ---------- | --------------------------------------------- | ----------------------------------------------------------- | ------------- |
+| | id | | The ID of the provider to reference in other configurations | |
+| | endpoint | | The endpoint of the S3 service | |
+| | access_key | | The access key for the S3 service | |
+| | secret_key | | The secret key for the S3 service | |
+| | bucket | | The bucket where objects will be stored | |
+| | region | | The region of the S3 bucket | |
+| | secure | | Whether to use HTTPS for S3 connections | true |
#### CDN Provider
For connecting to the Cosmo CDN.
-| Environment Variable | YAML | Required | Description | Default Value |
-| -------------------- | ---- | --------------------------------------------- | ---------------------------------------------------------------- | -------------------------------- |
-| | id | | The ID of the provider to reference in other configurations | |
-| | url | | The URL of the CDN | https://cosmo-cdn.wundergraph.com |
+| Environment Variable | YAML | Required | Description | Default Value |
+| -------------------- | ---- | --------------------------------------------- | ----------------------------------------------------------- | --------------------------------- |
+| | id | | The ID of the provider to reference in other configurations | |
+| | url | | The URL of the CDN | https://cosmo-cdn.wundergraph.com |
## Persisted Operations
@@ -1203,7 +1204,7 @@ These rules apply to requests being made from the Router to all Subgraphs.
| | response_header_timeout | | | 0s |
| | expect_continue_timeout | | | 0s |
| | tls_handshake_timeout | | | 10s |
-| | keep_alive_idle_timeout | | | 90s |
+| | keep_alive_idle_timeout | | | 90s |
| | keep_alive_probe_interval | | | 30s |
| | max_idle_conns | | | 1024 |
| | max_conns_per_host | | | 100 |
@@ -1219,7 +1220,7 @@ In addition to the general traffic shaping rules, we also allow users to set sub
| | dial_timeout | | | 30s |
| | response_header_timeout | | | 0s |
| | expect_continue_timeout | | | 0s |
-| | keep_alive_idle_timeout | | | 90s |
+| | keep_alive_idle_timeout | | | 90s |
| | keep_alive_probe_interval | | | 30s |
| | max_idle_conns | | | 1024 |
| | max_conns_per_host | | | 100 |
@@ -1544,60 +1545,62 @@ events:
Configure the GraphQL Execution Engine of the Router.
-|Environment Variable|YAML|Required|Description|Default Value|
-|---|---|---|---|---|
-|ENGINE\_ENABLE\_SINGLE\_FLIGHT|enable\_single\_flight| |Deduplicate exactly the same in-flight origin request | true |
-|ENGINE\_ENABLE\_REQUEST\_TRACING|enable\_request\_tracing| |Enable [Advanced Request Tracing (ART)](/router/advanced-request-tracing-art)This config is not correlated to OTEL tracing. | true |
-|ENGINE\_ENABLE\_EXECUTION\_PLAN\_CACHE\_RESPONSE\_HEADER|enable\_execution\_plan\_cache\_response\_header| |Usually only required for testing. When enabled, the Router sets the response Header "X-WG-Execution-Plan-Cache" to "HIT" or "MISS" | false |
-|ENGINE\_MAX\_CONCURRENT\_RESOLVERS|max\_concurrent\_resolvers| |Use this to limit the concurrency in the GraphQL Engine. A high number will lead to more memory usage. A number too low will slow down your Router. | 32 |
-|ENGINE\_ENABLE\_NET\_POLL|enable\_net\_poll| |Enables the more efficient poll implementation for all WebSocket implementations (client, server) of the router. This is only available on Linux and MacOS. On Windows or when the host system is limited, the default synchronous implementation is used. | true |
-|ENGINE\_WEBSOCKET\_CLIENT\_POLL\_TIMEOUT|websocket\_client\_poll\_timeout| |The timeout for the poll loop of the WebSocket client implementation. The period is specified as a string with a number and a unit | 1s |
-|ENGINE\_WEBSOCKET\_CLIENT\_CONN\_BUFFER\_SIZE|websocket\_client\_conn\_buffer\_size| |The buffer size for the poll buffer of the WebSocket client implementation. The buffer size determines how many connections can be handled in one loop. | 128 |
-|ENGINE\_WEBSOCKET\_CLIENT\_READ\_TIMEOUT|websocket\_client\_read\_timeout| |The timeout for the websocket read of the WebSocket client implementation. | 5s |
-|ENGINE\_WEBSOCKET\_CLIENT\_WRITE\_TIMEOUT|websocket\_client\_write\_timeout| |The timeout for the websocket write of the WebSocket client implementation. | 10s |
-|ENGINE\_WEBSOCKET\_CLIENT\_PING\_INTERVAL|websocket\_client\_ping\_interval| |The Websocket client ping interval to the subgraph. Defines how often the router will ping the subgraph to signal that the connection is still alive. | 10s |
-|ENGINE\_EXECUTION\_PLAN\_CACHE\_SIZE|execution\_plan\_cache\_size| |Define how many GraphQL Operations should be stored in the execution plan cache. A low number will lead to more frequent cache misses, which will lead to increased latency. | 1024 |
-|ENGINE\_MINIFY\_SUBGRAPH\_OPERATIONS|minify\_subgraph\_operations| |Minify the subgraph operations. If the value is true, GraphQL Operations get minified after planning. This reduces the amount of GraphQL AST nodes the Subgraph has to parse, which ultimately saves CPU time and memory, resulting in faster response times. | false |
-|ENGINE\_ENABLE\_PERSISTED\_OPERATIONS\_CACHE|enable\_persisted\_operations\_cache| |Enable the persisted operations cache. The persisted operations cache is used to cache normalized persisted operations to improve performance. | true |
-|ENGINE\_ENABLE\_NORMALIZATION\_CACHE|enable\_normalization\_cache| |Enable the normalization cache. The normalization cache is used to cache normalized operations to improve performance. | true |
-|ENGINE\_NORMALIZATION\_CACHE\_SIZE|normalization\_cache\_size| |The size of the normalization cache. | 1024 |
-|ENGINE\_PARSEKIT\_POOL\_SIZE|parsekit\_pool\_size| |The size of the ParseKit pool. The ParseKit pool provides re-usable Resources for parsing, normalizing, validating and planning GraphQL Operations. Setting the pool size to a value much higher than the number of CPU Threads available will not improve performance, but only increase memory usage. | 8 |
-|ENGINE\_RESOLVER\_MAX\_RECYCLABLE\_PARSER\_SIZE|resolver\_max\_recyclable\_parser\_size| |Limits the size of the Parser that can be recycled back into the Pool. If set to 0, no limit is applied. This helps keep the Heap size more maintainable if you regularly perform large queries. | 32768 |
-|ENGINE\_ENABLE\_VALIDATION\_CACHE|enable\_validation\_cache| |Enable the validation cache. The validation cache is used to cache results of validating GraphQL Operations. | true |
-|ENGINE\_VALIDATION\_CACHE\_SIZE|validation\_cache\_size| |The size of the validation cache. | 1024 |
-|ENGINE\_DISABLE\_EXPOSING\_VARIABLES\_CONTENT\_ON\_VALIDATION\_ERROR|disable\_exposing\_variables\_content\_on\_validation\_error| |Disables exposing the variables content in the error response. This is useful to avoid leaking sensitive information in the error response. | false |
-|ENGINE\_ENABLE\_SUBGRAPH\_FETCH\_OPERATION\_NAME|enable\_subgraph\_fetch\_operation\_name| |Enable appending the operation name to subgraph fetches. This will ensure that the operation name will be included in the corresponding subgraph requests using the following format: $operationName\_\_$subgraphName\_\_$sequenceID. | true |
-|ENGINE\_SUBSCRIPTION\_FETCH\_TIMEOUT|subscription\_fetch\_timeout| |The maximum time a subscription fetch can take before it is considered timed out. | 30s |
+| Environment Variable | YAML | Required | Description | Default Value |
+| ------------------------------------------------------------- | ------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
+| ENGINE_ENABLE_SINGLE_FLIGHT | enable_single_flight | | Deduplicate exactly the same in-flight origin request | true |
+| ENGINE_ENABLE_REQUEST_TRACING | enable_request_tracing | | Enable [Advanced Request Tracing (ART)](/router/advanced-request-tracing-art)This config is not correlated to OTEL tracing. | true |
+| ENGINE_ENABLE_EXECUTION_PLAN_CACHE_RESPONSE_HEADER | enable_execution_plan_cache_response_header | | Usually only required for testing. When enabled, the Router sets the response Header "X-WG-Execution-Plan-Cache" to "HIT" or "MISS" | false |
+| ENGINE_MAX_CONCURRENT_RESOLVERS | max_concurrent_resolvers | | Use this to limit the concurrency in the GraphQL Engine. A high number will lead to more memory usage. A number too low will slow down your Router. | 32 |
+| ENGINE_ENABLE_NET_POLL | enable_net_poll | | Enables the more efficient poll implementation for all WebSocket implementations (client, server) of the router. This is only available on Linux and MacOS. On Windows or when the host system is limited, the default synchronous implementation is used. | true |
+| ENGINE_WEBSOCKET_CLIENT_POLL_TIMEOUT | websocket_client_poll_timeout | | The timeout for the poll loop of the WebSocket client implementation. The period is specified as a string with a number and a unit | 1s |
+| ENGINE_WEBSOCKET_CLIENT_CONN_BUFFER_SIZE | websocket_client_conn_buffer_size | | The buffer size for the poll buffer of the WebSocket client implementation. The buffer size determines how many connections can be handled in one loop. | 128 |
+| ENGINE_WEBSOCKET_CLIENT_READ_TIMEOUT | websocket_client_read_timeout | | The timeout for the websocket read of the WebSocket client implementation. | 5s |
+| ENGINE_WEBSOCKET_CLIENT_WRITE_TIMEOUT | websocket_client_write_timeout | | The timeout for the websocket write of the WebSocket client implementation. | 10s |
+| ENGINE_WEBSOCKET_CLIENT_PING_INTERVAL | websocket_client_ping_interval | | The Websocket client ping interval to the subgraph. Defines how often the router will ping the subgraph to signal that the connection is still alive. | 10s |
+| ENGINE_EXECUTION_PLAN_CACHE_SIZE | execution_plan_cache_size | | Define how many GraphQL Operations should be stored in the execution plan cache. A low number will lead to more frequent cache misses, which will lead to increased latency. | 1024 |
+| ENGINE_MINIFY_SUBGRAPH_OPERATIONS | minify_subgraph_operations | | Minify the subgraph operations. If the value is true, GraphQL Operations get minified after planning. This reduces the amount of GraphQL AST nodes the Subgraph has to parse, which ultimately saves CPU time and memory, resulting in faster response times. | false |
+| ENGINE_ENABLE_PERSISTED_OPERATIONS_CACHE | enable_persisted_operations_cache | | Enable the persisted operations cache. The persisted operations cache is used to cache normalized persisted operations to improve performance. | true |
+| ENGINE_ENABLE_NORMALIZATION_CACHE | enable_normalization_cache | | Enable the normalization cache. The normalization cache is used to cache normalized operations to improve performance. | true |
+| ENGINE_NORMALIZATION_CACHE_SIZE | normalization_cache_size | | The size of the normalization cache. | 1024 |
+| ENGINE_PARSEKIT_POOL_SIZE | parsekit_pool_size | | The size of the ParseKit pool. The ParseKit pool provides re-usable Resources for parsing, normalizing, validating and planning GraphQL Operations. Setting the pool size to a value much higher than the number of CPU Threads available will not improve performance, but only increase memory usage. | 8 |
+| ENGINE_RESOLVER_MAX_RECYCLABLE_PARSER_SIZE | resolver_max_recyclable_parser_size | | Limits the size of the Parser that can be recycled back into the Pool. If set to 0, no limit is applied. This helps keep the Heap size more maintainable if you regularly perform large queries. | 32768 |
+| ENGINE_ENABLE_VALIDATION_CACHE | enable_validation_cache | | Enable the validation cache. The validation cache is used to cache results of validating GraphQL Operations. | true |
+| ENGINE_VALIDATION_CACHE_SIZE | validation_cache_size | | The size of the validation cache. | 1024 |
+| ENGINE_DISABLE_EXPOSING_VARIABLES_CONTENT_ON_VALIDATION_ERROR | disable_exposing_variables_content_on_validation_error | | Disables exposing the variables content in the error response. This is useful to avoid leaking sensitive information in the error response. | false |
+| ENGINE_ENABLE_SUBGRAPH_FETCH_OPERATION_NAME | enable_subgraph_fetch_operation_name | | Enable appending the operation name to subgraph fetches. This will ensure that the operation name will be included in the corresponding subgraph requests using the following format: $$operationName\\\_\\\_$$ subgraphName_\_$sequenceID. | true |
+| ENGINE_SUBSCRIPTION_FETCH_TIMEOUT | subscription_fetch_timeout | | The maximum time a subscription fetch can take before it is considered timed out. | 30s |
### Example YAML config:
- ```yaml config.yaml
- version: "1"
-
- engine:
- enable_single_flight: true
- enable_request_tracing: true
- enable_execution_plan_cache_response_header: false
- max_concurrent_resolvers: 32
- enable_websocket_epoll_kqueue: true
- epoll_kqueue_poll_timeout: "1s"
- epoll_kqueue_conn_buffer_size: 128
- websocket_client_read_timeout: "1s"
- websocket_client_write_timeout: "5s"
- websocket_client_ping_interval: "10s"
- execution_plan_cache_size: 10000
- minify_subgraph_operations: true
- enable_persisted_operations_cache: true
- enable_normalization_cache: true
- normalization_cache_size: 1024
- parsekit_pool_size: 8
- enable_validation_cache: true
- validation_cache_size: 1024
- disable_exposing_variables_content_on_validation_error: false
- enable_subgraph_fetch_operation_name: true
- subscription_fetch_timeout: 30s
- ```
+
+```yaml config.yaml
+version: "1"
+
+engine:
+ enable_single_flight: true
+ enable_request_tracing: true
+ enable_execution_plan_cache_response_header: false
+ max_concurrent_resolvers: 32
+ enable_websocket_epoll_kqueue: true
+ epoll_kqueue_poll_timeout: "1s"
+ epoll_kqueue_conn_buffer_size: 128
+ websocket_client_read_timeout: "1s"
+ websocket_client_write_timeout: "5s"
+ websocket_client_ping_interval: "10s"
+ execution_plan_cache_size: 10000
+ minify_subgraph_operations: true
+ enable_persisted_operations_cache: true
+ enable_normalization_cache: true
+ normalization_cache_size: 1024
+ parsekit_pool_size: 8
+ enable_validation_cache: true
+ validation_cache_size: 1024
+ disable_exposing_variables_content_on_validation_error: false
+ enable_subgraph_fetch_operation_name: true
+ subscription_fetch_timeout: 30s
+```
+
### Debug Configuration
@@ -2029,4 +2032,4 @@ cache_warmup:
path: "./cache-warmer/operations"
```
-
+
\ No newline at end of file
From 25e74e71b8c136baaac6ab0ee5f1bf37c5f84e74 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Thu, 24 Apr 2025 11:41:33 +0000
Subject: [PATCH 2/4] Documentation edits made through Mintlify web editor
---
docs/router/configuration.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/router/configuration.mdx b/docs/router/configuration.mdx
index 38a3d66..e41fb1a 100644
--- a/docs/router/configuration.mdx
+++ b/docs/router/configuration.mdx
@@ -126,7 +126,7 @@ The following sections describe each configuration in detail with all available
| LOCALHOST_FALLBACK_INSIDE_DOCKER | localhost_fallback_inside_docker | | Enable fallback for requests that fail to connect to localhost while running in Docker | true |
| DEV_MODE | dev_mode | | Enables pretty log output and allows to use [Advanced Request Tracing (ART)](/router/advanced-request-tracing-art) without further security protection. | false |
| INSTANCE_ID | instance_id | | If not specified, a new ID will be generated with each router start. A stable ID ensures that metrics with the same ID are grouped together and the same server can be identified on the platform. | |
-| DEMO | demo | | If set to true, the router will start even if no execution configuration is found, using a demo configuration instead. | |
+| DEMO | demo | | If set to true, the router will start even if no execution configuration is found, using a demo configuration instead. | |
### Example configuration:
From 8b703031c3d83e465402ef67ea9fd0f62b7e3b70 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Thu, 24 Apr 2025 16:14:39 +0000
Subject: [PATCH 3/4] Documentation edits made through Mintlify web editor
---
docs/router/configuration.mdx | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/docs/router/configuration.mdx b/docs/router/configuration.mdx
index e41fb1a..c4c75c8 100644
--- a/docs/router/configuration.mdx
+++ b/docs/router/configuration.mdx
@@ -126,7 +126,7 @@ The following sections describe each configuration in detail with all available
| LOCALHOST_FALLBACK_INSIDE_DOCKER | localhost_fallback_inside_docker | | Enable fallback for requests that fail to connect to localhost while running in Docker | true |
| DEV_MODE | dev_mode | | Enables pretty log output and allows to use [Advanced Request Tracing (ART)](/router/advanced-request-tracing-art) without further security protection. | false |
| INSTANCE_ID | instance_id | | If not specified, a new ID will be generated with each router start. A stable ID ensures that metrics with the same ID are grouped together and the same server can be identified on the platform. | |
-| DEMO | demo | | If set to true, the router will start even if no execution configuration is found, using a demo configuration instead. | |
+| DEMO_MODE | demo_mode | | If set to true, the router will start even if no execution configuration is found, using a demo configuration instead. | |
### Example configuration:
@@ -253,16 +253,16 @@ graph:
The Model Context Protocol (MCP) server allows AI models to discover and interact with your GraphQL API in a secure way.
-| Environment Variable | YAML | Required | Description | Default Value |
-| ------------------------------- | ------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------- |
-| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
-| MCP_SERVER_PORT | mcp.server.port | | The port where the MCP server will listen for requests | 5025 |
-| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy. Purely metadata for AI model. | - |
-| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | |
-| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | cosmo |
-| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
-| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
-| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
+| Environment Variable | YAML | Required | Description | Default Value |
+| ------------------------------- | ------------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
+| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
+| MCP_SERVER_PORT | mcp.server.port | | The port where the MCP server will listen for requests | 5025 |
+| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy. Purely metadata for AI model. | - |
+| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | |
+| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | cosmo |
+| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
+| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
+| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
Example YAML config:
@@ -1567,7 +1567,7 @@ Configure the GraphQL Execution Engine of the Router.
| ENGINE_ENABLE_VALIDATION_CACHE | enable_validation_cache | | Enable the validation cache. The validation cache is used to cache results of validating GraphQL Operations. | true |
| ENGINE_VALIDATION_CACHE_SIZE | validation_cache_size | | The size of the validation cache. | 1024 |
| ENGINE_DISABLE_EXPOSING_VARIABLES_CONTENT_ON_VALIDATION_ERROR | disable_exposing_variables_content_on_validation_error | | Disables exposing the variables content in the error response. This is useful to avoid leaking sensitive information in the error response. | false |
-| ENGINE_ENABLE_SUBGRAPH_FETCH_OPERATION_NAME | enable_subgraph_fetch_operation_name | | Enable appending the operation name to subgraph fetches. This will ensure that the operation name will be included in the corresponding subgraph requests using the following format: $$operationName\\\_\\\_$$ subgraphName_\_$sequenceID. | true |
+| ENGINE_ENABLE_SUBGRAPH_FETCH_OPERATION_NAME | enable_subgraph_fetch_operation_name | | Enable appending the operation name to subgraph fetches. This will ensure that the operation name will be included in the corresponding subgraph requests using the following format: $$operationName\\\\\\\_\\\\\\\_$$ subgraphName_\_$sequenceID. | true |
| ENGINE_SUBSCRIPTION_FETCH_TIMEOUT | subscription_fetch_timeout | | The maximum time a subscription fetch can take before it is considered timed out. | 30s |
### Example YAML config:
From 5bfea579b5f1c779f576657e71913cfb322b697e Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Mon, 28 Apr 2025 07:11:06 +0000
Subject: [PATCH 4/4] Documentation edits made through Mintlify web editor
---
docs/router/configuration.mdx | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/docs/router/configuration.mdx b/docs/router/configuration.mdx
index c4c75c8..f6b34aa 100644
--- a/docs/router/configuration.mdx
+++ b/docs/router/configuration.mdx
@@ -126,7 +126,7 @@ The following sections describe each configuration in detail with all available
| LOCALHOST_FALLBACK_INSIDE_DOCKER | localhost_fallback_inside_docker | | Enable fallback for requests that fail to connect to localhost while running in Docker | true |
| DEV_MODE | dev_mode | | Enables pretty log output and allows to use [Advanced Request Tracing (ART)](/router/advanced-request-tracing-art) without further security protection. | false |
| INSTANCE_ID | instance_id | | If not specified, a new ID will be generated with each router start. A stable ID ensures that metrics with the same ID are grouped together and the same server can be identified on the platform. | |
-| DEMO_MODE | demo_mode | | If set to true, the router will start even if no execution configuration is found, using a demo configuration instead. | |
+| DEMO_MODE | demo_mode | | Launch the router in demo mode. If no execution config is found, the router will start with a demo execution config and deploy a demo federated graph that can be used for testing purposes. | |
### Example configuration:
@@ -253,16 +253,16 @@ graph:
The Model Context Protocol (MCP) server allows AI models to discover and interact with your GraphQL API in a secure way.
-| Environment Variable | YAML | Required | Description | Default Value |
-| ------------------------------- | ------------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
-| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
-| MCP_SERVER_PORT | mcp.server.port | | The port where the MCP server will listen for requests | 5025 |
-| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy. Purely metadata for AI model. | - |
-| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | |
-| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | cosmo |
-| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
-| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
-| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
+| Environment Variable | YAML | Required | Description | Default Value |
+| ------------------------------- | ------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
+| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
+| MCP_SERVER_PORT | mcp.server.port | | The port where the MCP server will listen for requests | 5025 |
+| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy. Purely metadata for AI model. | - |
+| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | |
+| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | cosmo |
+| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
+| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
+| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
Example YAML config:
@@ -1054,7 +1054,7 @@ These rules apply to requests being made from the Router to all Subgraphs.
| PERSISTED_OPERATIONS_CACHE_SIZE | persisted_operations.cache.size | | The size of the cache in SI unit. | "100MB" |
| | persisted_operations.storage | | The storage provider for persisted operation. Only one provider can be active. When no provider is specified, the router will fallback to the Cosmo CDN provider to download the persisted operations. | |
| PERSISTED_OPERATIONS_STORAGE_PROVIDER_ID | persisted_operations.storage.provider_id | | The ID of the storage provider. The ID must match the ID of the storage provider in the `storage_providers` section. | |
-| PERSISTED_OPERATIONS_STORAGE_OBJECT_PREFIX | persisted_operations.storage.object_prefix | | The prefix of the object in the storage provider location. The prefix is put in front of the operation SHA256 hash. $prefix/SHA256.json | |
+| PERSISTED_OPERATIONS_STORAGE_OBJECT_PREFIX | persisted_operations.storage.object_prefix | | The prefix of the object in the storage provider location. The prefix is put in front of the operation SHA256 hash. \$prefix/SHA256.json | |
| PERSISTED_OPERATIONS_LOG_UNKNOWN | persisted_operations.log_unknown | | Log operations (sent with the operation body) which haven't yet been persisted. If the value is true, all operations not yet persisted are logged to the router logs. | false |
| PERSISTED_OPERATIONS_SAFELIST_ENABLED | persisted_operations.safelist.enabled | | Only allows persisted operations (sent with operation body). If the value is true, all operations not explicitly added to the safelist are blocked. | false |
@@ -1096,7 +1096,7 @@ These rules apply to requests being made from the Router to all Subgraphs.
| | automatic_persisted_queries.cache.ttl | | The TTL of the cache, in seconds. Set to 0 to set no TTL | |
| | automatic_persisted_queries.storage | | The external storage provider (redis) for automatic persisted operation. Only one provider can be active. When no provider is specified, the router will fallback to using a local in-memory cache (configured in the `automatic_persisted_queries.cache` options) | |
| | automatic_persisted_queries.storage.provider_id | | The ID of the Redis storage provider. The ID must match the ID of the storage provider in the `storage_providers.redis` section. | |
-| | automatic_persisted_queries.storage.object_prefix | | The prefix of the object in the storage provider location. The prefix is put in front of the operation SHA256 hash. $prefix/SHA256 | |
+| | automatic_persisted_queries.storage.object_prefix | | The prefix of the object in the storage provider location. The prefix is put in front of the operation SHA256 hash. \$prefix/SHA256 | |
## Execution Config
@@ -1567,7 +1567,7 @@ Configure the GraphQL Execution Engine of the Router.
| ENGINE_ENABLE_VALIDATION_CACHE | enable_validation_cache | | Enable the validation cache. The validation cache is used to cache results of validating GraphQL Operations. | true |
| ENGINE_VALIDATION_CACHE_SIZE | validation_cache_size | | The size of the validation cache. | 1024 |
| ENGINE_DISABLE_EXPOSING_VARIABLES_CONTENT_ON_VALIDATION_ERROR | disable_exposing_variables_content_on_validation_error | | Disables exposing the variables content in the error response. This is useful to avoid leaking sensitive information in the error response. | false |
-| ENGINE_ENABLE_SUBGRAPH_FETCH_OPERATION_NAME | enable_subgraph_fetch_operation_name | | Enable appending the operation name to subgraph fetches. This will ensure that the operation name will be included in the corresponding subgraph requests using the following format: $$operationName\\\\\\\_\\\\\\\_$$ subgraphName_\_$sequenceID. | true |
+| ENGINE_ENABLE_SUBGRAPH_FETCH_OPERATION_NAME | enable_subgraph_fetch_operation_name | | Enable appending the operation name to subgraph fetches. This will ensure that the operation name will be included in the corresponding subgraph requests using the following format: $operationName\\\\\\\_\\\\\\\_$ subgraphName_\_\$sequenceID. | true |
| ENGINE_SUBSCRIPTION_FETCH_TIMEOUT | subscription_fetch_timeout | | The maximum time a subscription fetch can take before it is considered timed out. | 30s |
### Example YAML config: