Viper is a prioritized configuration registry. It maintains a set of configuration sources, fetches values to populate those, and provides them according to the source's priority. The priority of the sources is the following: 1. overrides 2. flags 3. env. variables 4. config file 5. key/value store 6. defaults

For example, if values from the following sources were loaded:

 Defaults : {
 	"secret": "",
 	"user": "default",
	    "endpoint": "https://localhost"
 Config : {
 	"user": "root"
	    "secret": "defaultsecret"
 Env : {
 	"secret": "somesecretkey"

The resulting config will have the following values:

	"secret": "somesecretkey",
	"user": "root",
	"endpoint": "https://localhost"

Viper is referenced in 1 repository