namespace Deal.Api.Configuration;
///
/// Настройки rate limiting и защиты входа
///
public sealed class RateLimitOptions
{
///
/// Включены ли rate limiting и LoginAttemptGuard.
///
public bool Enabled { get; set; }
///
/// Лимит политики "auth"
///
public int AuthPerMinute { get; set; } = 10;
///
/// Лимит политики "api"
///
public int ApiPerMinute { get; set; } = 600;
///
/// Лимит gRPC-ингресса
///
public int GrpcIngressPerMinute { get; set; } = 600;
///
/// Порог неудачных попыток входа ключа ip|login до блокировки
///
public int LoginAttemptsMax { get; set; } = 5;
///
/// Окно учёта неудачных попыток входа в минутах
///
public int LoginAttemptWindowMin { get; set; } = 15;
}