All configuration variables are declared in the config
package. It uses viper under the hood to handle setting defaults and parsing config files. Viper handles parsing all different configuration sources.
Adding new config options #
To make handling configuration parameters a bit easier, we introduced a Key
string type in the config
package which you can call directly to get a config value.
To add a new config option, you should add a new key const to pkg/config/config.go
and possibly a default value. Default values should always enable the feature to work or turn it off completely if it always needs additional configuration.
Make sure to also add the new config option to the config-raw.json
file at the root of the repository with an explanatory comment to make sure it is well documented. Then run mage generate-docs
to generate the configuration docs from the sample file.
Getting Configuration Values #
To retrieve a configured value call the key with a getter for the type you need. For example:
if config.CacheEnabled.GetBool() {
// Do something with enabled caches
}
Take a look at the methods declared on the type to see what's available.