[SF][future-supply][spike] Разведка ГИСОГД-СО gisogd66.midural.ru — API РНС/ввод + застройщик #1087

Closed
opened 2026-06-06 18:38:04 +00:00 by lekss361 · 2 comments
Owner

Контекст

Единственный источник «строится сейчас» по региону + застройщик-заявитель, который не покрыт ни НСПД (нет РНС), ни ЕКБ-геопорталом (WFS = тех.атрибуты), ни ЕКБ-документами (РНС-XLSX город-only через ekburg_permits.py/#105). Vault research/EKB_Geoportal_WFS_Construction_Intel_Jun06 §6.

Spike-задача (research, не имплементация)

  • https://gisogd66.midural.ru/ — региональный ГИСОГД Свердл. обл. (требует JS, отдельный геопортал).
  • Разведать: есть ли публичный API/WFS на РНС/разрешения/ввод по региону? Покрытие ЕКБ + область. Атрибуты (застройщик? сроки? площадь?). Auth/ограничения.
  • Сравнить с уже имеющимся ekburg_permits.py (#105, город ЕКБ XLSX) — даёт ли регион что-то сверх.
  • Методология: minstroy.midural.ru/article/show/id/10070.

Deliverable

Вердикт: есть ли queryable API (🟢/🟡/🔴), что отдаёт, стоит ли ингестить (отдельный issue) или остаёмся на ekburg_permits для ЕКБ. unconfirmed → честно помечать.

Примечание

Capability: может потребовать dev-IP/JS-портал — если headless не берёт, флагнуть needs-human/resolver.

## Контекст Единственный источник «**строится сейчас**» по региону + застройщик-заявитель, который не покрыт ни НСПД (нет РНС), ни ЕКБ-геопорталом (WFS = тех.атрибуты), ни ЕКБ-документами (РНС-XLSX город-only через `ekburg_permits.py`/#105). Vault `research/EKB_Geoportal_WFS_Construction_Intel_Jun06` §6. ## Spike-задача (research, не имплементация) - `https://gisogd66.midural.ru/` — региональный ГИСОГД Свердл. обл. (требует JS, отдельный геопортал). - Разведать: есть ли публичный API/WFS на РНС/разрешения/ввод по региону? Покрытие ЕКБ + область. Атрибуты (застройщик? сроки? площадь?). Auth/ограничения. - Сравнить с уже имеющимся `ekburg_permits.py` (#105, город ЕКБ XLSX) — даёт ли регион что-то сверх. - Методология: `minstroy.midural.ru/article/show/id/10070`. ## Deliverable Вердикт: есть ли queryable API (🟢/🟡/🔴), что отдаёт, стоит ли ингестить (отдельный issue) или остаёмся на `ekburg_permits` для ЕКБ. unconfirmed → честно помечать. ## Примечание Capability: может потребовать dev-IP/JS-портал — если headless не берёт, флагнуть `needs-human`/resolver.
lekss361 added the
GG-форсайт
scope/backend
site-finder
labels 2026-06-06 18:38:41 +00:00
Author
Owner

Spike-вердикт (headless-разведка с RU-IP VPS, 2026-06-07)

🟡/🔴 — публичного queryable API headless НЕ обнаружено.

Что выяснено (probe из gendesign-backend-1, RU-IP):

  • gisogd66.midural.ruVue SPA (платформа «agat», <title>Портал ГИСОГД</title>). Все маршруты (/, /api, /geoserver/ows, /api/gis/ows?…GetCapabilities) отдают ОДИН и тот же 684-байтный HTML-шелл (client-side routing) — НЕ GeoServer, НЕ OGC-эндпоинт.
  • Единственный бандл /assets/index-*.js (1.77 MB): grep по api/, wfs, geoserver, /ows, *.midural.ru дал лишь 1 generic-упоминание wfs — без API-base / эндпоинтов. API конструируется в рантайме (XHR из SPA), вероятно за сессией/auth.

Отличие от ekburg_permits.py (#105): тот даёт рабочий РНС-XLSX для города ЕКБ. ГИСОГД-СО headless ничего сверх НЕ даёт (API не вскрыт).

Рекомендация:

  1. Для ЕКБ-города — остаёмся на ekburg_permits (#105, рабочий).
  2. Региональное покрытие (область) через ГИСОГД-СО — требует browser-session network-capture (Playwright: загрузить SPA, открыть карту/поиск РНС, перехватить XHR к backend) + возможно dev-IP/auth. Это capability за пределами headless-бота → needs-human/resolver.

→ Флипаю status/readyneeds-human: нужен resolver-проход (browser network-capture API ГИСОГД-СО) ИЛИ решение «региональное РНС не приоритет, остаёмся на ekburg_permits для ЕКБ». unconfirmed (область-атрибуты застройщик/срок) — честно не подтверждено, API не вскрыт.

## Spike-вердикт (headless-разведка с RU-IP VPS, 2026-06-07) **🟡/🔴 — публичного queryable API headless НЕ обнаружено.** Что выяснено (probe из `gendesign-backend-1`, RU-IP): - `gisogd66.midural.ru` — **Vue SPA** (платформа «agat», `<title>Портал ГИСОГД</title>`). Все маршруты (`/`, `/api`, `/geoserver/ows`, `/api/gis/ows?…GetCapabilities`) отдают ОДИН и тот же 684-байтный HTML-шелл (client-side routing) — НЕ GeoServer, НЕ OGC-эндпоинт. - Единственный бандл `/assets/index-*.js` (1.77 MB): grep по `api/`, `wfs`, `geoserver`, `/ows`, `*.midural.ru` дал лишь 1 generic-упоминание `wfs` — без API-base / эндпоинтов. API конструируется в рантайме (XHR из SPA), вероятно за сессией/auth. **Отличие от `ekburg_permits.py` (#105):** тот даёт рабочий РНС-XLSX для города ЕКБ. ГИСОГД-СО headless ничего сверх НЕ даёт (API не вскрыт). **Рекомендация:** 1. Для ЕКБ-города — **остаёмся на `ekburg_permits`** (#105, рабочий). 2. Региональное покрытие (область) через ГИСОГД-СО — требует **browser-session network-capture** (Playwright: загрузить SPA, открыть карту/поиск РНС, перехватить XHR к backend) + возможно dev-IP/auth. Это capability за пределами headless-бота → `needs-human`/resolver. → Флипаю `status/ready`→`needs-human`: нужен resolver-проход (browser network-capture API ГИСОГД-СО) ИЛИ решение «региональное РНС не приоритет, остаёмся на ekburg_permits для ЕКБ». unconfirmed (область-атрибуты застройщик/срок) — честно не подтверждено, API не вскрыт.
lekss361 added the
needs-human
label 2026-06-06 21:09:30 +00:00
Collaborator

Spike выполнен (2026-06-13). Вердикт: 🔴 — queryable РНС/РВЭ/застройщик-слоя в ГИСОГД-СО gisogd66.midural.ru НЕТ.

API де-факто открыт (httpx + verify=False, российский CA — как в gisogd_so_client.py), JS/капчи/токена на эндпоинтах нет → needs-human снимаю, разведка автономна.

Проверено (confirmed)

  • Catalog API /api/catalogs/agate_ekbgo → 200 JSON, 6 карт / 64 слоя. Греп разреш|рнс|ввод|строит|застрой|эксплуат|permit|construct|build0 слоёв РНС/застройщика.
  • WFS GetCapabilities → 200, 61 FeatureType, единственный workspace agate_ekbgo (нет скрытых). Греп по тем же ключам → 0.
  • Ближайшие кандидаты (siting из ППиМ, НЕ выданные РНС): ..._placing_oks_*, ..._territory_* — для ЕКБ-инстанса пусты (0 фич), и по схеме DescribeFeatureType несут атрибуты ПРОЕКТА планировки, не заявителя/№РНС/даты ввода/факт.площади.
  • WFS реально отдаёт данные (gkn_parcel_exist numberMatched=204365) → 🔴 про отсутствие типа данных, не блокировку.

Сравнение с ekburg_permits.py (#105)

Городской XLSX даёт ровно то, чего в регионе нет: developer_name/INN, permit/rve номера+даты, площади, кадастр ЗУ, координаты. ГИСОГД-СО не покрывает ничего сверх по линии разрешений.

Рекомендация

Отдельный issue на ингест НЕ заводить. Остаёмся на ekburg_permits.py для РНС/РВЭ по ЕКБ. ГИСОГД-СО — источник генплана/ПЗЗ/ЗОУИТ/ОКН/ЕГРН-участков (используется в #1058), не разрешений.

Caveat (honest)

Проверен только инстанс agate_ekbgo (ЕКБ ГО). Каталоги других МО области через тот же домен (/api/catalogs/<slug>) не проверялись — РНС за пределами ЕКБ требует другой разведки (муниципальные реестры / дом.рф), отдельно при необходимости.

Закрываю как выполненный spike.

Spike выполнен (2026-06-13). **Вердикт: 🔴 — queryable РНС/РВЭ/застройщик-слоя в ГИСОГД-СО `gisogd66.midural.ru` НЕТ.** API де-факто открыт (httpx + verify=False, российский CA — как в `gisogd_so_client.py`), JS/капчи/токена на эндпоинтах нет → **needs-human снимаю**, разведка автономна. ## Проверено (confirmed) - **Catalog API** `/api/catalogs/agate_ekbgo` → 200 JSON, 6 карт / 64 слоя. Греп `разреш|рнс|ввод|строит|застрой|эксплуат|permit|construct|build` → **0 слоёв РНС/застройщика**. - **WFS GetCapabilities** → 200, 61 FeatureType, единственный workspace `agate_ekbgo` (нет скрытых). Греп по тем же ключам → 0. - Ближайшие кандидаты (siting из ППиМ, НЕ выданные РНС): `..._placing_oks_*`, `..._territory_*` — для ЕКБ-инстанса **пусты (0 фич)**, и по схеме `DescribeFeatureType` несут атрибуты ПРОЕКТА планировки, **не** заявителя/№РНС/даты ввода/факт.площади. - WFS реально отдаёт данные (`gkn_parcel_exist` numberMatched=204365) → 🔴 про отсутствие *типа* данных, не блокировку. ## Сравнение с ekburg_permits.py (#105) Городской XLSX даёт ровно то, чего в регионе нет: developer_name/INN, permit/rve номера+даты, площади, кадастр ЗУ, координаты. ГИСОГД-СО **не покрывает ничего сверх** по линии разрешений. ## Рекомендация Отдельный issue на ингест **НЕ заводить**. Остаёмся на `ekburg_permits.py` для РНС/РВЭ по ЕКБ. ГИСОГД-СО — источник генплана/ПЗЗ/ЗОУИТ/ОКН/ЕГРН-участков (используется в #1058), не разрешений. ## Caveat (honest) Проверен только инстанс `agate_ekbgo` (ЕКБ ГО). Каталоги других МО области через тот же домен (`/api/catalogs/<slug>`) не проверялись — РНС за пределами ЕКБ требует другой разведки (муниципальные реестры / дом.рф), отдельно при необходимости. Закрываю как выполненный spike.
Sign in to join this conversation.
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#1087
No description provided.