Package Format

PlatformManager uses the Maven repository as an internal package repository implementation; Accelerator package is a ZIP file containing the package logic and pom.xml descriptor which describes the package.

Package Structure

The package consists of these files/folders:

  • pom.xml – Contains package description (optional – see below).

  • steps.json – Contains steps specifications: steps details, steps order, how the steps should be executed etc. 

  • definition – Contains static logic to be used by the deploy-logic step. 

  • data – Contains all the resources required by the steps (e.g. Data Sources, Simulations, Datamarts, DealPlanTypes,...). Some of the steps do not require any data. Detailed requirements are listed for those steps where applicable.

An example of the package structure:

├── definition │ └── CalculationLogic │ └── General │ ├── elements │ │ └── DateUtils.groovy │ └── logic.json ├── data │ └── DataSource │ └── TXStandardData │ ├── fields │ ├── ranks.csv │ ├── source.json ├── steps.json └── pom.xml

Package Descriptor

You can describe package base information in pom.xml (deprecated) or steps.json files.

steps.json

All properties describing the package can be placed in the steps.json file. Here is an example:

{ "properties": { "groupId": "net.pricefx.accelerators", "artifactId": "qa-syntest-regression", "version": "1.3.1-SNAPSHOT", "minimalPartitionVersion": "[10.0.0,)", "documentationLink": "https://pricefx.atlassian.net/wiki/display/PM/Accelerator+Packages+Configuration", "label": "Accelerator Regression", "description": "Accelerator Regression", "detailedDescription": "Additional information", "components": "package", "type": "packages", "tags": ["Accelerators", "Optimization"] }, "dependencies": [ { "uniqueName": "net.pricefx.accelerators:qa-dependency-test-accelerator", "version": "LATEST-RELEASED" } ], "steps": [ { "type": "stepRef", "name": "Step name", "dependencyName": "qa-dependency-test-accelerator" }, { "type": "generic-form-ui", "name": "add-email", "form": [ { "name": "userEmail", "label": "Email", "type": "string", "placeholder": "email", "required": true, "tooltip": "some cool tooltip" } ] } ] }

All description properties are located under the properties fields.

Minimal Descriptor

  • groupId – ID of the project's group. Dependencies are resolved only from the net.pricefx.accelerators group for now.

  • artifactId – ID of the artifact (Accelerator package).

  • version – Version of the artifact under the specified group.

  • label – Package label. This text will be displayed in PlatformManager.

  • description – Package description.

    • Limited to 195 characters (the rest is shown as "...").

    • Only plain text allowed.

  • components

  • type – Supported types: ["integrations", "packages", "solutions" and "non_approved"]

    • solutions – The package will appear under the "Accelerators" folder.

    • packages – The package will appear under the "Accelerator Package" folder.

    • integrations – The package will appear under the "Integration Templates" folder.

    • non_approved – Intended for internal use only. The package will appear under a special folder for which users need a permission.

Additional Properties

  • detailedDescription – Package detailed description. This text will be displayed in PlatformManager Marketplace in the package "Detail" page.

    • It can contain HTML in the CDATA tag. The HTML is intended only for text formatting.

      • No links allowed.

      • Allowed only basic tables, formatting, etc.

    • If there is no content supplied, the value of description will be used PlatformManager Marketplace. If both are provided, just detailedDescription is shown.

  • documentationLink – Link to a package documentation. It will be displayed on a package detail page.

  • minimalPartitionVersion – Minimal supported partition version. See below. 

  • minimalIntegrationVersion – Minimal supported integration version. See below.

  • tags – Array of template tags, based on which the templates will be grouped at the Marketplace. Currently, valid values are: Accelerators, Dashboards, Integration, Library, Optimization, Plan, Price, Profit, SAP, Upgrade.

pom.xml (deprecated)

 Defining package via pom.xml was deprecated, use the steps.json file instead.

The package used to be described as pom.xml. Here is a minimal descriptor example:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <groupId>net.pricefx.accelerators</groupId>     <artifactId>accelerator-date-utils</artifactId>     <version>1.1.0</version>     <properties>         <label>Date utils accelerator package</label>         <description>description</description>         <components>logic</components>         <type>solutions</type>     </properties> </project>

Minimal Descriptor

  • project (includes all attributes)

  • modelVersion – Should be set to 4.0.0.

  • groupId – Id of the project's group. Dependencies are resolved only from the net.pricefx.accelerators group for now.

  • artifactId – Id of the artifact (Accelerator package).

  • version – Version of the artifact under the specified group.

  • properties.label – Package label. This text will be displayed in PlatformManager.

  • properties.description – Package description. This text will be displayed in PlatformManager.

    • Limited to 195 characters (the rest is shown as "...")

    • Only plain text allowed

  • properties.components

  • properties.type – Supported types: ["integrations", "packages", "solutions" and "non_approved"]

    • solutions – The package will appear under the "Accelerators" folder.

    • packages – The package will appear under the "Accelerator Package" folder.

    • integrations – The package will appear under the "Integration Templates" folder.

    • non_approved – Intended for internal use only. The package will appear under a special folder for which users need a permission.

Additional Properties

These properties must be in a properties tag:

  • detailedDescription – Package detailed description. This text will be displayed in PlatformManager in the package "Detail" page.

    • It can contain HTML in the CDATA tag. The HTML is intended only for text formatting.

      • No links allowed.

      • Allowed only basic tables, formatting, etc.

    • If there is no content supplied, the value of properties.description will be used.

  • documentationLink – Link to a package documentation. It will be displayed on a package detail page.

  • minimalPartitionVersion – Minimal supported partition version. See below. 

  • minimalIntegrationVersion – Minimal supported integration version. See below. 

MinimalPartitionVersion and MinimalIntegrationVersion Properties Format

  • It can be either range or exact specific version.

  • Snaphots are considered as release versions (if minimalPartitionVersion is e.g. 10.0, the package can be deployed to a partition with version 10.0.0-SNAPSHOT).

  • Examples:

Pom.xml Example

The following example uses the assembly and upload plugins.



PlatformManager version 1.75.0