vikunja-api/docs/content/doc/development/config.md
2021-07-14 00:25:12 +02:00

1.4 KiB

date title draft type menu
2019-02-12:00:00+02:00 Configuration Options false doc
sidebar
parent
development

Configuration options

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 default config file (config.yml.sample 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 retreive a configured value call the key with a getter for the type you need. For example:

{{< highlight golang >}} if config.CacheEnabled.GetBool() { // Do something with enabled caches } {{< /highlight >}}

Take a look at the methods declared on the type to see what's available.