gendesign/backend/app/core
Light1YT 1d367f5d8e
All checks were successful
CI / changes (pull_request) Successful in 8s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m47s
CI / backend-tests (pull_request) Successful in 12m5s
feat(site-finder): OSRM road-distance in /analyze behind flag (#39 A2)
Заменяет straight-line ST_Distance в POI-скоринге /analyze реальным
дорожным расстоянием центроид→POI из локального OSRM (/table GET с
annotations=distance → метры), за флагом use_osrm_distances.

Флаг default OFF → деплой поведенчески-нейтрален: при OFF OSRM не
дёргается вообще, /analyze байт-в-байт как сегодня. Включение сдвигает
все POI-score на ~20-30% (дорога длиннее прямой) — осознанное позднее
решение после валидации, НЕ этот PR.

Graceful fallback: любой сбой OSRM (HTTP / timeout / code!=Ok / битая
форма) → OsrmLocalUnavailableError → straight-line по всем POI, /analyze
НЕ падает в 500. Недостижимый POI (null от OSRM) → сохраняет straight-line.

Покрыто и для OSM POI (osm_poi_ekb), и для custom POI (user_custom_pois).

Refs #39
2026-06-27 02:05:56 +05:00
..
__init__.py init 2026-04-25 13:45:19 +03:00
audit_middleware.py fix(audit): run_in_threadpool для write_audit_row в async middleware (#1202) 2026-06-13 05:24:39 +00:00
auth.py feat(rbac): add analyst role + §19 audit-log middleware (#962) 2026-06-08 12:16:19 +05:00
config.py feat(site-finder): OSRM road-distance in /analyze behind flag (#39 A2) 2026-06-27 02:05:56 +05:00
db.py deploy.yml: sync compose+Caddyfile from git, reload caddy after up 2026-04-26 13:31:26 +03:00
deps.py refactor(admin): extract _check_token into shared AdminTokenAuth dep (#133) 2026-05-14 23:45:44 +03:00