name: auth-password description: | Восстановление пароля (ТЗ 2.1.3): анти-энумерация (forgot всегда 200), reset с битым токеном → 400, слишком короткий пароль → 400, рейт-лимит forgot (>3 запросов/час с IP → 429). Примечание: рейт-лимит хранится в памяти процесса API per-IP на 1 час. Сценарий рассчитан на запуск против свежезапущенного API (повторный прогон без рестарта увидит 429 на первых же forgot-запросах). preconditions: reset_db: true smoke_login_super_admin: true steps: - id: step01_bootstrap title: "Создать орг → известный email активного пользователя" - id: step02_forgot_unknown_200 title: "forgot-password несуществующего email → 200 (анти-энумерация)" - id: step03_forgot_known_200 title: "forgot-password существующего email → 200" - id: step04_reset_bad_token title: "reset-password с битым токеном → 400" - id: step05_reset_short_password title: "reset-password со слишком коротким паролем → 400" - id: step06_forgot_rate_limited title: "Серия forgot с одного IP → появляется 429 (рейт-лимит)"