feat(admin): add runtime overview and independent saved UTM link builder
deploy-preland / deploy zoomstage.online (push) Successful in 57s

This commit is contained in:
Panfilov Konstantin committed 2026-10-25 18:17:23 +03:00
1 parent 48c71f3300
commit 2cfa2e2d2e
10 files changed
+421 -8

No files matched your search

+21
View File
@@ -8,6 +8,27 @@
Спецификация и план — `docs/superpowers/{specs,plans}/2026-10-25-preland22-*` в репозитории,
копии и фактический статус — в базе знаний, основной реестр — preland#22.
## Сводка и конструктор ссылки
Первый экран читает сохранённые конфиги всех подключений: основной сайт, реквизиты,
дополнительные поля, default и все веса UTM. У каждой колонки своё время чтения,
версия, обновление и ошибка; при отказе прежний снимок явно помечается. Обновление
сводки не сбрасывает черновик редактора и не меняет его версию для CAS.
Конструктор работает отдельно: значения или «Рандом» в восьми списках, затем
«Сформировать и сохранить». Последний выбор и точный URL сохраняются на сервере
отдельно по ID домена, восстанавливаются после перезагрузки. Изменение списка скрывает
старую ссылку до явного сохранения. Значащая цифра стоит на пятой позиции метки,
`0` означает выбор по весам. Конструктор не меняет config, default, веса или наборы,
не создаёт задания; сохранённый выбор доступен и при недоступном хостинге.
`GET /api/link-builder?target=ID` читает выбор, `POST /api/link-builder` сохраняет
`{target,selection}` с ровно восемью каноническими UTM-ключами. Действуют общий вход
и CSRF. Состояние находится в приватном `state/link-builder-ID.json` с режимом0600.
При переименовании домена меняется origin ссылки, выбор и сохранённые метки остаются.
Неизвестная в текущем runtime/catalog группа сопровождается предупреждением;
конструктор не исправляет конфигурацию автоматически.
## Состав и доступы
`compose.yaml` запускает web и отдельный worker из одного неизменяемого образа. Нужны