Newer
Older
package config
import "time"
type Config struct {

Lyuben Penkovski
committed
Auth authConfig
Mongo mongoConfig
Policy policyConfig
Executor executorConfig
ListExecutor listExecutorConfig
Cache cacheConfig
OAuth oauthConfig
LogLevel string `envconfig:"LOG_LEVEL" default:"INFO"`
}
type httpConfig struct {
Host string `envconfig:"HTTP_HOST"`
Port string `envconfig:"HTTP_PORT" default:"8080"`
IdleTimeout time.Duration `envconfig:"HTTP_IDLE_TIMEOUT" default:"120s"`
ReadTimeout time.Duration `envconfig:"HTTP_READ_TIMEOUT" default:"10s"`
WriteTimeout time.Duration `envconfig:"HTTP_WRITE_TIMEOUT" default:"10s"`
}

Lyuben Penkovski
committed
type authConfig struct {
Enabled bool `envconfig:"AUTH_ENABLED" default:"false"`

Lyuben Penkovski
committed
JwkURL string `envconfig:"AUTH_JWK_URL"`
RefreshInterval time.Duration `envconfig:"AUTH_REFRESH_INTERVAL" default:"1h"`
}
type mongoConfig struct {
Addr string `envconfig:"MONGO_ADDR" required:"true"`
User string `envconfig:"MONGO_USER" required:"true"`
Pass string `envconfig:"MONGO_PASS" required:"true"`
}
type policyConfig struct {
Addr string `envconfig:"POLICY_ADDR" required:"true"`
}
Workers int `envconfig:"EXECUTOR_WORKERS" default:"5"`
PollInterval time.Duration `envconfig:"EXECUTOR_POLL_INTERVAL" default:"1s"`
MaxTaskRetries int `envconfig:"EXECUTOR_MAX_TASK_RETRIES" default:"10"`
type listExecutorConfig struct {
Workers int `envconfig:"LIST_EXECUTOR_WORKERS" default:"5"`
PollInterval time.Duration `envconfig:"LIST_EXECUTOR_POLL_INTERVAL" default:"1s"`
type cacheConfig struct {
Addr string `envconfig:"CACHE_ADDR" required:"true"`
}
type metricsConfig struct {
Addr string `envconfig:"METRICS_ADDR" default:":2112"`
}
type oauthConfig struct {
ClientID string `envconfig:"OAUTH_CLIENT_ID"`
ClientSecret string `envconfig:"OAUTH_CLIENT_SECRET"`
TokenURL string `envconfig:"OAUTH_TOKEN_URL"`