Триггер — ручной, осознанный
→ Platform Settings
Режим включает только Owner — тумблером в настройках
платформы, с подтверждением. Состояние —
platform_settings.maintenance_mode
(boolean, singleton). Не часть деплоя:
rolling-обновление бэкенда идёт без простоя. Тумблер — для
редких работ с осознанным простоем (тяжёлая миграция БД,
несовместимое изменение схемы); при включении sync
и агенты ставятся на паузу.
Для пользователей — полная заглушка
→ System Screens
При включённом флаге бэкенд отвечает
HTTP 503 с
Retry-After (недоступность временная, не «страница
удалена»), фронтенд рендерит полноэкранную заглушку
maintenance. Выбран полный экран, а не read-only.
Доступ администратора в обход режима
Owner и Admin при включённом режиме сохраняют доступ — иначе
оператор запер бы сам себя и не смог проверить платформу перед
снятием режима. Им
503 не отдаётся; обычные
пользователи видят заглушку.
Жёсткий режим — на уровне проксиv2
Тумблер выше работает, пока живо приложение. Если простаивает
сам бэкенд (перезапуск, обновление контейнера), флаг недоступен
вместе с ним — статичную заглушку тогда отдаёт reverse proxy
(Nginx). Это отдельный «жёсткий» режим на уровне
инфраструктуры; в первой итерации не реализуется.