35 lines
942 B
Go
35 lines
942 B
Go
package kv
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/mlogger"
|
|
)
|
|
|
|
// Config describes Vault KV v2 connection settings.
|
|
type Config struct {
|
|
Address string `mapstructure:"address" yaml:"address"`
|
|
TokenEnv string `mapstructure:"token_env" yaml:"token_env"`
|
|
Namespace string `mapstructure:"namespace" yaml:"namespace"`
|
|
MountPath string `mapstructure:"mount_path" yaml:"mount_path"`
|
|
}
|
|
|
|
// Client defines KV operations used by services.
|
|
type Client interface {
|
|
Put(ctx context.Context, secretPath string, payload map[string]interface{}) error
|
|
Get(ctx context.Context, secretPath string) (map[string]interface{}, error)
|
|
GetString(ctx context.Context, secretPath, field string) (string, error)
|
|
}
|
|
|
|
// Options configure KV client creation.
|
|
type Options struct {
|
|
Logger mlogger.Logger
|
|
Config Config
|
|
Component string
|
|
}
|
|
|
|
// New creates a Vault KV v2 client.
|
|
func New(opts Options) (Client, error) {
|
|
return newService(opts)
|
|
}
|