- адреса приложения переехали в своё пространство `/app/`, опрос готовности убран целиком: рубеж и причину остановки владелец узнаёт карточкой записи, текст — отдельным адресом названного вида - заведена единая точка отображения доменной ошибки и слой, приводящий к той же форме отказы библиотеки: тело несёт машиночитаемый код рядом с сообщением - у записи появились имя файла отправителя, длительность и размер своими колонками, а у ленты владельца — свой индекс: без него страница сканировала весь архив сервиса
2.9 KiB
2.9 KiB
Приложение живёт своим пространством адресов, а не общим с хранилищем
- Дата: 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. Оплачено стадией — на сервере данных нет, внешней программы на прежнем контракте не существует.