feat: единая админка runtime-конфигов и indpic (#22)
deploy-preland / deploy zoomstage.online (push) Successful in 1m1s

This commit is contained in:
Panfilov Konstantin committed 2026-10-25 11:33:56 +03:00
1 parent 5b6b2d2053
commit 9515c1c62b
52 files changed
+2459 -34

No files matched your search

@@ -1,6 +1,7 @@
# Единая админка прелендингов — preland#22
Дата: 25.10.2026. Статус: проект на согласование; реализация и выпуск ещё не выполнены.
Дата: 25.10.2026. Владелец поручил выполнение до production без повторных подтверждений;
реализация и приёмка ведутся по preland#22. Фактический выпуск отражается в задаче и KB.
Реестр: http://git.dira89kv.beget.tech:3000/anton/preland/issues/22.
Размещение и доступы: preland#21. Секреты в документ не входят.
@@ -70,8 +71,11 @@ modules/cpanel/views/settings/index.php, соответствующие дейс
на основном сайте не проверено» в форме и результате; сохранение не выдаётся за
проверку API. Это решение исполнителя сохраняет независимость редактора от API;
соответствующие состояния включены в приёмку. Выдуманного списка групп нет.
Сумма весов может быть нулевой: действующий
преленд тогда использует default. Адрес сайта — допустимый HTTPS-хост без пути.
Сумма весов может быть нулевой: действующий generic rnd выбирает первый ключ weights
по порядку config.json (при пустой таблице — default); cons отдельно использует default.
Назначаемый default indpic/degr/tp должен присутствовать в таблице весов, в том числе
с нулевым весом. Для indpic проверяются все явно настроенные номера: нулевой вес не
отменяет доступность номера по прямому UTM. Адрес сайта — допустимый HTTPS-хост без пути.
## Сохранение и массовые операции
@@ -106,7 +110,13 @@ SSH доступен на начальных REG.RU-хостах и позвол
из существующего IndpicSetStorage. Лимиты ZIP, распаковки и времени задаются сервером.
Проверенный набор передаётся в непубличную подготовительную папку на целевом хосте,
проверяются все файлы/SHA-256, затем переключается каталог с резервом и откатом при
ошибке. Папки подготовки/резерва никогда не обслуживаются веб-сервером.
ошибке. Для exact local bind mount подготовка находится в скрытой папке того же mount
с правами0700, публичный Apache работает другим UID; обязательны прямой и внешний
HTTP403 probe. Резерв находится в приватном state вне webroot; remote SFTP использует
sibling-папку. Папки подготовки/резерва никогда не обслуживаются веб-сервером.
Переключение имеет два rename и durable journal: живой supervisor восстанавливает
каталог после аварии child, перезапуск — при следующей операции транспорта. Это
восстановление после прерывания с кратким окном, а не Linux atomic exchange.
Для уже загруженного по SFTP набора файлы проверяются тем же валидатором.
Загрузка не меняет default и веса автоматически. Назначение default — явная операция
@@ -169,6 +179,7 @@ traversal, лимиты, ошибка публикации и сохранени
На усмотрение исполнителя: PHP-библиотека SFTP, детали приватного файлового реестра,
лимиты и хранение заданий, распараллеливание в пределах ресурсов. Выбор подтверждается
тестами и совместимостью с существующим хостингом; установки на Windows-хост нет.
Пока не выполнены: согласование этого проекта, реализация, проверки, настройка DNS/TLS,
выдача ограниченных доступов и запуск. Секреты/возможности среды требуют фактической
проверки; исторический успешный SFTP-вход не доказывает готовность центральной админки.
Согласование выполнения получено25.10. Код и проверки фиксируются в задачах плана;
неполученный доступ, непроверенный обязательный сценарий и незавершённый выпуск
не скрываются закрытием задачи. Исторический успешный SFTP-вход не доказывает
готовность центральной админки. Runtime/секреты проверяются на фактической среде.