ViperX: Viper extensions

This library adds some extensions to the core Viper package.
Installation
$ go get github.com/sagikazarmark/viperx
Usage
Remote config provider registry
Package remote
provides a remote provider registry.
package main
import (
"github.com/spf13/viper"
vaultremote "github.com/sagikazarmark/viperx/remote"
)
func main() {
vaultremote.RegisterConfigProvider("vault", &myVaultProvider{})
_ = viper.AddRemoteProvider("vault", "endpoint", "path")
}
Hashicorp Vault Remote config provider
package main
import (
"github.com/spf13/viper"
"github.com/sagikazarmark/viperx/remote/vault"
)
func main() {
_ = viper.AddRemoteProvider("vault", "endpoint", "path")
viper.SetConfigType("json") // This is required for the vault provider
_ = viper.ReadRemoteConfig()
}
Roadmap
- Add etcd remote provider support (Using Go CDK
secrets
?)
- Add consul remote provider support (Using Go CDK
secrets
?)
- Add a friendly (declarative?) API for defining configuration
Development
Contributions are welcome! :)
- Clone the repository
- Make changes on a new branch
- Run the test suite:
./pleasew build
./pleasew test
./pleasew gotest
./pleasew lint
- Commit, push and open a PR
License
The MIT License (MIT). Please see License File for more information.
