Консоль: обзор, доступ и навигация
Веб-консоль botruntime.ru: вход по учётной записи, воркспейсы и роли, командная палитра и карта разделов бота.
Консоль — веб-приложение для управления ботами в облаке botruntime.ru.
Это SPA поверх того же API, которым пользуются brt и ваши скрипты.
У консоли нет отдельной привилегированной двери. Она ходит по тем же публичным маршрутам API. Всё, что вы видите и меняете в консоли, доступно и напрямую по API. Консоль лишь даёт удобную оболочку.
Отсюда главный принцип: доступ в консоли — это членство в воркспейсе и роль, а не отдельный админский режим. Вы видите те воркспейсы и тех ботов, где состоит ваш аккаунт. И делаете ровно то, что разрешает роль. Супер-доступа мимо API нет.
Тонкий клиент
Консоль не хранит данные и не держит бизнес-логику. Она рендерит ответы API и отправляет обратно ваши действия.
Каждый запрос из браузера несёт токен и проходит ту же проверку тенантности, что и машинный вызов. Воркспейс и роль берутся из токена, а не из того, что нарисовано на экране.
Не можете сделать по API под своим токеном — не сделаете и из консоли. UI прячет недоступные кнопки заранее, но финальное слово за сервером.
Вход
Вы входите в консоль по учётной записи через внешний OIDC-провайдер. Провайдер подтверждает личность и выдаёт короткоживущий session-JWT. Пароли и профили людей платформа не хранит — только связку «аккаунт → его воркспейсы и роли».
JWT короткоживущий, поэтому консоль его не кэширует. Перед каждым запросом она
берёт у провайдера свежий токен и кладёт в заголовок Authorization. Истёкшая
сессия не тянется через долго открытую вкладку.
Мост «вход → сеть» работает по принципу fail-loud. Если данные запросятся раньше, чем провайдер готов, консоль поднимет явную ошибку и не пойдёт в сеть без авторизации. Тихого запроса «как-нибудь» не будет.
Выход — в меню аккаунта внизу сайдбара. Пока вы не вошли, консоль показывает только экран входа.
Выбранный воркспейс
Почти всё в консоли принадлежит воркспейсу: боты, участники, диалоги, таблицы,
интеграции. Поэтому у консоли всегда есть выбранный воркспейс. Он живёт в
localStorage и переживает перезагрузку вкладки. Переключатель — вверху сайдбара
слева.
Ключевой инвариант кэша: id выбранного воркспейса подмешивается в каждый ключ запроса. Данные разных воркспейсов лежат под разными ключами и не протекают друг в друга. Сменили воркспейс — увидели его данные, а не остатки предыдущего.
Пока воркспейс не выбран, разделы показывают приглашение выбрать или создать воркспейс. Не пустую страницу и не ошибку — это осознанное состояние.
Роли
Роль в текущем воркспейсе приходит из GET /v1/admin/me вместе со списком
воркспейсов. Она определяет, какие управляющие элементы вообще отрисуются.
| Роль | Что делает в консоли |
|---|---|
member | Читает данные бота: диалоги, события, логи, аналитику, evals, таблицы, файлы. |
admin | Всё выше плюс пишет конфигурацию: интеграции, переменные, строки таблиц; читает аудит. |
owner | Всё выше плюс единолично управляет составом участников воркспейса. |
Гейтинг двойной. Консоль скрывает недоступные действия — форму добавления
участника видит только owner. Сервер перепроверяет право до выполнения.
Скрытая кнопка — удобство, реальная граница на бэкенде.
Строка владельца (owner) неизменяема: его роль нельзя понизить, а самого
владельца — удалить из воркспейса. Так воркспейс никогда не остаётся без
владельца. Полная матрица прав — на странице Воркспейсы, участники и
токены.
Карта навигации
Сайдбар контекстный. Вне бота он показывает разделы воркспейса. Внутри бота — переключатель ботов и разделы выбранного бота плюс ссылку назад к списку. Активный раздел подсвечивается по текущему маршруту.
Уровень воркспейса
| Раздел | Назначение |
|---|---|
| Боты | Список ботов воркспейса и вход в конкретного бота. |
| Участники | Люди в воркспейсе и их роли (управление — у owner). |
| Аудит | Журнал действий воркспейса (доступен admin и owner). |
Уровень бота
Разделы одного бота сгруппированы по назначению:
| Группа | Раздел | Что внутри |
|---|---|---|
| — | Обзор | Сводка по боту: статус, ключевые счётчики. |
| Монитор | Диалоги | Диалоги и сообщения бота, инспектор переписки. |
| События | Поток событий бота. | |
| Логи | Рантайм-логи бота. | |
| Аналитика | Агрегаты по диалогам и потреблению. | |
| Evals | История проверок качества, регрессии и результаты assertions. | |
| Знания | Таблицы | Строки таблиц бота, просмотр и правка. |
| Данные | Файлы | Файлы бота. |
| Подключения | Интеграции | Установленные интеграции и их подключение. |
| Настройки | Переменные | Config-переменные и секреты бота. |
Значения секретов из раздела «Переменные» невосстановимы: платформа хранит их
зашифрованными и наружу не отдаёт. Задать переменную можно в консоли или
командой brt config set / brt secret set — см. CLI.
Шелл
Оболочка одинакова на всех страницах:
- Хлебные крошки в топбаре собираются из маршрута и всегда показывают, где вы находитесь. Каждый уровень, кроме текущего, кликабелен.
- Переключатель воркспейса вверху сайдбара и переключатель бота внутри бота позволяют прыгать между тенантами и ботами, не возвращаясь к спискам.
- Меню аккаунта и выход — внизу сайдбара, там же ссылка в настройки аккаунта.
Командная палитра
Палитра открывается по ⌘K (или Ctrl+K) на любой странице и даёт переход без мыши: к любому боту воркспейса, к разделам текущего бота, к общей навигации. Ввод фильтрует список, стрелки и Enter выбирают.
Две оси доступа
Доступ к платформе идёт по двум параллельным осям. Консоль работает по первой, автоматизация — по второй. Друг друга они не подменяют.
- Человеческий вход (OIDC). Вы входите в консоль по учётной записи.
Session-JWT ходит по human-дереву API (
/v1/admin/me,/v1/admin/workspaces/*). Scope — членство человека в воркспейсах. - Машинный доступ (ключ или PAT).
brt, боты и сервисы предъявляют api-ключ или личный токен (PAT). Scope выводится из самого ключа.
Ключ бота показывается ровно один раз — при выпуске, дальше невосстановим.
PAT для brt возьмите на странице «Аккаунт» в консоли — он тоже показывается
один раз. Полная таксономия токенов и правила резолва тенанта — на странице
тенантности.
Секреты и токены не передавайте аргументами командной строки. Значение PAT или секрета задавайте через stdin или файл, иначе оно осядет в истории shell и списке процессов:
printf '%s' "$MY_SECRET" | brt secret set STRIPE_KEY