Files
transcriber/docs/adr/ADR-2026-08-15-app-namespace.md
T
av 3a2da3004b приём и чтение записей сведены к одному контракту приложения
- адреса приложения переехали в своё пространство `/app/`, опрос готовности
  убран целиком: рубеж и причину остановки владелец узнаёт карточкой записи,
  текст — отдельным адресом названного вида
- заведена единая точка отображения доменной ошибки и слой, приводящий к той же
  форме отказы библиотеки: тело несёт машиночитаемый код рядом с сообщением
- у записи появились имя файла отправителя, длительность и размер своими
  колонками, а у ленты владельца — свой индекс: без него страница сканировала
  весь архив сервиса
2026-08-15 13:51:23 +03:00

40 lines
2.9 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.
# Приложение живёт своим пространством адресов, а не общим с хранилищем
- **Дата:** 2026-08-15
- **Источник:** openspec/changes/archive/2026-08-15-app-json-contract/design.md,
раздел «Переезд в `/app/`, а слой сессии — на корень»
## Решение
Все адреса приложения переехали из `/api/` в собственный корень `/app/`, а слой
предъявления сессии повешен на **группу корня**, а не на перечень адресов.
## Почему
Пространство `/api/` принадлежит хранилищу: оно вешает туда собственные наборы
адресов, и поменять этот префикс нельзя — он литерал библиотеки, а не настройка.
Свободных имён сегодня хватает, но соседство остаётся: обновление библиотеки
вправе занять новое имя рядом с нашим, и разойдутся они молча — тем же адресом
начнёт отвечать не тот обработчик.
Прецедент в проекте уже принят тем же доводом: адреса входа вынесены на `/auth/*`
решением от 2026-08-12.
Слой на корень, а не на перечень: «перечень рос бы с каждым новым адресом
приложения, и забытый в нём адрес молча перестал бы принимать куку».
## Последствия
- `+` соседство с чужими адресами кончилось: имя, занятое библиотекой, наших
адресов больше не задевает;
- `+` новый адрес приложения получает слой предъявления по построению, а не по
памяти того, кто его добавил;
- `` правило неизвестного пути перечисляет теперь четыре корня сервиса вместо
одного: `/api/`, `/app/`, `/auth/` и `/_/`;
- `` ограничитель частоты хранилища, настроенный на его собственный корень,
наших адресов не покрывает — своё правило заводится нами, и его включение
вводит в действие заодно умолчательные правила хранилища;
- `` ломка полная: прежние адреса приёма и опроса отвечают `404`. Оплачено
стадией — на сервере данных нет, внешней программы на прежнем контракте не
существует.