41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
---
|
|
date: "2019-02-12:00:00+02:00"
|
|
title: "Configuration Options"
|
|
draft: false
|
|
type: "doc"
|
|
menu:
|
|
sidebar:
|
|
parent: "development"
|
|
---
|
|
|
|
# Configuration options
|
|
|
|
All configuration variables are declared in the `config` package.
|
|
It uses [viper](https://github.com/spf13/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.
|