View Source
const (
	FlagConfig = "config"
	Delimiter  = "."
View Source
const (
	LoadSpanOpName     = "config-load"
	UpdatedSpanOpName  = "config-update"
	SnapshotSpanOpName = "config-snapshot"


This section is empty.


func ContextWithConfigOptions

func ContextWithConfigOptions(ctx context.Context, opts ...OptionModifier) context.Context

func LogrusWatcher

func LogrusWatcher(l *logrusx.Logger) func(e watcherx.Event, err error)

func NewImmutableError

func NewImmutableError(key string, from, to interface{}) error

func NewKoanfEnv

func NewKoanfEnv(prefix string, schema []byte) (*env.Env, error)

func RegisterConfigFlag

func RegisterConfigFlag(flags *pflag.FlagSet, fallback []string)

    RegisterConfigFlag registers the "--config" flag on pflag.FlagSet.

    func RegisterFlags

    func RegisterFlags(flags *pflag.FlagSet)

      RegisterFlags registers the config file flag.


      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

      type KoanfConfmap struct {
      	// contains filtered or unexported fields

        KoanfConfmap implements a raw map[string]interface{} provider.

        func NewKoanfConfmap

        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

          func (e *KoanfConfmap) Read() (map[string]interface{}, error)

            Read returns the loaded map[string]interface{}.

            func (*KoanfConfmap) ReadBytes

            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

                func NewKoanfFile(ctx context.Context, path string) (*KoanfFile, error)

                  Provider returns a file provider.

                  func NewKoanfFileSubKey

                  func NewKoanfFileSubKey(ctx context.Context, path, subKey string) (*KoanfFile, error)

                  func (*KoanfFile) Read

                  func (f *KoanfFile) Read() (map[string]interface{}, error)

                    Read is not supported by the file provider.

                    func (*KoanfFile) ReadBytes

                    func (f *KoanfFile) ReadBytes() ([]byte, error)

                      ReadBytes reads the contents of a file on disk and returns the bytes.

                      func (*KoanfFile) WatchChannel

                      func (f *KoanfFile) WatchChannel(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 KoanfSchemaDefaults

                        type KoanfSchemaDefaults struct {
                        	// contains filtered or unexported fields

                        func NewKoanfSchemaDefaults

                        func NewKoanfSchemaDefaults(schema []byte) (*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

                        func ConfigOptionsFromContext(ctx context.Context) []OptionModifier

                        func OmitKeysFromTracing

                        func OmitKeysFromTracing(keys ...string) OptionModifier

                        func SkipValidation

                        func SkipValidation() OptionModifier

                        func WithBaseValues

                        func WithBaseValues(values map[string]interface{}) OptionModifier

                        func WithConfigFiles

                        func WithConfigFiles(files ...string) OptionModifier

                        func WithContext

                        func WithContext(ctx context.Context) OptionModifier

                        func WithFlags

                        func WithFlags(flags *pflag.FlagSet) OptionModifier

                        func WithImmutables

                        func WithImmutables(immutables ...string) OptionModifier

                        func WithLogger

                        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 WithValue

                        func WithValue(key string, value interface{}) OptionModifier

                        func WithValues

                        func WithValues(values map[string]interface{}) OptionModifier

                        type Provider

                        type Provider struct {
                        	// contains filtered or unexported fields

                        func New

                        func New(schema []byte, modifiers ...OptionModifier) (*Provider, error)

                          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

                          func (*Provider) BoolF

                          func (p *Provider) BoolF(key string, fallback bool) bool

                          func (*Provider) ByteSizeF

                          func (p *Provider) ByteSizeF(key string, fallback bytesize.ByteSize) bytesize.ByteSize

                          func (*Provider) CORS

                          func (p *Provider) CORS(prefix string, defaults cors.Options) (cors.Options, bool)

                          func (*Provider) DurationF

                          func (p *Provider) DurationF(key string, fallback time.Duration) (val time.Duration)

                          func (*Provider) Float64F

                          func (p *Provider) Float64F(key string, fallback float64) (val float64)

                          func (*Provider) GetF

                          func (p *Provider) GetF(key string, fallback interface{}) (val interface{})

                          func (*Provider) IntF

                          func (p *Provider) IntF(key string, fallback int) (val int)

                          func (*Provider) PrintHumanReadableValidationErrors

                          func (p *Provider) PrintHumanReadableValidationErrors(w io.Writer, err error)

                            PrintHumanReadableValidationErrors prints human readable validation errors. Duh.

                            func (*Provider) RequestURIF

                            func (p *Provider) RequestURIF(path string, fallback *url.URL) *url.URL

                            func (*Provider) Set

                            func (p *Provider) Set(key string, value interface{}) error

                            func (*Provider) SetTracer

                            func (p *Provider) SetTracer(ctx context.Context, t *tracing.Tracer)

                              TraceSnapshot will send the configuration to the tracer.

                              func (*Provider) StringF

                              func (p *Provider) StringF(key string, fallback string) string

                              func (*Provider) StringsF

                              func (p *Provider) StringsF(key string, fallback []string) (val []string)

                              func (*Provider) TracingConfig

                              func (p *Provider) TracingConfig(serviceName string) *tracing.Config

                              func (*Provider) URIF

                              func (p *Provider) URIF(path string, fallback *url.URL) *url.URL