Package Compatibility Requirements

   Exchange Pre-configured Maestro services.  |   Platform Developer |  All versions   This feature is related to v5.1 and higher.

This article describes how to configure the minimum compatibility requirements of the assets in your Exchange package.

There are a number of areas where the compatibility requirements for your package must be specified, as detailed below.

Groovy Service Compatibility

In your service source folder you will find a service-def.json file which contains some configurations for your service. Groovy services run in the Journey Manager service container and so the minimum version of Journey Manager required to run the service must be specified. To configure the compatibility of your service you need to set a top level property named tmMinVersion with a value that specifies the full Manager version notation (e.g. 5.1.4).

This property needs to be set for each service in your package. If you are unsure if your service is compatible with versions of Manager earlier than the version you are developing against then it is safest to configure your development version in this property.

Example service-def.json

            	"name": "Docusign - Create Envelope",
            	"description": "Create a Docusign Envelope for an embedded signing experience",
            	"type": "Dynamic Data",
            	"version": 1,
            	"serviceConnection" : "Docusign",
            	"tmMinVersion": "5.0.2",
            	"parameters": [
            			"name": "groovyScript",
            			"filePath": "DocusignCreateEnvelope.groovy",

See Configuring Service Definitions with service-def.json for more detail around the service-def.json file.

This version should also be annotated in the Groovy script itself using the @since annotation. See ServiceDoc Annotations for more detail around the use of annotations.

Maestro Library Compatibility

If your package contains a Maestro library then you will need to specify the minimum (and optionally maximum) release version of Maestro that will support the library. Once you have downloaded the Maestro library to your IDE you will find a .library-config.xml file in your library source folder. To configure the minimum Maestro release version required you will need to set a top level attribute named releaseMinVersion with the full release notation of the supported Maestro release (e.g. 5.1.3).

If you are unsure if your Maestro package is compatible with release versions earlier than the version you are developing against then it is safest to configure your development version in this attribute. You can find your development release version in Maestro by looking at the project details tab as shown below.

You may also specify a minimum Manager version if it is relevant by setting the tmMinVersion attribute at the top level.

Example .library-config.xml

<?xml version="1.0" encoding="UTF-8"?><Library databaseVersion="1687" environmentName="Test50 Environment" exportDate="2017-02-23" revisionNumber="4abd604" sfmVersion="5.0.3">
	<description>Docusign Widgets</description>
	<createdAt type="Date">1478130023000</createdAt>
	<createdBy>[email protected]</createdBy>
	<lastModifiedAt type="Date">1487732038000</lastModifiedAt>
	<lastModifiedBy>[email protected]</lastModifiedBy>

Package documentation

In addition to the configuration values you need to document the minimum versions in the package documentation.

In your project source folder you will find a package.html file that contains a section on Compatibility. You will need to edit that section to specify the minimum requirements at the package level. For example, if your project has 2 groovy services requiring Manager 5.0.2 and one Maestro library requiring Manager 5.0.8, then your package documentation should specify the largest version (5.0.8).

In this section you should specify any compatibility requirement for Journey Manager and Maestro, as well as any compatibility requirements for 3rd party solutions.

Example package.html

	This package has the following compatibility requirements:
<div class="table-responsive">
	<table class="table">
		<tr><td>Journey Manager</td><td>5.0.2 or above</td><td></td></tr>
		<tr><td>Journey Maestro</td><td>5.0.14 or above</td><td></td></tr>