Files
enduro-trails/docs/work-items/ET-005/07-infra-requirements.md
claude-bot bafbea2dab
All checks were successful
CI / lint (push) Successful in 4s
CI / test (push) Successful in 5s
CI / build (push) Successful in 1s
architect(ET-005): ADR, infra-requirements, data-requirements, tech-risks
2026-05-21 22:18:08 +03:00

108 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: infra-requirements
work_item_id: ET-005
title: "Инфраструктурные требования — ET-005: Переключение единиц измерения (км/мили)"
version: 1
status: approved
created_at: 2026-05-21
authors:
- "agent:architect"
---
# Инфраструктурные требования — ET-005
## 1. Резюме
ET-005 — изменение **исключительно фронтенда** (`src/web/index.html`,
`src/web/app.js`, `src/web/app.css` и новый файл `src/web/units.js`).
Новой инфраструктуры не требуется. Документ зафиксирован для полноты
work-item и явно подтверждает отсутствие инфра-воздействия (см.
`06-adr/adr-0001-unit-toggle-client-side.md`).
## 2. Контейнеры и сервисы
| Аспект | Требование |
|--------|------------|
| Новые контейнеры | Нет |
| Изменения существующих сервисов (api, osrm, nginx) | Нет |
| Изменения `docker-compose.yml` | Нет |
| Изменения `Dockerfile` | Нет — `units.js` это статика, попадает в образ тем же путём, что и `app.js` |
## 3. Сеть
| Аспект | Требование |
|--------|------------|
| Новые порты | Нет |
| Изменения reverse proxy (nginx, `/enduro/`) | Нет |
| Новые внешние домены / DNS | Нет |
| Исходящие сетевые вызовы из фронтенда | Нет (конвертация и хранение — локальные) |
## 4. Хранилища данных
| Аспект | Требование |
|--------|------------|
| Изменения схемы SQLite/Spatialite | Нет |
| Миграции БД (`migrations/`) | Нет |
| Серверное хранилище состояния | Нет |
| Клиентское хранилище | `localStorage`, ключ `distance_unit` (`'km'`/`'mi'`), ≈ 2 байта полезной нагрузки на браузер |
Подробности по данным — `08-data-requirements.md`.
## 5. Конфигурация и секреты
| Аспект | Требование |
|--------|------------|
| Новые переменные окружения | Нет |
| Новые секреты | Нет |
| Изменения конфигурации FastAPI / uvicorn | Нет |
## 6. Зависимости
| Аспект | Требование |
|--------|------------|
| Новые npm/Python пакеты | Нет |
| Новые внешние сервисы | Нет |
| Новые CDN-скрипты | Нет — `units.js` это локальный файл проекта, не внешний CDN |
| Версия MapLibre GL JS | Без изменений |
## 7. Сборка и деплой
- **Pipeline:** существующий Gitea Actions без изменений (`lint`, `test`,
`build`).
- **Артефакт:** статические ассеты фронтенда (`src/web/`), включая новый
`units.js`. Деплой — штатная пересборка/перевыкладка и
`docker compose up -d` на mva154.
- **Порядок подключения скриптов:** `units.js` должен подключаться в
`index.html` **строго перед** `app.js` (см. ADR-0001, риск R7 в
`10-tech-risks.md`). Контрольная точка для review.
- **Простой (downtime):** нет — изменение только в статике фронтенда.
- **План отката:** обратный коммит (revert) и повторный деплой;
миграций/серверного состояния, требующих отдельного отката, нет.
`localStorage`-ключ `distance_unit` у пользователей при откате
безвреден (игнорируется старым кодом).
## 8. Ресурсы (CPU / RAM / диск)
Воздействие отсутствует. Конвертация расстояний — несколько
арифметических операций в браузере клиента; тайлы и маршруты не
перезапрашиваются. Размер `units.js` пренебрежимо мал (единицы КБ).
## 9. Наблюдаемость
Новые метрики, логи и алерты не требуются. Поведение проверяется
unit-тестами модуля `units.js` и e2e-тестами фронтенда согласно
`04-test-plan.yaml` (TP-01…TP-05).
## 10. Влияние на C4
Состав компонентов системы **не меняется** — добавляется лишь файл
внутри уже существующего компонента «Frontend». Обновление
`docs/architecture/c4-*.mmd` не требуется (диаграммы C4 в репозитории
на данный момент отсутствуют — только `docs/architecture/README.md`).
## 11. Вывод
Инфраструктурных, сетевых, конфигурационных изменений и изменений БД
**нет**. ET-005 безопасен для деплоя в рамках обычного релизного цикла
фронтенда. Эскалация `arch:major-change` не требуется.