...

Package configx

import "github.com/ory/x/configx"
Overview
Index

Overview ▾

Index ▾

Constants
func ContextWithConfigOptions(ctx context.Context, opts ...OptionModifier) context.Context
func LogrusWatcher(l *logrusx.Logger) func(e watcherx.Event, err error)
func NewImmutableError(key string, from, to interface{}) error
func NewKoanfEnv(prefix string, schema []byte) (*env.Env, error)
func RegisterConfigFlag(flags *pflag.FlagSet, fallback []string)
func RegisterFlags(flags *pflag.FlagSet)
type ImmutableError
    func (e *ImmutableError) Error() string
type KoanfConfmap
    func NewKoanfConfmap(tuples []tuple) *KoanfConfmap
    func (e *KoanfConfmap) Read() (map[string]interface{}, error)
    func (e *KoanfConfmap) ReadBytes() ([]byte, error)
type KoanfFile
    func NewKoanfFile(ctx context.Context, path string) (*KoanfFile, error)
    func NewKoanfFileSubKey(ctx context.Context, path, subKey string) (*KoanfFile, error)
    func (f *KoanfFile) Read() (map[string]interface{}, error)
    func (f *KoanfFile) ReadBytes() ([]byte, error)
    func (f *KoanfFile) WatchChannel(c watcherx.EventChannel) (watcherx.Watcher, error)
type KoanfSchemaDefaults
    func NewKoanfSchemaDefaults(schema []byte) (*KoanfSchemaDefaults, error)
    func (k *KoanfSchemaDefaults) Read() (map[string]interface{}, error)
    func (k *KoanfSchemaDefaults) ReadBytes() ([]byte, error)
type OptionModifier
    func AttachWatcher(watcher func(event watcherx.Event, err error)) OptionModifier
    func ConfigOptionsFromContext(ctx context.Context) []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 WithValue(key string, value interface{}) OptionModifier
    func WithValues(values map[string]interface{}) OptionModifier
type Provider
    func New(schema []byte, modifiers ...OptionModifier) (*Provider, error)
    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(ctx context.Context, t *tracing.Tracer)
    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) *tracing.Config
    func (p *Provider) URIF(path string, fallback *url.URL) *url.URL

Package files

context.go error.go helpers.go koanf_confmap.go koanf_env.go koanf_file.go koanf_schema_defaults.go options.go provider.go schema.go span.go

Constants

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

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

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

type KoanfConfmap struct {
    // contains filtered or unexported fields
}

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

KoanfFile implements a KoanfFile provider.

type KoanfFile struct {
    // contains filtered or unexported fields
}

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 {
    *koanf.Koanf
    // 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