Configuration Service

   Journey Manager (JM) The transaction engine for the platform.  |    System Manager / DevOps  |   23.10This feature was updated in 23.10

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. However, the Configuration Service can't create new configurations; it can only update the existing ones. That is, the Manager instance has to be installed and configured prior to be able to use the Configuration Service.

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.

You can upload and deploy the Configuration Service file using one of following options:

Let's look at each of them in more detail.

Deploy Using UI

To upload and deploy a Configuration Service file via Manager:

  1. Select System > Configuration Service.
    Manager upload a configuration service file
  2. Click a link, for example, Download template version (2 .0), to download a sample configuration service JSON file, which you should use as a template. When you are creating your own specific configuration, make sure all JSON tags are properly formatted and closed, so there is no validation error during the uploading process.
  3. Click Choose File to select a configuration file you. The supported file formats are ZIP and JSON.
  4. Click Upload to start the uploading process. Manager validates the JSON file and warns you if the file is not valid with the following message: Error loading import file: Import file is not a valid json file.
  5. Specify what part of the configuration file to upload.
    Manager import a configuration service file
  6. Clear Service Properties to exclude services' properties from the import. For more information, see import services.
  7. Clear Portal Properties to exclude form spaces' properties from the import. For more information, see import form spaces.
  8. Clear Client Payment Gateway to exclude client payment gateways from the import.
  9. Clear Service Connections to exclude service connectionss from the import. For more information, see import service connections.
  10. Clear Client Properties to exclude organizations' properties from the import. For more information, see import organizations.
  11. Clear Client Service Properties to exclude organizations' service properties from the import.
  12. Clear Client Service Connections to exclude organizations' service connections from the import.
  13. Clear Deployment Properties to exclude deployment properties from the import.
  14. Clear Form Properties to exclude form version properties from the import.
  15. Click Import to process the file in accordance to the selections above.
  16. Review the import action status and the import message for any errors. In case of an error, you need to identify a root cause, update the configuration file accordingly and try to run the import again.
  17. Manager import details
  18. Click Close to return the Management Dashboard.

Deploy Using SDK

The Journey Manager SDK Maven plugin provides the tm-sdk:configuration-service-archive-deploy goal to upload and deploy a Configuration Service file.

Deploy Using API

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 Request
Both HTTP and HTTPS protocols are supported:
http(s)://<JM_SERVER>/manager/secure/rest/configuration-service/v1/
Parameters

--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”’ - 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.

Response
If successful, this operation returns the following response with a HTTP 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"
}

Example
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,CLIENT_PAYMENT_GATEWAY”’

Next, learn how to create a server node.