Documentation
¶
Index ¶
- func PostprocessAdminConfig(config *AdminConfig) error
- func PostprocessChannelsConfig(list *ChannelsConfig) error
- func PostprocessHTTPServerConfig(config *HTTPServerConfig, overrides Overrides) error
- func PostprocessSentryConfig(config *SentryConfig, overrides Overrides) error
- func PostprocessStorageConfig(config *StoragesConfig) error
- func PostprocessTelemetryConfig(config *TelemetryConfig) error
- type AdminAuthConfig
- type AdminConfig
- type BuildInfo
- type ChannelConfig
- type ChannelsConfig
- type HTTPServerConfig
- type JwtValidationConfig
- type LoggingConfig
- type OnmemoryStorageConfig
- type OpenTelemetryConfig
- type OpenTelemetryExporterGCPConfig
- type OpenTelemetryExporterStdoutConfig
- type OpenTelemetryExportersConfig
- type OpenTelemetryTracingBatchConfig
- type OpenTelemetryTracingConfig
- type OutgoingWebhookConfig
- type OutgoingWebhookConnectionConfig
- type OutgoingWebhookRetryConfig
- type Overrides
- type RedisStorageConfig
- type SentryConfig
- type ServerConfig
- type StorageConfig
- type StoragesConfig
- type TelemetryConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PostprocessAdminConfig ¶
func PostprocessAdminConfig(config *AdminConfig) error
PostprocessAdminConfig cleanups user supplied config object.
func PostprocessChannelsConfig ¶
func PostprocessChannelsConfig(list *ChannelsConfig) error
PostprocessChannelsConfig fixes/validates config
func PostprocessHTTPServerConfig ¶
func PostprocessHTTPServerConfig(config *HTTPServerConfig, overrides Overrides) error
PostprocessHTTPServerConfig cleanups user supplied config object.
func PostprocessSentryConfig ¶
func PostprocessSentryConfig(config *SentryConfig, overrides Overrides) error
PostprocessSentryConfig fixup given configurations
func PostprocessStorageConfig ¶
func PostprocessStorageConfig(config *StoragesConfig) error
PostprocessStorageConfig fixup given configurations
func PostprocessTelemetryConfig ¶
func PostprocessTelemetryConfig(config *TelemetryConfig) error
PostprocessTelemetryConfig fixes/validates config
Types ¶
type AdminAuthConfig ¶
type AdminAuthConfig struct {
Networks []domain.CIDR `json:"networks"`
BearerTokens []string `json:"bearer"`
}
AdminAuthConfig represents auth settings of admin endpoints
type AdminConfig ¶
type AdminConfig struct {
Auth AdminAuthConfig `json:"auth"`
}
AdminConfig represents administration feature settings
type BuildInfo ¶
type BuildInfo struct {
BuildVersion string `json:"buildVersion"`
BuildAt *domain.Time `json:"buildAt"`
}
BuildInfo represents compile time metadata.
type ChannelConfig ¶
type ChannelConfig struct {
Regex *domain.Regex `json:"regex"`
Expire *domain.Duration `json:"expire"`
Webhooks []OutgoingWebhookConfig `json:"webhooks"`
Jwt *JwtValidationConfig `json:"jwt"`
}
ChannelConfig represents channel configuration
type ChannelsConfig ¶
type ChannelsConfig []ChannelConfig
ChannelsConfig is list of configured channels
type HTTPServerConfig ¶
type HTTPServerConfig struct {
Port int `json:"port" validate:"min=0,max=65535"`
Listen string `json:"listen"`
PathPrefix string `json:"pathPrefix"`
RealIPHeader string `json:"realIpHeader"`
TrustedProxyRanges []domain.CIDR `json:"trustedProxyRanges"`
DiscloseAuthRejectionDetail bool `json:"discloseAuthRejectionDetail"`
DefaultHeaders map[string]string `json:"defaultHeaders"`
IdleTimeout domain.Duration `json:"idleTimeout"`
ReadTimeout domain.Duration `json:"readTimeout"`
WriteTimeout domain.Duration `json:"writeTimeout"`
LongPollingMaxTimeout domain.Duration `json:"longPollingMaxTimeout"`
GracefulShutdownTimeout domain.Duration `json:"gracefulShutdownTimeout"`
}
HTTPServerConfig represents HTTP webserver settings
type JwtValidationConfig ¶
type JwtValidationConfig struct {
Iss []domain.JwtIss `json:"iss"`
Aud []domain.JwtAud `json:"aud"`
Keys map[domain.JwtAlg][]string `json:"keys"`
Claims map[string]domain.TemplateStrings `json:"claims"`
ClockSkewLeeway *domain.Duration `json:"clockSkewLeeway"`
}
JwtValidationConfig is JWT configuration of a channel
type LoggingConfig ¶
type LoggingConfig struct {
Category map[string]string `json:"category"`
Attributes map[string]string `json:"attributes"`
}
LoggingConfig represents logger and logging settings
type OnmemoryStorageConfig ¶
type OnmemoryStorageConfig struct {
DisablePubSub bool `json:"__disablePubSub"`
DisableJwt bool `json:"__disableJwt"`
RunGCOnShutdown bool `json:"__runGcOnShutdown"`
}
OnmemoryStorageConfig is definition of "storage.onmemory" configuration
type OpenTelemetryConfig ¶
type OpenTelemetryConfig struct {
Tracing *OpenTelemetryTracingConfig `json:"tracing"`
Exporters OpenTelemetryExportersConfig `json:"exporters"`
}
OpenTelemetryConfig is to setup OpenTelemetry
type OpenTelemetryExporterGCPConfig ¶
type OpenTelemetryExporterGCPConfig struct {
EnableTrace bool `json:"enableTrace"`
ProjectID string `json:"projectID"`
}
OpenTelemetryExporterGCPConfig configure GCP expoter
type OpenTelemetryExporterStdoutConfig ¶
type OpenTelemetryExporterStdoutConfig struct {
Enable bool `json:"enable"`
Quantiles []float64 `json:"quantiles"`
}
OpenTelemetryExporterStdoutConfig configure stdout exporter
type OpenTelemetryExportersConfig ¶
type OpenTelemetryExportersConfig struct {
Stdout OpenTelemetryExporterStdoutConfig `json:"stdout"`
GCP OpenTelemetryExporterGCPConfig `json:"gcp"`
}
OpenTelemetryExportersConfig configure exporters
type OpenTelemetryTracingBatchConfig ¶
type OpenTelemetryTracingBatchConfig struct {
MaxQueueSize *int `json:"maxQueueSize"`
Timeout *domain.Duration `json:"timeout"`
BatchSize *int `json:"batchSize"`
}
OpenTelemetryTracingBatchConfig is to configure batch transmission
type OpenTelemetryTracingConfig ¶
type OpenTelemetryTracingConfig struct {
Enable bool `json:"enable"`
Sampling float64 `json:"sampling"`
Batch OpenTelemetryTracingBatchConfig `json:"batch"`
Attributes map[string]interface{} `json:"attributes"`
}
OpenTelemetryTracingConfig is to setup OpenTelemetry tracing
type OutgoingWebhookConfig ¶
type OutgoingWebhookConfig struct {
Method string `json:"method"`
URL *domain.TemplateString `json:"url"`
Timeout *domain.Duration `json:"timeout"`
Connection OutgoingWebhookConnectionConfig `json:"connection"`
Retry OutgoingWebhookRetryConfig `json:"retry"`
Headers map[string]domain.TemplateString `json:"headers"`
MaxRedirects *int `json:"maxRedirects"`
}
OutgoingWebhookConfig is webhook configuration of a channel
type OutgoingWebhookConnectionConfig ¶
type OutgoingWebhookConnectionConfig struct {
Max *int `json:"max"`
MaxIdleTime *domain.Duration `json:"maxIdleTime"`
}
OutgoingWebhookConnectionConfig is HTTP/TCP connection config
type OutgoingWebhookRetryConfig ¶
type OutgoingWebhookRetryConfig struct {
Count *int `json:"count"`
Interval *domain.Duration `json:"interval"`
IntervalMultiplier *float64 `json:"intervalMultiplier"`
IntervalJitter *domain.Duration `json:"intervalJitter"`
}
OutgoingWebhookRetryConfig is retry config
type Overrides ¶
type Overrides struct {
BuildVersion string // Supplied by compiler
BuildDist string // Supplied by compiler
BuildAt string // UNIX epoch, supplied by compiler
Port int
Listen string
Debug bool
}
Overrides is to override configuration file.
type RedisStorageConfig ¶
type RedisStorageConfig struct {
SingleNode *string `json:"singleNode"`
Cluster *[]string `json:"cluster"`
DisablePubSub bool `json:"disablePubSub"`
DisableJwt bool `json:"disableJwt"`
Username string `json:"username"`
Password string `json:"password"`
DBNumber int `json:"db" validate:"min=0"`
ScriptReloadInterval *domain.Duration `json:"scriptReloadInterval"`
Timeout struct {
Connect *domain.Duration `json:"connect"`
Read *domain.Duration `json:"read"`
Write *domain.Duration `json:"write"`
} `json:"timeout"`
Retry struct {
Count *int `json:"count"`
Interval *domain.Duration `json:"interval"`
IntervalJitter *domain.Duration `json:"intervalJitter"`
} `json:"retry"`
Connection struct {
Max *int `json:"max"`
Min *int `json:"min"`
MaxIdleTime *domain.Duration `json:"maxIdleTime"`
} `json:"connection"`
}
RedisStorageConfig is definition of "storage.redis" configuration
func (RedisStorageConfig) IsCluster ¶
func (config RedisStorageConfig) IsCluster() bool
IsCluster returns true only for clustered Redis
func (RedisStorageConfig) IsSingleNode ¶
func (config RedisStorageConfig) IsSingleNode() bool
IsSingleNode returns true only for single-node Redis
type SentryConfig ¶
type SentryConfig struct {
DSN string `json:"-"` // Given by environment variable
ServerName string `json:"serverName"`
Environment string `json:"environment"`
Release string `json:"-"` // Given by compilation time constant value
Distribution string `json:"-"` // Given by compilation time constant value
Tags map[string]string `json:"tags"`
Contexts map[string]string `json:"contexts"`
SampleRate *float64 `json:"sampleRate"`
IgnoreErrors []*domain.Regex `json:"ignoreErrors"`
DisableStacktrace bool `json:"disableStacktrace"`
HideRequestData bool `json:"hideRequestData"`
FlushTimeout *domain.Duration `json:"flushTimeout"`
}
SentryConfig contains Sentry configuration
func DefaultSentryConfig ¶
func DefaultSentryConfig() *SentryConfig
DefaultSentryConfig returns empty object
type ServerConfig ¶
type ServerConfig struct {
BuildInfo *BuildInfo `json:"__buildInfo"`
Storages StoragesConfig `json:"storages"`
HTTPServer *HTTPServerConfig `json:"http"`
Logging *LoggingConfig `json:"logging"`
Telemetry *TelemetryConfig `json:"telemetry"`
Sentry *SentryConfig `json:"sentry"`
Channels ChannelsConfig `json:"channels"`
Admin *AdminConfig `json:"admin"`
}
ServerConfig represents parsed/post-processed configuration.
func LoadConfigFile ¶
func LoadConfigFile(ctx context.Context, configFile string, configOverrides Overrides) (ServerConfig, error)
LoadConfigFile load file. If configFile == "", generate default config. If configFile == "-", load from stdin.
func ParseConfig ¶
ParseConfig constructs post-processed configuration object.
func (*ServerConfig) DumpConfig ¶
func (config *ServerConfig) DumpConfig(w io.Writer) error
DumpConfig output config content
type StorageConfig ¶
type StorageConfig struct {
Onmemory *OnmemoryStorageConfig `json:"onmemory"`
Redis *RedisStorageConfig `json:"redis"`
}
StorageConfig is an item of "storage" configuration section
type StoragesConfig ¶
type StoragesConfig map[domain.StorageID]*StorageConfig
StoragesConfig is list of storage configs
func DefaultStoragesConfig ¶
func DefaultStoragesConfig() StoragesConfig
DefaultStoragesConfig returns default configuration of storage backends
type TelemetryConfig ¶
type TelemetryConfig struct {
OT *OpenTelemetryConfig `json:"ot"`
}
TelemetryConfig is to setup tracing/metrics.