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

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

Плагин - это 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.