|
|
|
@ -36,6 +36,7 @@ const (
|
|
|
|
SKIP_IMPORT_ENV = "KOITO_SKIP_IMPORT"
|
|
|
|
SKIP_IMPORT_ENV = "KOITO_SKIP_IMPORT"
|
|
|
|
ALLOWED_HOSTS_ENV = "KOITO_ALLOWED_HOSTS"
|
|
|
|
ALLOWED_HOSTS_ENV = "KOITO_ALLOWED_HOSTS"
|
|
|
|
DISABLE_RATE_LIMIT_ENV = "KOITO_DISABLE_RATE_LIMIT"
|
|
|
|
DISABLE_RATE_LIMIT_ENV = "KOITO_DISABLE_RATE_LIMIT"
|
|
|
|
|
|
|
|
THROTTLE_IMPORTS_MS = "KOITO_THROTTLE_IMPORTS_MS"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type config struct {
|
|
|
|
type config struct {
|
|
|
|
@ -60,6 +61,7 @@ type config struct {
|
|
|
|
allowedHosts []string
|
|
|
|
allowedHosts []string
|
|
|
|
allowAllHosts bool
|
|
|
|
allowAllHosts bool
|
|
|
|
disableRateLimit bool
|
|
|
|
disableRateLimit bool
|
|
|
|
|
|
|
|
importThrottleMs int
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
var (
|
|
|
|
@ -104,6 +106,8 @@ func loadConfig(getenv func(string) string) (*config, error) {
|
|
|
|
cfg.lbzRelayUrl = getenv(LBZ_RELAY_URL_ENV)
|
|
|
|
cfg.lbzRelayUrl = getenv(LBZ_RELAY_URL_ENV)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cfg.importThrottleMs, _ = strconv.Atoi(getenv(THROTTLE_IMPORTS_MS))
|
|
|
|
|
|
|
|
|
|
|
|
cfg.disableRateLimit = parseBool(getenv(DISABLE_RATE_LIMIT_ENV))
|
|
|
|
cfg.disableRateLimit = parseBool(getenv(DISABLE_RATE_LIMIT_ENV))
|
|
|
|
|
|
|
|
|
|
|
|
cfg.structuredLogging = parseBool(getenv(ENABLE_STRUCTURED_LOGGING_ENV))
|
|
|
|
cfg.structuredLogging = parseBool(getenv(ENABLE_STRUCTURED_LOGGING_ENV))
|
|
|
|
@ -278,3 +282,9 @@ func RateLimitDisabled() bool {
|
|
|
|
defer lock.RUnlock()
|
|
|
|
defer lock.RUnlock()
|
|
|
|
return globalConfig.disableRateLimit
|
|
|
|
return globalConfig.disableRateLimit
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func ThrottleImportMs() int {
|
|
|
|
|
|
|
|
lock.RLock()
|
|
|
|
|
|
|
|
defer lock.RUnlock()
|
|
|
|
|
|
|
|
return globalConfig.importThrottleMs
|
|
|
|
|
|
|
|
}
|
|
|
|
|