Documentation
¶
Overview ¶
Package feature implements the config-driven feature flag and canary rollout provider.
Index ¶
- func ParseEvalContextFromHeader(getHeader func(string) string) featurecontract.EvaluationContext
- type FlagRule
- type Provider
- type Service
- func (s *Service) EvaluateBool(ctx context.Context, flagKey string, defaultVal bool, ...) bool
- func (s *Service) EvaluateInt(ctx context.Context, flagKey string, defaultVal int, ...) int
- func (s *Service) EvaluateJSON(ctx context.Context, flagKey string, out any, ...) error
- func (s *Service) EvaluateString(ctx context.Context, flagKey string, defaultVal string, ...) string
- func (s *Service) SetRule(flagKey string, rule FlagRule)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseEvalContextFromHeader ¶
func ParseEvalContextFromHeader(getHeader func(string) string) featurecontract.EvaluationContext
ParseEvalContextFromHeader constructs EvaluationContext from HTTP headers (X-User-ID, X-Tenant-ID).
Types ¶
type FlagRule ¶
type FlagRule struct {
Enabled bool `mapstructure:"enabled" json:"enabled"`
DefaultValue any `mapstructure:"default_value" json:"default_value"`
UserWhitelist []string `mapstructure:"user_whitelist" json:"user_whitelist"`
TenantWhitelist []string `mapstructure:"tenant_whitelist" json:"tenant_whitelist"`
Percentage int `mapstructure:"percentage" json:"percentage"` // 0 - 100
ValueMap map[string]any `mapstructure:"value_map" json:"value_map"`
}
FlagRule defines the configuration rule for a single feature flag.
type Provider ¶
type Provider struct {
Service *Service
}
Provider is the DI provider for feature flag capabilities.
func NewProvider ¶
NewProvider creates a new feature Provider instance.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service is the in-memory/config-backed FeatureManager implementation.
func NewService ¶
NewService creates a new feature flag Service with initial flag rules.
func (*Service) EvaluateBool ¶
func (s *Service) EvaluateBool(ctx context.Context, flagKey string, defaultVal bool, evalCtx featurecontract.EvaluationContext) bool
EvaluateBool evaluates a boolean feature flag.
func (*Service) EvaluateInt ¶
func (s *Service) EvaluateInt(ctx context.Context, flagKey string, defaultVal int, evalCtx featurecontract.EvaluationContext) int
EvaluateInt evaluates an integer feature flag.
func (*Service) EvaluateJSON ¶
func (s *Service) EvaluateJSON(ctx context.Context, flagKey string, out any, evalCtx featurecontract.EvaluationContext) error
EvaluateJSON evaluates a JSON object feature flag into target out.
func (*Service) EvaluateString ¶
func (s *Service) EvaluateString(ctx context.Context, flagKey string, defaultVal string, evalCtx featurecontract.EvaluationContext) string
EvaluateString evaluates a string feature flag.