# Rate Limiter Configuration
# Story 1.4 - AC3: Lockout après 5 échecs répétés

framework:
    rate_limiter:
        # Limite les tentatives de login par email
        login_attempts:
            policy: fixed_window
            limit: 5
            interval: '15 minutes'
            cache_pool: cache.rate_limiter

        # Limite les tentatives de login par IP (protection contre brute force distribué)
        login_by_ip:
            policy: sliding_window
            limit: 20
            interval: '15 minutes'
            cache_pool: cache.rate_limiter

        # Limite les demandes de reset password par email
        # Story 1.5 - AC1: Rate limiting 3 demandes/heure
        password_reset_by_email:
            policy: fixed_window
            limit: 3
            interval: '1 hour'
            cache_pool: cache.rate_limiter

        # Limite les demandes de reset password par IP (protection contre énumération)
        password_reset_by_ip:
            policy: sliding_window
            limit: 10
            interval: '1 hour'
            cache_pool: cache.rate_limiter

        # Limite les tentatives d'activation par IP (protection contre DoS via bcrypt)
        parent_activation_by_ip:
            policy: sliding_window
            limit: 10
            interval: '15 minutes'
            cache_pool: cache.rate_limiter
