Инструкция по созданию пакета
8 800 555-89-02
Войти
Документация
CTRL+K
Standalone2410
SaaS

Инструкция по созданию пакета

В этой статье

Пакет — это 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

Пример содержимого файла:

manifest.json
{
    "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
automation.json
dashboard.json

Пример файла bidata.json:

workspace/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 для виджета:

widget/manifest.json
{
  "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. Например:

app/manifest.json
{
  "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

Была ли статья полезна?

Да
Нет
Предыдущая
Маркетплейс
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102024. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.