Documentation
¶
Overview ¶
Package featureflags provides an embedded OpenFeature provider backed by GO Feature Flag (GOFF). Flags are read from a local YAML file and evaluated entirely in-process — no relay proxy required.
Index ¶
- Variables
- func NewEmbeddedProvider(cfg commoncfg.FeatureFlags) (openfeature.FeatureProvider, error)
- type EmbeddedProvider
- func (p *EmbeddedProvider) BooleanEvaluation(_ context.Context, flag string, defaultValue bool, ...) openfeature.BoolResolutionDetail
- func (p *EmbeddedProvider) FloatEvaluation(_ context.Context, flag string, defaultValue float64, ...) openfeature.FloatResolutionDetail
- func (p *EmbeddedProvider) Hooks() []openfeature.Hook
- func (p *EmbeddedProvider) Init(_ openfeature.EvaluationContext) error
- func (p *EmbeddedProvider) IntEvaluation(_ context.Context, flag string, defaultValue int64, ...) openfeature.IntResolutionDetail
- func (p *EmbeddedProvider) Metadata() openfeature.Metadata
- func (p *EmbeddedProvider) ObjectEvaluation(_ context.Context, flag string, defaultValue any, ...) openfeature.InterfaceResolutionDetail
- func (p *EmbeddedProvider) Shutdown()
- func (p *EmbeddedProvider) Status() openfeature.State
- func (p *EmbeddedProvider) StringEvaluation(_ context.Context, flag string, defaultValue string, ...) openfeature.StringResolutionDetail
Constants ¶
This section is empty.
Variables ¶
var ErrEmptyFilePath = errors.New("featureflags: FilePath must not be empty")
ErrEmptyFilePath is returned by NewEmbeddedProvider when FilePath is empty.
Functions ¶
func NewEmbeddedProvider ¶
func NewEmbeddedProvider(cfg commoncfg.FeatureFlags) (openfeature.FeatureProvider, error)
NewEmbeddedProvider creates an embedded provider from the given config. Returns ErrEmptyFilePath if cfg.FilePath is empty.
Types ¶
type EmbeddedProvider ¶
type EmbeddedProvider struct {
// contains filtered or unexported fields
}
EmbeddedProvider implements openfeature.FeatureProvider by delegating to ffclient.
func (*EmbeddedProvider) BooleanEvaluation ¶
func (p *EmbeddedProvider) BooleanEvaluation(_ context.Context, flag string, defaultValue bool, flatCtx openfeature.FlattenedContext) openfeature.BoolResolutionDetail
BooleanEvaluation implements openfeature.FeatureProvider.
func (*EmbeddedProvider) FloatEvaluation ¶
func (p *EmbeddedProvider) FloatEvaluation(_ context.Context, flag string, defaultValue float64, flatCtx openfeature.FlattenedContext) openfeature.FloatResolutionDetail
FloatEvaluation implements openfeature.FeatureProvider.
func (*EmbeddedProvider) Hooks ¶
func (p *EmbeddedProvider) Hooks() []openfeature.Hook
Hooks implements openfeature.FeatureProvider.
func (*EmbeddedProvider) Init ¶
func (p *EmbeddedProvider) Init(_ openfeature.EvaluationContext) error
Init implements openfeature.StateHandler — called by SetProviderAndWait.
func (*EmbeddedProvider) IntEvaluation ¶
func (p *EmbeddedProvider) IntEvaluation(_ context.Context, flag string, defaultValue int64, flatCtx openfeature.FlattenedContext) openfeature.IntResolutionDetail
IntEvaluation implements openfeature.FeatureProvider. GOFF's IntVariationDetails uses int (not int64), which is 64-bit on all supported platforms (linux/amd64, linux/arm64), so the cast is lossless.
func (*EmbeddedProvider) Metadata ¶
func (p *EmbeddedProvider) Metadata() openfeature.Metadata
Metadata implements openfeature.FeatureProvider.
func (*EmbeddedProvider) ObjectEvaluation ¶
func (p *EmbeddedProvider) ObjectEvaluation(_ context.Context, flag string, defaultValue any, flatCtx openfeature.FlattenedContext) openfeature.InterfaceResolutionDetail
ObjectEvaluation implements openfeature.FeatureProvider.
func (*EmbeddedProvider) Shutdown ¶
func (p *EmbeddedProvider) Shutdown()
Shutdown implements openfeature.StateHandler.
func (*EmbeddedProvider) Status ¶
func (p *EmbeddedProvider) Status() openfeature.State
Status implements openfeature.StateHandler.
func (*EmbeddedProvider) StringEvaluation ¶
func (p *EmbeddedProvider) StringEvaluation(_ context.Context, flag string, defaultValue string, flatCtx openfeature.FlattenedContext) openfeature.StringResolutionDetail
StringEvaluation implements openfeature.FeatureProvider.