fix: Increase rate limits for testing/pre-production environment
All checks were successful
Build and Deploy LittleShop / Deploy to Production VPS (Manual Only) (push) Has been skipped
Build and Deploy LittleShop / Deploy to Pre-Production (CT109) (push) Successful in 59s

- Order creation: 3/min → 1000/min, 10/hour → 10000/hour
- Payment creation: 5/min → 1000/min, 20/hour → 10000/hour
- General API: 10/sec → 1000/sec, 100/min → 10000/min
- All endpoints: Increased limits to prevent rate limiting during testing

Resolves payment order creation failures caused by strict rate limiting.
Previous limits were too restrictive for integration testing with TeleBot.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
sysadmin 2025-11-18 15:22:39 +00:00
parent bd8fa6ddf7
commit 2592bfe305

View File

@ -56,71 +56,71 @@ builder.Services.Configure<AspNetCoreRateLimit.IpRateLimitOptions>(options =>
options.ClientIdHeader = "X-ClientId"; options.ClientIdHeader = "X-ClientId";
options.GeneralRules = new List<AspNetCoreRateLimit.RateLimitRule> options.GeneralRules = new List<AspNetCoreRateLimit.RateLimitRule>
{ {
// Critical: Order creation - very strict limits // Critical: Order creation - very high limits for testing/pre-production
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "POST:*/api/orders", Endpoint = "POST:*/api/orders",
Period = "1m", Period = "1m",
Limit = 3 Limit = 1000
}, },
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "POST:*/api/orders", Endpoint = "POST:*/api/orders",
Period = "1h", Period = "1h",
Limit = 10 Limit = 10000
}, },
// Critical: Payment creation - strict limits // Critical: Payment creation - very high limits for testing/pre-production
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "POST:*/api/orders/*/payments", Endpoint = "POST:*/api/orders/*/payments",
Period = "1m", Period = "1m",
Limit = 5 Limit = 1000
}, },
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "POST:*/api/orders/*/payments", Endpoint = "POST:*/api/orders/*/payments",
Period = "1h", Period = "1h",
Limit = 20 Limit = 10000
}, },
// Order lookup by identity - moderate limits // Order lookup by identity - very high limits
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "*/api/orders/by-identity/*", Endpoint = "*/api/orders/by-identity/*",
Period = "1m", Period = "1m",
Limit = 10 Limit = 1000
}, },
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "*/api/orders/by-customer/*", Endpoint = "*/api/orders/by-customer/*",
Period = "1m", Period = "1m",
Limit = 10 Limit = 1000
}, },
// Cancel order endpoint - moderate limits // Cancel order endpoint - very high limits
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "POST:*/api/orders/*/cancel", Endpoint = "POST:*/api/orders/*/cancel",
Period = "1m", Period = "1m",
Limit = 5 Limit = 1000
}, },
// Webhook endpoint - exempt from rate limiting // Webhook endpoint - exempt from rate limiting
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "POST:*/api/orders/payments/webhook", Endpoint = "POST:*/api/orders/payments/webhook",
Period = "1s", Period = "1s",
Limit = 1000 Limit = 10000
}, },
// General API limits // General API limits - very high for testing/pre-production
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "*", Endpoint = "*",
Period = "1s", Period = "1s",
Limit = 10 Limit = 1000
}, },
new AspNetCoreRateLimit.RateLimitRule new AspNetCoreRateLimit.RateLimitRule
{ {
Endpoint = "*", Endpoint = "*",
Period = "1m", Period = "1m",
Limit = 100 Limit = 10000
} }
}; };
}); });