botruntime
Эксплуатация

Консоль: обзор, доступ и навигация

Веб-консоль 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 и списке процессов:

terminal
printf '%s' "$MY_SECRET" | brt secret set STRIPE_KEY

Дальше

On this page