Configuration Properties metadata

Integration Flow configuration properties metadata contains the Integration Flow identifier, version, description and changelog as basic metadata. Beside that user have to decide if body of the message should be stored and available to view in flow history or message contain sensitive information and should not be stored in Flow history (flowHistorySaveMessageBody flag). Next to that it contains the predefined default Time-To-Live for Flow History data (in days), the trigger type and configuration and an array of configurationProperties:

{
  "integrationFlow": {
    "integrationFlowId": "16ee7ec3-6d45-475e-b60b-b395dfcedb43",
    "integrationFlowVersion": "1.0.2",
    "description": "Test configuration property types",
    "changelog": "Added propertyStringwithPattern to list of configuration properties"
  },
  "flowHistoryTimeToLive": 31,
  "flowHistorySaveMessageBody": true,
  "triggerType": "HTTP_ENDPOINT",
  "httpEndpointConfiguration": {  
    "requiredSecurityMechanisms": [ "OIDC_AUTH" ]
  },
  "configurationProperties": []
}

General properties

When the Integration Flow version is deployed for a tenant, the Flow History Time-To-Live and trigger configuration can be filled in on a General tab. As mentioned, Flow History Time-To-Live must be configured in days. Also, the trigger type and corresponding security mechanism(s) must be configured. For now U4IK supports trigger type "HTTP_ENDPOINT" for synchronous Integration Flows and "MESSAGE_ENDPOINT" for asynchronous Integration Flows .

"HTTP_ENDPOINT" trigger type supports followiing security mechanisms: - OIDC_AUTH - BASIC_AUTH - ANY_AUTH (any option with "AUTH" suffix) - IP_FILTER - ANY (some security mechanism is required, does not matter which)

Example security mechanisms:

Security mechanisms Deployment time
OIDC_AUTH OIDC_AUTH MUST be used, IP_FILTER optional
ANY One of the options is required (IP_FILTER satisfies), so cannot be public
ANY_AUTH One of the AUTH options is required (IP_FILTER does not satisfy), so cannot be public
BASIC_AUTH, IP_FILTER Both MUST be used, OIDC_AUTH cannot be used combined with BASIC_AUTH
nothing required, all optional. Can be public endpoint

Business rules for security mechanisms:

IMPORTANT During creating Integration Flow with MESSAGE_ENDPOINT trigger it is important to take into consideration that in GMP return status 1xx, 2xx or 3xx are treated as correct processing of the message. On the other hand the statuses 4xx or 5xx are treated as errors and the message will be re-delivered.

Configuration properties

For assembling basic configuration screen @deployment time we need to define configuration properties for an Integration Flow. Per property following information must be provided: - property name: unique name of the configuration property within the Integration Flow - property type: type of the configuration property. Following types are supported: - HTTP_URL - BOOLEAN - INTEGER (can have min and max value configured) - STRING (can have additional pattern configured) - PASSWORD - EMAIL - DROPDOWN (list with allowed values must be configured) - display name: is used as label in configuration screen in U4IK portal for the configuration property - default value: is used as pre-filled value in configuration screen in U4IK portal for the configuration property - description: is used as tooltip in configuration screen in U4IK portal for the configuration property - allowed values (only for DROPDOWN): list of allowed values for the dropdown list in configuration screen in U4IK portal for the configuration property - min max (only for type INTEGER): when "min" is filled for the INTEGER configuration property, the value must be greater than or equal to this min value. When "max" is filled for the INTEGER configuration property, the value must be lower than or equal to this max value. - pattern (only for type STRING): a pattern for a string value to apply during validation, e.g. [a-z][A-Z]

Here is an example of the provided Integration Flow metadata:

{
  "integrationFlow": {
    "integrationFlowId": "16ee7ec3-6d45-475e-b60b-b395dfcedb43",
    "integrationFlowVersion": "1.0.2",
    "description": "Test configuration property types",
    "changelog": "Added propertyStringwithPattern to list of configuration properties"
  },
  "flowHistoryTimeToLive": 31,
  "flowHistorySaveMessageBody": true,
  "triggerType": "HTTP_ENDPOINT",
  "httpEndpointConfiguration": {  
    "requiredSecurityMechanisms": [ "OIDC_AUTH", "IP_FILTER" ]
  },  
  "configurationProperties": [
    {
      "name": "propertyHttp",
      "type": "HTTP_URL",
      "displayName": "property Http_url",
      "description": "property http_url description"
    },
    {
      "name": "propertyBoolean",
      "type": "BOOLEAN",
      "displayName": "property boolean",
      "description": "property boolean description"
    },
    {
      "name": "propertyInteger",
      "type": "INTEGER",
      "displayName": "property integer",
      "defaultValue": 2,
      "description": "property integer description",
      "min": 1,
      "max": 3
    },
    {
      "name": "propertyString",
      "type": "STRING",
      "displayName": "property string",
      "description": "property string description"
    },
    {
      "name": "propertyPassword",
      "type": "PASSWORD",
      "displayName": "property password",
      "description": "property password description"
    },
    {
      "name": "propertyEmail",
      "type": "EMAIL",
      "displayName": "property email",
      "description": "property email description"
    },
    {
      "name": "propertyIntWithoutMin",
      "type": "INTEGER",
      "max": 123,
      "displayName": "property intwithoutmin",
      "description": "property intwithoutmin description"
    },
    {
      "name": "propertyIntWithoutMax",
      "type": "INTEGER",
      "min": 10,
      "displayName": "property intwithoutmax",
      "description": "property intwithoutmax description"
    },
    {
      "name": "property_Dropdown_2",
      "type": "DROPDOWN",
      "allowedValues": ["test1","test2","test3"],
      "displayName": "property dropdown",
      "description": "property dropdown description"
    },
    {
      "name": "propertyStringwithPattern",
      "type": "STRING",
      "displayName": "property string with pattern",
      "description": "property string with pattern description",
      "pattern": "[a-z]"
    }
]}

@Deployment time these configuration properties must be filled in. Therefore each Configuration property is presented with the proper control: image.png

Validation will be applied to the values for the configuration properties. Validation will be applied according to type and eventual additional validation rules based on type. For example an integer type can have min and max values: Also validation will be applied on input values according to the configuration property type. image.png

Deployment for an Integration Flow must be done via a deployment wizard. This process is further described in Deployment.