Инструкция по созданию пакета
Пакет — это zip-архив, состоящий из обязательных и необязательных папок с файлами.
Обязательные:
- папка workspace, если это шаблон пространства. Она содержит файлы в формате JSON с описанием элементов шаблона пространства
- zip-папка с настройками, если это виджет или приложение. Она содержит файл с кодом для работы виджета, например, формата JS (JavaScript) и файл manifest
- файл manifest в формате JSON, который содержит информацию о пакете
Необязательные:
- папка resources, которая содержит иконки систем пакета
- папки ru и en, которые содержат русскую и английскую локализацию описания пакета
Папка resources
Папка resources содержит PNG и SVG файлы. Чтобы в Маркетплейсе у пакетов отображались иконки систем, укажите названия изображений в файле manifest в блоке "systems"
. При отсутствии в пакете папки resources блок "systems"
остается пустым и в Маркетплейсе используется системная иконка.
Папки ru и en
Папки ru и en могут включать в себя:
- файл doc.md — файл формата Markdown, который содержит развернутое описание пакета
- папку images с изображениями в PNG и SVG формате, которые указываются в файле doc.md
- файл changelog.md — файл формата Markdown, содержащий информацию об изменениях в пакете по сравнению с предыдущей версией
Файл manifest
Пример содержимого файла:
{
"min_version_platform": "1.0.24.12",
"max_version_platform": "",
"systems": [
{
"name": "image"
}
],
"author": "Infomaximum",
"manifest_version": "2",
"name": "Пространство",
"guid": "5096e32c-7e8a-4690-b742-caa94ff1b032",
"description": {
"ru": "Шаблон пространств",
"en": "Workspace template"
},
"categories": {
"ru": [
{
"name": "Пространство"
}
],
"en": [
{
"name": "Workspace"
}
]
},
"type": "workspace",
"version": "0.0.1",
"dependency": [
{
"guid": "3245f02d-ab3c-4012-97e9-42327243ab9d",
"version": "0.0.1"
}
]
}
где:
"min_version_platform": "1.0.24.12"
— минимальная версия платформы, в которой пакет может поддерживаться"max_version_platform": ""
— масимальная версия платформы, в которой пакет может поддерживаться"systems"
— блок описания систем пакета"name": "image"
— имя PNG или SVG файла в папке resources
"author": "Infomaximum"
— автор пакета"name": "Пространство"
— имя пакета"guid": "5096e32c-7e8a-4690-b742-caa94ff1b032"
— GUID пакета"description"
— блок краткого описания пакета"ru": "Шаблон пространств"
— русская локализация описания пакета"en": "Workspace template"
— английская локализация описания пакета
"categories"
— блок описания категорий пакета"ru"
— русская локализация названия категории"en"
— английская локализация названия категории
"type": "workspace"
— тип пакета"version": "0.0.1"
— версия пакета"dependency"
— блок описания зависимости текущего пакета от другого"guid": "3245f02d-ab3c-4012-97e9-42327243ab9d"
— GUID пакета, от которого зависит текущий"version": "0.0.1"
— версия пакета, от которого зависит текущий
Папка workspace
Папка workspace содержит файлы формата JSON с описанием элементов шаблона пространства. Примерами файлов могут быть:
- bidata.json
- automation.json
- dashboard.json
Пример файла bidata.json:
{
"schema_version": 1,
"tables": [
{
"columns": [
{
"name": "STEP",
"type": "Nullable(String)"
},
{
"name": "STEP_DATE",
"type": "Nullable(DateTime64(3))"
},
{
"name": "MONTH",
"type": "Nullable(Int64)"
}
],
"name": "log",
"guid": "2006f59a-11f7-467c-b860-0b6cbcbbf3c1"
},
],
"processes": [
{
"time_column": {
"column": "date_time_status",
"table": "step_1"
},
"name": "Новый процесс",
"guid": "7042ee73-45d5-4c6c-8bdf-43e3f8185fc6",
"case_table_case_column": {
"column": "order_number",
"table": "step_2"
},
"case_column": {
"column": "order_number",
"table": "step_1"
},
"event_formula": "\"step_1\".\"action\""
}
],
"table_links": [
{
"second_column": {
"column": "FIRST_NAME",
"table": "Исходная таблица_1"
},
"guid": "f14f1d6f-2280-4a8b-9514-a41f855d8091",
"first_column": {
"column": "FIRST_NAME",
"table": "Исходная таблица"
},
"direction": "DIRECTED"
},
]
}
где:
"tables"
— блок описания таблиц"columns"
— блок, описывающий колонки таблицы"name": "STEP"
— имя колонки таблицы"type": "String"
— тип данных колонки"name": "log"
— имя таблицы"guid": "2006f59a-11f7-467c-b860-0b6cbcbbf3c1"
— GUID таблицы
"processes"
— блок описания процессов"time_column"
— блок описания поля время"column": "date_time_status"
— имя колонки"table": "step_1"
— имя таблицы"name": "Новый процесс"
— имя процесса"guid": "7042ee73-45d5-4c6c-8bdf-43e3f8185fc6"
— GUID процесса"case_table_case_column"
— блок описания поля CaseTable.CaseID"column": "order_number"
— имя колонки"table": "step_2"
— имя таблицы"case_column"
— блок описания поля CaseID"column": "order_number"
— имя колонки"table": "step_1"
— имя таблицы"event_formula": "\"step_1\".\"action\""
— формула в поле событие (внутренние символы экранируются знаком «\»)
"table_links"
— блок описания связей таблиц"second_column"
— блок описания колонки второй таблицы связи"column": "FIRST_NAME"
— имя колонки"table": "Исходная таблица_1"
— имя таблицы"guid": "f14f1d6f-2280-4a8b-9514-a41f855d8091"
— GUID связи"first_column"
— блок описания колонки первой таблицы связи"column": "FIRST_NAME"
— имя колонки"table": "Исходная таблица"
— имя таблицы"direction": "DIRECTED"
— направление связи. DIRECTED — многие к одной, UNDIRECTED — многие ко многим
Папка с настройками
Файл с кодом для работы виджета может иметь любое содержание.
Пример содержимого файла manifest для виджета:
{
"uuid": "6f9bf5a6-273a-4087-a207-4fb169e02f9b",
"entry": "index.js",
"api_version": 1,
"name": {
"en": "Pictures",
"ru": "Pictures"
},
"default_size_percentage": {
"width": 60,
"height": 20,
"min_width": 8,
"min_height": 4
}
}
где:
"uuid": "6f9bf5a6-273a-4087-a207-4fb169e02f9b"
— уникальный идентификатор виджетаentry": "index.js"
— имя файла с кодом для работы виджета"en": "Pictures"
— английская локализация имени пакета"ru": "Pictures"
— русская локализация имени пакета"width": 60
— ширина виджета по умолчанию"height": 20
— высота виджета по умолчанию"min_width": 8
— минимальная ширина виджета"min_height": 4
— минимальная высота виджета
Если это приложение, достаточно указать название файла с кодом в файле manifest. Например:
{
"entry": "index.js"
}
Требования к загружаемым пакетам
Загружаемые в Маркетплейс или пространство пакеты должны соответствовать следующим требованиям:
- подготовка пакета не должна выполняться на ПК с macOS
- файл manifest.json обязательно присутствует в пакете и находится в единственном экземпляре в корне архива
- GUID указан в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx и состоит только из шестнадцатеричных символов
- версия пакета указана в формате x.x.x
- пакет соответствует одному из следующих типов: widget, application, workspace
- файл manifest.json обязательно содержит следующие поля:
systems
(может быть пустым),author
,manifest_version
,name
,guid
,description
,categories
,type
,version
- названия всех файлов в пакете указаны на английском языке
- названия иконок, находящихся в папке resources, совпадают с названиями систем, указанных в manifest.json в секции
systems
. При загрузке пакета без папки resources будет отображаться системная иконка - иконки систем с типом файла .png имеют размеры 20x20
- в папке images находятся только .png и .svg файлы
- путь к изображению прописывается без указания папки, то есть указывается только название изображения. Пример:
![изображение](название_изображения.png)
- в корне архива обязательно присутствует файл или папка с контентом пакета (application.zip/widget.zip/папка workspace)
- файлы changelog.md, doc.md, папка images не обязательны
- в настоящий момент поддерживаются следующие языки локализаций:
ru
,en
. Manifest-файл может содержать информацию о локализациях, отличных отru
иen
, ошибка при загрузке пакета в Маркетплейс в таком случае не возникнет, но в системе такие локализации отображаться не будут - в manifest-файле в поле
dependency
указываются GUID и версия пакета, от которого зависит загружаемый пакет. Если указанный пакет отсутствует в Маркетплейсе, то при загрузке текущего пакета возникнет ошибка - если в пакете контент находится в папке workspace, то поле
manifest_version
в файле manifest.json не должно быть равно 1
Была ли статья полезна?