# Общая конфигурация плагинов и модулей

## Конфигурационные файлы

Конфигурация проекта может состоять из одного и более yml-файлов, которые хранятся в каталоге проекта. Данный каталог указывается параметром `-cfg` при запуске приложения. При загрузке сканируется весь каталог (без вложенных каталогов), и загружаются все найденные yml-файлы (кроме скрытых, начинающихся с точки).

Конфигурация записывается в YAML-формате.

Внимание! В YAML отступы имеют значение. Для отступов используется пробел. TAB'ы использовать запрещено.
https://www.youtube.com/watch?v=AXLoRpKnK8U

Общий формат конфигурационного файла:

    param1: value
    param2: value

    plugin.pluginA:
      enable: on
      module.moduleA1
        modprm1: value
        modprm2: value
      module.moduleA2
        modprm1: value
        modprm2: value

    plugin.pluginB:
      enable: off
      module.moduleB1
        modprm1: value

        tag.values:
          tagname1: value
          tagname2: value

        tag.flags:
          tagname1: none
          tagname2: autosave hidden

## Общие настройки для плагинов

plugin.name | название плагина (Правила именования модулей)
enable | разрешение работы плагина
off - плагин отключен и не загружается при старте приложения
on - плагин включен

## Общие настройки для модулей

module.name | название модуля
enable | разрешение работы модуля
off - модуль загружается при старте приложения, но не выполняется в runtime
on - модуль выполняется в runtime
tag.values | переопределение значений тегов, где tagname имя тега модуля, либо regex-выражение
tag.flags | переопределение флагов тегов, где tagname имя тега модуля, либо regex-выражение. Флаги указываются через пробел или запятую:
none
autosave - значение тега сохраняется (необходимо использовать модуль tagsaver
hidden - тег не предназначен для показа удаленным клиентам
external - тег содержит значение, запрошенное с удаленного сервера
status - тег может изменять свой статус `GOOD`/`BAD`

## Глобальные параметры

Параметр | Умолчание | Описание
--- | --- | ---
log.dir | `log` | Путь до каталога с лог-файлами
keys.dir | `keys` | Путь до каталога с парами приватных и публичных ключей (относительно каталога конфигурации)

Все пути относительно каталога конфигурации.

Глобальные параметры рекомендуется указывать в отдельном файле `conf.yml`.