Configuration Files and Unified Options

Inmation provides a large number of configuration options that control the behavior of various aspects of the system. These options can be specified in configuration files, on the command line when starting Inmation, or as environment variables. Many options can also be viewed and modified using WebStudio.

Configuration Files

Inmation configuration files use the YAML format. For example, a simple configuration file for a Node object might look like this:

startup:
  # Executes Lua file script at the specified location during process startup.
  luaFile: <path to Lua script file>\inmation-startup.lua
  # The port on which the Node listens for incoming connections.
  initListenPort: 6512

system:
  # The Node's data folder to write persistent data to
  dataFolder: <path to data file>\data

# Specifies OS environment variable overrides. Individual overrides must be specified as key=value pairs, separated by spaces.
environment:
  ["COMPUTERNAME=Parent"]

This file specifies environment variables, the data folder location, and settings for the Node and Webserver components. The nested blocks are used to group related options together.

Unified Options

The precise way an option is specified depends on the method of configuration used. The command line uses kebab-case (hyphen-separated) names, configuration files use camelCase names (first word lower case, any subsequent words are not preceded by spaces but are distinguished by starting with an upper-case letter), and environment variables use SNAKE_CASE (upper case with underscores). As options are members of a group, the relevant group has to be specified. In a configuration file, the group name appears in brackets before the option name. In command line arguments, the group name, in kebab form, is prepended to the option name using a '-'. For environment variables, the option name is prefixed with INM_ and the group name in snake case. For example,

Command line argument:

inmation --my-group-some-option val

Configuration file:

myGroup:
    someOption: val

Environment variable:

INM_MY_GROUP_SOME_OPTION=val

For example, the property that specifies the port on which the Node listens for incoming connections from other Nodes is called Node Listener Port when viewed in WebStudio but is specified using the node.port setting in a configuration file or the --node-port-forced command line parameter.