Documentation ¶
Index ¶
- Constants
- func ContextWithConfigOptions(ctx context.Context, opts ...OptionModifier) context.Context
- func GetAddress(host string, port int) string
- func LogrusWatcher(l *logrusx.Logger) func(e watcherx.Event, err error)
- func MergeAllTypes(src, dst map[string]interface{}) error
- func NewImmutableError(key string, from, to interface{}) error
- func RegisterConfigFlag(flags *pflag.FlagSet, fallback []string)
- func RegisterFlags(flags *pflag.FlagSet)
- type Env
- type ImmutableError
- type KoanfConfmap
- type KoanfFile
- type KoanfMemory
- type KoanfSchemaDefaults
- type OptionModifier
- func AttachWatcher(watcher func(event watcherx.Event, err error)) OptionModifier
- func ConfigOptionsFromContext(ctx context.Context) []OptionModifier
- func DisableEnvLoading() OptionModifier
- func OmitKeysFromTracing(keys ...string) OptionModifier
- func SkipValidation() OptionModifier
- func WithBaseValues(values map[string]interface{}) OptionModifier
- func WithConfigFiles(files ...string) OptionModifier
- func WithContext(ctx context.Context) OptionModifier
- func WithFlags(flags *pflag.FlagSet) OptionModifier
- func WithImmutables(immutables ...string) OptionModifier
- func WithLogger(l *logrusx.Logger) OptionModifier
- func WithLogrusWatcher(l *logrusx.Logger) OptionModifier
- func WithStandardValidationReporter(w io.Writer) OptionModifier
- func WithStderrValidationReporter() OptionModifier
- func WithUserProviders(providers ...koanf.Provider) OptionModifier
- func WithValue(key string, value interface{}) OptionModifier
- func WithValues(values map[string]interface{}) OptionModifier
- type PFlagProvider
- type Provider
- func (p *Provider) BoolF(key string, fallback bool) bool
- func (p *Provider) ByteSizeF(key string, fallback bytesize.ByteSize) bytesize.ByteSize
- func (p *Provider) CORS(prefix string, defaults cors.Options) (cors.Options, bool)
- func (p *Provider) DurationF(key string, fallback time.Duration) (val time.Duration)
- func (p *Provider) Float64F(key string, fallback float64) (val float64)
- func (p *Provider) GetF(key string, fallback interface{}) (val interface{})
- func (p *Provider) IntF(key string, fallback int) (val int)
- func (p *Provider) PrintHumanReadableValidationErrors(w io.Writer, err error)
- func (p *Provider) RequestURIF(path string, fallback *url.URL) *url.URL
- func (p *Provider) Set(key string, value interface{}) error
- func (p *Provider) SetTracer(_ context.Context, _ *otelx.Tracer)
- func (p *Provider) SkipValidation() bool
- func (p *Provider) StringF(key string, fallback string) string
- func (p *Provider) StringsF(key string, fallback []string) (val []string)
- func (p *Provider) TracingConfig(serviceName string) *otelx.Config
- func (p *Provider) URIF(path string, fallback *url.URL) *url.URL
- type UnixPermission
Constants ¶
const ( FlagConfig = "config" Delimiter = "." )
const ( LoadSpanOpName = "config-load" UpdatedSpanOpName = "config-update" SnapshotSpanOpName = "config-snapshot" )
Variables ¶
This section is empty.
Functions ¶
func ContextWithConfigOptions ¶ added in v0.0.172
func ContextWithConfigOptions(ctx context.Context, opts ...OptionModifier) context.Context
func GetAddress ¶ added in v0.0.221
host = unix:/path/to/socket => port is discarded, otherwise format as host:port
func MergeAllTypes ¶ added in v0.0.328
func NewImmutableError ¶
func RegisterConfigFlag ¶ added in v0.0.167
RegisterConfigFlag registers the "--config" flag on pflag.FlagSet.
func RegisterFlags ¶
RegisterFlags registers the config file flag.
Types ¶
type Env ¶ added in v0.0.328
type Env struct {
// contains filtered or unexported fields
}
Env implements an environment variables provider.
func NewKoanfEnv ¶
func (*Env) Read ¶ added in v0.0.328
Read reads all available environment variables into a key:value map and returns it.
type ImmutableError ¶
type ImmutableError struct { From interface{} To interface{} Key string // contains filtered or unexported fields }
func (*ImmutableError) Error ¶
func (e *ImmutableError) Error() string
type KoanfConfmap ¶ added in v0.0.170
type KoanfConfmap struct {
// contains filtered or unexported fields
}
KoanfConfmap implements a raw map[string]interface{} provider.
func NewKoanfConfmap ¶ added in v0.0.170
func NewKoanfConfmap(tuples []tuple) *KoanfConfmap
Provider returns a confmap Provider that takes a flat or nested map[string]interface{}. If a delim is provided, it indicates that the keys are flat and the map needs to be unflatted by delim.
func (*KoanfConfmap) Read ¶ added in v0.0.170
func (e *KoanfConfmap) Read() (map[string]interface{}, error)
Read returns the loaded map[string]interface{}.
func (*KoanfConfmap) ReadBytes ¶ added in v0.0.170
func (e *KoanfConfmap) ReadBytes() ([]byte, error)
ReadBytes is not supported by the env provider.
type KoanfFile ¶
type KoanfFile struct {
// contains filtered or unexported fields
}
KoanfFile implements a KoanfFile provider.
func NewKoanfFile ¶
NewKoanfFile returns a file provider.
func NewKoanfFileSubKey ¶ added in v0.0.167
func (*KoanfFile) WatchChannel ¶
func (f *KoanfFile) WatchChannel(ctx context.Context, c watcherx.EventChannel) (watcherx.Watcher, error)
WatchChannel watches the file and triggers a callback when it changes. It is a blocking function that internally spawns a goroutine to watch for changes.
type KoanfMemory ¶ added in v0.0.247
type KoanfMemory struct {
// contains filtered or unexported fields
}
KoanfMemory implements a KoanfMemory provider.
func NewKoanfMemory ¶ added in v0.0.247
func NewKoanfMemory(ctx context.Context, doc stdjson.RawMessage) *KoanfMemory
NewKoanfMemory returns a file provider.
func (*KoanfMemory) Read ¶ added in v0.0.247
func (f *KoanfMemory) Read() (map[string]interface{}, error)
Read is not supported by the file provider.
func (*KoanfMemory) ReadBytes ¶ added in v0.0.247
func (f *KoanfMemory) ReadBytes() ([]byte, error)
ReadBytes reads the contents of a file on disk and returns the bytes.
func (*KoanfMemory) SetDoc ¶ added in v0.0.247
func (f *KoanfMemory) SetDoc(doc stdjson.RawMessage)
type KoanfSchemaDefaults ¶
type KoanfSchemaDefaults struct {
// contains filtered or unexported fields
}
func NewKoanfSchemaDefaults ¶
func NewKoanfSchemaDefaults(rawSchema []byte, schema *jsonschema.Schema) (*KoanfSchemaDefaults, error)
func (*KoanfSchemaDefaults) Read ¶
func (k *KoanfSchemaDefaults) Read() (map[string]interface{}, error)
func (*KoanfSchemaDefaults) ReadBytes ¶
func (k *KoanfSchemaDefaults) ReadBytes() ([]byte, error)
type OptionModifier ¶
type OptionModifier func(p *Provider)
func AttachWatcher ¶
func AttachWatcher(watcher func(event watcherx.Event, err error)) OptionModifier
func ConfigOptionsFromContext ¶ added in v0.0.172
func ConfigOptionsFromContext(ctx context.Context) []OptionModifier
func DisableEnvLoading ¶ added in v0.0.345
func DisableEnvLoading() OptionModifier
func OmitKeysFromTracing ¶
func OmitKeysFromTracing(keys ...string) OptionModifier
func SkipValidation ¶ added in v0.0.170
func SkipValidation() OptionModifier
func WithBaseValues ¶ added in v0.0.183
func WithBaseValues(values map[string]interface{}) OptionModifier
func WithConfigFiles ¶ added in v0.0.170
func WithConfigFiles(files ...string) OptionModifier
func WithContext ¶
func WithContext(ctx context.Context) OptionModifier
func WithFlags ¶ added in v0.0.170
func WithFlags(flags *pflag.FlagSet) OptionModifier
func WithImmutables ¶
func WithImmutables(immutables ...string) OptionModifier
func WithLogger ¶ added in v0.0.176
func WithLogger(l *logrusx.Logger) OptionModifier
func WithLogrusWatcher ¶
func WithLogrusWatcher(l *logrusx.Logger) OptionModifier
func WithStandardValidationReporter ¶
func WithStandardValidationReporter(w io.Writer) OptionModifier
func WithStderrValidationReporter ¶
func WithStderrValidationReporter() OptionModifier
func WithUserProviders ¶ added in v0.0.247
func WithUserProviders(providers ...koanf.Provider) OptionModifier
func WithValue ¶ added in v0.0.170
func WithValue(key string, value interface{}) OptionModifier
func WithValues ¶ added in v0.0.170
func WithValues(values map[string]interface{}) OptionModifier
type PFlagProvider ¶ added in v0.0.352
type PFlagProvider struct {
// contains filtered or unexported fields
}
func NewPFlagProvider ¶ added in v0.0.352
func NewPFlagProvider(rawSchema []byte, schema *jsonschema.Schema, f *pflag.FlagSet, k *koanf.Koanf) (*PFlagProvider, error)
func (*PFlagProvider) Read ¶ added in v0.0.352
func (p *PFlagProvider) Read() (map[string]interface{}, error)
func (*PFlagProvider) ReadBytes ¶ added in v0.0.352
func (p *PFlagProvider) ReadBytes() ([]byte, error)
type Provider ¶
type Provider struct { *koanf.Koanf // contains filtered or unexported fields }
func New ¶
New creates a new provider instance or errors. Configuration values are loaded in the following order:
1. Defaults from the JSON Schema 2. Config files (yaml, yml, toml, json) 3. Command line flags 4. Environment variables
There will also be file-watchers started for all config files. To cancel the watchers, cancel the context.
func (*Provider) PrintHumanReadableValidationErrors ¶
PrintHumanReadableValidationErrors prints human readable validation errors. Duh.
func (*Provider) RequestURIF ¶
func (*Provider) SkipValidation ¶ added in v0.0.285
type UnixPermission ¶ added in v0.0.221
func (*UnixPermission) SetPermission ¶ added in v0.0.221
func (p *UnixPermission) SetPermission(file string) error