Difference between revisions of "Headless Client/Configuration File"
(Marked this version for translation) |
|||
(29 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | Headless Clients have a lot of configuration potential. To achieve this a configuration file is used. Configuration files are written in JSON. | + | <languages /> |
+ | <translate> | ||
+ | <!--T:1--> | ||
+ | [[Headless Client|Headless Clients]] have a lot of configuration potential. To achieve this a configuration file is used. Configuration files are written in JSON. | ||
− | == Default Configuration File == | + | == Default Configuration File == <!--T:2--> |
− | A default configuration file can be found within the Headless Client installation directory's <code>Config</code> subdirectory. It is named <code>DefaultConfig.json</code>. | + | A default configuration file can be found within the Headless Client installation directory's <code>Config</code> subdirectory. It is named <code>DefaultConfig.json</code>. If the file does not exist then run the headless to generate it. |
− | == Creating your own Configuration File == | + | == Creating your own Configuration File == <!--T:3--> |
To get started configuring things, copy the <code>DefaultConfig.json</code> file to a new file called <code>Config.json</code>. This will be automatically picked up when you run a Headless Client. Once copied we recommend editing the <code>comment</code> property to be something which describes the function of this file. Its value from the default file is incorrect so give it a comment which reflects what you intend to use it with. | To get started configuring things, copy the <code>DefaultConfig.json</code> file to a new file called <code>Config.json</code>. This will be automatically picked up when you run a Headless Client. Once copied we recommend editing the <code>comment</code> property to be something which describes the function of this file. Its value from the default file is incorrect so give it a comment which reflects what you intend to use it with. | ||
+ | <!--T:4--> | ||
After this you can proceed to edit your configuration file, following the [[#File Format|Configuration File Format]]. | After this you can proceed to edit your configuration file, following the [[#File Format|Configuration File Format]]. | ||
− | == Using multiple configuration files == | + | == Using multiple configuration files == <!--T:5--> |
When running Neos.exe you can use the command line option <code>-c</code> to specify a configuration file. This lets you maintain multiple configuration files for multiple projects or events. For example you could '''create and use''': | When running Neos.exe you can use the command line option <code>-c</code> to specify a configuration file. This lets you maintain multiple configuration files for multiple projects or events. For example you could '''create and use''': | ||
* <code>Neos.exe -c Config/CoolConvention.json</code> - For a large Convention or event | * <code>Neos.exe -c Config/CoolConvention.json</code> - For a large Convention or event | ||
* <code>Neos.exe -c Config/SeriousBusinessMeeting.json</code> - For a very serious business meeting. | * <code>Neos.exe -c Config/SeriousBusinessMeeting.json</code> - For a very serious business meeting. | ||
+ | <!--T:6--> | ||
It's up to you but feel free to write and use as many files as you'd like. | It's up to you but feel free to write and use as many files as you'd like. | ||
− | == File Format == | + | == File Format == <!--T:7--> |
The headless configuration file has a lot of options and most of them are optional. | The headless configuration file has a lot of options and most of them are optional. | ||
+ | <!--T:8--> | ||
{| class="wikitable" | {| class="wikitable" | ||
! Name | ! Name | ||
Line 47: | Line 53: | ||
|'''universeId''' | |'''universeId''' | ||
|<code>string</code> | |<code>string</code> | ||
− | |Optionally, specifies which universe this Headless Server will be in. See | + | |Optionally, specifies which universe this Headless Server will be in. See [[Universes]] for more info. |
|No | |No | ||
|- | |- | ||
Line 96: | Line 102: | ||
|} | |} | ||
− | === Start Worlds === | + | === Start Worlds === <!--T:9--> |
Within the configuration file is an array called <code>startWorlds</code>, this array is a list of worlds which should be started when the Headless Client starts. You can run as many worlds as you want on a single Headless Client. The format this option is as follows: | Within the configuration file is an array called <code>startWorlds</code>, this array is a list of worlds which should be started when the Headless Client starts. You can run as many worlds as you want on a single Headless Client. The format this option is as follows: | ||
+ | <!--T:10--> | ||
<pre> | <pre> | ||
... | ... | ||
Line 112: | Line 119: | ||
</pre> | </pre> | ||
+ | <!--T:11--> | ||
With each start world having the following properties: | With each start world having the following properties: | ||
− | {| class="wikitable" | + | {| class="wikitable" style="width: 60%;" |
! Name | ! Name | ||
! Type | ! Type | ||
− | ! Description | + | !Description |
! Required | ! Required | ||
+ | ! Example | ||
|- | |- | ||
|'''sessionName''' | |'''sessionName''' | ||
Line 123: | Line 132: | ||
|The name of the session as shown in the World/Session Browser | |The name of the session as shown in the World/Session Browser | ||
|No | |No | ||
+ | | "cheese" | ||
|- | |- | ||
|'''customSessionId''' | |'''customSessionId''' | ||
− | |<code>string</code>|An optional custom session id for this session. | + | |<code>string</code> |
+ | | An optional custom session id for this session. <code>S-</code> is prefixed at runtime. This should be in the format of <code><UserID>:<Custom Id></code>. | ||
|No | |No | ||
+ | |U-ProbablePrime:CheeseLand | ||
|- | |- | ||
|'''description''' | |'''description''' | ||
Line 132: | Line 144: | ||
|An optional description of this session, displayed within the world/session browser. | |An optional description of this session, displayed within the world/session browser. | ||
|No | |No | ||
+ | |The land of the cheese | ||
|- | |- | ||
|'''maxUsers''' | |'''maxUsers''' | ||
− | |<code>integer</code>|The maximum number of users, allowed to join this session. | + | |<code>integer</code> |
+ | |The maximum number of users, allowed to join this session. | ||
|No, default: 32 | |No, default: 32 | ||
+ | | 42 | ||
|- | |- | ||
|'''accessLevel''' | |'''accessLevel''' | ||
|<code>any</code> | |<code>any</code> | ||
− | |The Access Level for this session please see SessionAccessLevel for more information. | + | |The Access Level for this session please see [[#SessionAccessLevel]] for more information. |
|No | |No | ||
+ | | Anyone | ||
|- | |- | ||
|'''hideFromPublicListing''' | |'''hideFromPublicListing''' | ||
Line 146: | Line 162: | ||
|Determines if this session should be hidden from the world/session browser or not. | |Determines if this session should be hidden from the world/session browser or not. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''tags''' | |'''tags''' | ||
|<code>array,null</code> | |<code>array,null</code> | ||
− | |A list of tags, to assist with searching or discovering sessions. | + | |A list of tags in the form of a JSON String array, to assist with searching or discovering sessions. |
|No | |No | ||
+ | |["cheese","world","game"] | ||
|- | |- | ||
|'''mobileFriendly''' | |'''mobileFriendly''' | ||
Line 156: | Line 174: | ||
|Determines if this session is friendly for mobile/quest users. | |Determines if this session is friendly for mobile/quest users. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''loadWorldURL''' | |'''loadWorldURL''' | ||
|<code>null,string</code> | |<code>null,string</code> | ||
− | |When provided with a world URL this will load this world for the session. | + | |When provided with a world URL this will load this world for the session. Use URLs that start with <code>neosrec:///</code> |
|No | |No | ||
+ | |<code>neosrec:///U-ProbablePrime/R-ABC123-CHEESE-MOOO</code> | ||
|- | |- | ||
|'''loadWorldPresetName''' | |'''loadWorldPresetName''' | ||
Line 166: | Line 186: | ||
|When provided and valid, this will load the specified world preset into the session. | |When provided and valid, this will load the specified world preset into the session. | ||
|No | |No | ||
+ | |Space | ||
|- | |- | ||
|'''overrideCorrespondingWorldId''' | |'''overrideCorrespondingWorldId''' | ||
Line 171: | Line 192: | ||
|Overrides the world id for this session allowing it to be grouped and displayed with other sessions with this world id. | |Overrides the world id for this session allowing it to be grouped and displayed with other sessions with this world id. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''forcePort''' | |'''forcePort''' | ||
Line 176: | Line 198: | ||
|Optional, If specified it will force this session to run on a specific network port. | |Optional, If specified it will force this session to run on a specific network port. | ||
|No | |No | ||
+ | |4242 | ||
|- | |- | ||
|'''keepOriginalRoles''' | |'''keepOriginalRoles''' | ||
Line 181: | Line 204: | ||
|Optional, If specified will keep the original roles as saved in the world. | |Optional, If specified will keep the original roles as saved in the world. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''defaultUserRoles''' | |'''defaultUserRoles''' | ||
Line 186: | Line 210: | ||
|When provided with a list of username and permission pairs it will grant those users the listed permissions when they join. | |When provided with a list of username and permission pairs it will grant those users the listed permissions when they join. | ||
|No | |No | ||
+ | |{ "ProbablePrime":"Admin", "Frooxius":"Guest" } | ||
|- | |- | ||
|'''roleCloudVariable''' | |'''roleCloudVariable''' | ||
|<code>null,string</code> | |<code>null,string</code> | ||
− | |An optional name of a cloud variable to use to determine the role of this user. See | + | |An optional name of a cloud variable to use to determine the role of this user. See [[Cloud Variables#Roles]] for more information. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''allowUserCloudVariable''' | |'''allowUserCloudVariable''' | ||
|<code>null,string</code> | |<code>null,string</code> | ||
− | |An optional name of a cloud variable to use to determine if this user is allowed in the session. See | + | |An optional name of a cloud variable to use to determine if this user is allowed in the session. See [[Cloud Variables#Allowing User's Access]] for more information. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''denyUserCloudVariable''' | |'''denyUserCloudVariable''' | ||
|<code>null,string</code> | |<code>null,string</code> | ||
− | |An optional name of a cloud variable to use to determine if this user is denied access to the session. See | + | |An optional name of a cloud variable to use to determine if this user is denied access to the session. See [[Cloud Variables#Denying User's Access]] for more information. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''requiredUserJoinCloudVariable''' | |'''requiredUserJoinCloudVariable''' | ||
|<code>null,string</code> | |<code>null,string</code> | ||
− | |An optional name of a cloud variable to use to determine if this user is denied access to the session. See | + | |An optional name of a cloud variable to use to determine if this user is denied access to the session. See [[Cloud Variables#Joining Control]] for more information. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''requiredUserJoinCloudVariableDenyMessage''' | |'''requiredUserJoinCloudVariableDenyMessage''' | ||
|<code>null,string</code> | |<code>null,string</code> | ||
− | |The name of a cloud variable whose value will be used, When a user is denied access by RequiredUserJoinCloudVariable this message will be displayed to them if present. See | + | |The name of a cloud variable whose value will be used, When a user is denied access by '''RequiredUserJoinCloudVariable''' this message will be displayed to them if present. See [[Cloud Variables#Joining Control]] for more information. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''awayKickMinutes''' | |'''awayKickMinutes''' | ||
Line 216: | Line 246: | ||
|Configures the number of minutes that a user can be away(shelled out) from a world before they are kicked. Setting this to -1 disables this option. | |Configures the number of minutes that a user can be away(shelled out) from a world before they are kicked. Setting this to -1 disables this option. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''isEnabled''' | |'''isEnabled''' | ||
|<code>boolean</code> | |<code>boolean</code> | ||
− | |When set to | + | |When set to false, this will disable this world entry from starting. This is useful to turn worlds on or off. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''saveAsOwner''' | |'''saveAsOwner''' | ||
|<code>any</code> | |<code>any</code> | ||
− | |Controls who saves this world when it is saved. See, SaveAsOwner for more information. | + | |Controls who saves this world when it is saved. See, [[#SaveAsOwner]] for more information. |
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''autoInviteUsernames''' | |'''autoInviteUsernames''' | ||
Line 231: | Line 264: | ||
|Users within this list will automatically be invited to this world when it starts. | |Users within this list will automatically be invited to this world when it starts. | ||
|No | |No | ||
+ | | ["ProablePrime","Frooxius","kazzypoof"] | ||
|- | |- | ||
|'''parentSessionIds''' | |'''parentSessionIds''' | ||
|<code>array,null</code> | |<code>array,null</code> | ||
− | |Provides a list of Parent Session Ids for this session. See | + | |Provides a list of Parent Session Ids for this session. See [[Parent Sessions]] for more info. |
|No | |No | ||
|- | |- | ||
Line 241: | Line 275: | ||
|An automatic message sent to the users on the AutoInviteUsernames list along with their invite. | |An automatic message sent to the users on the AutoInviteUsernames list along with their invite. | ||
|No | |No | ||
+ | |Come and play! | ||
|- | |- | ||
|'''autoRecover''' | |'''autoRecover''' | ||
Line 246: | Line 281: | ||
| | | | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''idleRestartInterval''' | |'''idleRestartInterval''' | ||
Line 251: | Line 287: | ||
|If this is set(>0) and the world is empty, it will restart regularly using the value to determine the number of seconds between restarts. | |If this is set(>0) and the world is empty, it will restart regularly using the value to determine the number of seconds between restarts. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''forcedRestartInterval''' | |'''forcedRestartInterval''' | ||
Line 256: | Line 293: | ||
|If this is set(>0), it will restart regularly using the value to determine the number of seconds between restarts. | |If this is set(>0), it will restart regularly using the value to determine the number of seconds between restarts. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''saveOnExit''' | |'''saveOnExit''' | ||
Line 261: | Line 299: | ||
|If set to true will save this world on exit. | |If set to true will save this world on exit. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''autosaveInterval''' | |'''autosaveInterval''' | ||
Line 266: | Line 305: | ||
|If this is set(>0), it will automatically save using the value to determine the number of seconds between saves. | |If this is set(>0), it will automatically save using the value to determine the number of seconds between saves. | ||
|No | |No | ||
+ | | | ||
|- | |- | ||
|'''autoSleep''' | |'''autoSleep''' | ||
|<code>boolean</code> | |<code>boolean</code> | ||
− | |If set to true, will prevent an empty(or filled with away users) world from running a full update cycle | + | |If set to true, will prevent an empty(or filled with away users) world from running a full update cycle regularly. |
|No | |No | ||
|} | |} | ||
+ | |||
+ | ==== SessionAccessLevel ==== <!--T:12--> | ||
+ | SessionAccessLevel controls the access level of a session. Possible values are: | ||
+ | * Private | ||
+ | * LAN | ||
+ | * Friends | ||
+ | * FriendsOfFriends | ||
+ | * RegisteredUsers | ||
+ | * Anyone | ||
+ | |||
+ | <!--T:13--> | ||
+ | These match the regular session access levels you'll see in game. | ||
+ | |||
+ | ==== SaveAsOwner ==== <!--T:14--> | ||
+ | Save as owner controls how [[Headless Client|Headless Clients]] save the worlds that they are running. | ||
+ | |||
+ | <!--T:18--> | ||
+ | Any value other than null is analogous to the "Save As..." option in the "Session" tab of the Dash menu, and will create a new record on each save. | ||
+ | |||
+ | <!--T:19--> | ||
+ | Possible values are: | ||
+ | * LocalMachine - Saves the world as the Local Machine. | ||
+ | * CloudUser - Saves the world as the Cloud user who is logged in via the "login credentials" | ||
+ | * null - Attempts to save the world to the location it was loaded from, Analogous to the "Save Changes" option in the "Session" tab. | ||
+ | |||
+ | == Example Files == <!--T:15--> | ||
+ | We understand how these config files may seem daunting so we've prepared some example files: | ||
+ | * [[Headless Client/Example Configurations#Default]] - The default configuration file from the installation | ||
+ | * TODO | ||
+ | |||
+ | == JSON Schemas == <!--T:16--> | ||
+ | For Headless Client configuration files we are experimenting with JSON Schemas. JSON Schemas are files which describe the layout and schema of a JSON file. You can use them to Generate Code, Validate JSON etc. When editing configuration files in supported editors your configuration file will be automatically validated for errors etc. | ||
+ | |||
+ | <!--T:17--> | ||
+ | See our [https://github.com/Neos-Metaverse/JSONSchemas repository of Schemas] for more information. | ||
+ | </translate> |
Latest revision as of 16:42, 28 February 2023
Headless Clients have a lot of configuration potential. To achieve this a configuration file is used. Configuration files are written in JSON.
Default Configuration File
A default configuration file can be found within the Headless Client installation directory's Config
subdirectory. It is named DefaultConfig.json
. If the file does not exist then run the headless to generate it.
Creating your own Configuration File
To get started configuring things, copy the DefaultConfig.json
file to a new file called Config.json
. This will be automatically picked up when you run a Headless Client. Once copied we recommend editing the comment
property to be something which describes the function of this file. Its value from the default file is incorrect so give it a comment which reflects what you intend to use it with.
After this you can proceed to edit your configuration file, following the Configuration File Format.
Using multiple configuration files
When running Neos.exe you can use the command line option -c
to specify a configuration file. This lets you maintain multiple configuration files for multiple projects or events. For example you could create and use:
Neos.exe -c Config/CoolConvention.json
- For a large Convention or eventNeos.exe -c Config/SeriousBusinessMeeting.json
- For a very serious business meeting.
It's up to you but feel free to write and use as many files as you'd like.
File Format
The headless configuration file has a lot of options and most of them are optional.
Name | Type | Description | Required |
---|---|---|---|
comment | string
|
An optional free form comment for this file. Used for identification for your configuration. | No |
loginCredential | string
|
Neos username for this Headless Server to use. | ✓ Yes |
loginPassword | string
|
Neos user password for the Headless Server to use. | ✓ Yes |
startWorlds | See #Start Worlds | An array of worlds/sessions to start/create when this Headless Server starts. | ✓ Yes |
universeId | string
|
Optionally, specifies which universe this Headless Server will be in. See Universes for more info. | No |
tickRate | number
|
Configures how many ticks(updates), should occur per second. Default is 60. | No |
maxConcurrentAssetTransfers | integer
|
Specifies the maximum concurrent asset transfers for this headless server. Default is 4. | No |
usernameOverride | string
|
Configures a username which will override LoginCredential, within the world browser etc. | No |
dataFolder | string
|
Optionally, override the folder which Neos will use to store data for this Headless Server. | No |
cacheFolder | string
|
Optionally, override the folder which Neos will use to store cache for this Headless Server. | No |
logsFolder | tring
|
Optionally, override the folder which Neos will use to store logs for this Headless Server. | No |
allowedUrlHosts | string array
|
A list of hosts which will automatically be allowed for in-Neos HTTP/WebSocket operations | No |
autoSpawnItems | string array
|
A list of item URIs to spawn in when a world starts. | No |
metamovieRoles | object
|
Legacy content for the MetaMovie Project. Feel Free to ignore | No |
Start Worlds
Within the configuration file is an array called startWorlds
, this array is a list of worlds which should be started when the Headless Client starts. You can run as many worlds as you want on a single Headless Client. The format this option is as follows:
... "startWorlds":[ { ...world 1 config }, { ...world 2 config } ] ...
With each start world having the following properties:
Name | Type | Description | Required | Example |
---|---|---|---|---|
sessionName | null,string`
|
The name of the session as shown in the World/Session Browser | No | "cheese" |
customSessionId | string
|
An optional custom session id for this session. S- is prefixed at runtime. This should be in the format of <UserID>:<Custom Id> .
|
No | U-ProbablePrime:CheeseLand |
description | string
|
An optional description of this session, displayed within the world/session browser. | No | The land of the cheese |
maxUsers | integer
|
The maximum number of users, allowed to join this session. | No, default: 32 | 42 |
accessLevel | any
|
The Access Level for this session please see #SessionAccessLevel for more information. | No | Anyone |
hideFromPublicListing | boolean,null
|
Determines if this session should be hidden from the world/session browser or not. | No | |
tags | array,null
|
A list of tags in the form of a JSON String array, to assist with searching or discovering sessions. | No | ["cheese","world","game"] |
mobileFriendly | boolean
|
Determines if this session is friendly for mobile/quest users. | No | |
loadWorldURL | null,string
|
When provided with a world URL this will load this world for the session. Use URLs that start with neosrec:///
|
No | neosrec:///U-ProbablePrime/R-ABC123-CHEESE-MOOO
|
loadWorldPresetName | null,string
|
When provided and valid, this will load the specified world preset into the session. | No | Space |
overrideCorrespondingWorldId | any
|
Overrides the world id for this session allowing it to be grouped and displayed with other sessions with this world id. | No | |
forcePort | integer,null
|
Optional, If specified it will force this session to run on a specific network port. | No | 4242 |
keepOriginalRoles | boolean
|
Optional, If specified will keep the original roles as saved in the world. | No | |
defaultUserRoles | null,object
|
When provided with a list of username and permission pairs it will grant those users the listed permissions when they join. | No | { "ProbablePrime":"Admin", "Frooxius":"Guest" } |
roleCloudVariable | null,string
|
An optional name of a cloud variable to use to determine the role of this user. See Cloud Variables#Roles for more information. | No | |
allowUserCloudVariable | null,string
|
An optional name of a cloud variable to use to determine if this user is allowed in the session. See Cloud Variables#Allowing User's Access for more information. | No | |
denyUserCloudVariable | null,string
|
An optional name of a cloud variable to use to determine if this user is denied access to the session. See Cloud Variables#Denying User's Access for more information. | No | |
requiredUserJoinCloudVariable | null,string
|
An optional name of a cloud variable to use to determine if this user is denied access to the session. See Cloud Variables#Joining Control for more information. | No | |
requiredUserJoinCloudVariableDenyMessage | null,string
|
The name of a cloud variable whose value will be used, When a user is denied access by RequiredUserJoinCloudVariable this message will be displayed to them if present. See Cloud Variables#Joining Control for more information. | No | |
awayKickMinutes | number
|
Configures the number of minutes that a user can be away(shelled out) from a world before they are kicked. Setting this to -1 disables this option. | No | |
isEnabled | boolean
|
When set to false, this will disable this world entry from starting. This is useful to turn worlds on or off. | No | |
saveAsOwner | any
|
Controls who saves this world when it is saved. See, #SaveAsOwner for more information. | No | |
autoInviteUsernames | array,null
|
Users within this list will automatically be invited to this world when it starts. | No | ["ProablePrime","Frooxius","kazzypoof"] |
parentSessionIds | array,null
|
Provides a list of Parent Session Ids for this session. See Parent Sessions for more info. | No | |
autoInviteMessage | null,string
|
An automatic message sent to the users on the AutoInviteUsernames list along with their invite. | No | Come and play! |
autoRecover | boolean
|
No | ||
idleRestartInterval | number
|
If this is set(>0) and the world is empty, it will restart regularly using the value to determine the number of seconds between restarts. | No | |
forcedRestartInterval | number
|
If this is set(>0), it will restart regularly using the value to determine the number of seconds between restarts. | No | |
saveOnExit | boolean
|
If set to true will save this world on exit. | No | |
autosaveInterval | number
|
If this is set(>0), it will automatically save using the value to determine the number of seconds between saves. | No | |
autoSleep | boolean
|
If set to true, will prevent an empty(or filled with away users) world from running a full update cycle regularly. | No |
SessionAccessLevel
SessionAccessLevel controls the access level of a session. Possible values are:
- Private
- LAN
- Friends
- FriendsOfFriends
- RegisteredUsers
- Anyone
These match the regular session access levels you'll see in game.
SaveAsOwner
Save as owner controls how Headless Clients save the worlds that they are running.
Any value other than null is analogous to the "Save As..." option in the "Session" tab of the Dash menu, and will create a new record on each save.
Possible values are:
- LocalMachine - Saves the world as the Local Machine.
- CloudUser - Saves the world as the Cloud user who is logged in via the "login credentials"
- null - Attempts to save the world to the location it was loaded from, Analogous to the "Save Changes" option in the "Session" tab.
Example Files
We understand how these config files may seem daunting so we've prepared some example files:
- Headless Client/Example Configurations#Default - The default configuration file from the installation
- TODO
JSON Schemas
For Headless Client configuration files we are experimenting with JSON Schemas. JSON Schemas are files which describe the layout and schema of a JSON file. You can use them to Generate Code, Validate JSON etc. When editing configuration files in supported editors your configuration file will be automatically validated for errors etc.
See our repository of Schemas for more information.