Documentation
¶
Overview ¶
Package config contains all the configuration attributes for running Optimizely Agent
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AuthDisabledWarningTemplate = "Authorization not enabled for %v endpoint. For production deployments, authorization is recommended."
AuthDisabledWarningTemplate is used to log a warning when auth is disabled for API or Admin endpoints
var HTTPSDisabledWarning = "" /* 219-byte string literal not displayed */
HTTPSDisabledWarning is logged when keyfile and certfile are not provided in server configuration
Functions ¶
This section is empty.
Types ¶
type APIConfig ¶
type APIConfig struct {
Auth ServiceAuthConfig `json:"-"`
CORS CORSConfig `json:"cors"`
MaxConns int `json:"maxConns"`
Port string `json:"port"`
EnableNotifications bool `json:"enableNotifications"`
EnableOverrides bool `json:"enableOverrides"`
}
APIConfig holds the REST API configuration
type AdminConfig ¶
type AdminConfig struct {
Auth ServiceAuthConfig `json:"-"`
Port string `json:"port"`
}
AdminConfig holds the configuration for the admin web interface
type AgentConfig ¶
type AgentConfig struct {
Version string `json:"version"`
Author string `json:"author"`
Name string `json:"name"`
SDKKeys []string `yaml:"sdkKeys" json:"sdkKeys"`
Admin AdminConfig `json:"admin"`
API APIConfig `json:"api"`
Log LogConfig `json:"log"`
Client ClientConfig `json:"client"`
Runtime RuntimeConfig `json:"runtime"`
Server ServerConfig `json:"server"`
Webhook WebhookConfig `json:"webhook"`
}
AgentConfig is the top level configuration struct
func NewDefaultConfig ¶
func NewDefaultConfig() *AgentConfig
NewDefaultConfig returns the default configuration for Optimizely Agent
func (*AgentConfig) LogConfigWarnings ¶ added in v1.3.0
func (ac *AgentConfig) LogConfigWarnings()
LogConfigWarnings checks this configuration and logs any relevant warnings.
type CORSConfig ¶ added in v1.1.0
type CORSConfig struct {
AllowedOrigins []string `json:"allowedOrigins"`
AllowedMethods []string `json:"allowedMethods"`
AllowedHeaders []string `json:"allowedHeaders"`
ExposedHeaders []string `json:"exposedHeaders"`
AllowedCredentials bool `json:"allowedCredentials"`
MaxAge int `json:"maxAge"`
}
CORSConfig holds the CORS middleware configuration
type ClientConfig ¶ added in v0.13.0
type ClientConfig struct {
PollingInterval time.Duration `json:"pollingInterval"`
BatchSize int `json:"batchSize" default:"10"`
QueueSize int `json:"queueSize" default:"1000"`
FlushInterval time.Duration `json:"flushInterval" default:"30s"`
DatafileURLTemplate string `json:"datafileURLTemplate"`
EventURL string `json:"eventURL"`
}
ClientConfig holds the configuration options for the Optimizely Client.
type OAuthClientCredentials ¶ added in v0.12.0
type OAuthClientCredentials struct {
ID string `yaml:"id"`
SecretHash string `yaml:"secretHash"`
SDKKeys []string `yaml:"sdkKeys"`
}
OAuthClientCredentials are used for issuing access tokens
type RuntimeConfig ¶ added in v1.3.0
type RuntimeConfig struct {
// SetBlockProfileRate controls the fraction of goroutine blocking events
// that are reported in the blocking profile. The profiler aims to sample
// an average of one blocking event per rate nanoseconds spent blocked.
//
// To include every blocking event in the profile, pass rate = 1.
// To turn off profiling entirely, pass rate <= 0.
BlockProfileRate int `json:"blockProfileRate"`
// mutexProfileFraction controls the fraction of mutex contention events
// that are reported in the mutex profile. On average 1/rate events are
// reported. The previous rate is returned.
//
// To turn off profiling entirely, pass rate 0.
// To just read the current rate, pass rate < 0.
// (For n>1 the details of sampling may change.)
MutexProfileFraction int `json:"mutexProfileFraction"`
}
RuntimeConfig holds any configuration related to the native runtime package These should only be configured when debugging in a non-production environment.
type ServerConfig ¶
type ServerConfig struct {
ReadTimeout time.Duration `json:"readTimeout"`
WriteTimeout time.Duration `json:"writeTimeout"`
CertFile string `json:"certFile"`
KeyFile string `json:"keyFile"`
DisabledCiphers []string `json:"disabledCiphers"`
HealthCheckPath string `json:"healthCheckPath"`
}
ServerConfig holds the global http server configs
type ServiceAuthConfig ¶ added in v0.12.0
type ServiceAuthConfig struct {
Clients []OAuthClientCredentials `yaml:"clients" json:"-"`
HMACSecrets []string `yaml:"hmacSecrets" json:"-"`
TTL time.Duration `yaml:"ttl" json:"-"`
JwksURL string `yaml:"jwksURL"`
JwksUpdateInterval time.Duration `yaml:"jwksUpdateInterval"`
}
ServiceAuthConfig holds the authentication configuration for a particular service
type WebhookConfig ¶
type WebhookConfig struct {
Port string `json:"port"`
Projects map[int64]WebhookProject `json:"projects"`
}
WebhookConfig holds configuration for Optimizely Webhooks
type WebhookProject ¶
type WebhookProject struct {
SDKKeys []string `json:"sdkKeys"`
Secret string `json:"-"`
SkipSignatureCheck bool `json:"skipSignatureCheck" default:"false"`
}
WebhookProject holds the configuration for a single Project webhook