Админка
«Админка» — консоль владельца установки. Пункт меню появляется только у пользователя с глобальной ролью admin, и все её запросы к API закрыты тем же правом: у обычного редактора эти данные не откроются, даже если он наберёт адрес вручную.
Экран разделён на три вкладки: «Пользователи», «Тарифы» и «Журнал аудита».
Тарифы и пользователи
Пользователи
1–50 из 214
| Роль | Тариф | Кредиты | Статус | |
|---|---|---|---|---|
| ada@example.com | админ | paid | 1 240 | активна |
| boris@example.com | редактор | free | 18 | активна |
| carol@example.com | редактор | paid | 0 | приостановлен |
Пользователи
Поиск по email или имени, постранично по 50 записей. В таблице — роль аккаунта, назначенный тариф, остаток кредитов и статус подписки. Клик по строке открывает карточку пользователя, а в ней четыре блока.
Роль аккаунта. Переключатель «редактор» / «админ». Роль читается из базы на каждый запрос, поэтому повышение и понижение действуют сразу, без перевыпуска токена. Админ обходит тарифные ограничения — выдавать эту роль вместо повышенных лимитов не стоит.
Подписка. Выбор тарифа, баланс кредитов и статус («активна» или «приостановлена»). Кнопка «Применить подписку» записывает всё три значения разом.
Квоты и использование. Баланс, израсходованные и включённые в тариф кредиты, полоски занятого места по базе знаний, файлам и базе данных, а также действующие значения параллельности и таймаута. Ниже — полный список действующих лимитов; те из них, что заданы персонально, помечены значком «переопределено».
Персональные переопределения. Форма поверх тарифа: любое поле можно изменить только для этого пользователя, пустое поле возвращает значение тарифа. Сначала нужно назначить тариф — переопределения без него не сохраняются.
Тарифы
Тариф — это шаблон лимитов, который потом назначают пользователям на вкладке «Пользователи». В списке видны код, название, описание, число настроенных ограничений и метки: «системный», «активный» или «неактивный».
Редактор тарифа открывается кнопкой «Изменить», новый создаётся кнопкой «Новый тариф».
Код (free, paid, custom …) задаётся при создании и дальше неизменяем — по нему
тариф находят в коде и миграциях. Системные тарифы удалить нельзя; у остальных рядом
есть корзина с подтверждением.
Ограничения сгруппированы по смыслу: кредиты и период их начисления, параллельность и
исполнение, квоты хранилища (значение 0 = без ограничения), штучные лимиты
(воркфлоу, коллекции, базы знаний, файлы, участники), функции-переключатели
(публичный чат, свои LLM-интеграции, white-label, перерасход кредитов). Отдельный блок
«Дополнительно» редактируется как сырой JSON: списки разрешённых типов нод, моделей,
видов интеграций и потолков параметров нод. Некорректный JSON форма не принимает, а
неизвестный ключ отвергает сервер.
Журнал аудита
Хронология чувствительных действий, поиск по названию действия, постранично по 50
записей. В таблице — время, действие, результат (success или failure), инициатор и
рабочее пространство. Клик по строке раскрывает карточку с целью действия, IP-адресом и
полным JSON деталей.
Записываются, в частности: входы и регистрации (auth.login, auth.register), смена
роли аккаунта (user.role_changed), операции с тарифами и подписками (plan.created,
plan.updated, plan.deleted, subscription.assigned), работа с секретами и
интеграциями (secret.*, connection.*), изменения рабочего пространства
(workspace.member.*, workspace.brand.updated, workspace.db_quota_changed), оплата (billing.*), очистка истории Telegram
(telegram.history.erase) и действия модерации (telegram.moderate.*).
Неудачная попытка входа тоже попадает в журнал — с результатом failure, — поэтому
подбор пароля виден без дополнительных инструментов.