Files
healthlog/docs/tasks/items/swagger-ui.md
T
av bd832337df tasks: задачи спринта раздроблены до восьми гранулярных
- конверт и точки разложены на форму провода, точки за период и условный
  запрос; свёртка — на сетку, порог неполного ведра и предел размера ответа;
  тренировки и записи разъехались на два независимых маршрута
- openapi-swagger разложена на спеку, гейт против расхождения и Swagger UI —
  все три вне набора, вместе с mcp-server
- набор спринта 2026-08-04 — весь HTTP-слой чтения, восемь задач
2026-08-04 14:21:57 +03:00

2.0 KiB

Swagger UI без внешней сети

  • Секция: ядро
  • Зачем: Контракт читается машиной, но человеку нечем ткнуть в живой сервис, а внешних CDN в локальной сети нет
  • Теги: goal:read-api, sprint:2026-08-04

Человек открывает UI на отдельном пути и выполняет запрос к живому сервису — не имея интернета.

Сервис живёт в локальной сети и на VPS без гарантии выхода наружу, поэтому статика отдаётся самим сервисом и лежит в бинаре: внешние CDN здесь означают «работает, пока работает чужой сайт».

UI — новый адресат недоверенного входа наизнанку: он даёт человеку в один клик дёрнуть любой описанный маршрут, включая приём. Права на запись из браузера не должны появляться сами собой — это ровно та граница, которую описывает docs/security.md.

Критерии приёмки

  • UI открывается и выполняет запрос при отключённой внешней сети — оракул: запуск контейнера без доступа наружу
  • бинарь работает без каталога со статикой рядом — оракул: запуск одного файла из пустого каталога
  • маршрут приёма из UI не вызывается без явного токена приёма — оракул: тест

Рамки

Схема не трогается. Берётся после спеки. Наружу ничего не выкладывается — это решение человека и отдельная задача деплоя.