Full Mattermost server source with integrated Community Enterprise features. Includes vendor directory for offline/air-gapped builds. Structure: - enterprise-impl/: Enterprise feature implementations - enterprise-community/: Init files that register implementations - enterprise/: Bridge imports (community_imports.go) - vendor/: All dependencies for offline builds Build (online): go build ./cmd/mattermost Build (offline/air-gapped): go build -mod=vendor ./cmd/mattermost 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
108 lines
2.7 KiB
Go
108 lines
2.7 KiB
Go
package conf
|
|
|
|
import (
|
|
"crypto/tls"
|
|
)
|
|
|
|
// RedisConfig struct is used to cofigure the redis parameters
|
|
type RedisConfig struct {
|
|
Host string
|
|
Port int
|
|
Database int
|
|
Password string
|
|
Username string
|
|
Prefix string
|
|
|
|
// The network type, either tcp or unix.
|
|
// Default is tcp.
|
|
Network string
|
|
|
|
// Maximum number of retries before giving up.
|
|
// Default is to not retry failed commands.
|
|
MaxRetries int
|
|
|
|
// Dial timeout for establishing new connections.
|
|
// Default is 5 seconds.
|
|
DialTimeout int
|
|
|
|
// Timeout for socket reads. If reached, commands will fail
|
|
// with a timeout instead of blocking.
|
|
// Default is 10 seconds.
|
|
ReadTimeout int
|
|
|
|
// Timeout for socket writes. If reached, commands will fail
|
|
// with a timeout instead of blocking.
|
|
// Default is 3 seconds.
|
|
WriteTimeout int
|
|
|
|
// Maximum number of socket connections.
|
|
// Default is 10 connections.
|
|
PoolSize int
|
|
|
|
// Redis sentinel replication support
|
|
SentinelAddresses []string
|
|
SentinelMaster string
|
|
|
|
// Redis cluster replication support
|
|
ClusterNodes []string
|
|
ClusterKeyHashTag string
|
|
|
|
TLSConfig *tls.Config
|
|
}
|
|
|
|
// TaskPeriods struct is used to configure the period for each synchronization task
|
|
type TaskPeriods struct {
|
|
SplitSync int
|
|
SegmentSync int
|
|
ImpressionSync int
|
|
GaugeSync int // deprecated
|
|
CounterSync int // deprecated
|
|
LatencySync int // deprecated
|
|
EventsSync int
|
|
TelemetrySync int
|
|
}
|
|
|
|
// AdvancedConfig exposes more configurable parameters that can be used to further tailor the sdk to the user's needs
|
|
// - HTTPTimeout - Timeout for HTTP requests when doing synchronization
|
|
// - SegmentQueueSize - How many segments can be queued for updating (should be >= # segments the user has)
|
|
// - SegmentWorkers - How many workers will be used when performing segments sync.
|
|
type AdvancedConfig struct {
|
|
HTTPTimeout int
|
|
SegmentQueueSize int
|
|
SegmentWorkers int
|
|
SdkURL string
|
|
EventsURL string
|
|
TelemetryServiceURL string
|
|
EventsBulkSize int64
|
|
EventsQueueSize int
|
|
ImpressionsQueueSize int
|
|
ImpressionsBulkSize int64
|
|
StreamingEnabled bool
|
|
AuthServiceURL string
|
|
StreamingServiceURL string
|
|
SplitUpdateQueueSize int64
|
|
SegmentUpdateQueueSize int64
|
|
SplitsRefreshRate int
|
|
SegmentsRefreshRate int
|
|
FlagSetsFilter []string
|
|
AuthSpecVersion string
|
|
FlagsSpecVersion string
|
|
LargeSegment *LargeSegmentConfig
|
|
RulesConfig *RulesConfig
|
|
}
|
|
|
|
type LargeSegmentConfig struct {
|
|
Enable bool
|
|
Version string
|
|
LazyLoad bool
|
|
Workers int
|
|
UpdateQueueSize int64
|
|
QueueSize int
|
|
RefreshRate int
|
|
}
|
|
|
|
type RulesConfig struct {
|
|
FeatureFlagRules []string
|
|
RuleBasedSegmentRules []string
|
|
}
|