Journey Manager (JM) The transaction engine for the platform. | System Manager / DevOps | 24.04This feature was updated in 24.04
Manager provides a functionality enabling you to quickly and easily reconfigure a server instance by uploading a configuration file containing all relevant information. The configuration file is a JSONJSON (JavaScript Object Notation) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays. file with a flat structure defining server's properties as name / value pairs. The Configuration Service consumes this file and runs all configuration tasks that it defines.
The Configuration Service comes with several template files, which you can use to create your own configuration deployments. As you upload the JSON configuration file, the Configuration Service parses it and runs import operations for each section of configuration, such as form spaces, organizations, forms, service connections and so on. This means that you need to have correct import permissions assigned to your account.
Currently, the Configuration Service comes with the following template files:
Originally, the Configuration Service was designed to update only existing configurations; there was no functionality to create new ones. However, starting from 24.04, the Configuration Service allows you to create new entities by using the template version 2.1. At the moment, it is limited to service parameters only, albeit, future releases might add ability to create more entities via the Configuration Service.This means that you need to install a Manager instance and configure it prior to being able to use the Configuration Service.
To create a new entity for serviceParameters
, you must use a new flag createOrUpdate
that can be defined in 2 scopes: global and entity scopes.
configurations
object to define it as a global parameter across the whole file:
"version": "2.1",
"configurations": {
"createOrUpdate" : "false",
"manager": {
serviceParameters
object to overrides the global parameter set above:
"services": [
{
"serviceName": "My Service 2",
"versionNumber": "1.0.0",
"serviceParameters": [
{
"name": "Service parameter name (String)",
"description ": "Service parameter description",
"bindParameter": "false",
"readonly ": "true",
"required ": "true",
"clearValueOnExport ": "true",
"unitTest": "false",
"value": "Service parameter value",
"createOrUpdate": "false"
}
]
}
]
...
The following logic applies when using the createOrUpdate
parameter:
createOrUpdate
parameter defined on the entity level takes precedence over the global parameter.createOrUpdate
defined on the entity level.Then for the serviceParameters
only, if it has the createOrUpdate
parameter and set to true, then:
List
, an addition parameter called listValues
is required to set the initial value of the list option. For example, label1:value1|label2:value2
, the value of a parameter must be set to a value from the listValues
, such as value1
or value2
. The snippet of the configuration is shown below:
{
"name": "Service parameter type (List)",
"'escription ": "Service parameter description",
"bindParameter": "false",
"readonly ": "false",
"required ": "true",
"clearValueOnExport ": "true",
"unitTest": "false",
"createOrUpdate": "true"
"type": "List",
"ListValues": "1: test1|2: test2",
"value": "1"
}
You can upload and deploy the Configuration Service file using one of following options:
Let's look at each of them in more detail.
To upload and deploy a Configuration Service file via Manager:
Make sure all JSON tags are properly formatted and closed, so there are no validation errors during the uploading process.
If the configuration file is not valid, the following error message is shown: Error loading import file: Import file is not a valid json file.
"modules": [
{
"moduleName": "Module Name",
"moduleContextPath": "http://tm-server/module/",
"description ": "",
"Security Manager": "",
"moduleProperties": [
{
"name": "module property name",
"value": "test",
"description ": ""
}
]
}
]
"clientSecurity": {
"overrideSystemDefaultBrowserSupportPolicy": "false",
"enableInternetExplorer10": "false",
"enableInternetExplorer9": "false",
"enableInternetExplorer8": "false",
"overrideSystemDefaultCSP": "false",
"organizationCSPHeader": ""
}
| 24.04 This feature was introduced in 24.04
In case of an error, you need to identify a root cause, update the configuration file accordingly and try to run the import again.
The Journey Manager SDK Maven plugin provides the tm-sdk:configuration-service-archive-deploy goal to upload and deploy a Configuration Service file.
The Journey Manager REST API provides the endpoint URL to upload and deploy a Configuration Service file.
To call this REST API, you need:
http(s)://<JM_SERVER>/manager/secure/rest/configuration-service/v1/
--header ‘Authorization: Basic <USE-NAME-AND-PASSWORD-BASE64-ENCODED>’
- an HTTP header containing 'username:password'
encoded as base64.
--form ‘archiveFile=@“/Users/my-configuration-service-v2.0.json”’
- a path to a Configuration Service file to be uploaded and deployed.
--form ‘importOptions=“CLIENT_PROPERTIES,PORTAL_PROPERTIES,FORM_PROPERTIES,SERVICE_PARAMETERS,SCHEDULED_JOBS”’
- a comma-separated list of import options to perform. The option names are the same as described in the Deploy Using UI section but they use an underscore, for example, DEPLOYMENT_PROPERTIES
for Deployment Properties.
The complete list of import options is shown below:
PORTALS
PORTAL_PROPERTIES
CLIENT_PROPERTIES
FORM_PROPERTIES
SERVICE_PARAMETERS
CLIENT_SERVICE_PARAMETERS
SERVICE_CONNECTIONS
SERVICE_DEFINITIONS
CLIENT_SERVICE_CONNECTIONS
DEPLOYMENT_PROPERTIES
CLIENT_PAYMENT_GATEWAY
CLIENT_SECURITY
MODULES
MODULE_PROPERTIES
SECURITY_MANAGERS
SECURITY_MANAGER_PARAMETERS
SCHEDULED_JOBS
FORM_DETAILS
200 OK
status code.
{
“archiveName”: “config-service.json”,
“importMessage”: “Configuration Service archive/file config-service.json was imported. Number of successful changes: 11 .“,
“importStatus”: “Completed”,
“importTime”: “2024-02-07T10:28+1100"
}
example with warnings
{
“archiveName”: “my-configuration-service-v2.0.json”,
“detailMessages”: [
“Portal not found : [Work Space]“,
“Service definition for service name [Amazon Submission Data Storage] not found”,
“Service definition for service name [Amazon Submission Data Storage] not found”,
“Service definition for service name [Amazon Submission Data Storage] not found”,
“Service connection for service connection name [Amazon KMS] not found”
],
“importMessage”: “Configuration Service archive/file my-configuration-service-v2.0.json was imported. Number of failed changes: 5 . Number of successful changes: 11 .“,
“importStatus”: “Completed”,
“importTime”: “2024-02-06T14:38+1100"
}
curl --location --request PUT ‘https://<JM_SERVER>/manager/secure/rest/configuration-service/v1/’ \
--header ‘Authorization: Basic <USE-NAME-AND-PASSWORD-BASE64-ENCODED>’ \
--form ‘archiveFile=@“/Users/my-configuration-service-v2.0.json”’ \
--form ‘importOptions=“CLIENT_PROPERTIES,PORTAL_PROPERTIES,FORM_PROPERTIES,SERVICE_PARAMETERS, \
CLIENT_SERVICE_PARAMETERS,SERVICE_CONNECTIONS,CLIENT_SERVICE_CONNECTIONS,DEPLOYMENT_PROPERTIES”’
Next, learn how to create a server node.