Documentation ¶
Overview ¶
Package config provides the configuration for Janus. All configurations should be set in environment variables.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Credentials ¶
type Credentials struct { // Algorithm defines admin JWT signing algorithm. // Currently the following algorithms are supported: HS256, HS384, HS512. Algorithm string `envconfig:"ALGORITHM"` Secret string `envconfig:"SECRET"` JanusAdminTeam string `envconfig:"JANUS_ADMIN_TEAM"` Timeout time.Duration `envconfig:"TOKEN_TIMEOUT"` Github Github Basic Basic }
Credentials represents the credentials that are going to be used by admin JWT configuration
type Database ¶
type Database struct {
DSN string `envconfig:"DATABASE_DSN"`
}
Database holds the configuration for a database
type Github ¶
type Github struct { Organizations []string `envconfig:"GITHUB_ORGANIZATIONS"` Teams map[string]string `envconfig:"GITHUB_TEAMS"` }
Github holds the github configurations
func (*Github) IsConfigured ¶
IsConfigured checks if github is enabled
type JaegerTracing ¶
type JaegerTracing struct { SamplingServerURL string `envconfig:"TRACING_JAEGER_SAMPLING_SERVER_URL"` SamplingServerHost string `envconfig:"JAEGER_AGENT_HOST"` SamplingServerPort string `envconfig:"JAEGER_AGENT_PORT"` }
JaegerTracing holds the Jaeger tracing configuration
type RespondingTimeouts ¶
type RespondingTimeouts struct { ReadTimeout time.Duration `envconfig:"RESPONDING_TIMEOUTS_READ_TIMEOUT"` WriteTimeout time.Duration `envconfig:"RESPONDING_TIMEOUTS_WRITE_TIMEOUT"` IdleTimeout time.Duration `envconfig:"RESPONDING_TIMEOUTS_IDLE_TIMEOUT"` }
RespondingTimeouts contains timeout configurations for incoming requests to the Janus instance.
type Specification ¶
type Specification struct { Port int `envconfig:"PORT"` GraceTimeOut int64 `envconfig:"GRACE_TIMEOUT"` MaxIdleConnsPerHost int `envconfig:"MAX_IDLE_CONNS_PER_HOST"` BackendFlushInterval time.Duration `envconfig:"BACKEND_FLUSH_INTERVAL"` IdleConnTimeout time.Duration `envconfig:"IDLE_CONN_TIMEOUT"` ConnPurgeInterval time.Duration `envconfig:"CONN_PURGE_INTERVAL"` RequestID bool `envconfig:"REQUEST_ID_ENABLED"` Log logging.LogConfig Web Web Database Database Stats Stats Tracing Tracing TLS TLS Cluster Cluster RespondingTimeouts RespondingTimeouts }
Specification for basic configurations
func LoadEnv ¶
func LoadEnv() (*Specification, error)
LoadEnv loads configuration from environment variables
type Stats ¶
type Stats struct { DSN string `envconfig:"STATS_DSN"` IDs string `envconfig:"STATS_IDS"` AutoDiscoverThreshold uint `envconfig:"STATS_AUTO_DISCOVER_THRESHOLD"` AutoDiscoverWhiteList []string `envconfig:"STATS_AUTO_DISCOVER_WHITE_LIST"` ErrorsSection string `envconfig:"STATS_ERRORS_SECTION"` Exporter string `envconfig:"STATS_EXPORTER"` }
Stats holds the configuration for stats
type TLS ¶
type TLS struct { Port int `envconfig:"PORT"` CertFile string `envconfig:"CERT_PATH"` KeyFile string `envconfig:"KEY_PATH"` Redirect bool `envconfig:"REDIRECT"` }
TLS represents the TLS configurations
type Tracing ¶
type Tracing struct { Exporter string `envconfig:"TRACING_EXPORTER"` ServiceName string `envconfig:"TRACING_SERVICE_NAME"` SamplingStrategy string `envconfig:"TRACING_SAMPLING_STRATEGY"` SamplingParam float64 `envconfig:"TRACING_SAMPLING_PARAM"` DebugTraceKey string `envconfig:"TRACING_DEBUG_TRACE_KEY"` IsPublicEndpoint bool `envconfig:"TRACING_IS_PUBLIC_ENDPOINT"` JaegerTracing JaegerTracing `mapstructure:"jaeger"` }
Tracing represents the distributed tracing configuration
type Web ¶
type Web struct { Port int `envconfig:"API_PORT"` Credentials Credentials TLS TLS }
Web represents the API configurations