package
2.0.0+incompatible
Repository: https://github.com/iqinning/go-config.git
Documentation: pkg.go.dev

# README

Vault Source

The vault source reads config from different secret engines in a Vault server. For example:

kv: secret/data/<my/secret>
database credentials: database/creds/<my-db-role>

New Source

Specify source with data

vaultSource := vault.NewSource(
	// mandatory: it specifies server address. 
	// It could have different formats:
	// 127.0.0.1 -> https://127.0.0.1:8200
	// http://127.0.0.1 -> http://127.0.0.1:8200
	// http://127.0.0.1:2233
	vault.WithAddress("http://127.0.0.1:8200"),
	// mandatory: it specifies a resource to been access
	vault.WithResourcePath("secret/data/my/secret"),
    // mandatory: it specifies a resource to been access
	vault.WithToken("<my-token>"),
	// optional: path to store my secret.
	// By default use resourcePath value 
	vault.WithSecretName("my/secret"),
	// optional: namespace.
    vault.WithNameSpace("myNameSpace"),
)

Load Source

Load the source into config

// Create new config
conf := config.NewConfig()

// Load file source
conf.Load(vaultSource)

# Functions

NewSource creates a new vault source.
WithAddress sets the server address.
WithNameSpace sets the namespace that its going to be access.
WithResourcePath sets the resource that will be access.
WithSecretName sets the name of the secret to wrap in on a map.
WithToken sets the key token to use.