Documentation
¶
Index ¶
- Constants
- Variables
- type CacheConfig
- type Client
- type ClientInterface
- type Config
- type Evaluation
- type EvaluationContext
- type HorizonConfig
- type HorizonEndpoints
- type Provider
- func (p *Provider) BooleanEvaluation(ctx context.Context, flag string, defaultValue bool, ...) openfeature.BoolResolutionDetail
- func (p *Provider) FloatEvaluation(ctx context.Context, flag string, defaultValue float64, ...) openfeature.FloatResolutionDetail
- func (p *Provider) Hooks() []openfeature.Hook
- func (p *Provider) IntEvaluation(ctx context.Context, flag string, defaultValue int64, ...) openfeature.IntResolutionDetail
- func (p *Provider) Metadata() openfeature.Metadata
- func (p *Provider) ObjectEvaluation(ctx context.Context, flag string, defaultValue interface{}, ...) openfeature.InterfaceResolutionDetail
- func (p *Provider) StringEvaluation(ctx context.Context, flag string, defaultValue string, ...) openfeature.StringResolutionDetail
- type ProviderHook
- func (h *ProviderHook) After(ctx context.Context, hookContext openfeature.HookContext, ...) error
- func (h *ProviderHook) Before(ctx context.Context, hookContext openfeature.HookContext, ...) (*openfeature.EvaluationContext, error)
- func (h *ProviderHook) Error(ctx context.Context, hookContext openfeature.HookContext, err error, ...)
- type Response
- type TelemetryPayload
- type User
Constants ¶
View Source
const ( DefaultHorizonURL = "https://dev-horizon.hyphen.ai" DefaultCacheTTL = 30 )
Variables ¶
View Source
var ( ErrMissingApplication = errors.New("application is required") ErrMissingEnvironment = errors.New("environment is required") ErrMissingPublicKey = errors.New("public key is required") ErrMissingTargetKey = errors.New("targeting key is required") ErrInvalidFlagType = errors.New("invalid flag type") ErrFlagNotFound = errors.New("flag not found") ErrInvalidEnvironmentFormat = errors.New("invalid environment format. Must be either a project environment ID (starting with \"pevr_\") or a valid alternateId (1-25 characters, lowercase letters, numbers, hyphens, and underscores, not containing the word \"environments\")") )
Functions ¶
This section is empty.
Types ¶
type CacheConfig ¶ added in v1.0.0
type CacheConfig struct {
TTL time.Duration
KeyGen func(ctx EvaluationContext) string
}
type Client ¶ added in v1.0.0
type Client struct {
// contains filtered or unexported fields
}
func (*Client) Evaluate ¶ added in v1.0.0
func (c *Client) Evaluate(ctx EvaluationContext) (*Response, error)
func (*Client) SendTelemetry ¶ added in v1.0.0
func (c *Client) SendTelemetry(payload TelemetryPayload) error
type ClientInterface ¶ added in v1.0.0
type ClientInterface interface {
Evaluate(ctx EvaluationContext) (*Response, error)
SendTelemetry(payload TelemetryPayload) error
}
type Evaluation ¶ added in v1.0.0
type EvaluationContext ¶ added in v1.0.0
type EvaluationContext struct {
TargetingKey string `json:"targetingKey"`
IPAddress string `json:"ipAddress,omitempty"`
Application string `json:"application"`
Environment string `json:"environment"`
User *User `json:"user,omitempty"`
CustomAttributes map[string]interface{} `json:"customAttributes,omitempty"`
}
type HorizonConfig ¶ added in v1.0.0
type HorizonConfig struct {
URL string
}
type HorizonEndpoints ¶ added in v1.0.0
type Provider ¶ added in v1.0.0
type Provider struct {
// contains filtered or unexported fields
}
func NewProvider ¶ added in v1.0.0
func (*Provider) BooleanEvaluation ¶ added in v1.0.0
func (p *Provider) BooleanEvaluation(ctx context.Context, flag string, defaultValue bool, evalCtx openfeature.FlattenedContext) openfeature.BoolResolutionDetail
func (*Provider) FloatEvaluation ¶ added in v1.0.0
func (p *Provider) FloatEvaluation(ctx context.Context, flag string, defaultValue float64, evalCtx openfeature.FlattenedContext) openfeature.FloatResolutionDetail
func (*Provider) Hooks ¶ added in v1.0.0
func (p *Provider) Hooks() []openfeature.Hook
func (*Provider) IntEvaluation ¶ added in v1.0.0
func (p *Provider) IntEvaluation(ctx context.Context, flag string, defaultValue int64, evalCtx openfeature.FlattenedContext) openfeature.IntResolutionDetail
func (*Provider) Metadata ¶ added in v1.0.0
func (p *Provider) Metadata() openfeature.Metadata
func (*Provider) ObjectEvaluation ¶ added in v1.0.0
func (p *Provider) ObjectEvaluation(ctx context.Context, flag string, defaultValue interface{}, evalCtx openfeature.FlattenedContext) openfeature.InterfaceResolutionDetail
func (*Provider) StringEvaluation ¶ added in v1.0.0
func (p *Provider) StringEvaluation( ctx context.Context, flag string, defaultValue string, evalCtx openfeature.FlattenedContext, ) openfeature.StringResolutionDetail
type ProviderHook ¶ added in v1.0.0
type ProviderHook struct {
openfeature.UnimplementedHook
// contains filtered or unexported fields
}
func NewProviderHook ¶ added in v1.0.0
func NewProviderHook(provider *Provider) *ProviderHook
func (*ProviderHook) After ¶ added in v1.0.0
func (h *ProviderHook) After(ctx context.Context, hookContext openfeature.HookContext, details openfeature.InterfaceEvaluationDetails, hookHints openfeature.HookHints) error
func (*ProviderHook) Before ¶ added in v1.0.0
func (h *ProviderHook) Before(ctx context.Context, hookContext openfeature.HookContext, hookHints openfeature.HookHints) (*openfeature.EvaluationContext, error)
func (*ProviderHook) Error ¶ added in v1.0.0
func (h *ProviderHook) Error(ctx context.Context, hookContext openfeature.HookContext, err error, hookHints openfeature.HookHints)
type Response ¶ added in v1.0.0
type Response struct {
Toggles map[string]Evaluation `json:"toggles"`
}
type TelemetryPayload ¶ added in v1.0.0
type TelemetryPayload struct {
Context EvaluationContext `json:"context"`
Data struct {
Toggle Evaluation `json:"toggle"`
} `json:"data"`
}
Click to show internal directories.
Click to hide internal directories.