ViperX: Viper extensions
This library adds some extensions to the core Viper package.
$ go get github.com/sagikazarmark/viperx
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")
}
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()
}
- 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
Contributions are welcome! :)
- Clone the repository
- Make changes on a new branch
- If you changed any dependencies or added new packages run:
./pleasew tidy
- Run the test suite:
./pleasew test ./pleasew lint
- Commit, push and open a PR
The MIT License (MIT). Please see License File for more information.