Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = errors.New("key not found") // ErrNotFound is key not found.
Functions ¶
func ResolveJasyptValues ¶
func ResolveJasyptValues(m map[string]interface{}, st JasyptSettings) error
ResolveJasyptValues decrypts ENC(...) strings in-place in the merged config map.
Types ¶
type Config ¶
type Config interface {
Load() error
Scan(v interface{}) error
Value(key string) Value
Watch(key string, o Observer) error
Close() error
}
Config is a config interface.
type JasyptOption ¶
type JasyptOption func(*JasyptSettings)
JasyptOption configures JasyptSettings for WithJasypt.
func JasyptAlgorithm ¶
func JasyptAlgorithm(name string) JasyptOption
JasyptAlgorithm sets the jasypt-go algorithm id (default: PBEWithAES).
func JasyptAllowMissingPassword ¶
func JasyptAllowMissingPassword() JasyptOption
JasyptAllowMissingPassword if set, leaves ENC(...) unchanged when the password env is unset (e.g. local dev only).
func JasyptPasswordEnv ¶
func JasyptPasswordEnv(name string) JasyptOption
JasyptPasswordEnv sets the env var name for the encryptor password (default: JASYPT_ENCRYPTOR_PASSWORD).
func JasyptPrefixSuffix ¶
func JasyptPrefixSuffix(prefix, suffix string) JasyptOption
JasyptPrefixSuffix sets the ENC wrapper (default ENC( ... ) ).
type JasyptSettings ¶
type JasyptSettings struct {
// PasswordEnv names the environment variable holding the master password (e.g. JASYPT_ENCRYPTOR_PASSWORD).
PasswordEnv string
// Algorithm is passed to jasypt-go; use jasypt constant "PBEWithAES" (JasyptPasswordAlgorithm) for PBKDF2-SHA512 + AES-256 style payloads.
Algorithm string
Prefix string
Suffix string
// RequirePassword: if true (default), any ENC(...) value without a set password env causes Resolve to fail.
RequirePassword bool
}
JasyptSettings controls decryption of values wrapped as ENC(...), similar to jasypt-spring-boot: password must come from the environment at runtime, not from config files.
type Option ¶
type Option func(*options)
Option is config option.
func WithDecoder ¶
WithDecoder with config decoder. DefaultDecoder behavior: If KeyValue.Format is non-empty, then KeyValue.Value will be deserialized into map[string]interface{} and stored in the config cache(map[string]interface{}) if KeyValue.Format is empty,{KeyValue.Key : KeyValue.Value} will be stored in config cache(map[string]interface{})
func WithJasypt ¶
func WithJasypt(opts ...JasyptOption) Option
WithJasypt wraps the current Resolver: after placeholder expansion, string values matching Prefix/Suffix are decrypted. Apply after other resolver-related options if you replace WithResolver, or call ResolveJasyptValues inside your own resolver.
func WithResolveActualTypes ¶
WithResolveActualTypes with config resolver. bool input will enable conversion of config to data types
type Reader ¶
type Reader interface {
Merge(...*KeyValue) error
Value(string) (Value, bool)
Source() ([]byte, error)
Resolve() error
}
Reader is config reader.
type Value ¶
type Value interface {
Bool() (bool, error)
Int() (int64, error)
Float() (float64, error)
String() (string, error)
Duration() (time.Duration, error)
Slice() ([]Value, error)
Map() (map[string]Value, error)
Scan(interface{}) error
Load() interface{}
Store(interface{})
}
Value is config value interface.