framework:
    rate_limiter:
        # OTP send-code: max 5 requests per hour per IP (prevents SMS flood)
        send_code:
            policy: 'sliding_window'
            limit: 5
            interval: '60 minutes'

        # Login: max 10 attempts per minute per IP (brute force protection)
        login:
            policy: 'fixed_window'
            limit: 10
            interval: '1 minute'

        # OTP verify: max 10 attempts per 15 minutes per IP
        verify_code:
            policy: 'sliding_window'
            limit: 10
            interval: '15 minutes'

        # Token issuance (oauth/token, otp-login): max 10 per 5 minutes per IP
        token_issue:
            policy: 'sliding_window'
            limit: 10
            interval: '5 minutes'

        # Password reset: max 5 per hour per IP
        password_reset:
            policy: 'sliding_window'
            limit: 5
            interval: '60 minutes'
