[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$ref":"#/definitions/IReplacementsConfig","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"IParameterReplacement":{"additionalProperties":false,"description":"Fixed replacement value to apply throughout config files. Loaded from SSM\nparameters in the management account in the HOME_REGION.","properties":{"key":{"$ref":"#/definitions/NonEmptyString","description":"Key of the replacement placeholder"},"path":{"$ref":"#/definitions/NonEmptyString","description":"Path of the SSM Parameter containing the value to replace"}},"required":["key","path"],"type":"object"},"IParameterReplacementV2":{"additionalProperties":false,"description":"Fixed replacement value to apply throughout config files. Loaded from SSM\nparameters in the management account in the HOME_REGION.","properties":{"key":{"$ref":"#/definitions/NonEmptyString","description":"Key of the replacement placeholder"},"path":{"$ref":"#/definitions/NonEmptyString","description":"Path of the SSM Parameter containing the value to replace"},"type":{"$ref":"#/definitions/ParameterReplacementType","description":"Type of the global parameters"},"value":{"anyOf":[{"$ref":"#/definitions/NonEmptyString"},{"items":{"$ref":"#/definitions/NonEmptyString"},"type":"array"}],"description":"Value of the parameter if type is string or array"}},"required":["key","type"],"type":"object"},"IReplacementsConfig":{"additionalProperties":false,"description":"Accelerator replacements configuration","properties":{"globalReplacements":{"description":"The set of placeholder parameters (key/path pairs) that will be merged with yaml configuration files.","items":{"anyOf":[{"$ref":"#/definitions/IParameterReplacement"},{"$ref":"#/definitions/IParameterReplacementV2"}]},"type":"array"}},"type":"object"},"NonEmptyString":{"description":"A string that has at least 1 character","minLength":1,"type":"string"},"ParameterReplacementType":{"enum":["SSM","String","StringList"],"type":"string"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "replacements-config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Fixed replacement value to apply throughout config files. Loaded from SSM
parameters in the management account in the HOME_REGION.

Key of the replacement placeholder

Path of the SSM Parameter containing the value to replace

Key of the replacement placeholder

Type of the global parameters

Value of the parameter if type is string or array

Accelerator replacements configuration

The set of placeholder parameters (key/path pairs) that will be merged with yaml configuration files.

A string that has at least 1 character

Provide a JSON object that satisfies the schema "replacements-config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/replit.json","additionalProperties":false,"description":"https://docs.replit.com/programming-ide/configuring-repl","properties":{"run":{"description":"Command to run REPL","anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"language":{"$comment":"List is taken from https://replit.com/talk/learn/How-to-Get-a-List-of-All-Replit-Langauges/34411","description":"Language name used in REPL","type":"string","enum":["clojure","haskell","kotlin","qbasic","forth","lolcode","brainf***","emoticon","bloop","react_native","unlambda","javascript","babel","coffeescript","scheme","apl","lua","python","ruby","roy","php","python3","nodejs","enzyme","go","java","cpp","cpp11","c","csharp","fsharp","web_project","html","rust","swift","python_turtle","basic","jest","django","express","sinatra","rails","rlang","nextjs","gatsbyjs","reactjs","reactts","reactre","flow","bash","quil","polygott","crystal","julia","perl6","elixir","nim","dart","gatsbyjsv2","reason_nodejs","tcl","erlang","typescript","ocaml","pygame","love2d","reason","Tkinter","tkinter","java_swing","php_server","nodejs_prybar","elisp","php7","sqlite","java10","php_cli","nodejs_beta","pyxel","static","go_beta","nodejs_static","python3_beta","raku","testj","wasm","java10_beta","python_beta","html_beta","testj_beta","scala","riddlejs","java_maven"]},"audio":{"description":"Enable/disable system-wide audio in REPL","type":"boolean"},"packager":{"description":"Universal Package Manager (UPM) configuration","type":"object","properties":{"afterInstall":{"description":"Command to run on new package install","type":"string"},"ignoredPaths":{"description":"List of ignored path","type":"array","items":{"type":"string","minLength":1},"uniqueItems":true,"minItems":1},"ignoredPackages":{"description":"List of ignored packages","type":"array","items":{"type":"string","minLength":1},"uniqueItems":true,"minItems":1},"language":{"description":"Language name","type":"string","enum":["python-python3-poetry","python-python2-poetry","nodejs-npm","nodejs-yarn","ruby-bundler","elisp-cask","dart-pub","java-maven","rlang","dotnet","rust"]},"features":{"description":"Universal Package Manager (UPM) features","type":"object","properties":{"packageSearch":{"description":"Enable/disable package search panel","type":"boolean"},"guessImports":{"description":"Enable/disable guessing required packages","type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"languages":{"description":"Language configuration","type":"object","patternProperties":{".":{"description":"Language configuration","type":"object","properties":{"glob":{"description":"Glob for language files","type":"string","minLength":1},"languageServer":{"description":"Language Server Protocol (LSP) configuration","type":"object","properties":{"start":{"description":"Command to run server","type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"title":"Repl.it config schema (.replit)","type":"object","x-taplo-info":{"authors":["Emily Grace Seville (https://github.com/EmilySeville7cfg)"],"patterns":["\\.replit(?:\\.toml)?$"]}}
</schema>

[User] Provide a JSON object that satisfies the schema "Repl.it config schema (.replit)". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Command to run REPL

List is taken from https://replit.com/talk/learn/How-to-Get-a-List-of-All-Replit-Langauges/34411

Language name used in REPL

clojure haskell kotlin qbasic forth lolcode brainf*** emoticon bloop react_native unlambda javascript babel coffeescript scheme apl lua python ruby roy php python3 nodejs enzyme go java cpp cpp11 c csharp fsharp web_project html rust swift python_turtle basic jest django express sinatra rails rlang nextjs gatsbyjs reactjs reactts reactre flow bash quil polygott crystal julia perl6 elixir nim dart gatsbyjsv2 reason_nodejs tcl erlang typescript ocaml pygame love2d reason Tkinter tkinter java_swing php_server nodejs_prybar elisp php7 sqlite java10 php_cli nodejs_beta pyxel static go_beta nodejs_static python3_beta raku testj wasm java10_beta python_beta html_beta testj_beta scala riddlejs java_maven

Enable/disable system-wide audio in REPL

Universal Package Manager (UPM) configuration

Command to run on new package install

List of ignored path

List of ignored packages

Language name

python-python3-poetry python-python2-poetry nodejs-npm nodejs-yarn ruby-bundler elisp-cask dart-pub java-maven rlang dotnet rust

Universal Package Manager (UPM) features

Enable/disable package search panel

Enable/disable guessing required packages

Language configuration

Language configuration

Glob for language files

Language Server Protocol (LSP) configuration

Command to run server

Repl.it config schema (.replit)

Emily Grace Seville (https://github.com/EmilySeville7cfg)

Provide a JSON object that satisfies the schema "Repl.it config schema (.replit)". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://oss-review-toolkit.org/.ort.yml","title":"ORT repository configuration","description":"The OSS-Review-Toolkit (ORT) provides a possibility to configure exclusions, resolutions and more in a file called `.ort.yml`. A full list of all available options can be found at https://oss-review-toolkit.org/ort/docs/configuration/ort-yml.","type":"object","properties":{"analyzer":{"$ref":"https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/repository-configurations/analyzer-configuration-schema.json"},"excludes":{"type":"object","description":"Defines which parts of a repository should be excluded.","properties":{"paths":{"type":"array","items":{"type":"object","properties":{"pattern":{"description":"A glob to match the path of the project definition file, relative to the root of the repository.","type":"string"},"reason":{"$ref":"#/definitions/pathExcludeReason"},"comment":{"type":"string"}},"required":["pattern","reason"]}},"scopes":{"type":"array","items":{"type":"object","properties":{"pattern":{"type":"string"},"reason":{"$ref":"#/definitions/scopeExcludeReason"},"comment":{"type":"string"}},"required":["pattern","reason"]}}}},"resolutions":{"$ref":"https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/resolutions-schema.json"},"curations":{"type":"object","description":"Curations for artifacts in a repository.","properties":{"license_findings":{"type":"array","items":{"$ref":"#/definitions/licenseFindingCurations"}},"packages":{"$ref":"https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/curations-schema.json"}},"anyOf":[{"required":["license_findings"]},{"required":["packages"]}]},"package_configurations":{"type":"array","description":"A configuration for a specific package and provenance.","items":{"$ref":"https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/package-configuration-schema.json"}},"license_choices":{"type":"object","description":"A configuration to select a license from a multi-licensed package.","properties":{"package_license_choices":{"type":"array","items":{"type":"object","properties":{"package_id":{"type":"string"},"license_choices":{"type":"array","items":{"type":"object","properties":{"given":{"type":"string"},"choice":{"type":"string"}},"required":["choice"]}}},"required":["package_id","license_choices"]}},"repository_license_choices":{"type":"array","items":{"given":{"type":"string"},"choice":{"type":"string"}}}}},"snippet_choices":{"type":"array","description":"A configuration to select a snippet from a package with multiple snippet findings.","items":{"type":"object","properties":{"provenance":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"choices":{"type":"array","items":{"type":"object","properties":{"given":{"type":"object","properties":{"source_location":{"type":"object","properties":{"path":{"type":"string"},"start_line":{"type":"integer"},"end_line":{"type":"integer"}},"required":["path","start_line","end_line"]}}},"choice":{"type":"object","properties":{"purl":{"type":"string"},"reason":{"$ref":"#/definitions/snippetChoiceReason"},"comment":{"type":"string"}},"required":["reason"]}},"required":["given","choice"]}}},"required":["provenance","choices"]}}},"definitions":{"licenseFindingCurations":{"type":"object","properties":{"path":{"type":"string"},"start_lines":{"type":["integer","string"]},"line_count":{"type":"integer"},"detected_license":{"type":"string"},"concluded_license":{"type":"string"},"reason":{"$ref":"#/definitions/licenseFindingCurationReason"},"comment":{"type":"string"}},"required":["path","concluded_license","reason"]},"pathExcludeReason":{"enum":["BUILD_TOOL_OF","DATA_FILE_OF","DOCUMENTATION_OF","EXAMPLE_OF","OPTIONAL_COMPONENT_OF","OTHER","PROVIDED_BY","TEST_OF","TEST_TOOL_OF"]},"scopeExcludeReason":{"enum":["BUILD_DEPENDENCY_OF","DEV_DEPENDENCY_OF","PROVIDED_DEPENDENCY_OF","TEST_DEPENDENCY_OF","RUNTIME_DEPENDENCY_OF"]},"licenseFindingCurationReason":{"enum":["CODE","DATA_OF","DOCUMENTATION_OF","INCORRECT","NOT_DETECTED","REFERENCE"]},"snippetChoiceReason":{"enum":["NO_RELEVANT_FINDING","ORIGINAL_FINDING","OTHER"]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "ORT repository configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

ORT repository configuration

The OSS-Review-Toolkit (ORT) provides a possibility to configure exclusions, resolutions and more in a file called `.ort.yml`. A full list of all available options can be found at https://oss-review-toolkit.org/ort/docs/configuration/ort-yml.

Defines which parts of a repository should be excluded.

A glob to match the path of the project definition file, relative to the root of the repository.

Curations for artifacts in a repository.

A configuration for a specific package and provenance.

A configuration to select a license from a multi-licensed package.

A configuration to select a snippet from a package with multiple snippet findings.

Provide a JSON object that satisfies the schema "ORT repository configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","title":"ORT Server Repository Environment Configuration","description":"The ORT Server provides the possibility to configure infrastructure services, environment variables, and package manager-specific settings in a file called `.ort.env.yml`. This schema validates the structure and content of this configuration file. For more details on ORT Server, see https://eclipse-apoapsis.github.io/ort-server","type":"object","$defs":{"credentialsType":{"title":"Credentials Type","description":"Defines the type of credentials used for authentication","type":"string","enum":["NETRC_FILE","GIT_CREDENTIALS_FILE"]}},"properties":{"strict":{"type":"boolean","description":"If true, sematic errors are treated as fatal.","default":false},"infrastructureServices":{"type":"array","description":"Infrastructure services required for this repository's environment","items":{"type":"object","required":["name","url","usernameSecret","passwordSecret"],"properties":{"name":{"type":"string","description":"The name of this infrastructure service"},"url":{"type":"string","description":"The URL of this infrastructure service"},"description":{"type":"string","description":"Optional description for this infrastructure service"},"usernameSecret":{"type":"string","description":"The reference to the secret containing the username for this service"},"passwordSecret":{"type":"string","description":"The reference to the secret containing the password for this service"},"credentialsTypes":{"type":"array","items":{"$ref":"#/$defs/credentialsType"},"description":"The credential types for this infrastructure service"}}}},"environmentVariables":{"type":"array","description":"Environment variables required for this repository's environment","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the environment variable"},"secretName":{"type":"string","description":"The reference to the secret's name from which the value is obtained"},"value":{"type":"string","description":"The direct value of the environment variable"}},"oneOf":[{"required":["secretName"]},{"required":["value"]}]}},"environmentDefinitions":{"title":"Environment Definitions","description":"Package manager specific configuration","type":"object","properties":{"conan":{"type":"array","items":{"type":"object","required":["service","name"],"properties":{"service":{"type":"string","description":"The reference to the infrastructure service to use"},"name":{"type":"string","description":"The name of the Conan remote"},"url":{"type":"string","description":"The URL of the Conan remote"},"verifySsl":{"type":["string","boolean"],"description":"Whether to verify SSL certificates"}}}},"maven":{"type":"array","items":{"type":"object","required":["service","id"],"properties":{"service":{"type":"string","description":"The reference to the infrastructure service to use"},"id":{"type":"string","description":"The ID of the Maven repository as defined in settings.xml"},"credentialsTypes":{"type":"array","items":{"$ref":"#/$defs/credentialsType"},"description":"The credential types for this Maven repository"}}}},"npm":{"type":"array","items":{"type":"object","required":["service"],"properties":{"service":{"type":"string","description":"The reference to the infrastructure service to use"},"scope":{"type":"string","description":"The scope for the NPM registry"},"email":{"type":"string","description":"The email address to use for authentication"},"authMode":{"type":"string","description":"The authentication mode"}}}},"nuget":{"type":"array","items":{"type":"object","required":["service","sourceName","sourcePath"],"properties":{"service":{"type":"string","description":"The reference to the infrastructure service to use"},"sourceName":{"type":"string","description":"The name of the NuGet source"},"sourcePath":{"type":"string","description":"The path to the NuGet source"},"sourceProtocolVersion":{"type":"string","description":"The protocol version of the NuGet source"},"authMode":{"type":"string","description":"The authentication mode"}}}},"yarn":{"type":"array","items":{"type":"object","required":["service"],"properties":{"service":{"type":"string","description":"The reference to the infrastructure service to use"},"alwaysAuth":{"type":["string","boolean"],"description":"Whether to always send authentication"},"authMode":{"type":"string","description":"The authentication mode"}}}}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "ORT Server Repository Environment Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The ORT Server provides the possibility to configure infrastructure services, environment variables, and package manager-specific settings in a file called `.ort.env.yml`. This schema validates the structure and content of this configuration file. For more details on ORT Server, see https://eclipse-apoapsis.github.io/ort-server

Credentials Type

Defines the type of credentials used for authentication

If true, sematic errors are treated as fatal.

Infrastructure services required for this repository's environment

The name of this infrastructure service

The URL of this infrastructure service

Optional description for this infrastructure service

The reference to the secret containing the username for this service

The reference to the secret containing the password for this service

The credential types for this infrastructure service

Environment variables required for this repository's environment

The name of the environment variable

The reference to the secret's name from which the value is obtained

The direct value of the environment variable

Environment Definitions

Package manager specific configuration

The reference to the infrastructure service to use

The name of the Conan remote

The URL of the Conan remote

Whether to verify SSL certificates

The ID of the Maven repository as defined in settings.xml

The credential types for this Maven repository

The scope for the NPM registry

The email address to use for authentication

The authentication mode

The name of the NuGet source

The path to the NuGet source

The protocol version of the NuGet source

The authentication mode

Whether to always send authentication

The authentication mode

Provide a JSON object that satisfies the schema "ORT Server Repository Environment Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "Ansible Requirements Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Name

Source

Type

Version

CollectionModel

CollectionStringModel

Include

IncludeModel

Collections

Roles

Requirements v2

Name

Scm

Src

Version

Role

Ansible Requirements Schema

Provide a JSON object that satisfies the schema "Ansible Requirements Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":{"minProperties":1,"anyOf":[{"type":"string"},{"$ref":"#/definitions/resource"}]},"definitions":{"resource":{"type":"object","additionalProperties":{"minProperties":1,"anyOf":[{"type":"string"},{"$ref":"#/definitions/resource"}]}}},"id":"https://json.schemastore.org/resjson.json","title":"JSON schema for Windows resource files (.resjson)","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Windows resource files (.resjson)". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Provide a JSON object that satisfies the schema "JSON schema for Windows resource files (.resjson)". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://oss-review-toolkit.org/resolutions.yml","title":"ORT resolutions","description":"The OSS-Review-Toolkit (ORT) provides a possibility to resolve issues, rule violations and security vulnerabilities in a resolutions file. A full list of all available options can be found at https://oss-review-toolkit.org/ort/docs/configuration/resolutions.","type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"$ref":"#/definitions/issueResolutionReason"},"comment":{"type":"string"}},"required":["message","reason"]}},"rule_violations":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"$ref":"#/definitions/ruleViolationResolutionReason"},"comment":{"type":"string"}},"required":["message","reason"]}},"vulnerabilities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"reason":{"$ref":"#/definitions/vulnerabilityResolutionReason"},"comment":{"type":"string"}},"required":["id","reason"]}}},"anyOf":[{"required":["issues"]},{"required":["rule_violations"]},{"required":["vulnerabilities"]}],"definitions":{"issueResolutionReason":{"enum":["BUILD_TOOL_ISSUE","CANT_FIX_ISSUE","SCANNER_ISSUE"]},"ruleViolationResolutionReason":{"enum":["CANT_FIX_EXCEPTION","DYNAMIC_LINKAGE_EXCEPTION","EXAMPLE_OF_EXCEPTION","LICENSE_ACQUIRED_EXCEPTION","NOT_MODIFIED_EXCEPTION","PATENT_GRANT_EXCEPTION"]},"vulnerabilityResolutionReason":{"enum":["CANT_FIX_VULNERABILITY","INEFFECTIVE_VULNERABILITY","INVALID_MATCH_VULNERABILITY","MITIGATED_VULNERABILITY","NOT_A_VULNERABILITY","WILL_NOT_FIX_VULNERABILITY","WORKAROUND_FOR_VULNERABILITY"]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "ORT resolutions". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

ORT resolutions

The OSS-Review-Toolkit (ORT) provides a possibility to resolve issues, rule violations and security vulnerabilities in a resolutions file. A full list of all available options can be found at https://oss-review-toolkit.org/ort/docs/configuration/resolutions.

Provide a JSON object that satisfies the schema "ORT resolutions". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"http://www.ibm.com/xmlns/prod/cics/resourceoverrides","$schema":"http://json-schema.org/draft-07/schema#","title":"CICS resource overrides JSON Schema for CICS TS 6.1.0.","description":"Super-schema that describes all versions of 'CICS resource overrides JSON Schema for CICS TS 6.1.0.'","allOf":[{"title":"CICS resource overrides JSON Schema.","description":"Schema that describes the structure of a CICS resource overrides document.","if":{"properties":{"schemaVersion":{"const":"resourceOverrides/1.0"}}},"then":{"$ref":"resourceoverrides/resourceoverrides-1.0.0.json"}},{"title":"CICS resource overrides JSON Schema for CICS TS 6.1.0.","description":"Schema that describes the structure of a CICS resource overrides document.","if":{"properties":{"schemaVersion":{"const":"resourceOverrides/1.100"}}},"then":{"$ref":"resourceoverrides/resourceoverrides-1.100.2.json"}}]}
</schema>

[User] Provide a JSON object that satisfies the schema "CICS resource overrides JSON Schema for CICS TS 6.1.0.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Super-schema that describes all versions of 'CICS resource overrides JSON Schema for CICS TS 6.1.0.'

CICS resource overrides JSON Schema.

Schema that describes the structure of a CICS resource overrides document.

Provide a JSON object that satisfies the schema "CICS resource overrides JSON Schema for CICS TS 6.1.0.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"dolittle.io/schemas/DotNET.Fundamentals/ResourceTypes.Configuration/resources.json","title":"Resource Configuration","description":"The resource configurations mapped to tenant id","type":"object","additionalProperties":{"$ref":"#/definitions/resourceTypeConfiguration"},"definitions":{"resourceTypeConfiguration":{"description":"The configuration of a resource type","type":"object","properties":{"readModels":{"description":"Configuration for the resource type for read models","type":"object"},"eventStore":{"description":"Configuration for the resource type for the event store","type":"object"}},"additionalProperties":true,"required":["readModels","eventStore"]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Resource Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Resource Configuration

The resource configurations mapped to tenant id

The configuration of a resource type

Configuration for the resource type for read models

Configuration for the resource type for the event store

Provide a JSON object that satisfies the schema "Resource Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "Restate configuration file". Here are the required top‑level fields: tracing-filter. Return only the valid JSON object.

Restate configuration file

Configuration for Restate server.

Defines the roles which this Restate node should run, by default the node starts with all roles.

worker admin metadata-server log-server http-ingress

Node Name

Unique name for this node in the cluster. The node must not change unless it's started with empty local store. It defaults to the node's hostname.

Node Location

[PREVIEW FEATURE] Setting the location allows Restate to form a tree-like cluster topology. The value is written in the format of "<region>[.zone]" to assign this node to a specific region, or to a zone within a region.

The value of region and zone is arbitrary but whitespace and `.` are disallowed.

NOTE: It's _strongly_ recommended to not change the node's location string after its initial registration. Changing the location may result in data loss or data inconsistency if `log-server` is enabled on this node.

When this value is not set, the node is considered to be in the _default_ location. The _default_ location means that the node is not assigned to any specific region or zone.

## Examples - `us-west` -- the node is in the `us-west` region. - `us-west.a1` -- the node is in the `us-west` region and in the `a1` zone. - `` -- [default] the node is in the default location

If set, the node insists on acquiring this node ID.

Cluster name

A unique identifier for the cluster. All nodes in the same cluster should have the same.

Auto cluster provisioning

If true, then this node is allowed to automatically provision as a new cluster. This node *must* have an admin role and a new nodes configuration will be created that includes this node.

auto-provision is allowed by default in development mode and is disabled if restate-server runs with `--production` flag to prevent cluster nodes from forming their own clusters, rather than forming a single cluster.

Use `restatectl` to provision the cluster/node if automatic provisioning is disabled.

This can also be explicitly disabled by setting this value to false.

Default: true

The working directory which this Restate node should use for relative paths. The default is `restate-data` under the current working directory.

Address to bind for the Node server. Derived from the advertised address, defaulting to `0.0.0.0:$PORT` (where the port will be inferred from the URL scheme).

Address that other nodes will use to connect to this node. Default is `http://127.0.0.1:5122/`

Partitions

Number of partitions that will be provisioned during initial cluster provisioning. partitions are the logical shards used to process messages.

Cannot be higher than `65535` (You should almost never need as many partitions anyway)

NOTE 1: This config entry only impacts the initial number of partitions, the value of this entry is ignored for provisioned nodes/clusters.

NOTE 2: This will be renamed to `default-num-partitions` by default as of v1.3+

Default: 24

Default replication factor

Configures the global default replication factor to be used by the the system.

Note that this value only impacts the cluster initial provisioning and will not be respected after the cluster has been provisioned.

To update existing clusters use the `restatectl` utility.

Shutdown grace timeout

This timeout is used when shutting down the various Restate components to drain all the internal queues.

Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format.

Default async runtime thread pool

Size of the default thread pool used to perform internal tasks. If not set, it defaults to the number of CPU cores.

Logging Filter

Log filter configuration. Can be overridden by the `RUST_LOG` environment variable. Check the [`RUST_LOG` documentation](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html) for more details how to configure it.

Logging format

Format to use when logging.

Disable ANSI in log output

Disable ANSI terminal codes for logs. This is useful when the log collector doesn't support processing ANSI terminal codes.

Address to bind for the tokio-console tracing subscriber. If unset and restate-server is built with tokio-console support, it'll listen on `0.0.0.0:6669`.

Timeout for idle histograms.

The duration after which a histogram is considered idle and will be removed from metric responses to save memory. This value should be configured higher than the scrape interval of the telemetry collection system (e.g. Prometheus).

Disable prometheus metric recording and reporting. Default is `false`.

Storage high priority thread pool

This configures the restate-managed storage thread pool for performing high-priority or latency-sensitive storage tasks when the IO operation cannot be performed on in-memory caches.

Storage low priority thread pool

This configures the restate-managed storage thread pool for performing low-priority or latency-insensitive storage tasks.

Total memory limit for rocksdb caches and memtables.

This includes memory for uncompressed block cache and all memtables by all open databases. The memory size used for rocksdb caches.

Rocksdb total memtable size ratio

The memory size used across all memtables (ratio between 0 to 1.0). This limits how much memory memtables can eat up from the value in rocksdb-total-memory-limit. When set to 0, memtables can take all available memory up to the value specified in rocksdb-total-memory-limit. This value will be sanitized to 1.0 if outside the valid bounds.

Rocksdb Background Threads

The number of threads to reserve to Rocksdb background tasks. Defaults to the number of cores on the machine.

Rocksdb High Priority Background Threads

The number of threads to reserve to high priority Rocksdb background tasks.

Rocksdb stall detection threshold

This defines the duration after which a write is to be considered in "stall" state. For every write that meets this threshold, the system will increment the `restate.rocksdb_stall_flare` gauge, if the write is unstalled, the guage will be updated accordingly.

Allow rocksdb writes to stall if memory limit is reached

Note if automatic memory budgeting is enabled, it should be safe to allow rocksdb to stall if it hits the limit. However, if rocksdb stall kicked in, it's unlikely that the system will recover from this without intervention.

Rocksdb performance statistics level

Defines the level of PerfContext used internally by rocksdb. Default is `enable-count` which should be sufficient for most users. Note that higher levels incur a CPU cost and might slow down the critical path.

Metadata update interval

The idle time after which the node will check for metadata updates from metadata store. This helps the node detect if it has been operating with stale metadata for extended period of time, primarily because it didn't interact with other peers in the cluster during that period.

Timeout for metadata peer-to-peer fetching

When a node detects that a new metadata version exists, it'll attempt to fetch it from its peers. After this timeout duration has passed, the node will attempt to fetch the metadata from metadata store as well. This is to ensure that the nodes converge quickly while reducing the load on the metadata store.

Network error retry policy

The retry policy for network related errors

Initialization timeout

The timeout until the node gives up joining a cluster and initializing itself.

Disable telemetry

Restate uses Scarf to collect anonymous usage data to help us understand how the software is being used. You can set this flag to true to disable this collection. It can also be set with the environment variable DO_NOT_TRACK=1.

Tracing Endpoint

This is a shortcut to set both [`Self::tracing_runtime_endpoint`], and [`Self::tracing_services_endpoint`].

Specify the tracing endpoint to send runtime traces to. Traces will be exported using [OTLP gRPC](https://opentelemetry.io/docs/specs/otlp/#otlpgrpc) through [opentelemetry_otlp](https://docs.rs/opentelemetry-otlp/0.12.0/opentelemetry_otlp/).

To configure the sampling, please refer to the [opentelemetry autoconfigure docs](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure/README.md#sampler).

Runtime Tracing Endpoint

Overrides [`Self::tracing_endpoint`] for runtime traces

Specify the tracing endpoint to send runtime traces to. Traces will be exported using [OTLP gRPC](https://opentelemetry.io/docs/specs/otlp/#otlpgrpc) through [opentelemetry_otlp](https://docs.rs/opentelemetry-otlp/0.12.0/opentelemetry_otlp/).

To configure the sampling, please refer to the [opentelemetry autoconfigure docs](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure/README.md#sampler).

Services Tracing Endpoint

Overrides [`Self::tracing_endpoint`] for services traces

Specify the tracing endpoint to send services traces to. Traces will be exported using [OTLP gRPC](https://opentelemetry.io/docs/specs/otlp/#otlpgrpc) through [opentelemetry_otlp](https://docs.rs/opentelemetry-otlp/0.12.0/opentelemetry_otlp/).

To configure the sampling, please refer to the [opentelemetry autoconfigure docs](https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/autoconfigure/README.md#sampler).

Distributed Tracing JSON Export Path

If set, an exporter will be configured to write traces to files using the Jaeger JSON format. Each trace file will start with the `trace` prefix.

If unset, no traces will be written to file.

It can be used to export traces in a structured format without configuring a Jaeger agent.

To inspect the traces, open the Jaeger UI and use the Upload JSON feature to load and inspect them.

Tracing Filter

Distributed tracing exporter filter. Check the [`RUST_LOG` documentation](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html) for more details how to configure it.

Additional tracing headers

Specify additional headers you want the system to send to the tracing endpoint (e.g. authentication headers).

Request identity private key PEM file

A path to a file, such as "/var/secrets/key.pem", which contains exactly one ed25519 private key in PEM format. Such a file can be generated with `openssl genpkey -algorithm ed25519`. If provided, this key will be used to attach JWTs to requests from this client which SDKs may optionally verify, proving that the caller is a particular Restate instance.

This file is currently only read on client creation, but this may change in future. Parsed public keys will be logged at INFO level in the same format that SDKs expect.

HTTP/2 Keep-alive

Configuration for the HTTP/2 keep-alive mechanism, using PING frames. If unset, HTTP/2 keep-alive are disabled.

Proxy URI

A URI, such as `http://127.0.0.1:10001`, of a server to which all invocations should be sent, with the `Host` header set to the deployment URI. HTTPS proxy URIs are supported, but only HTTP endpoint traffic will be proxied currently. Can be overridden by the `HTTP_PROXY` environment variable.

No proxy

HTTP authorities eg `localhost`, `restate.dev`, `127.0.0.1` that should not be proxied by the http_proxy. Ports are ignored. Subdomains are also matched. An entry “*” matches all hostnames. Can be overridden by the `NO_PROXY` environment variable, which supports comma separated values.

Connect timeout

How long to wait for a TCP connection to be established before considering it a failed attempt.

Initial Max Send Streams

Sets the initial maximum of locally initiated (send) streams.

This value will be overwritten by the value included in the initial SETTINGS frame received from the peer as part of a [connection preface].

Default: None

**NOTE**: Setting this value to None (default) users the default recommended value from HTTP2 specs

AWS Profile

Name of the AWS profile to select. Defaults to 'AWS_PROFILE' env var, or otherwise the `default` profile.

AssumeRole external ID

An external ID to apply to any AssumeRole operations taken by this client. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html Can be overridden by the `AWS_EXTERNAL_ID` environment variable.

Disable Direct IO for reads

Files will be opened in "direct I/O" mode which means that data r/w from the disk will not be cached or buffered. The hardware buffer of the devices may however still be used. Memory mapped files are not impacted by these parameters.

Disable Direct IO for flush and compactions

Use O_DIRECT for writes in background flush and compactions.

Disable WAL

The default depends on the different rocksdb use-cases at Restate.

Supports hot-reloading (Partial / Bifrost only)

Disable rocksdb statistics collection

Default: False (statistics enabled)

RocksDB max background jobs (flushes and compactions)

Default: the number of CPU cores on this node.

RocksDB compaction readahead size in bytes

If non-zero, we perform bigger reads when doing compaction. If you're running RocksDB on spinning disks, you should set this to at least 2MB. That way RocksDB's compaction is doing sequential instead of random reads.

RocksDB statistics level

StatsLevel can be used to reduce statistics overhead by skipping certain types of stats in the stats collection process.

Default: "except-detailed-timers"

RocksDB log level

Verbosity of the LOG.

Default: "error"

RocksDB log keep file num

Number of info LOG files to keep

Default: 1

RocksDB log max file size

Max size of info LOG file

Default: 64MB

RocksDB block size

Uncompressed block size

Default: 64KiB

Gossip tick interval

The interval at which the failure detector will tick. Decrease this value for faster reaction to node failures. Note, that every tick comes with an overhead.

Gossip failure threshold

Specifies how many gossip intervals of inactivity need to pass before considering a node as dead.

Number of peers to gossip

On every gossip interval, how many peers each node attempts to gossip with. The default is optimized for small clusters (<5). On larger clusters, if gossip overhead is noticeable, consider reducing this value to 1.

Gossips before failure detector is stable

Suspect duration

How long to keep a node in a transient state (suspect) before marking it as available. Larger values mean that the cluster is less prone to flaky nodes but extends the time it takes for a node to participate.

A node becomes a suspect if it has been previously marked as dead for a given generation number. If the node incremented its generation number, it will not be impacted by this threshold.

Gossip loneliness threshold

How many intervals need to pass without receiving any gossip messages before considering this node as potentially isolated/dead. This threshold is used in the case where the node can still send gossip messages but did not receive any. This can rarely happen in asymmetric network partitions.

In this case, the node will advertise itself as dead in the gossip messages it sends out.

Note: this threshold does not apply to a cluster that's configured with a single node.

Gossip extras exchange frequency

In addition to basic health/liveness information, the gossip protocol is used to exchange extra information about the roles hosted by this node. For instance, which partitions are currently running, their configuration versions, and the durable LSN of the corresponding partition databases. This information is sent every Nth gossip message. This setting controls the frequency of this exchange. For instance, `10` means that every 10th gossip message will contain the extra information about.

Gossips time skew threshold

The time skew is the maximum acceptable time difference between the local node and the time reported by peers via gossip messages. The time skew is also used to ignore gossip messages that are too old.

Worker options

Internal queue for partition processor communication

Num timers in memory limit

The number of timers in memory limit is used to bound the amount of timers loaded in memory. If this limit is set, when exceeding it, the timers farther in the future will be spilled to disk.

Cleanup interval

In order to clean up completed invocations, that is invocations invoked with an idempotency id, or workflows, Restate periodically scans among the completed invocations to check whether they need to be removed or not. This interval sets the scan interval of the cleanup procedure. Default: 1 hour.

Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format.

Maximum command batch size for partition processors

The maximum number of commands a partition processor will apply in a batch. The larger this value is, the higher the throughput and latency are.

Snapshots

Snapshots provide a mechanism for safely trimming the log and efficient bootstrapping of new worker nodes.

Storage options

How many partitions to divide memory across?

By default this uses the value defined in `default-num-partitions` in the common section of the config.

The memory budget for rocksdb memtables in bytes

The total is divided evenly across partitions. The divisor is defined in `num-partitions-to-share-memory-budget`. If this value is set, it overrides the ratio defined in `rocksdb-memory-ratio`.

The memory budget for rocksdb memtables as ratio

This defines the total memory for rocksdb as a ratio of all memory available to memtables (See `rocksdb-total-memtables-ratio` in common). The budget is then divided evenly across partitions. The divisor is defined in `num-partitions-to-share-memory-budget`

Persist LSN interval (deprecated)

This configuration option is deprecated and ignored in Restate >= 1.3.3.

Persist LSN threshold (deprecated)

Disable Direct IO for reads

Use O_DIRECT for writes in background flush and compactions.

Disable WAL

The default depends on the different rocksdb use-cases at Restate.

Supports hot-reloading (Partial / Bifrost only)

Disable rocksdb statistics collection

Default: False (statistics enabled)

Default: the number of CPU cores on this node.

RocksDB statistics level

StatsLevel can be used to reduce statistics overhead by skipping certain types of stats in the stats collection process.

Default: "except-detailed-timers"

RocksDB log level

Verbosity of the LOG.

Default: "error"

RocksDB log keep file num

Number of info LOG files to keep

Default: 1

RocksDB log max file size

Max size of info LOG file

Default: 64MB

RocksDB block size

Uncompressed block size

Default: 64KiB

Non-zero human-readable bytes

Non-zero human-readable bytes

Disable all metrics

Disable timer stats, and skip histogram stats

Skip timer stats

Collect all stats except time inside mutex lock AND time spent on compression.

Collect all stats except the counters requiring to get time inside the mutex lock.

Collect all stats, including measuring duration of mutex operations. If getting time is expensive on the platform to run, it can reduce scalability to more threads, especially for writes.

Verbosity of the LOG.

Invoker options

Retry policy

Retry policy to use for all the invocations handled by this invoker.

Inactivity timeout

This timer guards against stalled service/handler invocations. Once it expires, Restate triggers a graceful termination by asking the service invocation to suspend (which preserves intermediate progress).

The 'abort timeout' is used to abort the invocation, in case it doesn't react to the request to suspend.

Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format.

Abort timeout

This timer guards against stalled service/handler invocations that are supposed to terminate. The abort timeout is started after the 'inactivity timeout' has expired and the service/handler invocation has been asked to gracefully terminate. Once the timer expires, it will abort the service/handler invocation.

This timer potentially **interrupts** user code. If the user code needs longer to gracefully terminate, then this value needs to be set accordingly.

Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format.

Message size warning

Threshold to log a warning in case protocol messages coming from a service are larger than the specified amount.

Message size limit

Threshold to fail the invocation in case protocol messages coming from a service are larger than the specified amount.

Temporary directory

Temporary directory to use for the invoker temporary files. If empty, the system temporary directory will be used instead.

Spill invocations to disk

Defines the threshold after which queues invocations will spill to disk at the path defined in `tmp-dir`. In other words, this is the number of invocations that can be kept in memory before spilling to disk. This is a per-partition limit.

Limit number of concurrent invocations from this node

Number of concurrent invocations that can be processed by the invoker.

Retry policy

Definition of a retry policy

No retry strategy.

Fixed delay

Retry with a fixed delay strategy.

Interval

Interval between retries.

Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format.

Max attempts

Number of maximum attempts before giving up. Infinite retries if unset.

Exponential

Retry with an exponential strategy. The next retry is computed as `min(last_retry_interval * factor, max_interval)`.

Initial Interval

Initial interval for the first retry attempt.

Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format.

Factor

The factor to use to compute the next retry attempt.

Max attempts

Max interval

Maximum interval between retries.

Snapshot options.

Partition store snapshotting settings. At a minimum, set `destination` and `snapshot-interval-num-records` to enable snapshotting. For a complete example, see [Snapshots](https://docs.restate.dev/operate/snapshots).

Snapshot destination URL

Base URL for cluster snapshots. Supports `s3://` and `file://` protocol scheme. S3-compatible object stores must support ETag-based conditional writes.

Default: `None`

Automatic snapshot creation frequency

Number of log records that trigger a snapshot to be created.

As snapshots are created asynchronously, the actual number of new records that will trigger a snapshot will vary. The counter for the subsequent snapshot begins from the LSN at which the previous snapshot export was initiated. Only leader Partition Processors will take snapshots for a given partition.

This setting does not influence explicitly requested snapshots triggered using `restatectl`.

Default: `None` - automatic snapshots are disabled

Error retry policy

A retry policy for dealing with retryable object store errors.

AWS profile

The AWS configuration profile to use for S3 object store destinations. If you use named profiles in your AWS configuration, you can replace all the other settings with a single profile reference. See the [AWS documentation on profiles] (https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) for more.

AWS region

AWS region to use with S3 object store destinations. This may be inferred from the environment, for example the current region when running in EC2. Because of the request signing algorithm this must have a value. For Minio, you can generally set this to any string, such as `us-east-1`.

AWS access key

Username for Minio, or consult the service documentation for other S3-compatible stores.

AWS secret key

Password for Minio, or consult the service documentation for other S3-compatible stores.

AWS session token

This is only needed with short-term STS session credentials.

Object store API endpoint URL override

When you use Amazon S3, this is typically inferred from the region and there is no need to set it. With other object stores, you will have to provide an appropriate HTTP(S) endpoint. If *not* using HTTPS, also set `aws-allow-http` to `true`.

Allow insecure HTTP

Allow plain HTTP to be used with the object store endpoint. Required when the endpoint URL that isn't using HTTPS.

Admin server options

Endpoint address

Address to bind for the Admin APIs.

Advertised Admin endpoint

Optional advertised Admin API endpoint.

Concurrency limit

Concurrency limit for the Admin APIs. Default is unlimited.

Controller heartbeats

Controls the interval at which cluster controller polls nodes of the cluster.

Log trim check interval

Controls the interval at which cluster controller tries to trim the logs. Log trimming can be disabled by setting it to "0s".

Note that this is only the interval at which logs are checked, and does not guarantee that trim will be performed. The conditions for safely trim the log vary depending on the deployment. For single nodes, the log records must be durably persisted to disk. In distributed deployments, automatic trimming requires an external snapshot destination - see `worker.snapshots` for more.

Disable serving the Restate Web UI on the admin port. Default is `false`.

Storage query engine options

Memory size limit

The total memory in bytes that can be used to preform sql queries

Temp folder to use for spill

The path to spill to

Default query parallelism

The number of parallel partitions to use for a query execution

Pgsql Bind address

The address to bind for the psql service.

Ingress options

Bind address

The address to bind for the ingress.

Concurrency limit

Local concurrency limit to use to limit the amount of concurrent requests. If exceeded, the ingress will reply immediately with an appropriate status code. Default is unlimited.

Ingress endpoint

Ingress endpoint that the Web UI should use to interact with.

Kafka cluster options

Configuration options to connect to a Kafka cluster.

Cluster name (Used to identify subscriptions).

Servers

Initial list of brokers (host or host:port).

Bifrost options

The default kind of loglet to be used

Default: Replicated

Configuration of local loglet provider

Configuration of replicated loglet provider

Read retry policy

Retry policy to use when bifrost waits for reconfiguration to complete during read operations

Seal retry interval

Interval to wait between retries of loglet seal failures

Auto recovery threshold

Time interval after which bifrost's auto-recovery mechanism will kick in. This is triggered in scenarios where the control plane took too long to complete loglet reconfigurations.

Append retry minimum interval

Minimum retry duration used by the exponential backoff mechanism for bifrost appends.

Append retry maximum interval

Maximum retry duration used by the exponential backoff mechanism for bifrost appends.

In-memory RecordCache memory limit

Optional size of record cache in bytes. If set to 0, record cache will be disabled. Defaults: 250MB

Disable Automatic Improvement

When enabled, automatic improvement periodically checks with the loglet provider if the loglet configuration can be improved by performing a reconfiguration.

This allows the log to pick up replication property changes, apply better placement of replicas, or for other reasons.

An enum with the list of supported loglet providers.

A local rocksdb-backed loglet.

Replicated loglets are restate's native log replication system. This requires `log-server` role to run on enough nodes in the cluster.

Maximum number of inflight records sequencer can accept

Once this maximum is hit, sequencer will induce back pressure on clients. This controls the total number of records regardless of how many batches.

Note that this will be increased to fit the biggest batch of records being enqueued.

Sequencer retry policy

Backoff introduced when sequencer fail to find a suitable spread of log servers

Sequencer inactivity timeout

The sequencer is allowed to consider itself quiescent if it did not commit records for this period of time. It may use this to sends pre-emptive release/seal check requests to log-servers.

The sequencer is also allowed to use this value as interval to send seal/release checks even if it's not quiescent.

Log Server RPC timeout

Timeout waiting on log server response

Log Server RPC retry policy

Retry policy for log server RPCs

Maximum number of records to prefetch from log servers

The number of records bifrost will attempt to prefetch from replicated loglet's log-servers for every loglet reader (e.g. partition processor). Note that this mainly impacts readers that are not co-located with the loglet sequencer (i.e. partition processor followers).

Trigger to prefetch more records

When read-ahead is used (readahead-records), this value (percentage in float) will determine when readers should trigger a prefetch for another batch to fill up the buffer. For instance, if this value is 0.3, then bifrost will trigger a prefetch when 30% or more of the read-ahead slots become available (e.g. partition processor consumed records and freed up enough slots).

The higher the value is, the longer bifrost will wait before it triggers the next fetch, potentially fetching more records as a result.

To illustrate, if readahead-records is set to 100 and readahead-trigger-ratio is 1.0. Then bifrost will prefetch up to 100 records from log-servers and will not trigger the next prefetch unless the consumer consumes 100% of this buffer. This means that bifrost will read in batches but will not do while the consumer is still reading the previous batch.

Value must be between 0 and 1. It will be clamped at `1.0`.

Human-readable bytes

Human-readable bytes

Metadata store options

Limit number of in-flight requests

Number of in-flight metadata store requests.

The memory budget for rocksdb memtables in bytes

If this value is set, it overrides the ratio defined in `rocksdb-memory-ratio`.

The memory budget for rocksdb memtables as ratio

This defines the total memory for rocksdb as a ratio of all memory available to memtables (See `rocksdb-total-memtables-ratio` in common).

Disable Direct IO for reads

Use O_DIRECT for writes in background flush and compactions.

Disable WAL

The default depends on the different rocksdb use-cases at Restate.

Supports hot-reloading (Partial / Bifrost only)

Disable rocksdb statistics collection

Default: False (statistics enabled)

Default: the number of CPU cores on this node.

RocksDB statistics level

StatsLevel can be used to reduce statistics overhead by skipping certain types of stats in the stats collection process.

Default: "except-detailed-timers"

RocksDB log level

Verbosity of the LOG.

Default: "error"

RocksDB log keep file num

Number of info LOG files to keep

Default: 1

RocksDB log max file size

Max size of info LOG file

Default: 64MB

RocksDB block size

Uncompressed block size

Default: 64KiB

The number of ticks before triggering an election

The number of ticks before triggering an election. The value must be larger than `raft_heartbeat_tick`. It's recommended to set `raft_election_tick = 10 * raft_heartbeat_tick`. Decrease this value if you want to react faster to failed leaders. Note, decreasing this value too much can lead to cluster instabilities due to falsely detecting dead leaders.

The number of ticks before sending a heartbeat

A leader sends heartbeat messages to maintain its leadership every heartbeat ticks. Decrease this value to send heartbeats more often.

The raft tick interval

The interval at which the raft node will tick. Decrease this value in order to let the Raft node react more quickly to changes. Note, that every tick comes with an overhead. Moreover, the tick interval directly affects the election timeout. If the election timeout becomes too small, then this can cause cluster instabilities due to frequent leader changes.

The status update interval

The interval at which the raft node will update its status. Decrease this value in order to see more recent status updates.

The raft log trim threshold

The threshold for trimming the raft log. The log will be trimmed if the number of apply entries exceeds this threshold. The default value is `1000`.

Networking options

Common network configuration options for communicating with Restate cluster nodes. Note that similar keys are present in other config sections, such as in Service Client options.

Connect timeout

TCP connection timeout for Restate cluster node-to-node network connections.

Connect retry policy

Retry policy to use for internal node-to-node networking.

Handshake timeout

Timeout for receiving a handshake response from Restate cluster peers.

HTTP/2 Keep Alive Interval

HTTP/2 Keep Alive Timeout

HTTP/2 Adaptive Window

Data Stream Window Size

Controls the number of bytes the can be sent on every data stream before inducing back pressure. Data streams are used for sending messages between nodes.

The value should is often derived from BDP (Bandwidth Delay Product) of the network. For instance, if the network has a bandwidth of 10 Gbps with a round-trip time of 5 ms, the BDP is 10 Gbps * 0.005 s = 6.25 MB. This means that the window size should be at least 6.25 MB to fully utilize the network bandwidth assuming the latency is constant. Our recommendation is to set the window size to 2x the BDP to account for any variations in latency.

If network latency is high, it's recommended to set this to a higher value. Maximum theoretical value is 2^31-1 (2 GiB - 1), but we will sanitize this value to 500 MiB.

Log server options

Configuration is only used on nodes running with `log-server` role.

The memory budget for rocksdb memtables in bytes

If this value is set, it overrides the ratio defined in `rocksdb-memory-ratio`.

The memory budget for rocksdb memtables as ratio

This defines the total memory for rocksdb as a ratio of all memory available to the log-server.

(See `rocksdb-total-memtables-ratio` in common).

Disable fsync of WAL on every batch

The maximum number of subcompactions to run in parallel.

Setting this to 1 means no sub-compactions are allowed (i.e. only 1 thread will do the compaction).

Default is 0 which maps to floor(number of CPU cores / 2)

The size limit of all WAL files

Use this to limit the size of WAL files. If the size of all WAL files exceeds this limit, the oldest WAL file will be deleted and if needed, memtable flush will be triggered.

Note: RocksDB internally counts the uncompressed bytes to determine the WAL size, and since the WAL is compressed, the actual size on disk will be significantly smaller than this value (~1/4 depending on the compression ratio). For instance, if this is set to "1 MiB", then rocksdb might decide to flush if the total WAL (on disk) reached ~260 KiB (compressed).

Default is `0` which translates into 6 times the memory allocated for membtables for this database.

Trigger a commit when the batch size exceeds this threshold.

Set to 0 or 1 to commit the write batch on every command.

The number of messages that can queue up on input network stream while request processor is busy.

Disable Direct IO for reads

Use O_DIRECT for writes in background flush and compactions.

Disable WAL

The default depends on the different rocksdb use-cases at Restate.

Supports hot-reloading (Partial / Bifrost only)

Disable rocksdb statistics collection

Default: False (statistics enabled)

Default: the number of CPU cores on this node.

RocksDB statistics level

StatsLevel can be used to reduce statistics overhead by skipping certain types of stats in the stats collection process.

Default: "except-detailed-timers"

RocksDB log level

Verbosity of the LOG.

Default: "error"

RocksDB log keep file num

Number of info LOG files to keep

Default: 1

RocksDB log max file size

Max size of info LOG file

Default: 64MB

RocksDB block size

Uncompressed block size

Default: 64KiB

A worker runs partition processor (journal, state, and drives invocations)

Admin runs cluster controller and user-facing admin APIs

Serves the metadata store

Serves a log-server for replicated loglets

Serves HTTP ingress requests

Metadata client options

The metadata client type to store metadata

Store metadata on the replicated metadata store that runs on nodes with the metadata-server role.

Restate metadata server address list

Store metadata on an external etcd cluster.

The addresses are formatted as `host:port`

Etcd cluster node address list

Store metadata on an external object store.

Object store path for metadata storage

This location will be used to persist cluster metadata. Takes the form of a URL with `s3://` as the protocol and bucket name as the authority, plus an optional prefix specified as the path component.

Example: `s3://bucket/prefix`

Error retry policy

AWS profile

AWS region

AWS access key

Username for Minio, or consult the service documentation for other S3-compatible stores.

AWS secret key

Password for Minio, or consult the service documentation for other S3-compatible stores.

AWS session token

This is only needed with short-term STS session credentials.

Object store API endpoint URL override

Allow insecure HTTP

Allow plain HTTP to be used with the object store endpoint. Required when the endpoint URL that isn't using HTTPS.

Connect timeout

TCP connection timeout for connecting to the metadata store.

Metadata Store Keep Alive Interval

Metadata Store Keep Alive Timeout

Backoff policy used by the metadata client

Backoff policy used by the metadata client when it encounters concurrent modifications.

Log format

Pretty

Enables verbose logging. Not recommended in production.

Compact

Enables compact logging.

Json

Enables json logging. You can use a json log collector to ingest these logs and further process them.

Disable perf stats

Enables only count stats

Count stats and enable time stats except for mutexes

Other than time, also measure CPU time counters. Still don't measure time (neither wall time nor CPU time) for mutexes

Enables count and time stats

HTTP/2 Keep alive options

Configuration for the HTTP/2 keep-alive mechanism, using PING frames.

Please note: most gateways don't propagate the HTTP/2 keep-alive between downstream and upstream hosts. In those environments, you need to make sure the gateway can detect a broken connection to the upstream deployment(s).

HTTP/2 Keep-alive interval

Sets an interval for HTTP/2 PING frames should be sent to keep a connection alive.

You should set this timeout with a value lower than the `abort_timeout`.

Timeout

Sets a timeout for receiving an acknowledgement of the keep-alive ping.

If the ping is not acknowledged within the timeout, the connection will be closed.

Provide a JSON object that satisfies the schema "Restate configuration file". Here are the required top‑level fields: tracing-filter. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema","title":"rivet.yaml Config","type":"object","properties":{"scripts":{"type":"object","additionalProperties":{"type":"string"}},"engine":{"$ref":"#/definitions/CloudVersionEngineConfig"},"cdn":{"$ref":"#/definitions/CloudVersionCdnConfig"},"matchmaker":{"$ref":"#/definitions/CloudVersionMatchmakerConfig"},"kv":{"$ref":"#/definitions/CloudVersionKvConfig"},"identity":{"$ref":"#/definitions/CloudVersionIdentityConfig"}},"definitions":{"CloudVersionEngineConfig":{"type":"object","properties":{"unity":{"$ref":"#/definitions/CloudVersionEngineUnityConfig"},"unreal":{"$ref":"#/definitions/CloudVersionEngineUnrealConfig"},"godot":{"$ref":"#/definitions/CloudVersionEngineGodotConfig"},"html5":{"$ref":"#/definitions/CloudVersionEngineHtml5Config"},"custom":{"$ref":"#/definitions/CloudVersionEngineCustomConfig"}}},"CloudVersionCdnConfig":{"type":"object","description":"CDN configuration for a given version.","properties":{"build_command":{"type":"string","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"build_output":{"type":"string","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"build_env":{"type":"object","additionalProperties":{"type":"string"},"description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"site_id":{"type":"string","format":"uuid"},"routes":{"type":"array","items":{"$ref":"#/definitions/CloudVersionCdnRoute"},"description":"Multiple CDN version routes."}}},"CloudVersionMatchmakerConfig":{"type":"object","description":"Matchmaker configuration for a given version.","properties":{"game_modes":{"type":"object","additionalProperties":{"$ref":"#/definitions/CloudVersionMatchmakerGameMode"},"description":"A list of game modes."},"captcha":{"$ref":"#/definitions/CloudVersionMatchmakerCaptcha"},"dev_hostname":{"type":"string","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"regions":{"type":"object","additionalProperties":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeRegion"}},"max_players":{"type":"integer"},"max_players_direct":{"type":"integer"},"max_players_party":{"type":"integer"},"docker":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeRuntimeDocker"},"tier":{"type":"string"},"idle_lobbies":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeIdleLobbiesConfig"},"lobby_groups":{"type":"array","items":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroup"},"description":"**Deprecated: use `game_modes` instead**\nA list of game modes."}}},"CloudVersionKvConfig":{"type":"object","description":"KV configuration for a given version.","properties":{}},"CloudVersionIdentityConfig":{"type":"object","description":"**Deprecated**\nIdentity configuration for a given version.","properties":{"display_names":{"type":"array","items":{"type":"string"},"description":"**Deprecated**"},"avatars":{"type":"array","items":{"type":"string","format":"uuid"},"description":"**Deprecated**"},"custom_display_names":{"type":"array","items":{"$ref":"#/definitions/CloudVersionIdentityCustomDisplayName"},"description":"**Deprecated**"},"custom_avatars":{"type":"array","items":{"$ref":"#/definitions/CloudVersionIdentityCustomAvatar"},"description":"**Deprecated**"}}},"CloudVersionEngineUnityConfig":{"type":"object","properties":{}},"CloudVersionEngineUnrealConfig":{"type":"object","properties":{"game_module":{"type":"string","description":"Name of the Unreal module that holds the game code.\nThis is usually the value of `$.Modules[0].Name` in the file `MyProject.unproject`.\n_Configures Rivet CLI behavior. Has no effect on server behavior._"}},"required":["game_module"]},"CloudVersionEngineGodotConfig":{"type":"object","properties":{}},"CloudVersionEngineHtml5Config":{"type":"object","properties":{}},"CloudVersionEngineCustomConfig":{"type":"object","properties":{}},"CloudVersionCdnRoute":{"type":"object","properties":{"glob":{"type":"string"},"priority":{"type":"integer","description":"Unsigned 32 bit integer."},"middlewares":{"type":"array","items":{"$ref":"#/definitions/CloudVersionCdnMiddleware"},"description":"Multiple CDN version middleware."}},"required":["glob","priority","middlewares"]},"CloudVersionMatchmakerGameMode":{"type":"object","description":"A game mode.","properties":{"regions":{"type":"object","additionalProperties":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeRegion"}},"max_players":{"type":"integer"},"max_players_direct":{"type":"integer"},"max_players_party":{"type":"integer"},"docker":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeRuntimeDocker"},"listable":{"type":"boolean"},"taggable":{"type":"boolean"},"allow_dynamic_max_players":{"type":"boolean"},"actions":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeActions"},"tier":{"type":"string"},"idle_lobbies":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeIdleLobbiesConfig"}}},"CloudVersionMatchmakerCaptcha":{"type":"object","description":"Matchmaker captcha configuration.","properties":{"requests_before_reverify":{"type":"integer","description":"Denotes how many requests a connection can make before it is required to reverify a captcha."},"verification_ttl":{"type":"integer","format":"int64","description":"Denotes how long a connection can continue to reconnect without having to reverify a captcha (in milliseconds)."},"hcaptcha":{"$ref":"#/definitions/CloudVersionMatchmakerCaptchaHcaptcha"},"turnstile":{"$ref":"#/definitions/CloudVersionMatchmakerCaptchaTurnstile"}},"required":["requests_before_reverify","verification_ttl"]},"CloudVersionMatchmakerGameModeRegion":{"type":"object","description":"A game mode region.","properties":{"tier":{"type":"string"},"idle_lobbies":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeIdleLobbiesConfig"}}},"CloudVersionMatchmakerGameModeRuntimeDocker":{"type":"object","description":"A game mode runtime running through Docker.","properties":{"dockerfile":{"type":"string","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"build_args":{"type":"object","additionalProperties":{"type":"string"},"description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"image":{"type":"string","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"image_id":{"type":"string","format":"uuid"},"args":{"type":"array","items":{"type":"string"}},"env":{"type":"object","additionalProperties":{"type":"string"}},"network_mode":{"$ref":"#/definitions/CloudVersionMatchmakerNetworkMode"},"ports":{"type":"object","additionalProperties":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeRuntimeDockerPort"}}}},"CloudVersionMatchmakerGameModeIdleLobbiesConfig":{"type":"object","description":"Configuration for how many idle lobbies a game version should have.","properties":{"min":{"type":"integer"},"max":{"type":"integer"}},"required":["min","max"]},"CloudVersionMatchmakerLobbyGroup":{"type":"object","description":"A game mode.","properties":{"name_id":{"type":"string","description":"**Deprecated: use GameMode instead**\nA human readable short identifier used to references resources. Different than a `rivet.common#Uuid` because this is intended to be human readable. Different than `rivet.common#DisplayName` because this should not include special characters and be short."},"regions":{"type":"array","items":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroupRegion"},"description":"A list of game mode regions."},"max_players_normal":{"type":"integer","description":"Unsigned 32 bit integer."},"max_players_direct":{"type":"integer","description":"Unsigned 32 bit integer."},"max_players_party":{"type":"integer","description":"Unsigned 32 bit integer."},"runtime":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroupRuntime"}},"required":["name_id","regions","max_players_normal","max_players_direct","max_players_party","runtime"]},"CloudVersionIdentityCustomDisplayName":{"type":"object","properties":{"display_name":{"$ref":"#/definitions/DisplayName"}},"required":["display_name"]},"CloudVersionIdentityCustomAvatar":{"type":"object","properties":{"upload_id":{"type":"string","format":"uuid"}},"required":["upload_id"]},"CloudVersionCdnMiddleware":{"type":"object","properties":{"kind":{"$ref":"#/definitions/CloudVersionCdnMiddlewareKind"}},"required":["kind"]},"CloudVersionMatchmakerGameModeActions":{"type":"object","description":"Configuration for the connection types allowed for a game mode.","properties":{"find":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeFindConfig"},"join":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeJoinConfig"},"create":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeCreateConfig"}}},"CloudVersionMatchmakerCaptchaHcaptcha":{"type":"object","description":"hCpatcha configuration.","properties":{"level":{"$ref":"#/definitions/CloudVersionMatchmakerCaptchaHcaptchaLevel","description":"**Deprecated**"},"site_key":{"type":"string","description":"Site key for your hCaptcha application. Must be set."},"secret_key":{"type":"string","description":"Secret key for your hCaptcha application. Must be set."}}},"CloudVersionMatchmakerCaptchaTurnstile":{"type":"object","description":"Turnstile captcha configuration.","properties":{"site_key":{"type":"string"},"secret_key":{"type":"string"}},"required":["site_key","secret_key"]},"CloudVersionMatchmakerNetworkMode":{"type":"string","enum":["bridge","host"],"description":"Configures how the container's network is isolated from the host.\n`bridge` (default) networking isolates the container's network from the host & other containers.\n`host` networking removes isolation between the container and the host. Only available in Rivet Open Source & Enterprise.\nRead more about bridge vs host networking [here](https://rivet.gg/docs/dynamic-servers/concepts/host-bridge-networking)."},"CloudVersionMatchmakerGameModeRuntimeDockerPort":{"type":"object","description":"Port config for a docker build.","properties":{"port":{"type":"integer","description":"The port number to connect to.\n\n### Related - cloud.version.matchmaker.PortProtocol - cloud.version.matchmaker.ProxyKind"},"port_range":{"$ref":"#/definitions/CloudVersionMatchmakerPortRange"},"protocol":{"$ref":"#/definitions/CloudVersionMatchmakerPortProtocol"},"proxy":{"$ref":"#/definitions/CloudVersionMatchmakerProxyKind","description":"How this port should be proxied. Defaults to 'game-guard`."},"dev_port":{"type":"integer","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"dev_port_range":{"$ref":"#/definitions/CloudVersionMatchmakerPortRange","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"},"dev_protocol":{"$ref":"#/definitions/CloudVersionMatchmakerPortProtocol","description":"_Configures Rivet CLI behavior. Has no effect on server behavior._"}}},"CloudVersionMatchmakerLobbyGroupRegion":{"type":"object","description":"**Deprecated: use GameMode instead**\nA game mode region.","properties":{"region_id":{"type":"string","format":"uuid"},"tier_name_id":{"type":"string","description":"A human readable short identifier used to references resources. Different than a `rivet.common#Uuid` because this is intended to be human readable. Different than `rivet.common#DisplayName` because this should not include special characters and be short."},"idle_lobbies":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroupIdleLobbiesConfig"}},"required":["region_id","tier_name_id"]},"CloudVersionMatchmakerLobbyGroupRuntime":{"type":"object","description":"**Deprecated: use GameMode instead**\nA union representing the runtime a game mode runs on.","properties":{"docker":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroupRuntimeDocker"}}},"DisplayName":{"type":"string","description":"Represent a resource's readable display name."},"CloudVersionCdnMiddlewareKind":{"type":"object","properties":{"custom_headers":{"$ref":"#/definitions/CloudVersionCdnCustomHeadersMiddleware"}}},"CloudVersionMatchmakerGameModeFindConfig":{"type":"object","description":"Configures the requirements and authentication for the /find endpoint. If this value is not set in the config, the /find endpoint is still enabled.","properties":{"enabled":{"type":"boolean","description":"Sets whether or not the /find endpoint is enabled."},"identity_requirement":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeIdentityRequirement"},"verification":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeVerificationConfig"}},"required":["enabled"]},"CloudVersionMatchmakerGameModeJoinConfig":{"type":"object","description":"Configures the requirements and authentication for the /join endpoint. If this value is not set in the config, the /join endpoint is still enabled.","properties":{"enabled":{"type":"boolean","description":"Sets whether or not the /join endpoint is enabled."},"identity_requirement":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeIdentityRequirement"},"verification":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeVerificationConfig"}},"required":["enabled"]},"CloudVersionMatchmakerGameModeCreateConfig":{"type":"object","description":"Configures the requirements and authentication for the /create endpoint. If this value is not set in the config, the /create endpoint is NOT enabled.","properties":{"enabled":{"type":"boolean","description":"Sets whether or not the /create endpoint is enabled."},"identity_requirement":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeIdentityRequirement"},"verification":{"$ref":"#/definitions/CloudVersionMatchmakerGameModeVerificationConfig"},"enable_public":{"type":"boolean","description":"Defaults to false when unset."},"enable_private":{"type":"boolean","description":"Defaults to true when unset."},"max_lobbies_per_identity":{"type":"integer","description":"**Deprecated**"}},"required":["enabled"]},"CloudVersionMatchmakerCaptchaHcaptchaLevel":{"type":"string","enum":["easy","moderate","difficult","always_on"],"description":"**Deprecated**\nHow hard a captcha should be."},"CloudVersionMatchmakerPortRange":{"type":"object","description":"Range of ports that can be connected to.\nIf configured, `network_mode` must equal `host`.\nPort ranges may overlap between containers, it is the responsibility of the developer to ensure ports are available before using.\nRead more about host networking [here](https://rivet.gg/docs/dynamic-servers/concepts/host-bridge-networking).\nOnly available on Rivet Open Source & Enterprise.\n\n### Related\n\n- cloud.version.matchmaker.PortProtocol\n- cloud.version.matchmaker.ProxyKind","properties":{"min":{"type":"integer","description":"Unsigned 32 bit integer."},"max":{"type":"integer","description":"Unsigned 32 bit integer."}},"required":["min","max"]},"CloudVersionMatchmakerPortProtocol":{"type":"string","enum":["http","https","tcp","tcp_tls","udp"],"description":"Signifies the protocol of the port.\nNote that when proxying through GameGuard (via `ProxyKind`), the port number returned by `/find`, `/join`, and `/create` will not be the same as the port number configured in the config:\n\n- With HTTP, the port will always be 80. The hostname of the port correctly routes the incoming\n  connection to the correct port being used by the game server.\n- With HTTPS, the port will always be 443. The hostname of the port correctly routes the incoming\n  connection to the correct port being used by the game server.\n- Using TCP/UDP, the port will be a random number between 26000 and 31999. This gets automatically\n  routed to the correct port being used by the game server.\n\n### Related - cloud.version.matchmaker.GameModeRuntimeDockerPort - cloud.version.matchmaker.ProxyKind - /docs/dynamic-servers/concepts/game-guard - matchmaker.lobbies.find"},"CloudVersionMatchmakerProxyKind":{"type":"string","enum":["none","game_guard"],"description":"Range of ports that can be connected to.\n`game_guard` (default) proxies all traffic through [Game Guard](https://rivet.gg/docs/dynamic-servers/concepts/game-guard) to mitigate DDoS attacks and provide TLS termination.\n`none` sends traffic directly to the game server. If configured, `network_mode` must equal `host`. Read more about host networking [here](https://rivet.gg/docs/dynamic-servers/concepts/host-bridge-networking). Only available on Rivet Open Source & Enterprise.\n\n### Related - /docs/dynamic-servers/concepts/game-guard - cloud.version.matchmaker.PortProtocol"},"CloudVersionMatchmakerLobbyGroupIdleLobbiesConfig":{"type":"object","description":"**Deprecated: use GameMode instead**\nConfiguration for how many idle lobbies a game version should have.","properties":{"min_idle_lobbies":{"type":"integer","description":"Unsigned 32 bit integer."},"max_idle_lobbies":{"type":"integer","description":"Unsigned 32 bit integer."}},"required":["min_idle_lobbies","max_idle_lobbies"]},"CloudVersionMatchmakerLobbyGroupRuntimeDocker":{"type":"object","description":"**Deprecated: use GameMode instead**\nA game mode runtime running through Docker.","properties":{"build_id":{"type":"string","format":"uuid"},"args":{"type":"array","items":{"type":"string"}},"env_vars":{"type":"array","items":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroupRuntimeDockerEnvVar"}},"network_mode":{"$ref":"#/definitions/CloudVersionMatchmakerNetworkMode"},"ports":{"type":"array","items":{"$ref":"#/definitions/CloudVersionMatchmakerLobbyGroupRuntimeDockerPort"}}},"required":["args","env_vars","ports"]},"CloudVersionCdnCustomHeadersMiddleware":{"type":"object","properties":{"headers":{"type":"array","items":{"$ref":"#/definitions/CloudVersionCdnHeader"}}},"required":["headers"]},"CloudVersionMatchmakerGameModeIdentityRequirement":{"type":"string","enum":["none","guest","registered"],"description":"**Deprecated**\nThe registration requirement for a user when joining/finding/creating a lobby. \"None\" allows for connections without an identity."},"CloudVersionMatchmakerGameModeVerificationConfig":{"type":"object","description":"Configuration that tells Rivet where to send validation requests and with what headers. When set, Rivet will send the `verification_data` property (given by the user in the find/join/create endpoint) to the given url along with the headers provided and some information about the requested lobby. The response of this request will determine if the user can join that lobby or not.","properties":{"url":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["url","headers"]},"CloudVersionMatchmakerLobbyGroupRuntimeDockerEnvVar":{"type":"object","description":"**Deprecated: use GameMode instead**\nA docker environment variable.","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]},"CloudVersionMatchmakerLobbyGroupRuntimeDockerPort":{"type":"object","description":"**Deprecated: use GameMode instead**\nA docker port.","properties":{"label":{"type":"string","description":"The label of this docker port."},"target_port":{"type":"integer","description":"The port number to connect to."},"port_range":{"$ref":"#/definitions/CloudVersionMatchmakerPortRange"},"proxy_protocol":{"$ref":"#/definitions/CloudVersionMatchmakerPortProtocol"}},"required":["label","proxy_protocol"]},"CloudVersionCdnHeader":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "rivet.yaml Config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

rivet.yaml Config

CDN configuration for a given version.

Multiple CDN version routes.

Matchmaker configuration for a given version.

A list of game modes.

**Deprecated: use `game_modes` instead**
A list of game modes.

KV configuration for a given version.

**Deprecated**
Identity configuration for a given version.

**Deprecated**

**Deprecated**

**Deprecated**

**Deprecated**

Name of the Unreal module that holds the game code.
This is usually the value of `$.Modules[0].Name` in the file `MyProject.unproject`.
_Configures Rivet CLI behavior. Has no effect on server behavior._

Unsigned 32 bit integer.

Multiple CDN version middleware.

A game mode.

Matchmaker captcha configuration.

Denotes how many requests a connection can make before it is required to reverify a captcha.

Denotes how long a connection can continue to reconnect without having to reverify a captcha (in milliseconds).

A game mode region.

A game mode.

**Deprecated: use GameMode instead**
A human readable short identifier used to references resources. Different than a `rivet.common#Uuid` because this is intended to be human readable. Different than `rivet.common#DisplayName` because this should not include special characters and be short.

A list of game mode regions.

Unsigned 32 bit integer.

Unsigned 32 bit integer.

Unsigned 32 bit integer.

Configuration for the connection types allowed for a game mode.

hCpatcha configuration.

**Deprecated**

Site key for your hCaptcha application. Must be set.

Secret key for your hCaptcha application. Must be set.

Turnstile captcha configuration.

Configures how the container's network is isolated from the host.
`bridge` (default) networking isolates the container's network from the host & other containers.
`host` networking removes isolation between the container and the host. Only available in Rivet Open Source & Enterprise.
Read more about bridge vs host networking [here](https://rivet.gg/docs/dynamic-servers/concepts/host-bridge-networking).

Port config for a docker build.

The port number to connect to.

### Related - cloud.version.matchmaker.PortProtocol - cloud.version.matchmaker.ProxyKind

How this port should be proxied. Defaults to 'game-guard`.

**Deprecated: use GameMode instead**
A game mode region.

**Deprecated: use GameMode instead**
A union representing the runtime a game mode runs on.

Represent a resource's readable display name.

Configures the requirements and authentication for the /find endpoint. If this value is not set in the config, the /find endpoint is still enabled.

Sets whether or not the /find endpoint is enabled.

Configures the requirements and authentication for the /join endpoint. If this value is not set in the config, the /join endpoint is still enabled.

Sets whether or not the /join endpoint is enabled.

Configures the requirements and authentication for the /create endpoint. If this value is not set in the config, the /create endpoint is NOT enabled.

Sets whether or not the /create endpoint is enabled.

Defaults to false when unset.

Defaults to true when unset.

**Deprecated**

**Deprecated**
How hard a captcha should be.

Range of ports that can be connected to.
If configured, `network_mode` must equal `host`.
Port ranges may overlap between containers, it is the responsibility of the developer to ensure ports are available before using.
Read more about host networking [here](https://rivet.gg/docs/dynamic-servers/concepts/host-bridge-networking).
Only available on Rivet Open Source & Enterprise.

### Related

- cloud.version.matchmaker.PortProtocol
- cloud.version.matchmaker.ProxyKind

Unsigned 32 bit integer.

Unsigned 32 bit integer.

Signifies the protocol of the port.
Note that when proxying through GameGuard (via `ProxyKind`), the port number returned by `/find`, `/join`, and `/create` will not be the same as the port number configured in the config:

- With HTTP, the port will always be 80. The hostname of the port correctly routes the incoming
  connection to the correct port being used by the game server.
- With HTTPS, the port will always be 443. The hostname of the port correctly routes the incoming
  connection to the correct port being used by the game server.
- Using TCP/UDP, the port will be a random number between 26000 and 31999. This gets automatically
  routed to the correct port being used by the game server.

### Related - cloud.version.matchmaker.GameModeRuntimeDockerPort - cloud.version.matchmaker.ProxyKind - /docs/dynamic-servers/concepts/game-guard - matchmaker.lobbies.find

Range of ports that can be connected to.
`game_guard` (default) proxies all traffic through [Game Guard](https://rivet.gg/docs/dynamic-servers/concepts/game-guard) to mitigate DDoS attacks and provide TLS termination.
`none` sends traffic directly to the game server. If configured, `network_mode` must equal `host`. Read more about host networking [here](https://rivet.gg/docs/dynamic-servers/concepts/host-bridge-networking). Only available on Rivet Open Source & Enterprise.

### Related - /docs/dynamic-servers/concepts/game-guard - cloud.version.matchmaker.PortProtocol

**Deprecated: use GameMode instead**
Configuration for how many idle lobbies a game version should have.

Unsigned 32 bit integer.

Unsigned 32 bit integer.

**Deprecated: use GameMode instead**
A game mode runtime running through Docker.

**Deprecated**
The registration requirement for a user when joining/finding/creating a lobby. "None" allows for connections without an identity.

Configuration that tells Rivet where to send validation requests and with what headers. When set, Rivet will send the `verification_data` property (given by the user in the find/join/create endpoint) to the given url along with the headers provided and some information about the requested lobby. The response of this request will determine if the user can join that lobby or not.

**Deprecated: use GameMode instead**
A docker environment variable.

**Deprecated: use GameMode instead**
A docker port.

The label of this docker port.

The port number to connect to.

Provide a JSON object that satisfies the schema "rivet.yaml Config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.