/admin/launcher. Отдельное web-приложение и отдельная
авторизация для control-plane не создаются.
Поток запроса
Browser получает только DTO.LAUNCHER_CONTROL_PLANE_ADMIN_TOKEN и содержимое
token-файла никогда не передаются в React state, tRPC response или логи.
buildId, releaseId и элементы affectedBuildIds принимают только переносимые
catalog identifiers: первая ASCII-буква или цифра, затем буквы, цифры, ., _
и -, максимум 128 байт. Значения вроде .., .hidden, путей и строк с
пробелами отклоняются на BFF-границе и повторно проверяются launcher-server до
обращения к filesystem/S3.
Конфигурация backend
Конфигурация считается выключенной, если не задано ни одного значения.
Частичная конфигурация отклоняется при запуске. В production inline token
запрещён; нельзя одновременно задавать оба источника токена.
Разделы и права
Родительское право
admin.launcher покрывает дочерние операции. UI скрывает
недоступные вкладки, однако окончательная проверка всегда выполняется в tRPC.
S3
Launcher-раздел показывает только inventory служебного namespace. Bucket, endpoint и credentials уже принадлежат общему S3-разделу сайта, поэтому в launcher-admin нет дублирующей формы настроек. Launcher-server использует отдельную least-privilege identity дляlauncher/control-plane/* в том же
bucket.
