Перейти к основному содержимому
Версия: 2.4

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

Плагин - это zip архив с файлами исходного кода компонентов системы, например фетчеров.

Особенности плагинов​

Плагин предназначен для добавления в систему новых компонентов или обновления ранее установленных. Файлы исходного кода в архиве организованы в каталоги. Каталоги первого уровня в архиве определяют сущность компонента, следующий наименование компонета. Рассмотрим состав архива на примере плагина с фетчером HTTP extend. В каталоге fetchers/http_extend находятся следующие файлы:

  • content.json - файл с данными необходимыми для установки плагина, в том числе контрольные суммы файлов плагина;
  • content.sig - электронная цифровая подпись (ЭЦП) файла content.json;
  • public_key.crt - сертификат открытого ключа для проверки ЭЦП;
  • __init__.py - файл необходимый для импорта модуля python;
  • http_extend_fetcher.py - файл с исходным кодом фетчера;
  • template_rjsf.py - файл с исходным кодом схемы пользовательского интерфейса;

Загрузка плагинов​

Разместить архив с плагином в локальном файловом хранилище. Открыть страницу Главная -> Настройки -> Система -> Управление плагинами, перейти на вкладку Загруженные, выбрать Добавить, выбрать архив с плагином. Архив будет загружен на сервер Памир и должен появится в списке загруженных. Если архив с таким именем уже был на сервере Памир, то он будет перезаписан.

Установка плагинов​

На вкладке Загруженные страницы Управление плагинами, для устанавливаемого плагина выбрать действие Установить или Установить на пробу, плагин будет установлен.

Установка на сервер​

Плагины на сервере используются для генерации пользовательского интерфейса на основе схемы template_rjsf. После установки плагин появится в списке установленных.

Установка на пробу​

Плагин должен быть загружен на пробу, т.к. на ней он непосредственно выполняется. Плагин установленный на пробу на текущий момент не отображается в списке установленных.

Обновление плагинов​

Если плагин уже был установлен на сервер Памир, то будет предложено обновить его.

Разработка своего плагина​

Для разработки плагинов используется язык программирования python 3.12. Файлы исходного кода в архиве должны быть организованы в каталоги. Каталог первого уровня в архиве определяет сущность компонента, следующий наименование компонента. В нем должны находится все файлы с исходным кодом плагина без вложенных каталогов. Например, файлы исходного кода плагина с фетчером HTTP extend находятся в каталоге http_extend, который находится в каталоге fetchers. Для формирования архива плагина желательно использовать утилиту plugin_sign.py. Утилита plugin_sign.py создаст архив с плагином и добавит в него файлы content.json и content.sig. Утилиту plugin_sign.py необходимо запускать со следующими аргументами командной строки:

  • --plugin_file= - наименование zip архива, например http_extend.zip;
  • --plugin_dir= - путь к каталогу с файлами исходного кода плагина;
  • --plugin_path= - путь к файлам исходного кода в архиве /<сущность_компонента>/<наименование_компонента>, например /fetchers/http_extend;
  • --private_key= - путь к файлу закрытого ключа в PEM формате для формирования ЭЦП;
  • --public_key= - путь к файлу сертификата x509 открытого ключа в PEM формате для проверки ЭЦП;
  • --plugin_version= - версия плагина, например test.