From 0d40d30d876773c06e6ff44b99fc0988c013650c Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Sun, 11 Jan 2026 12:34:26 +0100 Subject: [PATCH] feat: add environment variable to disable built-in rate limiting --- backend/internal/common/env_config.go | 9 +++++---- backend/internal/middleware/rate_limit.go | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/internal/common/env_config.go b/backend/internal/common/env_config.go index 687b1c24..d2fd450f 100644 --- a/backend/internal/common/env_config.go +++ b/backend/internal/common/env_config.go @@ -70,10 +70,11 @@ type EnvConfigSchema struct { GeoLiteDBPath string `env:"GEOLITE_DB_PATH"` GeoLiteDBUrl string `env:"GEOLITE_DB_URL"` - LogLevel string `env:"LOG_LEVEL" options:"toLower"` - MetricsEnabled bool `env:"METRICS_ENABLED"` - TracingEnabled bool `env:"TRACING_ENABLED"` - LogJSON bool `env:"LOG_JSON"` + LogLevel string `env:"LOG_LEVEL" options:"toLower"` + MetricsEnabled bool `env:"METRICS_ENABLED"` + TracingEnabled bool `env:"TRACING_ENABLED"` + LogJSON bool `env:"LOG_JSON"` + DisableRateLimiting bool `env:"DISABLE_RATE_LIMITING"` } var EnvConfig = defaultConfig() diff --git a/backend/internal/middleware/rate_limit.go b/backend/internal/middleware/rate_limit.go index 210ea273..c0d75979 100644 --- a/backend/internal/middleware/rate_limit.go +++ b/backend/internal/middleware/rate_limit.go @@ -17,6 +17,12 @@ func NewRateLimitMiddleware() *RateLimitMiddleware { } func (m *RateLimitMiddleware) Add(limit rate.Limit, burst int) gin.HandlerFunc { + if common.EnvConfig.DisableRateLimiting == true { + return func(c *gin.Context) { + c.Next() + } + } + // Map to store the rate limiters per IP var clients = make(map[string]*client) var mu sync.Mutex