Documentation ¶
Overview ¶
Package growthbook provides a Go SDK for the GrowthBook A/B testing and feature flagging service.
Index ¶
- func BuildFeatures(v interface{}) map[string]*Feature
- func ConfigureCache(c Cache)
- func ConfigureCacheBackgroundSync(bgSync bool)
- func SetLogger(userLogger Logger)
- type Assignment
- type Attributes
- type Cache
- type CacheEntry
- type Condition
- type Context
- func (ctx *Context) ForceVariation(key string, variation int)
- func (ctx *Context) UnforceVariation(key string)
- func (ctx *Context) WithAPIHost(host string) *Context
- func (ctx *Context) WithAttributes(attributes Attributes) *Context
- func (ctx *Context) WithCacheTTL(ttl time.Duration) *Context
- func (ctx *Context) WithClientKey(key string) *Context
- func (ctx *Context) WithDecryptionKey(key string) *Context
- func (ctx *Context) WithDevMode(devMode bool) *Context
- func (ctx *Context) WithEnabled(enabled bool) *Context
- func (ctx *Context) WithFeatureUsageCallback(callback FeatureUsageCallback) *Context
- func (ctx *Context) WithFeatures(features FeatureMap) *Context
- func (ctx *Context) WithForcedVariations(forcedVariations ForcedVariationsMap) *Context
- func (ctx *Context) WithGroups(groups map[string]bool) *Context
- func (ctx *Context) WithOverrides(overrides ExperimentOverrides) *Context
- func (ctx *Context) WithQAMode(qaMode bool) *Context
- func (ctx *Context) WithTrackingCallback(callback ExperimentCallback) *Context
- func (ctx *Context) WithURL(url *url.URL) *Context
- func (ctx *Context) WithUserAttributes(attributes Attributes) *Context
- type DevLogger
- func (log *DevLogger) Error(msg string, args ...interface{})
- func (log *DevLogger) Errorf(format string, args ...interface{})
- func (log *DevLogger) Info(msg string, args ...interface{})
- func (log *DevLogger) Infof(format string, args ...interface{})
- func (log *DevLogger) Warn(msg string, args ...interface{})
- func (log *DevLogger) Warnf(format string, args ...interface{})
- type Experiment
- func (exp *Experiment) WithActive(active bool) *Experiment
- func (exp *Experiment) WithCondition(condition Condition) *Experiment
- func (exp *Experiment) WithCoverage(coverage float64) *Experiment
- func (exp *Experiment) WithFilters(filters ...Filter) *Experiment
- func (exp *Experiment) WithForce(force int) *Experiment
- func (exp *Experiment) WithGroups(groups ...string) *Experiment
- func (exp *Experiment) WithHashAttribute(hashAttribute string) *Experiment
- func (exp *Experiment) WithHashVersion(hashVersion int) *Experiment
- func (exp *Experiment) WithIncludeFunction(include func() bool) *Experiment
- func (exp *Experiment) WithMeta(meta ...VariationMeta) *Experiment
- func (exp *Experiment) WithName(name string) *Experiment
- func (exp *Experiment) WithNamespace(namespace *Namespace) *Experiment
- func (exp *Experiment) WithPhase(phase string) *Experiment
- func (exp *Experiment) WithRanges(ranges ...Range) *Experiment
- func (exp *Experiment) WithSeed(seed string) *Experiment
- func (exp *Experiment) WithStatus(status ExperimentStatus) *Experiment
- func (exp *Experiment) WithURL(url *regexp.Regexp) *Experiment
- func (exp *Experiment) WithVariations(variations ...FeatureValue) *Experiment
- func (exp *Experiment) WithWeights(weights ...float64) *Experiment
- type ExperimentCallback
- type ExperimentOverride
- type ExperimentOverrides
- type ExperimentStatus
- type Feature
- type FeatureAPIResponse
- type FeatureMap
- type FeatureRepoOptions
- type FeatureResult
- type FeatureResultSource
- type FeatureRule
- type FeatureUsageCallback
- type FeatureValue
- type Filter
- type ForcedVariationsMap
- type GrowthBook
- func (gb *GrowthBook) Attributes() Attributes
- func (gb *GrowthBook) ClearSavedResults()
- func (gb *GrowthBook) ClearTrackingData()
- func (gb *GrowthBook) EvalFeature(id string) *FeatureResult
- func (gb *GrowthBook) Feature(key string) *FeatureResultdeprecated
- func (gb *GrowthBook) Features() FeatureMap
- func (gb *GrowthBook) ForceVariation(key string, variation int)
- func (gb *GrowthBook) GetAPIInfo() (string, string)
- func (gb *GrowthBook) GetAllResults() map[string]*Assignment
- func (gb *GrowthBook) GetFeatureValue(key string, defaultValue interface{}) interface{}
- func (gb *GrowthBook) IsOff(key string) bool
- func (gb *GrowthBook) IsOn(key string) bool
- func (gb *GrowthBook) LatestFeatureUpdate() *time.Time
- func (gb *GrowthBook) LoadFeatures(options *FeatureRepoOptions)
- func (gb *GrowthBook) Ready() bool
- func (gb *GrowthBook) RefreshFeatures(options *FeatureRepoOptions)
- func (gb *GrowthBook) Run(exp *Experiment) *Result
- func (gb *GrowthBook) Subscribe(callback ExperimentCallback) func()
- func (gb *GrowthBook) UnforceVariation(key string)
- func (gb *GrowthBook) WithAPIHost(host string) *GrowthBook
- func (gb *GrowthBook) WithAttributeOverrides(overrides Attributes) *GrowthBook
- func (gb *GrowthBook) WithAttributes(attrs Attributes) *GrowthBook
- func (gb *GrowthBook) WithClientKey(key string) *GrowthBook
- func (gb *GrowthBook) WithDecryptionKey(key string) *GrowthBook
- func (gb *GrowthBook) WithDevMode(devMode bool) *GrowthBook
- func (gb *GrowthBook) WithEnabled(enabled bool) *GrowthBook
- func (gb *GrowthBook) WithEncryptedFeatures(encrypted string, key string) (*GrowthBook, error)
- func (gb *GrowthBook) WithFeatureUsageCallback(callback FeatureUsageCallback) *GrowthBook
- func (gb *GrowthBook) WithFeatures(features FeatureMap) *GrowthBook
- func (gb *GrowthBook) WithForcedFeatures(values map[string]interface{}) *GrowthBook
- func (gb *GrowthBook) WithForcedVariations(forcedVariations ForcedVariationsMap) *GrowthBook
- func (gb *GrowthBook) WithGroups(groups map[string]bool) *GrowthBook
- func (gb *GrowthBook) WithQAMode(qaMode bool) *GrowthBook
- func (gb *GrowthBook) WithTrackingCallback(callback ExperimentCallback) *GrowthBook
- func (gb *GrowthBook) WithURL(url *url.URL) *GrowthBook
- type Logger
- type Namespace
- type Range
- type RepositoryKey
- type Result
- type URLTarget
- type URLTargetType
- type VariationMeta
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildFeatures ¶ added in v0.1.4
BuildFeatures creates a Feature array from a generic JSON value.
func ConfigureCache ¶ added in v0.1.4
func ConfigureCache(c Cache)
func ConfigureCacheBackgroundSync ¶ added in v0.1.4
func ConfigureCacheBackgroundSync(bgSync bool)
func SetLogger ¶
func SetLogger(userLogger Logger)
SetLogger sets up the logging interface used throughout. The idea here is to provide developers with the option of handling errors and warnings in a strict way during development and a lenient way in production. For example, in development, setting a logger that prints a message for all logged output and panics on any logged warning or error might be appropriate, while in production, it would make more sense to log only warnings and errors and to proceed without halting. All GrowthBook SDK functions leave values in a sensible default state after errors, so production systems can essentially ignore any errors.
Types ¶
type Assignment ¶ added in v0.1.4
type Assignment struct { Experiment *Experiment Result *Result }
Assignment is used for recording subscription information.
type Attributes ¶
type Attributes map[string]interface{}
Attributes is an arbitrary JSON object containing user and request attributes.
type Cache ¶ added in v0.1.4
type Cache interface { Initialize() Clear() Get(key RepositoryKey) *CacheEntry Set(key RepositoryKey, entry *CacheEntry) }
type CacheEntry ¶ added in v0.1.4
type CacheEntry struct { Data *FeatureAPIResponse `json:"data"` Version time.Time `json:"version"` StaleAt time.Time `json:"stale_at"` }
type Condition ¶
type Condition interface {
Eval(attrs Attributes) bool
}
Condition represents conditions used to target features/experiments to specific users.
func BuildCondition ¶
BuildCondition creates a Condition value from a JSON object represented as a Go map.
func ParseCondition ¶
ParseCondition creates a Condition value from raw JSON input.
type Context ¶
type Context struct { Enabled bool Attributes Attributes URL *url.URL Features FeatureMap ForcedVariations ForcedVariationsMap QAMode bool DevMode bool TrackingCallback ExperimentCallback OnFeatureUsage FeatureUsageCallback UserAttributes Attributes Groups map[string]bool APIHost string ClientKey string DecryptionKey string Overrides ExperimentOverrides CacheTTL time.Duration }
Context contains the options for creating a new GrowthBook instance.
func BuildContext ¶
BuildContext creates a Context value from a JSON object represented as a Go map.
func NewContext ¶
func NewContext() *Context
NewContext creates a context with default settings: enabled, but all other fields empty.
func ParseContext ¶
ParseContext creates a Context value from raw JSON input.
func (*Context) ForceVariation ¶ added in v0.1.4
func (*Context) UnforceVariation ¶ added in v0.1.4
func (*Context) WithAPIHost ¶ added in v0.1.4
WithAPIHost sets the API host of a context.
func (*Context) WithAttributes ¶
func (ctx *Context) WithAttributes(attributes Attributes) *Context
WithAttributes sets the attributes for a context.
func (*Context) WithCacheTTL ¶ added in v0.1.4
WithCacheTTL sets the TTL for the feature cache.
func (*Context) WithClientKey ¶ added in v0.1.4
WithClientKey sets the API client key of a context.
func (*Context) WithDecryptionKey ¶ added in v0.1.4
WithDecryptionKey sets the decryption key of a context.
func (*Context) WithDevMode ¶ added in v0.1.4
WithDevMode can be used to enable or disable the development mode for a context.
func (*Context) WithEnabled ¶
WithEnabled sets the enabled flag for a context.
func (*Context) WithFeatureUsageCallback ¶ added in v0.1.4
func (ctx *Context) WithFeatureUsageCallback(callback FeatureUsageCallback) *Context
WithFeatureUsageCallback is used to set a feature usage callback for a context.
func (*Context) WithFeatures ¶
func (ctx *Context) WithFeatures(features FeatureMap) *Context
WithFeatures sets the features for a context (as a value of type FeatureMap, which is a map from feature names to *Feature values).
func (*Context) WithForcedVariations ¶
func (ctx *Context) WithForcedVariations(forcedVariations ForcedVariationsMap) *Context
WithForcedVariations sets the forced variations for a context (as a value of type ForcedVariationsMap, which is a map from experiment keys to variation indexes).
func (*Context) WithGroups ¶ added in v0.1.4
WithGroups sets the groups map of a context.
func (*Context) WithOverrides ¶ added in v0.1.4
func (ctx *Context) WithOverrides(overrides ExperimentOverrides) *Context
WithOverrides sets the experiment overrides of a context.
func (*Context) WithQAMode ¶
WithQAMode can be used to enable or disable the QA mode for a context.
func (*Context) WithTrackingCallback ¶
func (ctx *Context) WithTrackingCallback(callback ExperimentCallback) *Context
WithTrackingCallback is used to set a tracking callback for a context.
func (*Context) WithUserAttributes ¶ added in v0.1.4
func (ctx *Context) WithUserAttributes(attributes Attributes) *Context
WithUserAttributes sets the user attributes for a context.
type DevLogger ¶
type DevLogger struct{}
DevLogger is a logger instance suitable for use in development. It prints all logged messages to standard output, and exits on errors.
type Experiment ¶
type Experiment struct { Key string Variations []FeatureValue Ranges []Range Meta []VariationMeta Filters []Filter Seed string Name string Phase string URLPatterns []URLTarget Weights []float64 Condition Condition Coverage *float64 Include func() bool Namespace *Namespace Force *int HashAttribute string HashVersion int Active bool Status ExperimentStatus URL *regexp.Regexp Groups []string }
Experiment defines a single experiment.
func BuildExperiment ¶
func BuildExperiment(dict map[string]interface{}) *Experiment
BuildExperiment creates an Experiment value from a JSON object represented as a Go map.
func NewExperiment ¶
func NewExperiment(key string) *Experiment
NewExperiment creates an experiment with default settings: active, but all other fields empty.
func ParseExperiment ¶
func ParseExperiment(data []byte) *Experiment
ParseExperiment creates an Experiment value from raw JSON input.
func (*Experiment) WithActive ¶
func (exp *Experiment) WithActive(active bool) *Experiment
WithActive sets the enabled flag for an experiment.
func (*Experiment) WithCondition ¶
func (exp *Experiment) WithCondition(condition Condition) *Experiment
WithCondition sets the condition for an experiment.
func (*Experiment) WithCoverage ¶
func (exp *Experiment) WithCoverage(coverage float64) *Experiment
WithCoverage sets the coverage for an experiment.
func (*Experiment) WithFilters ¶ added in v0.1.4
func (exp *Experiment) WithFilters(filters ...Filter) *Experiment
WithFilters sets the filters for an experiment.
func (*Experiment) WithForce ¶
func (exp *Experiment) WithForce(force int) *Experiment
WithForce sets the forced value index for an experiment.
func (*Experiment) WithGroups ¶ added in v0.1.4
func (exp *Experiment) WithGroups(groups ...string) *Experiment
WithGroups sets the groups for an experiment.
func (*Experiment) WithHashAttribute ¶
func (exp *Experiment) WithHashAttribute(hashAttribute string) *Experiment
WithHashAttribute sets the hash attribute for an experiment.
func (*Experiment) WithHashVersion ¶ added in v0.1.4
func (exp *Experiment) WithHashVersion(hashVersion int) *Experiment
WithHashVersion sets the hash version for an experiment.
func (*Experiment) WithIncludeFunction ¶ added in v0.1.4
func (exp *Experiment) WithIncludeFunction(include func() bool) *Experiment
WithInclude sets the inclusion function for an experiment.
func (*Experiment) WithMeta ¶ added in v0.1.4
func (exp *Experiment) WithMeta(meta ...VariationMeta) *Experiment
WithMeta sets the meta information for an experiment.
func (*Experiment) WithName ¶ added in v0.1.4
func (exp *Experiment) WithName(name string) *Experiment
WithName sets the name for an experiment.
func (*Experiment) WithNamespace ¶
func (exp *Experiment) WithNamespace(namespace *Namespace) *Experiment
WithNamespace sets the namespace for an experiment.
func (*Experiment) WithPhase ¶ added in v0.1.4
func (exp *Experiment) WithPhase(phase string) *Experiment
WithPhase sets the phase for an experiment.
func (*Experiment) WithRanges ¶ added in v0.1.4
func (exp *Experiment) WithRanges(ranges ...Range) *Experiment
WithRanges set the ranges for an experiment.
func (*Experiment) WithSeed ¶ added in v0.1.4
func (exp *Experiment) WithSeed(seed string) *Experiment
WithSeed sets the hash seed for an experiment.
func (*Experiment) WithStatus ¶ added in v0.1.4
func (exp *Experiment) WithStatus(status ExperimentStatus) *Experiment
WithStatus sets the status for an experiment.
func (*Experiment) WithURL ¶ added in v0.1.4
func (exp *Experiment) WithURL(url *regexp.Regexp) *Experiment
WithURL sets the URL for an experiment.
func (*Experiment) WithVariations ¶
func (exp *Experiment) WithVariations(variations ...FeatureValue) *Experiment
WithVariations set the feature variations for an experiment.
func (*Experiment) WithWeights ¶
func (exp *Experiment) WithWeights(weights ...float64) *Experiment
WithWeights set the weights for an experiment.
type ExperimentCallback ¶
type ExperimentCallback func(experiment *Experiment, result *Result)
ExperimentCallback is a callback function that is executed every time a user is included in an Experiment. It is also the type used for subscription functions, which are called whenever Experiment.Run is called and the experiment result changes, independent of whether a user is inncluded in the experiment or not.
type ExperimentOverride ¶ added in v0.1.4
type ExperimentOverride struct { Condition Condition Weights []float64 Active *bool Status *ExperimentStatus Force *int Coverage *float64 Groups []string Namespace *Namespace URL *regexp.Regexp }
ExperimentOverride provides the possibility to temporarily override some experiment settings.
type ExperimentOverrides ¶ added in v0.1.4
type ExperimentOverrides map[string]*ExperimentOverride
type ExperimentStatus ¶ added in v0.1.4
type ExperimentStatus string
const ( DraftStatus ExperimentStatus = "draft" RunningStatus ExperimentStatus = "running" StoppedStatus ExperimentStatus = "stopped" )
type Feature ¶
type Feature struct { DefaultValue FeatureValue `json:"defaultValue"` Rules []*FeatureRule `json:"rules"` }
Feature has a default value plus rules than can override the default.
func BuildFeature ¶
func BuildFeature(val interface{}) *Feature
BuildFeature creates a Feature value from a generic JSON value.
func ParseFeature ¶
ParseFeature creates a single Feature value from raw JSON input.
type FeatureAPIResponse ¶ added in v0.1.4
type FeatureAPIResponse struct { Features map[string]*Feature `json:"features"` DateUpdated time.Time `json:"dateUpdated"` EncryptedFeatures string `json:"encryptedFeatures"` }
func BuildFeatureAPIResponse ¶ added in v0.1.4
func BuildFeatureAPIResponse(dict map[string]interface{}) *FeatureAPIResponse
BuildFeatureAPIResponse creates a FeatureAPIResponse value from a generic JSON value.
func ParseFeatureAPIResponse ¶ added in v0.1.4
func ParseFeatureAPIResponse(data []byte) *FeatureAPIResponse
ParseFeature creates a single Feature value from raw JSON input.
func (*FeatureAPIResponse) MarshalJSON ¶ added in v0.1.4
func (r *FeatureAPIResponse) MarshalJSON() ([]byte, error)
func (*FeatureAPIResponse) UnmarshalJSON ¶ added in v0.1.4
func (r *FeatureAPIResponse) UnmarshalJSON(data []byte) error
type FeatureMap ¶
FeatureMap is a map of feature objects, keyed by string feature IDs.
func BuildFeatureMap ¶
func BuildFeatureMap(dict map[string]interface{}) FeatureMap
BuildFeatureMap creates a FeatureMap value from a JSON object represented as a Go map.
func ParseFeatureMap ¶
func ParseFeatureMap(data []byte) FeatureMap
ParseFeatureMap creates a FeatureMap value from raw JSON input.
type FeatureRepoOptions ¶ added in v0.1.4
type FeatureResult ¶
type FeatureResult struct { Value FeatureValue Source FeatureResultSource On bool Off bool RuleID string Experiment *Experiment ExperimentResult *Result }
FeatureResult is the result of evaluating a feature.
func BuildFeatureResult ¶
func BuildFeatureResult(dict map[string]interface{}) *FeatureResult
BuildFeatureResult creates an FeatureResult value from a JSON object represented as a Go map.
func (*FeatureResult) GetValueWithDefault ¶
func (fr *FeatureResult) GetValueWithDefault(def FeatureValue) FeatureValue
GetValueWithDefault extracts a value from a FeatureResult with a default.
type FeatureResultSource ¶
type FeatureResultSource uint
FeatureResultSource is an enumerated type representing the source of a FeatureResult.
const ( UnknownResultSource FeatureResultSource = iota + 1 DefaultValueResultSource ForceResultSource ExperimentResultSource OverrideResultSource )
FeatureResultSource values.
func ParseFeatureResultSource ¶
func ParseFeatureResultSource(source string) FeatureResultSource
ParseFeatureResultSource creates a FeatureResultSource value from its string representation.
type FeatureRule ¶
type FeatureRule struct { ID string Condition Condition Force FeatureValue Variations []FeatureValue Weights []float64 Key string HashAttribute string HashVersion int Range *Range Coverage *float64 Namespace *Namespace Ranges []Range Meta []VariationMeta Filters []Filter Seed string Name string Phase string }
FeatureRule overrides the default value of a Feature.
func BuildFeatureRule ¶
func BuildFeatureRule(val interface{}) *FeatureRule
BuildFeatureRule creates an FeatureRule value from a generic JSON value.
type FeatureUsageCallback ¶ added in v0.1.4
type FeatureUsageCallback func(key string, result *FeatureResult)
FeatureUsageCallback is a callback function that is executed every time a feature is evaluated.
type FeatureValue ¶
type FeatureValue interface{}
FeatureValue is a wrapper around an arbitrary type representing the value of a feature. Features can return any kinds of values, so this is an alias for interface{}.
func BuildFeatureValues ¶
func BuildFeatureValues(val interface{}) []FeatureValue
BuildFeatureValues creates a FeatureValue array from a generic JSON value.
type ForcedVariationsMap ¶
ForcedVariationsMap is a map that forces an Experiment to always assign a specific variation. Useful for QA.
Keys are the experiment key, values are the array index of the variation.
type GrowthBook ¶
type GrowthBook struct {
// contains filtered or unexported fields
}
GrowthBook is the main export of the SDK.
func (*GrowthBook) Attributes ¶
func (gb *GrowthBook) Attributes() Attributes
Attributes returns the attributes in a GrowthBook's context, possibly modified by overrides.
func (*GrowthBook) ClearSavedResults ¶
func (gb *GrowthBook) ClearSavedResults()
ClearSavedResults clears out any experiment results saved within a GrowthBook instance (used for deciding whether to send data to subscriptions).
func (*GrowthBook) ClearTrackingData ¶
func (gb *GrowthBook) ClearTrackingData()
ClearTrackingData clears out records of calls to the experiment tracking callback.
func (*GrowthBook) EvalFeature ¶ added in v0.1.4
func (gb *GrowthBook) EvalFeature(id string) *FeatureResult
EvalFeature returns the result for a feature identified by a string feature key.
func (*GrowthBook) Feature
deprecated
func (gb *GrowthBook) Feature(key string) *FeatureResult
Deprecated: Use EvalFeature instead. Feature returns the result for a feature identified by a string feature key.
func (*GrowthBook) Features ¶
func (gb *GrowthBook) Features() FeatureMap
Features returns the features in a GrowthBook's context.
func (*GrowthBook) ForceVariation ¶ added in v0.1.4
func (gb *GrowthBook) ForceVariation(key string, variation int)
func (*GrowthBook) GetAPIInfo ¶ added in v0.1.4
func (gb *GrowthBook) GetAPIInfo() (string, string)
GetAPIInfo gets the hostname and client key for GrowthBook API access.
func (*GrowthBook) GetAllResults ¶
func (gb *GrowthBook) GetAllResults() map[string]*Assignment
GetAllResults returns a map containing all the latest results from all experiments that have been run, indexed by the experiment key.
func (*GrowthBook) GetFeatureValue ¶ added in v0.1.4
func (gb *GrowthBook) GetFeatureValue(key string, defaultValue interface{}) interface{}
GetFeatureValue returns the result for a feature identified by a string feature key, with an explicit default.
func (*GrowthBook) IsOff ¶ added in v0.1.4
func (gb *GrowthBook) IsOff(key string) bool
IsOff determines whether a feature is off.
func (*GrowthBook) IsOn ¶ added in v0.1.4
func (gb *GrowthBook) IsOn(key string) bool
IsOn determines whether a feature is on.
func (*GrowthBook) LatestFeatureUpdate ¶ added in v0.1.4
func (gb *GrowthBook) LatestFeatureUpdate() *time.Time
func (*GrowthBook) LoadFeatures ¶ added in v0.1.4
func (gb *GrowthBook) LoadFeatures(options *FeatureRepoOptions)
func (*GrowthBook) Ready ¶ added in v0.1.4
func (gb *GrowthBook) Ready() bool
Ready returns the ready flag, which indicates that features have been loaded.
func (*GrowthBook) RefreshFeatures ¶ added in v0.1.4
func (gb *GrowthBook) RefreshFeatures(options *FeatureRepoOptions)
func (*GrowthBook) Run ¶
func (gb *GrowthBook) Run(exp *Experiment) *Result
Run an experiment. (Uses doRun to make wrapping for subscriptions simple.)
func (*GrowthBook) Subscribe ¶
func (gb *GrowthBook) Subscribe(callback ExperimentCallback) func()
Subscribe adds a callback that is called every time GrowthBook.Run is called. This is different from the tracking callback since it also fires when a user is not included in an experiment.
func (*GrowthBook) UnforceVariation ¶ added in v0.1.4
func (gb *GrowthBook) UnforceVariation(key string)
func (*GrowthBook) WithAPIHost ¶ added in v0.1.4
func (gb *GrowthBook) WithAPIHost(host string) *GrowthBook
WithAPIHost sets the API host of a context.
func (*GrowthBook) WithAttributeOverrides ¶ added in v0.1.4
func (gb *GrowthBook) WithAttributeOverrides(overrides Attributes) *GrowthBook
WithAttributeOverrides updates the current attribute overrides.
func (*GrowthBook) WithAttributes ¶
func (gb *GrowthBook) WithAttributes(attrs Attributes) *GrowthBook
WithAttributes updates the attributes in a GrowthBook's context.
func (*GrowthBook) WithClientKey ¶ added in v0.1.4
func (gb *GrowthBook) WithClientKey(key string) *GrowthBook
WithClientKey sets the API client key of a context.
func (*GrowthBook) WithDecryptionKey ¶ added in v0.1.4
func (gb *GrowthBook) WithDecryptionKey(key string) *GrowthBook
WithDecryptionKey sets the decryption key of a context.
func (*GrowthBook) WithDevMode ¶ added in v0.1.4
func (gb *GrowthBook) WithDevMode(devMode bool) *GrowthBook
WithDevMode can be used to enable or disable the development mode for a context.
func (*GrowthBook) WithEnabled ¶
func (gb *GrowthBook) WithEnabled(enabled bool) *GrowthBook
WithEnabled sets the enabled flag in a GrowthBook's context.
func (*GrowthBook) WithEncryptedFeatures ¶ added in v0.1.4
func (gb *GrowthBook) WithEncryptedFeatures(encrypted string, key string) (*GrowthBook, error)
WithEncryptedFeatures updates the features in a GrowthBook's context from encrypted data.
func (*GrowthBook) WithFeatureUsageCallback ¶ added in v0.1.4
func (gb *GrowthBook) WithFeatureUsageCallback(callback FeatureUsageCallback) *GrowthBook
WithFeatureUsageCallback is used to set a feature usage callback for a context.
func (*GrowthBook) WithFeatures ¶
func (gb *GrowthBook) WithFeatures(features FeatureMap) *GrowthBook
WithFeatures updates the features in a GrowthBook's context.
func (*GrowthBook) WithForcedFeatures ¶ added in v0.1.4
func (gb *GrowthBook) WithForcedFeatures(values map[string]interface{}) *GrowthBook
WithForcedFeatures updates the current forced feature values.
func (*GrowthBook) WithForcedVariations ¶
func (gb *GrowthBook) WithForcedVariations(forcedVariations ForcedVariationsMap) *GrowthBook
WithForcedVariations sets the forced variations in a GrowthBook's context.
func (*GrowthBook) WithGroups ¶ added in v0.1.4
func (gb *GrowthBook) WithGroups(groups map[string]bool) *GrowthBook
WithGroups sets the groups map of a context.
func (*GrowthBook) WithQAMode ¶ added in v0.1.4
func (gb *GrowthBook) WithQAMode(qaMode bool) *GrowthBook
WithQAMode can be used to enable or disable the QA mode for a context.
func (*GrowthBook) WithTrackingCallback ¶ added in v0.1.4
func (gb *GrowthBook) WithTrackingCallback(callback ExperimentCallback) *GrowthBook
WithTrackingCallback is used to set a tracking callback for a context.
func (*GrowthBook) WithURL ¶
func (gb *GrowthBook) WithURL(url *url.URL) *GrowthBook
WithURL sets the URL in a GrowthBook's context.
type Logger ¶
type Logger interface { Error(msg string, args ...interface{}) Errorf(format string, args ...interface{}) Warn(msg string, args ...interface{}) Warnf(format string, args ...interface{}) Info(msg string, args ...interface{}) Infof(format string, args ...interface{}) }
Logger is a common interface for logging information and warning messages (errors are returned directly by SDK functions, but there is some useful "out of band" data that's provided via this interface).
type Namespace ¶
Namespace specifies what part of a namespace an experiment includes. If two experiments are in the same namespace and their ranges don't overlap, they wil be mutually exclusive.
func BuildNamespace ¶
func BuildNamespace(val interface{}) *Namespace
BuildNamespace creates a Namespace value from a generic JSON value.
func ParseNamespace ¶
ParseNamespace creates a Namespace value from raw JSON input.
type RepositoryKey ¶ added in v0.1.4
type RepositoryKey string
type Result ¶ added in v0.1.4
type Result struct { Value FeatureValue VariationID int Key string Name string Bucket *float64 Passthrough bool InExperiment bool HashUsed bool HashAttribute string HashValue string FeatureID string }
Result records the result of running an Experiment given a specific Context.
func BuildResult ¶ added in v0.1.4
BuildResult creates an Result value from a JSON object represented as a Go map.
type URLTarget ¶ added in v0.1.4
type URLTarget struct { Type URLTargetType Include bool Pattern string }
URL match target.
type URLTargetType ¶ added in v0.1.4
type URLTargetType uint
URL matching supports regular expressions or simple string matches.
const ( RegexURLTarget URLTargetType = iota SimpleURLTarget = iota )
type VariationMeta ¶ added in v0.1.4
VariationMeta represents meta-information that can be passed through to tracking callbacks.