auto-sync: 2026-06-04 08:40:01

This commit is contained in:
Stream
2026-06-04 08:40:01 +03:00
parent a6e8f67d50
commit c9a4895fab
2 changed files with 29 additions and 0 deletions

View File

@@ -297,6 +297,33 @@ docker restart prototype-enduro-trails-1
---
## ET-011 — Скачивание GPX чужих публичных треков (03-04.06.2026) ✅
> Не путать с F-05 (экспорт СОБСТВЕННОГО построенного маршрута). ET-011 — скачивание уже собранных чужих треков из попапа на карте.
**Фича:** кнопка «Скачать GPX» в попапе публичного трека. Эндпоинт `GET /api/gps-tracks/{track_id}/download` — собирает GPX 1.1 из геометрии трека, с проверками формата/размера/лицензии.
**Лицензионная политика (ADR-015, default-deny):**
- `config/gps_sources.yaml``download_allowed: <bool>` на каждый источник. По умолчанию `DEFAULT_DOWNLOAD_ALLOWED_SOURCES = {"osm"}` — качать можно только OSM.
- Источник без флага → **403 `source_forbidden`** + ссылка на оригинал (`external_urls`). Это не баг — намеренно.
**Состояние источников (origin/main, enduro-trails #23):**
- `osm``true` | `enduro_russia`**`true`** (А-1, решение владельца 04.06) | `wikiloc``false` | `ttrails``false`
- ⚠️ **А-1:** `enduro_russia` включён по явному решению Славы (286 треков — из этого источника). ToS EnduroRussia явно не разрешает ре-экспорт — юр-риск принят владельцем осознанно.
**Проверка на проде (трек 102):** HTTP 200, 265 КБ, `application/gpx+xml`, content-disposition с кириллицей, валидный GPX 1.1 (xmllint OK). ✅ Качается.
### ⚠️ Грабли ET-011 (важные)
| Грабля | Решение |
|--------|---------|
| Конфиг `gps_sources.yaml` монтируется volume `./config:/app/config:ro` | Правка файла + рестарт контейнера = новая политика **без пересборки образа** |
| Файл `gps_sources.yaml` root-owned, у slin нет write/sudo | Правка через docker-root: `docker run --rm -v .../config:/c alpine sh -c '...'` |
| `download_allowed: false` (default ADR-015) → 403, а не 404 | Если фронт показывает «Открыть оригинал» — источник просто не разрешён к скачиванию (не баг) |
| 404 на `/download` при живом треке = маршрут НЕ зарегистрирован (старый образ) | Проверять openapi прода в первую очередь; пересобрать контейнер из актуального main |
| deploy-hook падал: `/var/log/enduro-trails` root-owned | **ИСПРАВЛЕНО 04.06** через installer: `sudo chown slin:slin /var/log/enduro-trails`. Сейчас slin пишет в каталог → хук не падает |
---
## Документы
| Документ | Описание |