Перейти к основному содержимому

Системные проекты

Системные проекты — проекты, подключаемые для всей JAICP. Зависимости на модули из системных проектов доступны во всех ботах без дополнительного объявления.

Доступные системные проекты

В облачной версии платформы доступен системный проект zb-common. Он содержит в себе ряд универсальных и часто используемых элементов сценариев:

  • Именованные паттерны.
  • Справочники и конвертеры для именованных сущностей.
  • Функции и библиотеки на JavaScript.
  • Готовые сценарные фрагменты.
подсказка
Вы можете просмотреть код системных проектов в редакторе сценариев. Код доступен только для чтения.

Использование

Чтобы импортировать файл из системного проекта в сценарий, необходимо в одном из файлов сценария воспользоваться тегом require:

require: offtopic/fallback.sc
module = sys.zb-common

Здесь:

  • zb-common — название системного проекта.
  • offtopic/fallback.sc — путь к подключаемому файлу.
подсказка
Перед названием системного проекта должен стоять префикс sys..

Пользовательские системные проекты

On-premise

Если JAICP установлена к вам в контур, ваши сотрудники могут самостоятельно создавать системные проекты, которые будут доступны всем пользователям вашей установки.

Есть два способа добавить системные проекты:

  • Добавить параметры репозиториев с системными проектами в конфигурацию компонента EditorBE.
  • Подключить проекты с хоста, где установлен компонент BotServer.
подсказка
Рекомендуемый способ — подключать репозитории с проектами в EditorBE. Если обоими способами подключен проект с одинаковым названием, будет использоваться та версия, что подключена через репозиторий.

Проекты из удаленных репозиториев

  1. Разработчики создают удаленный репозиторий с проектом JAICP, который будет подключаться в другие проекты как системный проект.

  2. Системные администраторы должны добавить параметры репозитория в переопределяющую конфигурацию компонента EditorBE, после чего перезапустить компонент:

    configs/hosts/{env_name}/editorbe/application-override.yml
    system-projects:
    projects:
    # Системные проекты по умолчанию…

    - url: https://gitlab.custom.com/custom-module # URL репозитория.
    project-id: custom-module # ID проекта.
    branch: main # Ветка в репозитории проекта, по умолчанию master.
    module: true # Флаг, указывающий, что это системный проект.
  3. Пользователи вашей установки JAICP смогут подключать файлы из системного проекта через require. Название системного проекта соответствует значению параметра project-id:

    require: patterns.sc
    module = sys.custom-module

Проекты из локальной директории

  1. Системные администраторы должны добавить в переопределяющую конфигурацию компонента BotServer путь до директории, в которой будут размещены системные проекты:

    configs/hosts/{env_name}/botserver/application-override.yml
    bot:
    systemModulesFolder: /opt/sys-modules
  2. Проекты, которые предполагается подключать как системные проекты, нужно разместить в указанной директории:

    └── opt
    └── sys-modules
    ├── custom-module
    │   └── src
    │   └── patterns.sc
    └── js-packages
    └── src
    ├── moment.min.js
    └── underscore.min.js
  3. Пользователи вашей установки JAICP смогут подключать файлы из системного проекта через require. Название системного проекта соответствует названию поддиректории внутри bot.systemModulesFolder:

    require: patterns.sc
    module = sys.custom-module