Master Bot — Система управления тенантами
Master Bot — это системный бот для управления тенантами платформы Coreness, работающий по аналогии с @BotFather в Telegram.
🎯 Назначение
Master Bot предоставляет полнофункциональную систему управления для:
- Выбора и переключения между доступными тенантами
- Настройки конфигурации тенантов (токены, параметры)
- Управления Storage (Tenant Storage и User Storage)
- Синхронизации данных с GitHub репозиториями
- Контроля доступа на основе ролей пользователей
- Выбора языка интерфейса (русский / английский)
📂 Структура
master-bot/
├── tg_bot.yaml # Конфигурация бота
│
├── scenarios/ # Сценарии бота
│ ├── main/ # Основной функционал
│ │ ├── commands.yaml # Команды (/start, /help, /me, /file, /language)
│ │ ├── access.yaml # Проверка доступа пользователей
│ │ ├── settings.yaml # Настройки пользователя (язык)
│ │ ├── errors.yaml # Обработка ошибок
│ │ └── default.yaml # Дефолтные сценарии (default_check, check_message)
│ │
│ ├── management/ # Управление тенантами
│ │ ├── tenant.yaml # Выбор и управление тенантами
│ │ ├── tenant_config.yaml # Настройка конфигурации (AI токен и др.)
│ │ ├── tenant_storage.yaml # Управление Tenant Storage
│ │ └── user_storage.yaml # Управление User Storage
│ │
│ └── scheduled/ # Автоматические задачи
│ └── cleanup_temp_storage.yaml # Очистка временных данных
│
└── storage/ # Данные и локализация
├── main.yaml # Основные настройки (пользователи, доступ)
├── i18n_default.yaml # Переводы: ошибки, доступ, язык
├── i18n_command.yaml # Переводы: /start, /help
├── i18n_tenant.yaml # Переводы: меню тенанта, конфиг, токены
├── i18n_user_storage.yaml # Переводы: User Storage
└── i18n_tenant_storage.yaml # Переводы: Tenant Storage🚀 Основные возможности

1. Выбор языка
- Команда:
/language - Доступно: всем пользователям
- Действие: выбор языка интерфейса (Русский / English). Выбранный язык сохраняется в User Storage и применяется ко всем сценариям Master Bot (меню, сообщения, кнопки).
Перед операциями выполняется сценарий default_check: проверка доступа и загрузка переводов для текущего языка пользователя.
2. Управление тенантами
Выбор тенанта
- Для обычных пользователей: доступны только тенанты, где они являются владельцами (
tenant_owner) - Для администраторов: доступны все тенанты системы (системные + публичные)
- User Storage: активный тенант сохраняется в
active_tenant_idдля быстрого доступа
Информация о тенанте
Меню тенанта отображает:
- Статус бота: включен/выключен
- Статус работы: работает/не работает
- Дата обновления: последняя синхронизация
- Последняя ошибка: если возникала
3. Настройка конфигурации
Установка токена бота
- Ввод токена: валидация формата
число:строка(формат Telegram Bot API) - Удаление токена: ввод
nullилиnone - Автоматическая проверка: токен проверяется при запуске пулинга
Установка AI токена
- Ввод токена: для работы с AI провайдерами (OpenRouter, Azure OpenAI и др.)
- Удаление токена: ввод
nullилиnone - Валидация: проверка формата токена (буквы, цифры, дефисы, подчеркивания)
4. Управление Storage
Tenant Storage
Полнофункциональное управление хранилищем атрибутов тенанта:
- Просмотр групп: список всех групп в Storage
- Просмотр группы: вывод в YAML формате
- Просмотр ключа: просмотр значения конкретного ключа
- Редактирование: добавление/изменение значений
- Удаление: удаление ключей или целых групп
Формат ввода:
группа # Просмотр группы
группа ключ # Просмотр значения ключа
группа ключ значение # Изменение/добавление значенияПример:
settings # Просмотр группы settings
settings max_users # Просмотр значения max_users
settings max_users 100 # Установка max_users = 100User Storage
Аналогичное управление хранилищем данных пользователей с теми же возможностями (ввод: user_id, user_id ключ, user_id ключ значение).
5. Синхронизация данных
Функция: 🔄 Синхронизация (в меню тенанта)
Выполняет полную синхронизацию тенанта:
- Pull из GitHub: загрузка последних изменений из репозитория
- Обновление сценариев: синхронизация всех YAML файлов сценариев
- Обновление Storage: синхронизация хранилища атрибутов
- Обновление конфигурации: синхронизация настроек бота
6. Контроль доступа
Уровни доступа:
- Администратор: доступ ко всем тенантам и всем функциям
- Владелец тенанта: доступ к своим тенантам и управлению ими
- Обычный пользователь: только публичная информация (
/me)
Проверка доступа: перед операциями выполняется сценарий default_check (проверка доступа и загрузка языка/переводов).
7. Автоматические задачи
Очистка временных данных (cleanup_temp_storage)
- Расписание: каждый день в 3:00 ночи
- Функция: удаление временных данных из Storage (ключи с префиксом
temp.*)
8. Команды
| Команда | Описание |
|---|---|
/start | Запуск бота, главное меню |
/help | Справка по возможностям бота |
/language | Выбор языка интерфейса (RU/EN) |
/me | Публичная информация о себе (ID, username, имя, язык) |
/file | Скрытая команда для разработчиков: получение file_id и type вложений |
🛡️ Безопасность
- Валидация доступа: проверка прав перед каждой операцией (через
default_check) - Проверка владельца: обычные пользователи видят только свои тенанты
- Валидация токенов: проверка формата перед сохранением
- Состояния пользователей: тайм-ауты на ввод данных (300 секунд)
- Подтверждения: критичные операции требуют подтверждения