Documentation
      ¶
    
    
  
    
  
    Index ¶
- type Provider
 - func (p *Provider) BooleanEvaluation(ctx context.Context, flag string, defaultValue bool, ...) of.BoolResolutionDetail
 - func (p *Provider) EventChannel() <-chan of.Event
 - func (p *Provider) FloatEvaluation(ctx context.Context, flag string, defaultValue float64, ...) of.FloatResolutionDetail
 - func (p *Provider) Hooks() []of.Hook
 - func (p *Provider) Init(_ of.EvaluationContext) error
 - func (p *Provider) IntEvaluation(ctx context.Context, flag string, defaultValue int64, ...) of.IntResolutionDetail
 - func (p *Provider) Metadata() of.Metadata
 - func (p *Provider) ObjectEvaluation(ctx context.Context, flag string, defaultValue interface{}, ...) of.InterfaceResolutionDetail
 - func (p *Provider) Shutdown()
 - func (p *Provider) Status() of.State
 - func (p *Provider) StringEvaluation(ctx context.Context, flag string, defaultValue string, ...) of.StringResolutionDetail
 
- type ProviderOptions
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct {
	// contains filtered or unexported fields
}
    func NewProvider ¶
func NewProvider(options ProviderOptions) (*Provider, error)
NewProvider allows you to create a GO Feature Flag provider without any context. We recommend using the function NewProviderWithContext and provide your context when creating the provider.
func NewProviderWithContext ¶ added in v0.1.14
func NewProviderWithContext(ctx context.Context, options ProviderOptions) (*Provider, error)
NewProviderWithContext is the easiest way of creating a new GO Feature Flag provider.
func (*Provider) BooleanEvaluation ¶
func (p *Provider) BooleanEvaluation(ctx context.Context, flag string, defaultValue bool, evalCtx of.FlattenedContext) of.BoolResolutionDetail
func (*Provider) EventChannel ¶ added in v0.2.0
EventChannel returns the event channel of this provider
func (*Provider) FloatEvaluation ¶
func (p *Provider) FloatEvaluation(ctx context.Context, flag string, defaultValue float64, evalCtx of.FlattenedContext) of.FloatResolutionDetail
func (*Provider) Init ¶ added in v0.2.0
func (p *Provider) Init(_ of.EvaluationContext) error
Init holds initialization logic of the provider
func (*Provider) IntEvaluation ¶
func (p *Provider) IntEvaluation(ctx context.Context, flag string, defaultValue int64, evalCtx of.FlattenedContext) of.IntResolutionDetail
func (*Provider) ObjectEvaluation ¶
func (p *Provider) ObjectEvaluation(ctx context.Context, flag string, defaultValue interface{}, evalCtx of.FlattenedContext) of.InterfaceResolutionDetail
func (*Provider) Shutdown ¶ added in v0.1.14
func (p *Provider) Shutdown()
Shutdown defines the shutdown operation of the provider
func (*Provider) StringEvaluation ¶
func (p *Provider) StringEvaluation(ctx context.Context, flag string, defaultValue string, evalCtx of.FlattenedContext) of.StringResolutionDetail
type ProviderOptions ¶
type ProviderOptions struct {
	// Endpoint contains the DNS of your GO Feature Flag relay proxy (ex: http://localhost:1031)
	Endpoint string
	// HTTPClient (optional) is the HTTP Client we will use to contact GO Feature Flag.
	// By default, we are using a custom HTTPClient with a timeout configure to 10000 milliseconds.
	HTTPClient *http.Client
	// APIKey  (optional) If the relay proxy is configured to authenticate the requests, you should provide
	// an API Key to the provider. Please ask the administrator of the relay proxy to provide an API Key.
	// (This feature is available only if you are using GO Feature Flag relay proxy v1.7.0 or above)
	// Default: null
	APIKey string
	// DisableCache (optional) set to true if you would like that every flag evaluation goes to the GO Feature Flag directly.
	DisableCache bool
	// FlagCacheSize (optional) is the maximum number of flag events we keep in memory to cache your flags.
	// default: 10000
	FlagCacheSize int
	// FlagCacheTTL (optional) is the time we keep the evaluation in the cache before we consider it as obsolete.
	// If you want to keep the value forever you can set the FlagCacheTTL field to -1
	// default: 1 minute
	FlagCacheTTL time.Duration
	// DataFlushInterval (optional) interval time we use to call the relay proxy to collect data.
	// The parameter is used only if the cache is enabled, otherwise the collection of the data is done directly
	// when calling the evaluation API.
	// default: 1 minute
	DataFlushInterval time.Duration
	// DataMaxEventInMemory (optional) maximum number of item we keep in memory before calling the API.
	// If this number is reached before the DataFlushInterval we will call the API.
	// The parameter is used only if the cache is enabled, otherwise the collection of the data is done directly
	// when calling the evaluation API.
	// default: 500
	DataMaxEventInMemory int64
	// DataCollectorMaxEventStored (optional) maximum number of event we keep in memory, if we reach this number it means
	// that we will start to drop the new events. This is a security to avoid a memory leak.
	// default: 100000
	DataCollectorMaxEventStored int64
	// DisableDataCollector (optional) set to true if you would like to disable the data collector.
	DisableDataCollector bool
	// FlagChangePollingInterval (optional) interval time we poll the proxy to check if the configuration has changed.
	// If the cache is enabled, we will poll the relay-proxy every X milliseconds to check if the configuration has changed.
	// Use -1 if you want to deactivate polling.
	// default: 120000ms
	FlagChangePollingInterval time.Duration
	// ExporterMetadata (optional) is the metadata we send to the GO Feature Flag relay proxy when we report the
	// evaluation data usage.
	//
	// ‼️Important: If you are using a GO Feature Flag relay proxy before version v1.41.0, the information of this
	// field will not be added to your feature events.
	ExporterMetadata map[string]interface{}
}
    ProviderOptions is the struct containing the provider options you can use while initializing GO Feature Flag. To have a valid configuration you need to have an Endpoint or GOFeatureFlagConfig set.
func (*ProviderOptions) Validation ¶ added in v0.2.0
func (o *ProviderOptions) Validation() error