diff --git a/backend/app/core/config.py b/backend/app/core/config.py index f0e8a3d3..497c3609 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -198,6 +198,15 @@ class Settings(BaseSettings): # Override через env ENABLE_RIASURT_GATE=true. enable_riasurt_gate: bool = False + # РИАСУРТ Свердл harvest kill-switch (#108 review): ежеквартальный beat + # `harvest_all_riasurt_sverdl` прогоняет grid-walk по MO_BBOXES. Эти bbox — ПЛЕЙСХОЛДЕРЫ + # (грубые ±6 км вокруг центров МО), реальные административные границы резолвятся post-deploy. + # По умолчанию OFF, иначе beat на следующем тике дёргает WMS с мусорными bbox. + # Включать ТОЛЬКО после замены MO_BBOXES на реальные границы. Override через + # env ENABLE_RIASURT_HARVEST=true. Single-MO harvest_riasurt_sverdl_for_mo не гейтится + # (callable вручную для smoke-тестирования конкретного bbox). + enable_riasurt_harvest: bool = False + # ── LLM infrastructure (#960) ──────────────────────────────────────────── # ОПЦИОНАЛЬНЫЙ слой поверх детерминированного движка. Forecasting НИКОГДА не # зависит от LLM — при любом сбое/выключенности возвращается детерминированный diff --git a/backend/app/workers/tasks/riasurt_sverdl_harvest.py b/backend/app/workers/tasks/riasurt_sverdl_harvest.py index ccc419c4..4aae8ddd 100644 --- a/backend/app/workers/tasks/riasurt_sverdl_harvest.py +++ b/backend/app/workers/tasks/riasurt_sverdl_harvest.py @@ -33,6 +33,7 @@ from typing import Any from sqlalchemy import text from sqlalchemy.orm import Session +from app.core.config import settings from app.core.db import SessionLocal from app.services.scrapers.nspd_client import ( RIASURT_SVERDL_LAYERS, @@ -234,6 +235,13 @@ def harvest_all_riasurt_sverdl(layers: list[int] | None = None) -> dict[str, int Returns: {'mo': N, 'features': M} — обработано МО / суммарно записано фич. """ + if not settings.enable_riasurt_harvest: + logger.warning( + "RIASURT harvest disabled — set ENABLE_RIASURT_HARVEST=true after configuring " + "real MO_BBOXES (#108)" + ) + return {"mo": 0, "features": 0} + n_mo = 0 n_features = 0 for mo_name, bbox in MO_BBOXES.items(): diff --git a/data/sql/163_riasurt_sverdl.sql b/data/sql/167_riasurt_sverdl.sql similarity index 99% rename from data/sql/163_riasurt_sverdl.sql rename to data/sql/167_riasurt_sverdl.sql index 0c6f3e33..929a5c7b 100644 --- a/data/sql/163_riasurt_sverdl.sql +++ b/data/sql/167_riasurt_sverdl.sql @@ -1,4 +1,4 @@ --- 163_riasurt_sverdl.sql +-- 167_riasurt_sverdl.sql -- РИАСУРТ Свердл (folderId 1224) — 14-слойный harvest по агломерации ЕКБ (#108). -- Источник: NSPD aeggis/v4 WMS, региональный каталог РИАСУРТ Свердл. Покрывает ОКРАИНЫ -- агломерации ЕКБ (Берёзовский, В.Пышма, Среднеуральск, Арамиль, Сысерть), НЕ ЕКБ-сити