Skip to content

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

🚀 Основные возможности

Master Bot

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 = 100

User 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 секунд)
  • Подтверждения: критичные операции требуют подтверждения

Coreness — Create. Automate. Scale.