tasks: спроектирован контракт приложения и переставлена голова очереди
- json-api-for-spa: адреса приложения уехали в своё пространство /app/, приём стал POST /app/audiorecords, опрос /api/status/:id убран, заведены список, карточка, текст, /app/me и /app/config; имя файла отправителя легло своей колонкой рядом с заголовком - три действия над записью — правка заголовка, возврат в работу и журнал событий — собраны задачей audiorecord-actions - голова очереди: контракт, каркас, экран загрузки, список, действия - в прежних задачах поправлены адреса, рубежи конвейера и остатки Telegram
This commit is contained in:
+10
-10
@@ -1,13 +1,12 @@
|
||||
# ✨ Собрать каркас приложения и раздать его из бинарника
|
||||
|
||||
- **Тип:** feature
|
||||
- **Категория:** Очередь — Каркас приложения: экранов нет и собирать их нечем, а на экране стоят настройки, удаление, уровни текста и статистика.
|
||||
- **Категория:** Очередь — Каркас идёт сразу за контрактом: на нём стоят все экраны, а сам он ждёт готовой формы ответов
|
||||
- **Зачем:** Экранов нет и собирать их нечем: ни сборки фронтенда, ни раздачи статики в проекте не существует.
|
||||
|
||||
Каркас готовит четыре экрана — загрузку, состояние задачи, чтение текста и
|
||||
список, — но сам по себе пользователю ничего не даёт. Видимое от него одно:
|
||||
приложение открывается и достаёт данные с живого сервера, а не отдаёт пустую
|
||||
страницу.
|
||||
Каркас готовит экраны — загрузку, рубеж записи, чтение текста и список, — но сам
|
||||
по себе пользователю ничего не даёт. Видимое от него одно: приложение
|
||||
открывается и достаёт данные с живого сервера, а не отдаёт пустую страницу.
|
||||
|
||||
Фреймворк выбран 2026-08-11 — Vue 3 с роутером пятой версии и сборкой Vite
|
||||
([ADR](../../docs/adr/ADR-2026-08-11-spa-on-vue.md)); правила кода приложения
|
||||
@@ -16,8 +15,9 @@
|
||||
## Затрагивает
|
||||
|
||||
- новый каталог фронтенда: исходники, зависимости, конфигурация сборки;
|
||||
- роут, отдающий `index.html` на неизвестный путь вне `/api/`: адреса маршрутов
|
||||
обычные, а не после решётки;
|
||||
- роут, отдающий `index.html` на неизвестный путь вне корней сервиса — `/api/`
|
||||
у хранилища, `/app/` у приложения, `/auth/` у входа, `/_/` у панели, плюс
|
||||
`/health` и `/metrics`: адреса маршрутов обычные, а не после решётки;
|
||||
- `Taskfile.yml` — шаг сборки статики и его место в `task gate` и `task image`;
|
||||
- `Dockerfile` — сборка статики внутри образа, чтобы выкладка не зависела от
|
||||
машины разработчика;
|
||||
@@ -38,9 +38,9 @@
|
||||
- Шаг сборки статики входит в `task gate` и краснеет при ошибке сборки. Оракул —
|
||||
намеренно сломанный исходник роняет `task gate`.
|
||||
- Обновление страницы на любом маршруте приложения открывает тот же экран, а
|
||||
адрес внутри `/api/` в приложение не проваливается. Оракул — тест на два
|
||||
запроса: неизвестный путь вне `/api/` отдаёт разметку, неизвестный путь внутри
|
||||
`/api/` отдаёт ошибку контракта.
|
||||
адрес внутри корня сервиса в приложение не проваливается. Оракул — тест на три
|
||||
запроса: неизвестный путь вне корней отдаёт разметку, неизвестный путь внутри
|
||||
`/api/` и внутри `/app/` отдаёт ошибку контракта.
|
||||
|
||||
## Рамки
|
||||
|
||||
|
||||
Reference in New Issue
Block a user