diff --git a/backend/internal/common/env_config.go b/backend/internal/common/env_config.go index 687b1c24..98b11497 100644 --- a/backend/internal/common/env_config.go +++ b/backend/internal/common/env_config.go @@ -49,6 +49,7 @@ type EnvConfigSchema struct { AllowDowngrade bool `env:"ALLOW_DOWNGRADE"` InternalAppURL string `env:"INTERNAL_APP_URL"` UiConfigDisabled bool `env:"UI_CONFIG_DISABLED"` + DisableRateLimiting bool `env:"DISABLE_RATE_LIMITING"` FileBackend string `env:"FILE_BACKEND" options:"toLower"` UploadPath string `env:"UPLOAD_PATH"` diff --git a/backend/internal/middleware/rate_limit.go b/backend/internal/middleware/rate_limit.go index 210ea273..11da4a09 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 { + 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