fix(scrapers): WAF-guard эндпоинтов + throttled catalog BrowserSession (#2445-D1/D2) #2459

Merged
bot-backend merged 2 commits from fix/catalog-waf-guard-throttle into main 2026-07-05 20:09:07 +00:00
Collaborator

Summary

Аудит-находки D1+D2 (epic #2445, WAF-гигиена #2443).

D1 — admin-эндпоинты /kn-catalog-objects + /kn-catalog-flats дёргали таск, чей beat отключён из-за WAF-бана, с max_objects=2000, force=True, без server-side гейта. Теперь требуют явный i_understand_waf_risk=true (иначе 400 со ссылкой на #2443), fail-closed (default False). Endpoint/registration не удалены — human, знающий риск, может override.

D2 — обе catalog-BrowserSession (domrf_catalog_object.py + domrf_catalog.py flat-level из #2440) молча наследовали дефолт stealth.py (concurrency=8, jitter 600-1500ms) на том же /сервисы/* пути, что вызвал бан. Теперь переиспользуют throttled settings.scrape_kn_* (concurrency=2, jitter 1200-3000ms, как scrape_kn после #1945). Обновлены устаревшие комментарии.

Test plan

  • 7 новых + 102 pre-existing тестов зелёные (guard: 400-без-флага + task-not-dispatched + 200-с-флагом; throttle: BrowserSession получает concurrency=2, не 8)
  • ruff чисто, секретов нет
  • code-reviewer: APPROVE (guard fail-closed, kwargs match stealth signature, 0 unguarded dispatch)

Refs #2445, #2443

## Summary Аудит-находки D1+D2 (epic #2445, WAF-гигиена #2443). **D1** — admin-эндпоинты `/kn-catalog-objects` + `/kn-catalog-flats` дёргали таск, чей beat отключён из-за WAF-бана, с `max_objects=2000, force=True`, без server-side гейта. Теперь требуют явный `i_understand_waf_risk=true` (иначе 400 со ссылкой на #2443), fail-closed (default False). Endpoint/registration не удалены — human, знающий риск, может override. **D2** — обе catalog-`BrowserSession` (`domrf_catalog_object.py` + `domrf_catalog.py` flat-level из #2440) молча наследовали дефолт `stealth.py` (concurrency=8, jitter 600-1500ms) на том же `/сервисы/*` пути, что вызвал бан. Теперь переиспользуют throttled `settings.scrape_kn_*` (concurrency=2, jitter 1200-3000ms, как scrape_kn после #1945). Обновлены устаревшие комментарии. ## Test plan - [x] 7 новых + 102 pre-existing тестов зелёные (guard: 400-без-флага + task-not-dispatched + 200-с-флагом; throttle: BrowserSession получает concurrency=2, не 8) - [x] ruff чисто, секретов нет - [x] code-reviewer: ✅ APPROVE (guard fail-closed, kwargs match stealth signature, 0 unguarded dispatch) Refs #2445, #2443
bot-backend added 1 commit 2026-07-05 19:44:36 +00:00
fix(scrapers): WAF re-trigger guard + throttled BrowserSession для DOM.РФ catalog (#2445-D1/D2)
Some checks failed
CI Trade-In / changes (pull_request) Successful in 12s
CI / changes (pull_request) Successful in 11s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Failing after 3m1s
CI / backend-tests (pull_request) Successful in 15m39s
68d0575080
D1: admin-эндпоинты /kn-catalog-objects + /kn-catalog-flats теперь требуют
явный i_understand_waf_risk=true перед dispatch (иначе 400 со ссылкой на #2443),
т.к. их beat отключён после WAF-бана 2026-05-24 и случайный re-trigger углубит бан.

D2: обе catalog-BrowserSession (domrf_catalog_object.py + domrf_catalog.py flat-level)
переиспользуют throttled settings.scrape_kn_* (concurrency=2, jitter 1200-3000ms,
как scrape_kn после #1945) вместо молчаливого наследования дефолта stealth.py
(concurrency=8, 600-1500ms). Обновлены устаревшие комментарии config.py/stealth.py.

Refs #2445
Light1YT added 1 commit 2026-07-05 19:53:14 +00:00
chore(codegen): регенерация api-types.ts для i_understand_waf_risk (#2445-D1)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 17s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Successful in 57s
CI / openapi-codegen-check (pull_request) Successful in 1m54s
CI / backend-tests (pull_request) Successful in 14m45s
987a929b09
bot-backend merged commit 7315d04396 into main 2026-07-05 20:09:07 +00:00
bot-backend deleted branch fix/catalog-waf-guard-throttle 2026-07-05 20:09:07 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2459
No description provided.