Skip to content

Настройки конфигурации платформы

ℹ️ В этом разделе — примеры и пояснения по основным конфигурационным файлам для системы:

  • settings.yaml — глобальные настройки для всех сервисов, централизованное переопределение параметров (например, processing_interval, batch_size и др.). Рекомендуется изменять только при необходимости, так как это влияет на работу всех сервисов.
  • Управление плагинами — централизованная система включения/отключения плагинов через plugin_management в settings.yaml

🔌 Управление плагинами

Назначение: Централизованная система включения/отключения плагинов (утилит и сервисов) через конфигурацию ядра.

Пример конфигурации:

yaml
# config/settings.yaml (глобальные настройки)
plugin_management:
  # Управление сервисами (основа запуска приложения)
  services:
    default_enabled: false    # Сервисы по умолчанию выключены
    disabled_services: []     # Список отключенных сервисов
    enabled_services: []      # Список включенных сервисов
  
  # Управление утилитами (тонкая настройка вспомогательных компонентов)
  utilities:
    default_enabled: true     # Утилиты по умолчанию включены
    disabled_utilities: []    # Список отключенных утилит
    enabled_utilities: []     # Список принудительно включенных утилит

Приоритет настроек:

  1. Глобальные настройки (config/settings.yaml) - единственный источник настроек
  2. Значение по умолчанию зависит от типа плагина:
    • Сервисы: false (выключены по умолчанию)
    • Утилиты: true (включены по умолчанию)

⚠️ ВАЖНО: Если секция plugin_management отсутствует полностью - сервисы выключены, утилиты включены!

Примеры использования:

Отключение тяжелых сервисов в тестах:

yaml
# config/settings.yaml
plugin_management:
  services:
    disabled_services:
      - "gigachat_service"
      - "salute_speech"
      - "promo_manager"

Минимальная конфигурация для продакшена:

yaml
# config/settings.yaml
plugin_management:
  services:
    default_enabled: true  # По умолчанию включено
    disabled_services:
      - "gigachat_service"  # Отключаем только тяжелые сервисы
      - "salute_speech"

Строгая конфигурация (все отключено по умолчанию):

yaml
# config/settings.yaml
plugin_management:
  services:
    default_enabled: false  # По умолчанию отключено
    enabled_services:
      - "logger"
      - "database_service"
      - "tg_event_bot"
      - "hub_service"

Разработка с отладкой:

yaml
# config/settings.yaml
plugin_management:
  services:
    default_enabled: true  # По умолчанию включено
    disabled_services:
      - "gigachat_service"  # Отключаем тяжелые AI сервисы

💡 Преимущества централизованного управления:

  • Компактность - все настройки включения/отключения в одном месте
  • Централизация - не нужно искать настройки по разным файлам
  • Простота - легко включать/отключать группы плагинов
  • Производительность - отключенные плагины не потребляют ресурсы

⚠️ Важные особенности:

  • Отключенные плагины не инициализируются и не потребляют ресурсы
  • Зависимости - если отключен плагин, все зависящие от него плагины также не запустятся
  • Циклические зависимости - система автоматически их обнаруживает и исключает проблемные плагины
  • Значение по умолчанию зависит от типа:
    • Сервисы: false (нужно явно включать)
    • Утилиты: true (включены по умолчанию)
  • Безопасность - система не запустит случайно лишние сервисы без явного указания

🔍 Разъяснение логики:

Случай 1: Секция plugin_management присутствует

yaml
plugin_management:
  services:
    default_enabled: true   # Все сервисы включены по умолчанию
    disabled_services: []    # Исключения (отключенные)
    enabled_services: []     # Явно включенные (если default_enabled: false)
  utilities:
    default_enabled: true   # Все утилиты включены по умолчанию
    disabled_utilities: []   # Исключения (отключенные)
    enabled_utilities: []    # Явно включенные (если default_enabled: false)
  • Результат: Все плагины включены, кроме указанных в списках отключенных

Случай 2: Секция plugin_management отсутствует

yaml
# Нет секции plugin_management вообще
  • Результат: Сервисы выключены, утилиты включены (система не запустится без сервисов)

Случай 3: Частичная конфигурация

yaml
plugin_management:
  services:
    default_enabled: false  # Все отключены по умолчанию
    enabled_services:       # Явно включаем только нужные
      - "logger"
      - "database_service"
  • Результат: Включены только сервисы из enabled_services, утилиты включены по умолчанию

⚙️ settings.yaml

Назначение: Глобальные настройки для всех сервисов, централизованное переопределение параметров и управление запуском сервисов.

Пример конфигурации:

yaml
# Управление плагинами
plugin_management:
  # Управление сервисами (основа запуска приложения)
  services:
    default_enabled: false    # Сервисы по умолчанию выключены
    disabled_services:        # Список отключенных сервисов
      - "gigachat_service"
      - "salute_speech"
    enabled_services:         # Список включенных сервисов
      - "hub_service"
      - "tg_event_bot"
  
  # Управление утилитами (тонкая настройка вспомогательных компонентов)
  utilities:
    default_enabled: true     # Утилиты по умолчанию включены
    disabled_utilities:       # Список отключенных утилит
      - "cache_service"
    enabled_utilities: []     # Список принудительно включенных утилит

# Глобальные настройки системы
global:
  file_base_path: "resources"    # Базовая папка для всех файлов (вложений, аудио и т.д.)

# Настройки логирования
logger:
  console_enabled: true   # Управление выводом логов в консоль
  file_enabled: false    # Управление выводом логов в файл

# Настройки форматирования дат
datetime_formatter:
  default_timezone: "Europe/Moscow"  # Часовой пояс по умолчанию
  date_format: "%d.%m.%Y"            # Формат даты
  time_format: "%H:%M:%S"            # Формат времени

Пояснения:

  • settings.yaml — глобальный файл для централизованных настроек системы и сервисов.
  • plugin_management — секция управления плагинами:
    • services — управление сервисами (основа запуска приложения)
    • utilities — управление утилитами (вспомогательные компоненты)
  • global — секция с глобальными настройками системы:
    • file_base_path — базовый путь для всех ресурсов (файлы, аудио, изображения и т.д.)
  • logger — настройки логирования:
    • console_enabled — включение/отключение вывода логов в консоль
    • file_enabled — включение/отключение записи логов в файл
  • datetime_formatter — настройки форматирования дат:
    • default_timezone — часовой пояс по умолчанию
    • date_format — формат отображения даты
    • time_format — формат отображения времени
  • Настройки сервисов и утилит — опциональные секции для переопределения параметров конкретных сервисов и утилит:
    • Остальные параметры — переопределение настроек из config.yaml сервисов/утилит
    • Управление запуском — через секцию plugin_management (см. раздел "Управление плагинами")
  • Описание и смысл конкретных параметров смотрите в соответствующих config.yaml сервисов/утилит.
  • Можно добавлять новые секции для других сервисов/утилит по аналогии.

💡 Важные особенности:

Безопасность:

  • Никогда не коммитьте API credentials в репозиторий
  • Используйте переменные окружения для хранения секретов

Переопределение настроек:

  • Можно переопределить любые параметры утилит через глобальные настройки
  • Переменные окружения автоматически разрешаются во всех настройках

Coreness — Create. Automate. Scale.