Creates a profile and returns it with its server-assigned id. An active profile is live immediately: its input agent accepts requests or runs on its schedule. A profile is created in an existing group: group is required, and root, a blank value or an unknown group answers 422; create the group first with POST /platform/api/profiles/preview/groups. A license that does not cover another profile answers 409 with the error code PROFILE_LIMIT_REACHED.
OAuth2 client-credentials flow for machine-to-machine access.
Exchange a client id/secret at /dw/register/oauth/token for a bearer token, then send it
as Authorization: Bearer <access_token>. Client credentials are provisioned in the
Lobster administration UI.
This is the client-credentials token endpoint of the Platform API. /oauth/token, the
token_endpoint advertised at /.well-known/oauth-authorization-server, serves the authorization
code flow of the OAuth2AuthorizationCode scheme.
OAuth 2.1 authorization code flow with PKCE, for acting as a signed-in user. It works with Microsoft and other single sign-on providers: the provider only confirms the user's identity to the platform, which then issues its own token.
POST /oauth/register(no authentication) with the JSON body{"redirect_uris": ["<redirect URI>"]}returns aclient_id. The user's browser has to reach the redirect URI.- Open
/oauth/authorizein the user's browser withresponse_type=code,client_id,redirect_uri,stateand acode_challengewithcode_challenge_method=S256.stateis a fresh unguessable value per request, andcode_challengeis the S256 hash of acode_verifierfreshly generated per request from a cryptographically secure random source (43 to 128 characters, RFC 7636). The user signs in on the platform's login page, and the browser is redirected to the redirect URI withcodeandstate; a callback whosestatediffers from the one sent is to be rejected. - The code is valid for 30 seconds. Exchange it at
POST /oauth/token, form-encoded, withgrant_type=authorization_code,code,redirect_uri,code_verifierandclient_id. - The answer carries
access_token(valid 30 minutes),refresh_token(valid 48 hours) andexpires_inin milliseconds. Refresh withgrant_type=refresh_token,refresh_tokenandclient_id.
Bearer token obtained from an authenticated browser or guest-user session.
Flow 1 — UI login: Log in via the Lobster web UI at /, then call
GET /auth/sessionBearerToken to exchange the session cookie for a bearer token.
Flow 2 — Guest user login token: Append a GuestUser loginToken as a URL
query parameter to the base URL to establish a password-free session:
GET <host>?loginToken=<GuestUser token>
Then call GET /auth/sessionBearerToken to obtain the bearer token.
HTTP in, call a public API, answer the caller
HTTP in, map, call a public API, answer the caller. The caller posts {"lat": "48.14", "lon": "11.58", "unit": "F", "days": "1"} to /dw/Request/weather; the profile maps it to Open-Meteo's query parameters, turns F/C into fahrenheit/celsius with two 72 replace functions, calls Open-Meteo and returns its forecast to the caller (returnResponseToCaller). To reuse it change name, description and inputAgentSettings.url; for another API change the source fields (what the caller sends), the target fields (the upstream API's parameter names), the links, the chain, and the response unit's host, uri, query and headers.
{
"class": "core.IntegrationProfile",
"name": "api-demo-weather",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: HTTP in, map the caller input to an Open-Meteo query, return the forecast to the caller",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "JSON"
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "weather",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "application/json",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "Request",
"minimum": 1,
"maximum": 1,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "lat",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "lon",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "unit",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "days",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Forecast",
"minimum": 1,
"maximum": 1,
"path": "Request",
"children": [
{
"class": "core.DestinationField",
"name": "latitude",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "longitude",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "temperature_unit",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 72,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "F"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "fahrenheit"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": false
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 72,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "C"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "celsius"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": false
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "forecast_days",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "current_weather",
"dataType": "STRING",
"fixValue": "true"
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "lat",
"destination": "latitude"
},
{
"class": "core.MappingLink",
"source": "lon",
"destination": "longitude"
},
{
"class": "core.MappingLink",
"source": "unit",
"destination": "temperature_unit"
},
{
"class": "core.MappingLink",
"source": "days",
"destination": "forecast_days"
}
]
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.HttpProfileResponseUnit",
"active": true,
"encoding": "UTF-8",
"contentType": {
"class": "core.ResponseContentType_NONE"
},
"httpSettings": {
"class": "core.HttpClientSettings",
"httpMethod": "GET",
"sslEnabled": true,
"host": "api.open-meteo.com",
"port": "443",
"uri": "/v1/forecast",
"headers": {
"Accept": "application/json"
},
"query": "latitude=@latitude@&longitude=@longitude@&temperature_unit=@temperature_unit@&forecast_days=@forecast_days@¤t_weather=@current_weather@"
},
"returnResponseToCaller": true
}
]
}
}Repeating nodes, function chains, JSON output, POST to an API
Repeating nodes, function chains, JSON output, POST to an API. The caller posts an order with an items array to /dw/Request/invoice; the profile builds an invoice: invoiceId = INV- + orderId, upper-cased customer and currency, today's issuedAt, one item per order item with lineTotal = qty * price, total = the sum of the line totals, vat = 19 % of it. A JSON integration unit serialises it (wrapped in {"Invoice": ...}), it is POSTed to httpbin.org and the answer goes back to the caller. invoiceId seeds a running total in list run (153); each items/lineTotal reads its own price with 2 copy("price") and 143, multiplies, rounds, adds the result to the last value of run and appends it (155, 156, 42, 153); total and vat read the last value of run.
{
"class": "core.IntegrationProfile",
"name": "api-demo-invoice",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: HTTP in (order JSON with an items array), map it to an invoice JSON (INV- id, upper-cased customer/currency, issue date, line totals, total, VAT), POST it to httpbin.org/post and return httpbin's echo to the caller",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "JSON"
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "invoice",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "application/json",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "order",
"minimum": 1,
"maximum": 1,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "orderId",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "customer",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "currency",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceNode",
"name": "items",
"minimum": 0,
"maximum": 99999,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "sku",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "qty",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "price",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Invoice",
"minimum": 1,
"maximum": 1,
"path": "order",
"children": [
{
"class": "core.DestinationField",
"name": "invoiceId",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 153,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "0"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "false"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 62,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "INV-"
},
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "customer",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 82,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "currency",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 82,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "issuedAt",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 15,
"functionParameters": []
},
{
"class": "core.FunctionConfiguration",
"id": 94,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "yyyy-MM-dd"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationNode",
"name": "items",
"minimum": 0,
"maximum": 99999,
"path": "items",
"children": [
{
"class": "core.DestinationField",
"name": "sku",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "qty",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "price",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "lineTotal",
"dataType": "DOUBLE",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "price"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 143,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 50,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 113,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 3
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": 2
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 155,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 156,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 5
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 42,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 6
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 4
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 153,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 7
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "false"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 4
}
]
}
]
}
],
"iterationMode": "ITERATING_THROUGH_ALL_NODES",
"optimizePath": true,
"relativePath": true
},
{
"class": "core.DestinationField",
"name": "total",
"dataType": "DOUBLE",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 155,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 156,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 113,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": 2
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "vat",
"dataType": "DOUBLE",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 155,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 156,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "run"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 50,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "0.19"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 113,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 3
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": 2
}
]
}
]
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "orderId",
"destination": "invoiceId"
},
{
"class": "core.MappingLink",
"source": "customer",
"destination": "customer"
},
{
"class": "core.MappingLink",
"source": "currency",
"destination": "currency"
},
{
"class": "core.MappingLink",
"source": "sku",
"destination": "sku"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "qty"
},
{
"class": "core.MappingLink",
"source": "price",
"destination": "price"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "lineTotal"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": ""
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.HttpProfileResponseUnit",
"active": true,
"encoding": "UTF-8",
"contentType": {
"class": "core.ResponseContentType_IU"
},
"httpSettings": {
"class": "core.HttpClientSettings",
"httpMethod": "POST",
"sslEnabled": true,
"host": "httpbin.org",
"port": "443",
"uri": "/post",
"headers": {
"X-Demo": "api-pathfinder",
"Content-Type": "application/json",
"Accept": "application/json"
}
},
"returnResponseToCaller": true
}
]
}
}Scheduled pull, map, POST as JSON
Scheduled pull. Every weekday at 07:00 the profile fetches https://httpbin.org/json, maps the slideshow's title and author into a summary, stamps the time and POSTs the summary as JSON. It is created inactive: activate it with a PATCH {"active": true} once its settings are complete; a write that activates a profile the platform cannot run is refused with 422.
{
"class": "core.IntegrationProfile",
"name": "api-demo-cron-summary",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Fetches the slideshow sample document from httpbin.org as JSON every weekday at 07:00. Maps its title and author into a summary and stamps the fetch time. Serialises the summary as JSON and posts it to httpbin.org.",
"active": false,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "JSON"
},
"inputAgentSettings": {
"class": "core.CronHttpAgentSettings",
"cronSchedule": [
"0 0 7 * * 2-6"
],
"httpTimeOut": 30,
"httpContentType": "application/json",
"httpSettings": {
"class": "core.HttpClientSettings",
"httpMethod": "GET",
"sslEnabled": true,
"host": "httpbin.org",
"port": "443",
"uri": "/json"
}
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "Doc",
"minimum": 1,
"maximum": 1,
"path": "",
"children": [
{
"class": "core.SourceNode",
"name": "slideshow",
"minimum": 1,
"maximum": 1,
"children": [
{
"class": "core.SourceField",
"name": "title",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "author",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "date",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Summary",
"minimum": 1,
"maximum": 1,
"path": "slideshow",
"children": [
{
"class": "core.DestinationField",
"name": "headline",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 82,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "by",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "fetchedAt",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 15,
"functionParameters": []
},
{
"class": "core.FunctionConfiguration",
"id": 94,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "yyyy-MM-dd'T'HH:mm:ss"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "title",
"destination": "headline"
},
{
"class": "core.MappingLink",
"source": "author",
"destination": "by"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": ""
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.HttpProfileResponseUnit",
"active": true,
"encoding": "UTF-8",
"contentType": {
"class": "core.ResponseContentType_IU"
},
"httpSettings": {
"class": "core.HttpClientSettings",
"httpMethod": "POST",
"sslEnabled": true,
"host": "httpbin.org",
"port": "443",
"uri": "/post",
"headers": {
"Content-Type": "application/json"
}
}
}
]
}
}Nested repeats, conditions, sums per group, error array
Everything together: nested repeats, conditions, sums per group, an error array and no wrapper. The caller posts a batch of orders with lines to /dw/Request/orders-demo?channel=web. The top target node Result is TRANSPARENT and is the JSON unit's startAtNode, so the output has no wrapper. orders and lines carry the three iteration members; lines has a node condition (2, 143, 32 a > b) that drops lines with quantity 0. no stores the order number in map ctx for its lines; each amount adds itself with 333 to map perOrder and to map sums; orderTotal and grandTotal, placed after their nodes, read them with 159. email is a calculation field that collects an error message in list errors, copyErrors copies that list into the _ClipboardData_/errs source node (413), and target node errors (path errs) with its single field errors_val becomes a plain JSON array. date uses 201, customer uses 341 for a default, and channel reads the query parameter as VARIABLE "MSG_CALL_CHANNEL", which is declared in mappingSettings.variables: the platform's checks (/check, activation) require a variable a function reads to be declared. The last response unit, core.PassBackBinaryDataProfileResponseUnit with content _IU, answers the caller with the JSON directly.
{
"class": "core.IntegrationProfile",
"name": "api-demo-orders",
"description": "Receives a batch of customer orders as JSON over HTTP POST, with the calling channel as query parameter. Upper-cases the batch id, order numbers and SKUs, reformats the batch date to ISO, and replaces an empty customer with 'anonymous'. Keeps only order lines with a quantity above zero and computes each line amount, each order total and the grand total. Collects one error message per order whose e-mail address is not valid. Serialises the result as JSON and returns it to the caller.",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "JSON"
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "orders-demo",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "application/json",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"variables": [
{
"class": "core.Variable",
"name": "MSG_CALL_CHANNEL",
"type": "STRING",
"initialValue": "",
"resetOnNewRecord": false
}
],
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "Request",
"minimum": 1,
"maximum": 1,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "batch",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "date",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceNode",
"name": "orders",
"minimum": 0,
"maximum": 99999,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "no",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "customer",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "email",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceNode",
"name": "lines",
"minimum": 0,
"maximum": 99999,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "sku",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "qty",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "price",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
}
]
},
{
"class": "core.SourceNode",
"name": "_ClipboardData_",
"minimum": 0,
"maximum": 1,
"path": "",
"children": [
{
"class": "core.SourceNode",
"name": "errs",
"minimum": 0,
"maximum": 99999,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "msg",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Result",
"minimum": 1,
"maximum": 1,
"path": "Request",
"children": [
{
"class": "core.DestinationField",
"name": "batch",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 82,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "date",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 201,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "dd.MM.yyyy"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "yyyy-MM-dd"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "error"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "channel",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VARIABLE",
"data": "MSG_CALL_CHANNEL"
}
]
}
]
},
{
"class": "core.DestinationNode",
"name": "orders",
"minimum": 0,
"maximum": 99999,
"path": "orders",
"children": [
{
"class": "core.DestinationField",
"name": "no",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 82,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 157,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "cur"
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "ctx"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "customer",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 341,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "anonymous"
},
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "email",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 71,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 35,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 159,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "cur"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "ctx"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 62,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 3
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ": email is not a valid email address"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 90,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 4
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 153,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 5
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "errors"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "true"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
}
]
}
],
"calculationField": true
},
{
"class": "core.DestinationNode",
"name": "lines",
"minimum": 0,
"maximum": 99999,
"path": "lines",
"children": [
{
"class": "core.DestinationField",
"name": "sku",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 82,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "qty",
"dataType": "INTEGER"
},
{
"class": "core.DestinationField",
"name": "amount",
"dataType": "DOUBLE",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "price"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 143,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 50,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "LINK",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 113,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 3
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "2"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 159,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "cur"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "ctx"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 333,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 5
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 4
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "perOrder"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 333,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "total"
},
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 4
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "sums"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 4
}
]
}
]
}
],
"iterationMode": "ITERATING_THROUGH_ALL_NODES",
"optimizePath": true,
"relativePath": true,
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 2,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "qty"
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 143,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 32,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "0"
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "orderTotal",
"dataType": "DOUBLE",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 159,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "cur"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "ctx"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 159,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "perOrder"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "0"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 113,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 2
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "2"
}
]
}
]
}
],
"iterationMode": "ITERATING_THROUGH_ALL_NODES",
"optimizePath": true,
"relativePath": true
},
{
"class": "core.DestinationField",
"name": "grandTotal",
"dataType": "DOUBLE",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 159,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "total"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "sums"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "0"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": ""
}
]
},
{
"class": "core.FunctionConfiguration",
"id": 113,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "RESULT",
"data": 1
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "2"
}
]
}
]
},
{
"class": "core.DestinationField",
"name": "copyErrors",
"dataType": "STRING",
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 413,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "errors"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "errs"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "true"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "true"
}
]
}
],
"calculationField": true
},
{
"class": "core.DestinationNode",
"name": "errors",
"minimum": 0,
"maximum": 99999,
"path": "errs",
"children": [
{
"class": "core.DestinationField",
"name": "errors_val",
"dataType": "STRING"
}
],
"iterationMode": "ITERATING_THROUGH_ALL_NODES",
"optimizePath": true,
"relativePath": true
}
],
"xmlJsonMode": "TRANSPARENT"
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "batch",
"destination": "batch"
},
{
"class": "core.MappingLink",
"source": "date",
"destination": "date"
},
{
"class": "core.MappingLink",
"source": "no",
"destination": "no"
},
{
"class": "core.MappingLink",
"source": "customer",
"destination": "customer"
},
{
"class": "core.MappingLink",
"source": "email",
"destination": "email"
},
{
"class": "core.MappingLink",
"source": "sku",
"destination": "sku"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "qty"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "amount"
},
{
"class": "core.MappingLink",
"source": "msg",
"destination": "errors_val"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": "Result"
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
},
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000"
}EDIFACT in from a template, JSON out
EDIFACT in, JSON out, the source tree from a bundled template. The caller posts an EANCOM ORDERS D96A interchange to /dw/Request/edifact-orders (Content-Type: application/EDIFACT); the profile answers with the order number, the buyer's GLN and every order line as JSON. sourceStructure.template ORDERS_D96A builds the whole source tree on write, so the profile is complete in one request: segments recognised by their tag, groups such as SG2 and SG25 carrying their segments' match codes, element fields F<element number>. The names linked here come from reading that tree back: F1004 (BGM document number), F3039 (NAD party id, C082), F1082 and F7140 (LIN), F6060-2 (the quantity of the QTY inside SG25; the suffix -2 tells it apart from the QTY of other groups). Target node buyer iterates NAD and keeps only the party whose F3035 is BY (node condition 29 a equals b); lines iterates SG25, one entry per line item. For another message start from its template (<message>_<directory>), read the profile back and link the fields by their position under the segment you mean.
{
"class": "core.IntegrationProfile",
"name": "api-demo-edifact-orders",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: receives an EANCOM ORDERS D96A message over HTTP, reads the order number, the buyer's GLN and every order line, and answers the caller with them as JSON.",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "EDI",
"formatSettings": {
"class": "core.EDIFileMetadata"
}
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "edifact-orders",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "application/EDIFACT",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"template": "ORDERS_D96A"
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Order",
"path": "",
"minimum": 1,
"maximum": 1,
"children": [
{
"class": "core.DestinationField",
"name": "orderNo",
"dataType": "STRING"
},
{
"class": "core.DestinationNode",
"name": "buyer",
"path": "NAD",
"minimum": 0,
"maximum": 1,
"functions": [
{
"class": "core.FunctionConfiguration",
"id": 29,
"functionParameters": [
{
"class": "core.FunctionParameter",
"parameterType": "SOURCE_FIELD",
"data": "F3035"
},
{
"class": "core.FunctionParameter",
"parameterType": "VALUE",
"data": "BY"
}
]
}
],
"children": [
{
"class": "core.DestinationField",
"name": "gln",
"dataType": "STRING"
}
]
},
{
"class": "core.DestinationNode",
"name": "lines",
"path": "SG25",
"minimum": 0,
"maximum": 99999,
"children": [
{
"class": "core.DestinationField",
"name": "lineNo",
"dataType": "INTEGER"
},
{
"class": "core.DestinationField",
"name": "gtin",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "quantity",
"dataType": "DOUBLE"
}
]
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "F1004",
"destination": "orderNo"
},
{
"class": "core.MappingLink",
"source": "F3039",
"destination": "gln"
},
{
"class": "core.MappingLink",
"source": "F1082",
"destination": "lineNo"
},
{
"class": "core.MappingLink",
"source": "F7140",
"destination": "gtin"
},
{
"class": "core.MappingLink",
"source": "F6060-2",
"destination": "quantity"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": "Order"
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
}
}X12 in from a template, JSON out
X12 in, JSON out, the source tree from a bundled template. The caller posts ANSI X12 850 purchase orders to /dw/Request/x12-850; the profile answers with one JSON object per transaction set: the PO number and date from BEG and one item per PO1 loop. sourceStructure.template 850_004060 builds the source tree (a 004060 template also reads 004010 files whose segments it covers); X12 element fields are F<element number> with a suffix where the number repeats (F324, F373-1 in BEG; F380-10, F355-37, F212-1, F234-35 in PO1), the loop node is LOOP-ID-PO1. Decimal elements get the format template ####0.00 on write so the profile can be activated. Several transaction sets in one interchange are several records, so the JSON unit writes a top-level array.
{
"class": "core.IntegrationProfile",
"name": "api-demo-x12-850",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: receives ANSI X12 850 purchase orders over HTTP, reads each order's number, date and lines, and answers the caller with them as JSON, one object per transaction set.",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "X12",
"formatSettings": {
"class": "core.X12FileMetadata"
}
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "x12-850",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "text/plain",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"template": "850_004060"
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "PurchaseOrder",
"path": "",
"minimum": 1,
"maximum": 1,
"children": [
{
"class": "core.DestinationField",
"name": "poNumber",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "poDate",
"dataType": "STRING"
},
{
"class": "core.DestinationNode",
"name": "items",
"path": "LOOP-ID-PO1",
"minimum": 0,
"maximum": 99999,
"children": [
{
"class": "core.DestinationField",
"name": "quantity",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "unit",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "unitPrice",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "buyerItem",
"dataType": "STRING"
}
]
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "F324",
"destination": "poNumber"
},
{
"class": "core.MappingLink",
"source": "F373-1",
"destination": "poDate"
},
{
"class": "core.MappingLink",
"source": "F380-10",
"destination": "quantity"
},
{
"class": "core.MappingLink",
"source": "F355-37",
"destination": "unit"
},
{
"class": "core.MappingLink",
"source": "F212-1",
"destination": "unitPrice"
},
{
"class": "core.MappingLink",
"source": "F234-35",
"destination": "buyerItem"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": "PurchaseOrder"
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
}
}IDoc in, EDIFACT out, both trees from templates
IDoc in, EDIFACT out, both trees from bundled templates; the case that needs the most conventions. The caller posts an SAP IDoc DELVRY03 (flat file, Content-Type: text/plain) to /dw/Request/idoc-to-edifact; the profile answers with an EANCOM DESADV D96A. Step 1 is this request: IDOC_IN_DELVRY03 builds the source tree (one EDI_DC40 node, segments nested below it with cumulative, release-agnostic match codes; this sample's segments are that release's, for another input list the variants with GET /platform/api/profiles/preview/templates?format=IDOC&side=SOURCE&search=<basic type> and take the one with its segments), DESADV_D96A the target tree with the interchange envelope, inputValidation.removeBlanks: true strips the fixed-length padding, the profile stays inactive. Step 2: read the profile back and PATCH the whole targetStructure you read, changed as follows, together with the mappings. fixValue, by segment and composite: UNB/S001 D-0001 UNOC and D-0002 3; UNB/S002 D-0007 14; UNB/S003 D-0007#1 14; BGM/C002 D-1001 351; BGM D-1225 9; DTM/C507 D-2005 137 and D-2379 102; SG2/NAD D-3035 ST (an element of the segment itself); SG2/NAD/C082 D-3055#1 9; SG10/CPS D-7164 1; SG15/LIN/C212 D-7143#2 EN; SG15/QTY#1/C186#1 D-6063#1 12. SG2 gets path E2ADRM1001 and the condition 29 a equals b(SOURCE_FIELD "PARTNER_Q", VALUE "WE"), so exactly one NAD+ST is written; SG15 gets path E2EDL24005, one LIN per delivery item. D-2380 gets 94 format date/timestamp to text(LINK, "yyyyMMdd", "", "", "") because CREDAT is a date. Links: SNDPRN → D-0004, RCVPRN → D-0010, VBELN → D-1004, CREDAT → D-2380, PARTNER_ID → D-3039, MATNR → D-7140, LFIMG → D-6060#1. Step 3: PATCH {"active": true}. The unit fills UNT and UNZ; the envelope numbers and dates come from the template. Note the suffixed names under SG15: D-6063 without a suffix belongs to the QTY of the packaging group SG11.
{
"class": "core.IntegrationProfile",
"name": "api-demo-idoc-to-edifact",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: receives an SAP IDoc DELVRY03 delivery over HTTP and answers the caller with an EANCOM DESADV D96A despatch advice: the delivery number, the ship-to party's GLN and one line with GTIN and quantity per delivery item.",
"active": false,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "SAP_ALE",
"formatSettings": {
"class": "core.SAPFileMetadata"
}
},
"inputValidation": {
"removeBlanks": true
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "idoc-to-edifact",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "text/plain",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"template": "IDOC_IN_DELVRY03"
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"template": "DESADV_D96A"
}
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.EdifactCreationIU"
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
}
}CSV with a header row in, JSON out
CSV in, JSON out. The caller posts a semicolon-separated file with a header row to /dw/Request/csv-to-json; the profile answers with one JSON document listing every line. One repeating source node holds the columns as fields in column order; startRow: 2 skips the header. Every CSV line is a record of its own unless forceSingleRecord is true: then the whole file is one record, Row repeats inside it, and the target node items (path Row) becomes one array. Without it the JSON unit writes one wrapped object per line in a top-level array.
{
"class": "core.IntegrationProfile",
"name": "api-demo-csv-to-json",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: receives a semicolon-separated CSV file with a header row over HTTP and answers the caller with one JSON document listing every line, the header skipped.",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "CSV",
"formatSettings": {
"class": "core.CSVFileMetadata",
"delimiter": ";",
"startRow": 2,
"forceSingleRecord": true
}
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "csv-to-json",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "text/csv",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "Row",
"minimum": 0,
"maximum": 99999,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "sku",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "description",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "qty",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "items",
"path": "Row",
"minimum": 0,
"maximum": 99999,
"children": [
{
"class": "core.DestinationField",
"name": "sku",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "name",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "quantity",
"dataType": "INTEGER"
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "sku",
"destination": "sku"
},
{
"class": "core.MappingLink",
"source": "description",
"destination": "name"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "quantity"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": ""
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
}
}Fixed-length record types in, JSON out
Fixed-length in with record types, JSON out. The caller posts lines starting with HDR (order) or POS (position) to /dw/Request/fixed-length; the profile answers with each order and its positions nested below it. One top-level source node per line type, siblings, each with a STARTS_WITH match code on its type and every field's length (the type itself is the first field); nestedRecordTypes: true makes each HDR line start a record carrying the POS lines after it, and the target node positions iterates path: "POS" with optimizePath and relativePath false. inputValidation.removeBlanks: true strips the padding of each fixed-width value.
{
"class": "core.IntegrationProfile",
"name": "api-demo-fixed-length",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: receives a fixed-length file with a header record (HDR) and position records (POS) over HTTP and answers the caller with each order as JSON, its positions nested below it.",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "FIX",
"formatSettings": {
"class": "core.FIXFileMetadata",
"lineBreak": "NEW_LINE",
"nestedRecordTypes": true
}
},
"inputValidation": {
"removeBlanks": true
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "fixed-length",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "text/plain",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "HDR",
"minimum": 1,
"maximum": 1,
"path": "",
"matchCodes": [
{
"class": "core.MatchCode",
"checkValue": "HDR",
"condition": "STARTS_WITH"
}
],
"children": [
{
"class": "core.SourceField",
"name": "hdrType",
"dataType": "STRING",
"minimum": 0,
"maximum": 1,
"length": 3
},
{
"class": "core.SourceField",
"name": "orderNo",
"dataType": "STRING",
"minimum": 0,
"maximum": 1,
"length": 10
},
{
"class": "core.SourceField",
"name": "orderDate",
"dataType": "STRING",
"minimum": 0,
"maximum": 1,
"length": 8
}
]
},
{
"class": "core.SourceNode",
"name": "POS",
"minimum": 0,
"maximum": 99999,
"path": "",
"matchCodes": [
{
"class": "core.MatchCode",
"checkValue": "POS",
"condition": "STARTS_WITH"
}
],
"children": [
{
"class": "core.SourceField",
"name": "posType",
"dataType": "STRING",
"minimum": 0,
"maximum": 1,
"length": 3
},
{
"class": "core.SourceField",
"name": "sku",
"dataType": "STRING",
"minimum": 0,
"maximum": 1,
"length": 10
},
{
"class": "core.SourceField",
"name": "qty",
"dataType": "STRING",
"minimum": 0,
"maximum": 1,
"length": 5
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Order",
"path": "",
"minimum": 1,
"maximum": 1,
"children": [
{
"class": "core.DestinationField",
"name": "orderNo",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "orderDate",
"dataType": "STRING"
},
{
"class": "core.DestinationNode",
"name": "positions",
"path": "POS",
"minimum": 0,
"maximum": 99999,
"optimizePath": false,
"relativePath": false,
"children": [
{
"class": "core.DestinationField",
"name": "sku",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "quantity",
"dataType": "INTEGER"
}
]
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "orderNo",
"destination": "orderNo"
},
{
"class": "core.MappingLink",
"source": "orderDate",
"destination": "orderDate"
},
{
"class": "core.MappingLink",
"source": "sku",
"destination": "sku"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "quantity"
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.JsonCreationIU",
"startAtNode": ""
}
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
}
}XML in, CSV out to the caller
XML in, CSV out to the caller. The caller posts <Order no="PO-77"><Item><sku>A-1</sku><qty>10</qty></Item>... to /dw/Request/xml-to-csv; the profile answers with a CSV file with a header row, one line per item, the order number repeated on each line. Source nodes are elements, no_attr reads the attribute no; the write gives every node and field the match code the XML parser needs. recordTag names the element that starts a record. The target node Line iterates Item; a field linked from the parent (no_attr) repeats on every line. The CSV comes from the CSVWithHeaderUnit integration unit, and the pass-back unit with content type _IU answers the caller with it.
{
"class": "core.IntegrationProfile",
"name": "api-demo-xml-to-csv",
"group": "6bb76781_199702d94be_2714_9a14992bf4897187_6bb76781_1996f5f9530_-8000",
"description": "Demo: receives an XML order over HTTP and answers the caller with a semicolon-separated CSV file with a header row, one line per order item with the order number repeated on each line.",
"active": true,
"inputHandling": {
"encoding": "UTF-8"
},
"parsing": {
"documentType": "XML",
"formatSettings": {
"class": "core.XMLFileMetadata",
"recordTag": "Order"
}
},
"inputAgentSettings": {
"class": "core.HttpAgentSettings",
"url": "xml-to-csv",
"acceptHttpPost": true,
"acceptHttpGet": false,
"asyncRequest": false,
"useResponseOnSuccess": false,
"acceptEmptyResponse": false,
"mimeType": "application/xml",
"webservice": false
},
"mappingSettings": {
"class": "core.MappingSettings",
"sourceStructure": {
"class": "core.SourceDataStructure",
"nodes": [
{
"class": "core.SourceNode",
"name": "Order",
"minimum": 1,
"maximum": 1,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "no_attr",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceNode",
"name": "Item",
"minimum": 0,
"maximum": 99999,
"path": "",
"children": [
{
"class": "core.SourceField",
"name": "sku",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
},
{
"class": "core.SourceField",
"name": "qty",
"dataType": "STRING",
"minimum": 0,
"maximum": 1
}
]
}
]
}
]
},
"targetStructure": {
"class": "core.DestinationDataStructure",
"nodes": [
{
"class": "core.DestinationNode",
"name": "Line",
"path": "Item",
"minimum": 0,
"maximum": 99999,
"children": [
{
"class": "core.DestinationField",
"name": "orderNo",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "sku",
"dataType": "STRING"
},
{
"class": "core.DestinationField",
"name": "quantity",
"dataType": "STRING"
}
]
}
]
},
"mappings": [
{
"class": "core.MappingLink",
"source": "no_attr",
"destination": "orderNo"
},
{
"class": "core.MappingLink",
"source": "sku",
"destination": "sku"
},
{
"class": "core.MappingLink",
"source": "qty",
"destination": "quantity"
}
]
},
"responseSettings": {
"class": "core.ProfileResponseSettings",
"units": [
{
"class": "core.PassBackBinaryDataProfileResponseUnit",
"active": true,
"contentType": {
"class": "core.ResponseContentType_IU"
}
}
]
},
"integrationSettings": {
"class": "core.ProfileIntegrationSettings",
"unit": {
"class": "core.GenericIntegrationUnit",
"className": "com.ebd.hub.datawizard.iu.CSVWithHeaderUnit",
"params": {
"csv delimiter": ";"
}
}
}
}An integration profile: what data comes in, how it is parsed and mapped, and where the result goes. It runs in six phases, each held by members of this object: 1 the input agent (inputAgentSettings), 2 parsing (parsing), 3 the mapping (mappingSettings), 4 optional database access (the SQL members of the target nodes and fields), 5 the integration unit that serialises the target tree (integrationSettings) and 6 the response units (responseSettings). Only name is required; a profile is live as soon as it is stored with active: true.
The type of this object, always core.IntegrationProfile. Required where the member it is sent in accepts several types.
Whether the profile runs. An active profile takes calls on its input agent (an HTTP alias answers under /dw/Request/<url>) and a Cron* agent runs on its schedule from the moment it is stored; the change takes effect at once.
What happens to the input data after a run. null keeps every stored value.
The type of this object, always core.ArchivingSettings. Required where the member it is sent in accepts several types.
Hands the input data over to the archive system after processing.
Indexes the input backup for search.
Days a run's backup is retained. Must be at least -1, which follows the system-wide setting.
Both database concerns in one place: the phase 4 SQL step after the mapping. null keeps every stored value.
The type of this object, always core.DatabaseAccessSettings. Required where the member it is sent in accepts several types.
The SQL step run against a database after the mapping. null keeps every stored value.
The type of this object, always core.Phase4Settings. Required where the member it is sent in accepts several types.
Continues with the next record when a phase 4 SQL statement errors, instead of failing the job.
Turns phase 4 on. Forced back to false while the profile's integrationSettings.unit is core.SqlBulkUnit.
Name of a profile variable that must resolve to true at run time for phase 4 to execute; empty always runs phase 4 while enabled is true.
Trims SQL values before they are used in phase 4.
The statement a Cron-SQL input runs. null keeps every stored value.
The type of this object, always core.DatabaseSourceSettings. Required where the member it is sent in accepts several types.
Name of the database connection (alias) to query; it must already exist on the instance and be allowed for the profile's client. %NAME% constants and variables are resolved.
Whether, and how, the rows statement selected are deleted once the job has processed them.
What the input does when statement returns no row. null keeps every stored value.
The type of this object, always core.SourceEmptyResultSettings. Required where the member it is sent in accepts several types.
The input used while useReplacement is true, in the same CSV shape a real result row would have. Empty by default.
Starts one job with replacementData as its input instead of starting none.
Statement parameters bound positionally into statement. Left out keeps the stored ones; an empty list binds none.
One SQL statement parameter of a core.CronSqlAgentSettings agent, bound positionally. name is a display label, e.g. the parameter's position, not a bind variable name.
The type of this object, always core.SqlCronParameter. Required where the member it is sent in accepts several types.
Display label of the parameter, e.g. its position.
Value bound for the parameter. %NAME% constants and profile variables are resolved.
The SQL statement to run. Lines starting with -- are dropped. @0:t@ passes the time of the previous run as a statement parameter, so a run can read only new rows. %NAME% constants and variables are resolved.
Free text saying what the profile does.
Notes and a documentation link of the profile. null keeps every stored value.
The type of this object, always core.DocumentationSettings. Required where the member it is sent in accepts several types.
URL of external documentation for the profile, %CONST% fillers allowed. Must not carry credentials (user info). Empty by default.
Free-text note shown when the profile is imported (for example, path adjustments). Empty by default.
What happens when a job fails. null keeps every stored value.
The type of this object, always core.ErrorHandlingSettings. Required where the member it is sent in accepts several types.
CSV only: skips a record that fails to parse instead of failing the job. Applies only while parsing.documentType is CSV, otherwise a changed value is rejected.
The EDIFACT CONTRL acknowledgement. null keeps every stored value.
The type of this object, always core.EdifactContrlSettings. Required where the member it is sent in accepts several types.
Whether a CONTRL message is sent to the profile named in profile. Forced false while parsing.formatSettings.tradacoms is true; switching it on there is rejected.
Name of the profile that sends the CONTRL message; not checked for existence on write.
Name of a profile to run when this one's job fails; must name an existing profile with a core.MessageAgentSettings input agent when changed - any other input agent type is never found for exception handling at run time. Empty runs none.
Mail address notified when a job fails in phase 2 to 5 (parsing/mapping/database), distinct from responseSettings.errorRecipient which covers phase 6. Empty sends none.
Skips a record that errors instead of failing the whole job.
The workflow to run when this profile's job fails, referenced by its id, which is the workflow's name. A profile that runs none reads back null; sending null keeps the stored workflow, an empty or null id runs none.
The type of this object, always core.WorkflowReference. Required where the member it is sent in accepts several types.
The workflow's name, which identifies it: the latest version of the workflow with this name is started, ignoring upper and lower case. An empty or null id runs none.
Pluggable Java classes the profile runs, and their parameter. Any change needs a data-admin session. null keeps every stored value.
The type of this object, always core.ExtensionSettings. Required where the member it is sent in accepts several types.
A check run before the job starts. null keeps every stored value.
The type of this object, always core.EnvironmentCheckSettings. Required where the member it is sent in accepts several types.
Fully qualified Java class name of an environment check run before the job starts; must be one of the environment checks installed on the instance when changed. Empty runs none. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=ENVIRONMENT_CHECK.
Config file path for className; its content is not settable through this API.
A postparser that runs after parsing. null keeps every stored value.
The type of this object, always core.PostParserSettings. Required where the member it is sent in accepts several types.
Fully qualified Java class name of a postparser that runs after phase 2; must be one of the postparsers installed on the instance when changed. Empty runs none. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=POST_PARSER.
A preparser that runs before parsing. null keeps every stored value.
The type of this object, always core.PreParserSettings. Required where the member it is sent in accepts several types.
Fully qualified Java class name of a preparser that runs before phase 2; must be one of the preparsers installed on the instance when changed. com.ebd.hub.datawizard.parser.DummyPreParser skips the mapping while still handing the input on unchanged. Empty runs none. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=PRE_PARSER.
Config file path for className; its content is not settable through this API.
Whether the preparser's result overwrites the backup of the original input.
Administrative flags of the profile. null keeps every stored value.
The type of this object, always core.GovernanceSettings. Required where the member it is sent in accepts several types.
Marks the profile as holding private data. Only a data administrator may change it.
The id of the profile group the profile is listed under, as GET /platform/api/profiles/preview/groups returns it. Required on create: a missing, blank or root value, or an unknown id, is rejected as invalid. On an update by PATCH (also in overwrite mode), a missing, null or blank value keeps the stored group; a full replace by PUT must name the group, so there such a value is rejected as invalid. Any other value may only move the profile into an existing group, so root or an unknown id is rejected as invalid. A legacy value (such as Default, or root for a profile at the top level) is read back as stored and accepted while it stays unchanged.
Phase 1, how data arrives: one input agent object naming its type in class, e.g. core.HttpAgentSettings (the profile listens on /dw/Request/<url>) or a time-driven core.CronHttpAgentSettings, core.CronFileAgentSettings, ... that runs on a schedule.
The type of this object, always core.DataQueueAgentSettings. Required where the member it is sent in accepts several types.
Database alias sqlStatement runs on, allowed for the profile's client; %name% constants are resolved. Only used when useSql is true.
Java class that inserts the entry into sqlStatement when useSql is true (replaces &1). A custom class must be installed on the instance.
When true, an entry whose sqlStatement returns no rows is logged as a failed job; when false it is skipped silently. Only used when useSql is true.
Id (factory name) of the cluster node that reads the queue in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Host name or IP address of the IBM i (AS/400) system. %name% constants are resolved.
Milliseconds between two polls of the queue. Each poll reads entries until the queue is empty; with an interval of up to one minute at most 50 entries per poll.
Key for a keyed data queue: when set, the queue is read as a keyed queue and only entries with exactly this key are read. Empty reads a normal (non-keyed) queue.
Integrated file system path of the data queue object.
Weekly time windows in which the queue is not read, e.g. a nightly backup of the IBM i system. Empty: the queue is polled all the time the profile is active.
A weekly time window in which a data queue agent does not read its queue: it starts on day at hour:minute (server time) and lasts duration minutes. One element of skipExecution.
The type of this object, always core.DataQueueSkipExecution. Required where the member it is sent in accepts several types.
Day of the week the window starts.
Length of the window in minutes.
Hour of the day the window starts, 0 to 23.
Minute of the hour the window starts, 0 to 59.
SQL query run against the database alias for every entry read when useSql is true; with the default className every &1 is replaced by the entry text, unescaped. Line breaks are replaced by spaces. The result rows, as comma-separated CSV, become the job's input; no rows means no job (see errorOnNoData).
When true, each entry read is not processed itself but used as parameter of sqlStatement on alias, and the query result is the job's input; when false the entry text is the input.
User profile the agent signs on to the IBM i system with. %name% constants are resolved. A failed sign-on is logged at runtime, not rejected on save.
The type of this object, always core.HttpAgentSettings. Required where the member it is sent in accepts several types.
What a POST, PUT or PATCH without body does. false refuses it with status 500 and runs no job; true runs the job with a placeholder document, e.g. { "body": "data" } for JSON input.
true answers every successful call with status 204 and no body, taking precedence over useResponseOnSuccess and responseOnSuccess.
true lets DELETE calls reach this profile. Its body is read only with deleteHasPayload; otherwise the job gets a placeholder document.
true lets GET calls reach this profile. A GET carries no body: the job gets a placeholder document, and the query parameters as MSG_CALL_<NAME> variables. A call with a method the agent does not accept does not match it.
true lets HEAD calls reach this profile; the job gets a placeholder document.
true lets PATCH calls reach this profile; the request body is the job's input.
true lets POST calls reach this profile; the request body is the job's input.
true lets PUT calls reach this profile; the request body is the job's input.
true makes this a REST endpoint: calls to any sub-path of url match too, e.g. orders/v1/42; the part after url is put into the variable MSG_CALL_HTTP_PATH_DATA and split into named variables by restUrlPlaceholder.
Response examples for the generated OpenAPI document, taken from the profile's sample-response files; a listed file that does not exist can make the ?api request fail. Has no effect on calls.
An example file shown in the OpenAPI document an HTTP input agent generates for its profile; one element of apiTestFiles (request examples) or apiResponseTestFiles (response examples). The file itself is not transferred through this API: it must already be stored with the profile. The for* flags choose for which HTTP operations of the document it is the example.
The type of this object, always core.HttpAgentTestFile. Required where the member it is sent in accepts several types.
true uses the file as example for the DELETE operation.
true uses the file as example for the GET operation.
true uses the file as example for the HEAD operation.
true uses the file as example for the PATCH operation.
true uses the file as example for the POST operation.
true uses the file as example for the PUT operation.
File name of the example, relative to the profile's folder for such files: its test-mapping samples for request examples, its sample responses for response examples. A request example that does not exist there is left out of the document.
Request examples for the generated OpenAPI document, taken from the profile's test-mapping sample files. Has no effect on calls.
An example file shown in the OpenAPI document an HTTP input agent generates for its profile; one element of apiTestFiles (request examples) or apiResponseTestFiles (response examples). The file itself is not transferred through this API: it must already be stored with the profile. The for* flags choose for which HTTP operations of the document it is the example.
The type of this object, always core.HttpAgentTestFile. Required where the member it is sent in accepts several types.
true uses the file as example for the DELETE operation.
true uses the file as example for the GET operation.
true uses the file as example for the HEAD operation.
true uses the file as example for the PATCH operation.
true uses the file as example for the POST operation.
true uses the file as example for the PUT operation.
File name of the example, relative to the profile's folder for such files: its test-mapping samples for request examples, its sample responses for response examples. A request example that does not exist there is left out of the document.
true hands the call to background processing and answers at once, before the job has run: with responseOnSuccess (or 204 with acceptEmptyResponse). A response unit can then not return data, so with useResponseOnSuccess: false the caller gets an error.
HTTP authentication scheme the caller must use when authentication is required (see channelIds).
Ids of the partners' HTTP channels allowed to call this agent; list them with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). When set, a caller must authenticate as one of these channels (its remoteId as user plus its password, or a token accepted for it), else it gets 401. Empty requires no authentication. The ids are stored as sent, without checking that they exist.
true reads the body of a DELETE call as the job's input, like for POST. Only relevant with acceptHttpDelete.
true publishes a generated API description of the endpoint: <url>?api returns an OpenAPI document as JSON (?api&yaml as YAML), for a SOAP agent <url>?wsdl the WSDL. With false such calls run the profile like any other call.
HTTP status sent with responseOnError when the job fails, as text; a %NAME% constant may be used. A value that is not a number, or below 100, falls back to 500 at run time. Empty or blank on a write is treated the same as absent. Always 500 while webservice is true.
Error bodies for further HTTP statuses besides errorCode, e.g. a status a mapping raises with 480 throw http exception and an empty message. Also listed as error responses in the generated OpenAPI document.
Error body for one further HTTP status of an HTTP input agent; one element of errorCodeSettings. When a failed job answers with statusCode (other than the agent's errorCode), e.g. through the mapping function 480 throw http exception with an empty message, the caller receives responseMsg instead of responseOnError. Also listed as an error response in the profile's generated OpenAPI document.
The type of this object, always core.HttpAgentErrorCode. Required where the member it is sent in accepts several types.
Body sent with that status. The placeholders of responseOnError work here too: {--Exception--}, {--ExceptionBase64--}, {--FullStackTraceException--}, @VAR_JOBNR@.
HTTP status code this body is for, 100 to 599.
true refuses calls that reach the instance through the Lobster DMZ server (answered 404 as if no profile matched); only calls made directly to the instance get through.
OAuth2 scopes a JWT bearer token must carry to call this agent, separated by spaces; all listed scopes are required, more are fine, a token missing one gets 403. Empty checks no scopes. Only checked when the caller authenticates with a JWT bearer token.
Content type of the answer to the caller, on success and when the job fails. A value containing json also makes the error placeholders JSON-escaped. Sent as the answer's Content-Type; a charset in it only labels the body and does not convert it. The profile output is sent as written, so set the unit's encoding to match the charset (e.g. application/json; charset=UTF-8). A fixed response message is sent as UTF-8, except when the input is unpacked as an archive (compressed input): then it is sent as ISO-8859-1. The job-error text is always ISO-8859-1, whatever charset is declared. Also the media type of the responses in the generated OpenAPI document.
For a multipart/form-data call: name of the part that carries the data to process. Empty takes the part named file if there is one, else the first file part. The other parts become variables MSG_CALL_HTTP_MULTIPART<n>_NAME / _VALUE, their count MSG_CALL_HTTP_MULTIPARTS.
Target namespace of the WSDL generated for a SOAP agent and of its default SOAP answer. Only used while webservice is true.
Elements named to match one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other element is unaffected.
A request parameter a call must carry for this profile to be chosen; one element of params of an HTTP or data-product input agent. A call without it, or with a value not listed, does not reach this profile. Not needed just to read a parameter: every query parameter of a call is available as the variable MSG_CALL_<NAME>.
The type of this object, always core.HttpAgentParam. Required where the member it is sent in accepts several types.
Name of the query or form parameter; compared case-insensitively. %NAME% constants are resolved.
Accepted values; the call's value must equal one of them exactly (case-sensitive), e.g. ["fast", "full"]. * accepts any value, regex:<pattern> a value the whole pattern matches, e.g. regex:[0-9]+; %NAME% constants are resolved. An empty list never matches, so the profile becomes unreachable; use ["*"] to require only the parameter's presence.
Body sent with status errorCode when the job fails. Without webservice, absent or blank defaults to [Job-Id @VAR_JOBNR@] failed. Placeholders: {--Exception--} (error text), {--ExceptionBase64--}, {--FullStackTraceException--}, @VAR_JOBNR@; for a JSON mimeType the inserted texts are escaped for JSON, and with webservice the body is wrapped in a SOAP fault.
Fixed body sent to the caller after a successful job while useResponseOnSuccess is true; @VAR_JOBNR@ and @VAR_SYS_MESSAGE_ID@ are replaced with the job number and message id. Always used for an archive (e.g. ZIP) upload.
Names for the path segments after url in REST mode: a call to <url>/berlin/42 sets the variables MSG_CALL_HTTP_REST_API_PATH_shop = berlin and MSG_CALL_HTTP_REST_API_PATH_petId = 42. A leading or trailing / is removed. Only evaluated while acceptREST is true.
Description of the success response in the generated OpenAPI document; only used while responseOnSuccess is empty, and Success! when this is empty too. Has no effect on calls.
Generator of the ?api OpenAPI document. Has no effect on calls.
Path the agent listens on, appended to <instance>/dw/Request/. Leading and trailing / do not matter; the rest must match exactly, unless acceptREST also admits sub-paths. Keep it unique: when several active profiles match a call (same path, method and params), one of them is taken.
How the caller's success answer is produced. true sends the fixed text responseOnSuccess; false sends what a response unit with returnResponseToCaller: true hands back, and if none does the caller gets an error. Ignored while acceptEmptyResponse is true. With false, input that is split into several messages or an archive is refused.
true makes this a SOAP web service: ?wsdl serves a generated WSDL (see wsdlCreator, namespaceUrl), errors are answered as SOAP faults with status 500 (ignoring errorCode), and multipart parts are not turned into variables. Through this API, acceptHttpPost, acceptHttpGet, acceptHttpHead and acceptHttpDelete keep the values sent.
How the WSDL and the success answer of a SOAP agent are built: com.ebd.hub.datawizard.util.creator.DefaultWSDLCreator answers with a fixed SOAP envelope carrying the job number (ProfileReferenceID), whatever useResponseOnSuccess says; com.ebd.hub.datawizard.util.creator.ResponseWSDLCreator derives the WSDL from the target structure. Only used while webservice is true.
The type of this object, always core.CronOftpAgentSettings. Required where the member it is sent in accepts several types.
Stored but not evaluated: the OFTP agent processes every received file, whatever its size.
The OFTP partner channel to call, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type OFTP). Checked on write and read back resolved. Required: without it every run fails with "No OFTP partner channel set". The host comes from the channel's address. Its direction must be OUT or IN_AND_OUT, because the call opens the connection; this is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelOFTP. Required where the member it is sent in accepts several types.
Whether the certificates are exchanged with this partner automatically. Leaving it out keeps the stored value, null resets it to false.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Transports the partner may use. The editor exposes TCPIP and TCPIP_TLS; ISDN is also represented for existing channels. null, an empty list or omission keeps the stored allowance.
An OFTP transport allowed by allowedProtocols on an OFTP channel.
ISDN: OFTP over ISDN.TCPIP: OFTP over TCP/IP without TLS.TCPIP_TLS: OFTP over TCP/IP with TLS.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The credit count of the OFTP session. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Whether the platform may send the change-direction command twice in a row. Leaving it out keeps the stored value, null resets it to false.
Whether the partner's end-to-end responses must be signed. Leaving it out keeps the stored value, null resets it to false.
The encryption algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to AES256.
The partner's OFTP server the platform connects to; oftps:// uses TLS (commonly port 6619).
The size of the exchange buffer in bytes. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own OFTP identifier (SSID) toward this partner. Required on create; a write may not blank it.
The highest OFTP protocol release the platform offers. Leaving it out keeps the stored value, null restores the default.
Display name of the channel. Must be unique among the partner's channels of the same type.
The name of the trusted service list the partner's certificate is checked against. An empty string restores the default; leaving it out keeps the stored value, null restores it too.
Id of the platform's own certificate (with private key) that takes over as localCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) that takes over as remoteCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
The subject of the partner's certificate the platform looks for when remoteCertificateId names none. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's OFTP identifier - the SSID it presents when it connects, which assigns the session to this channel. Must be unique among OFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that no partner presents.
Whether the partner must authenticate securely. Leaving it out keeps the stored value, null resets it to false.
Whether an interrupted send is never resumed, but started again from the beginning. Leaving it out keeps the stored value, null resets it to false.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
The signature algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to SHA1.
Whether the SFID of every incoming file must match one the partner is allowed to send. Leaving it out keeps the stored value, null resets it to false.
The TLS cipher suite to use. An empty string removes the preference; leaving it out keeps the stored value, null resets it to the default.
The directory on the platform incoming files of this partner go to. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The directory on the platform outgoing files for this partner are taken from. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The X.25 window size. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Recipient SFID. Stored but not evaluated: the call uses the identities of channel.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Host name or address to call; non-empty overrides the channel's address. null resets it to the default.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
true calls over TCP/IP, which oftpTLS then secures; false calls over ISDN. null resets it to the default.
Whether the call goes through the Lobster DMZ.
Port to call; a value above 0 overrides the port of the channel's address. Omitted on create it is stored as 6619, which then overrides the channel's port, so send 0 to use the channel's port.
Name of the OFTP service on the instance that makes the call; only change it where several OFTP services are installed.
true connects over TCP/IP with TLS, false over plain TCP/IP. It also decides the port used when neither oftpPort nor the channel's address has one: 6619 with TLS, 3305 without.
Sender SFID. Stored but not evaluated: the call uses the identities of channel.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every received file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.FTPAgentSettings. Required where the member it is sent in accepts several types.
true also processes uploaded files of zero bytes; false skips them with a log entry.
FTP partner channels whose logins may deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type FTP). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an FTP channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An FTP connection with the partner, in either direction: the partner logs in to the platform's FTP server as remoteId and lands in remotePath, and the platform connects to the partner's server at host and port. Referenced by core.CronFtpAgentSettings.channel (fetch), core.FtpProfileResponseUnit.channel (send) and core.FTPAgentSettings.channels (partners allowed to upload). The partner's login password is remotePassword; the password the platform uses at the partner's server is not settable through this API, give it in the cron job or response unit instead. Channel list filter type=FTP.
The type of this object, always core.IntegrationPartnerChannelFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
FTP flavours the partner may log in to the platform's FTP server with: any of FTP, FTPS_EXPLICIT, FTPS_IMPLICIT. At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits all three.
An FTP flavour the partner may use to log in to the platform's FTP server: allowedProtocols of an FTP channel.
FTP: Plain FTP, unencrypted.FTPS_EXPLICIT: FTPS explicit: the connection starts plain and upgrades to TLS (AUTH TLS).FTPS_IMPLICIT: FTPS implicit: TLS from the first byte.
Addresses the partner may not log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's FTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
User name the platform logs in with at the partner's FTP server; its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the partner, logged in on the platform's FTP server as remoteId, is confined to its home directory (remotePath) and cannot change to a directory above it. null or left out keeps the stored value; a new channel is not confined.
TCP port of the partner's FTP server; left out, the address carries no port. Requires host. A port set in the cron job or response unit overrides it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
User name the partner logs in with on the platform's FTP server; its password is remotePassword. Must be unique among all FTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's FTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. The FTP server refuses every login to a channel without one. Left out or blank on create, the server picks <client default channel directory>ftp/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the control connection's TLS session is reused for the data connections of an FTPS transfer when the platform connects to the partner; some servers refuse a data connection without it. Leaving it out keeps the stored value, null resets it to true; a new channel reuses the session.
Whether the partner, logged in on the platform's FTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. Leaving it out keeps the stored value, null resets it to false; a new channel shows the real path.
Addresses the partner may log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Sub-directory, relative to the partner's home directory on the Lobster FTP/SFTP server, that an upload must land in for this profile; separate several with ;. $USER$ is replaced by the uploading partner's login name. Empty accepts uploads in any directory.
File-name pattern a file the partner uploads must match for this profile to take it. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and <yyyyMMdd> is replaced by the current date. If several profiles accept an upload, the one with the longest matching dir and the most specific pattern wins.
true collects the files a partner uploads during one session and processes them only when the partner logs out; false processes each file as soon as its upload is complete.
The type of this object, always core.CronPop3AgentSettings. Required where the member it is sent in accepts several types.
The Mail partner channel whose mailbox is polled, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type Mail). Checked on write and read back resolved. Server, protocol, login and password come from the channel; host, port and user override them when set. The channel must allow POP3 or IMAP retrieval respectively, otherwise every run fails. Without a channel host and user are required, and the password cannot be set through the API. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelMail. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
What the channel may be used for: any of SMTP and ASMTP (sending mail, without and with a login) and POP3 and IMAP (fetching mail). At least one must stay allowed (an empty list leaves the stored allowance unchanged), and POP3 and IMAP are mutually exclusive (the editor keeps one); null or left out keeps the stored allowance, which on a new channel permits all four.
A mail protocol the channel may be used with: allowedProtocols of a mail channel.
SMTP: SMTP: sending mail without login.ASMTP: ASMTP: sending mail through an SMTP server that requires a login.POP3: POP3: fetching mail from a POP3 mailbox.IMAP: IMAP: fetching mail from an IMAP mailbox.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing mails; used only when the channel sends encrypted. Not validated on save. null or left out keeps the stored value.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
IMAP folder mail is fetched from; a directory set in the IMAP cron job overrides it.
Largest incoming mail accepted on this channel, in bytes. Must be at most 1073741824 (1024 MB). null (or leaving it out on create) means no limit, and an unlimited channel reads back null.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own mail address on this channel; matched case-insensitively, so an incoming mail is assigned to the channel whatever case it is addressed in, while the address is stored and read back as given. Unless the channel stores its own SMTP or retrieval user name, the platform logs in with this address, so changing it changes that login too. null or left out keeps the stored value.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's mail address, stored in lower case; an SMTP response unit sends to it unless the unit names its own receiver. A channel that receives mail should hold exactly one address; this API does not check. Left out, the server fills a placeholder address (mail...@mail.org).
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
SASL mechanism for the POP3/IMAP login when mail is fetched through this channel; left out, the mail library negotiates one.
POP3/IMAP server the platform fetches mail from through this channel (pop3://, pop3s://, pop3es://, imap://, imaps:// or imapes://; the s variants are TLS, the es variants STARTTLS). Another scheme is accepted as given and fails when mail is retrieved. null or left out keeps the stored value.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing mails; used only when the channel sends signed. Not validated on save. null or left out keeps the stored value.
SASL mechanism for the SMTP login, case-insensitive; OAuth2 tokens are not settable through this API. Left out, the mail library negotiates one.
SMTP server that mails to this partner are sent through (smtp:// default port 25, smtps:// 465, smtpes:// for STARTTLS). A host or port set in the SMTP response unit overrides it.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Not used by POP3 and IMAP: the mail is always fetched directly. Leave it false.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a mail body or attachment that no rule in mailDispatchSettings accepts: STORE_UNRESOLVED stores it in the instance's 'unresolved' folder and sends the unresolved-data notification, DISCARD discards it.
Host name of the mail server; overrides the server of channel when set. Empty uses the channel's. Placeholders such as %NAME% are resolved.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Rules that decide, for the body and for each attachment of a fetched mail, which profile processes it. They are checked in list order and the first matching rule whose profile is usable wins; scoring does not reorder them. Sending the member replaces all rules. Data no rule accepts is handled as handleUnknownMailData says, so an empty list sends everything there; at least one rule is required.
One routing rule of a mail agent, an element of mailDispatchSettings of a POP3, IMAP or X.400 agent. The agent checks the rules in list order against the body and against each attachment of a fetched mail, and hands the data to the profile of the first active rule whose criteria all match (contentType, filePattern, channel, sender, to, cc, subject, mimeType) and whose profile is usable. An empty criterion does not filter. Send sender, subject and filePattern explicitly, "" meaning no filter: an omitted one is stored without a value, which the matching does not handle.
The type of this object, always core.MailDispatchRule. Required where the member it is sent in accepts several types.
false switches the rule off, so it is skipped.
One mail address that must be among the mail's CC recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
Id of a partner channel the mail must belong to, checked as matchChannel says; the platform assigns incoming mails to partner channels, and an X.400 mail without one gets the agent's channel. List channels with GET /platform/api/partners/preview/{partnerId}/channels. Stored as sent without any check. 0 does not filter by channel.
Which part of a mail the rule applies to.
true requires the subject to equal subject, ignoring case; false only requires it to contain subject. Not used when subject is a regex: expression.
Pattern the attachment's file name must match (* and ? wildcards ignoring case, | alternatives, regex: regular expressions); * or "" accepts every attachment. Only checked for attachments.
Kind of agent the rule belongs to. Left out on an existing rule, the stored kind is kept.
How channel is checked. Only evaluated when channel is not 0.
Content type the mail body must have for a body rule, compared case-insensitively with the content types of the body. Only checked for the body (contentType BODY or BODY_AND_ATTACHMENT) and ignored for X.400; without a value no body matches.
Name of the profile that processes the matching data; a profile's id is its name, see GET /platform/api/profiles/preview. Empty means the agent's own profile. The target must belong to the same client, be active, not be a master template and be within its validity period; otherwise the rule is skipped and the next one is tried.
Ranking used to sort a rule list by how specific a rule is. The agent ignores it and checks the rules in list order; stored as sent, 0 is fine.
Text the sender's address must contain, ignoring case; with mailType X400 an X.400 address the sender must match. "" does not filter.
Text the subject must contain, ignoring case, or equal with exactMatchSubject; a value starting with regex: is a regular expression the whole subject must match. "" does not filter.
One mail address that must be among the mail's To recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Port of the mail server; a value above 0 overrides the port of channel. Omitted on create it is stored as 21, which then overrides the channel's port, so send 0 to use the channel's port.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every mail body and attachment to a separate background job and continues at once, so several jobs run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true skips a mail that cannot be read or parsed and continues with the next one; false aborts the run at such a mail.
Stored but not read: S/MIME handling of the fetched mails is always enabled.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Login name at the mail server; overrides the retrieval user of channel when set. Empty uses the channel's.
The type of this object, always core.MQTTAgentSettings. Required where the member it is sent in accepts several types.
Name of the MQTT connection (broker, credentials, MQTT version) to subscribe with; it must exist on the instance.
Java class name of a custom binary converter, meant for complexDataType BINARY. Stored, but the MQTT agent does not call it.
Structured payload type. Omit it for plain text or numbers read as genericDataType.
Text put between the messages when finalValueFunction is ALL and complexDataType is not set; NL stands for a line break (CRLF). Empty: the messages are concatenated without separator.
Id (factory name) of the cluster node that runs this agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Function chain that decides, for each message that arrives while the buffer is not yet full, whether the collected messages (including this one) are handed on early: the chain runs on the message text and the buffer is forwarded when its last result is true. It does not drop messages. Only evaluated with messageBufferSize above 1 and only when mqttConditions is absent; an empty mqttConditions list disables it too.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
What the job receives from the collected messages. Without complexDataType, MIN, MAX and AVG need a numeric genericDataType (INTEGER, FLOAT, BIG_DECIMAL or BIG_INTEGER) and ALL works for STRING, INTEGER, FLOAT, BIG_DECIMAL and BIG_INTEGER; any other combination produces no job. With complexDataType JSON or XML, ALL combines the messages (see there) and every other value passes the last message on.
Type the whole message payload is read as for mqttConditions and finalValueFunction. mqttConditions support STRING, INTEGER, DOUBLE, DATE (yyyy-MM-dd), FLOAT and BIG_INTEGER. A message that does not parse as the type fails the check. Keep STRING when complexDataType is set.
Number of messages collected before they are handed on together as one job, combined by finalValueFunction. 1 starts one job per message; timeout, mqttConditions and filters only have an effect above 1.
Not evaluated by the MQTT agent: mqttConditions and filters are checked on every message.
Conditions that hand the collected messages on early: when a message that arrives before the buffer is full matches any value of any entry, the buffer including this message is forwarded. The whole message is compared, read as genericDataType; entries are OR-linked. They do not drop messages. Only evaluated with messageBufferSize above 1; when present (even as an empty list), filters are ignored.
One entry of mqttConditions of an MQTT, Kafka or AMQP (Legacy) agent: a comparison (condition) and the values the whole received message is compared with, read as the agent's genericDataType. The entry matches when the message matches any of its values; the entries of the list are OR-linked. A match hands the buffered messages on early, it does not filter messages out.
The type of this object, always core.MqttConditionEntry. Required where the member it is sent in accepts several types.
Comparison to apply. Text (genericDataType STRING) supports REGEX, CONTAINS, EQUALS and NOT; numbers support EQUALS, NOT and the four comparisons; dates only SMALLER, GREATER and EQUALS; any other combination never matches. Required; a missing or unknown name is rejected. A later entry with the same condition replaces an earlier one.
Values the message is compared with, written in the agent's genericDataType, e.g. dates as 2024-12-31 or a regular expression for REGEX. Every value must parse as that type, otherwise the check fails.
MQTT quality of service of the subscription.
Seconds after which the messages collected so far are handed on as one job even though fewer than messageBufferSize have arrived; checked about every 5 seconds. 0 waits until the buffer is full. Only meaningful with messageBufferSize above 1.
Topic filter to subscribe to (MQTT wildcards + and # are allowed). %name% constants are resolved.
The type of this object, always core.OFTPAgentSettings. Required where the member it is sent in accepts several types.
OFTP partner channels allowed to deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type OFTP). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an OFTP channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An OFTP connection with the partner: both sides' OFTP identifiers, the partner's OFTP server and the certificates. Needs localSsid; remoteSfid and endpointUrl are filled from defaults when absent. Referenced by core.CronOftpAgentSettings.channel (fetch), core.OftpProfileResponseUnit.channel (send) and core.OFTPAgentSettings.channels (partners allowed to deliver). The session passwords and additional SFIDs are not settable through this API; channel list filter type=OFTP.
The type of this object, always core.IntegrationPartnerChannelOFTP. Required where the member it is sent in accepts several types.
Whether the certificates are exchanged with this partner automatically. Leaving it out keeps the stored value, null resets it to false.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Transports the partner may use. The editor exposes TCPIP and TCPIP_TLS; ISDN is also represented for existing channels. null, an empty list or omission keeps the stored allowance.
An OFTP transport allowed by allowedProtocols on an OFTP channel.
ISDN: OFTP over ISDN.TCPIP: OFTP over TCP/IP without TLS.TCPIP_TLS: OFTP over TCP/IP with TLS.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The credit count of the OFTP session. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Whether the platform may send the change-direction command twice in a row. Leaving it out keeps the stored value, null resets it to false.
Whether the partner's end-to-end responses must be signed. Leaving it out keeps the stored value, null resets it to false.
The encryption algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to AES256.
The partner's OFTP server the platform connects to; oftps:// uses TLS (commonly port 6619).
The size of the exchange buffer in bytes. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own OFTP identifier (SSID) toward this partner. Required on create; a write may not blank it.
The highest OFTP protocol release the platform offers. Leaving it out keeps the stored value, null restores the default.
Display name of the channel. Must be unique among the partner's channels of the same type.
The name of the trusted service list the partner's certificate is checked against. An empty string restores the default; leaving it out keeps the stored value, null restores it too.
Id of the platform's own certificate (with private key) that takes over as localCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) that takes over as remoteCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
The subject of the partner's certificate the platform looks for when remoteCertificateId names none. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's OFTP identifier - the SSID it presents when it connects, which assigns the session to this channel. Must be unique among OFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that no partner presents.
Whether the partner must authenticate securely. Leaving it out keeps the stored value, null resets it to false.
Whether an interrupted send is never resumed, but started again from the beginning. Leaving it out keeps the stored value, null resets it to false.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
The signature algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to SHA1.
Whether the SFID of every incoming file must match one the partner is allowed to send. Leaving it out keeps the stored value, null resets it to false.
The TLS cipher suite to use. An empty string removes the preference; leaving it out keeps the stored value, null resets it to the default.
The directory on the platform incoming files of this partner go to. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The directory on the platform outgoing files for this partner are taken from. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The X.25 window size. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
Destination SFID (Odette id of the recipient) the file must be addressed to, compared case-insensitively; a trailing * matches every id starting with the text before it. Empty accepts any.
Pattern the virtual file (dataset) name must match, case-insensitive: wildcards * and ?, several patterns separated by |, regex:<expression> for a regular expression, and date placeholders like <yyyyMMdd>. addval:<key> takes the pattern from the additional value <key> of the delivering channel.
Originator SFID (Odette id of the sender) the file must come from, compared case-insensitively; a trailing * matches every id starting with the text before it. Empty accepts any.
When true, received files are collected and processed only when the partner ends the OFTP session; when false, each file is processed as soon as it arrives.
The type of this object, always core.CronImapAgentSettings. Required where the member it is sent in accepts several types.
The Mail partner channel whose mailbox is polled, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type Mail). Checked on write and read back resolved. Server, protocol, login and password come from the channel; host, port and user override them when set. The channel must allow POP3 or IMAP retrieval respectively, otherwise every run fails. Without a channel host and user are required, and the password cannot be set through the API. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelMail. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
What the channel may be used for: any of SMTP and ASMTP (sending mail, without and with a login) and POP3 and IMAP (fetching mail). At least one must stay allowed (an empty list leaves the stored allowance unchanged), and POP3 and IMAP are mutually exclusive (the editor keeps one); null or left out keeps the stored allowance, which on a new channel permits all four.
A mail protocol the channel may be used with: allowedProtocols of a mail channel.
SMTP: SMTP: sending mail without login.ASMTP: ASMTP: sending mail through an SMTP server that requires a login.POP3: POP3: fetching mail from a POP3 mailbox.IMAP: IMAP: fetching mail from an IMAP mailbox.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing mails; used only when the channel sends encrypted. Not validated on save. null or left out keeps the stored value.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
IMAP folder mail is fetched from; a directory set in the IMAP cron job overrides it.
Largest incoming mail accepted on this channel, in bytes. Must be at most 1073741824 (1024 MB). null (or leaving it out on create) means no limit, and an unlimited channel reads back null.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own mail address on this channel; matched case-insensitively, so an incoming mail is assigned to the channel whatever case it is addressed in, while the address is stored and read back as given. Unless the channel stores its own SMTP or retrieval user name, the platform logs in with this address, so changing it changes that login too. null or left out keeps the stored value.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's mail address, stored in lower case; an SMTP response unit sends to it unless the unit names its own receiver. A channel that receives mail should hold exactly one address; this API does not check. Left out, the server fills a placeholder address (mail...@mail.org).
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
SASL mechanism for the POP3/IMAP login when mail is fetched through this channel; left out, the mail library negotiates one.
POP3/IMAP server the platform fetches mail from through this channel (pop3://, pop3s://, pop3es://, imap://, imaps:// or imapes://; the s variants are TLS, the es variants STARTTLS). Another scheme is accepted as given and fails when mail is retrieved. null or left out keeps the stored value.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing mails; used only when the channel sends signed. Not validated on save. null or left out keeps the stored value.
SASL mechanism for the SMTP login, case-insensitive; OAuth2 tokens are not settable through this API. Left out, the mail library negotiates one.
SMTP server that mails to this partner are sent through (smtp:// default port 25, smtps:// 465, smtpes:// for STARTTLS). A host or port set in the SMTP response unit overrides it.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
IMAP folder to read; when not empty it overrides the folder set on channel. Date masks and variables are resolved.
Not used by POP3 and IMAP: the mail is always fetched directly. Leave it false.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a mail body or attachment that no rule in mailDispatchSettings accepts: STORE_UNRESOLVED stores it in the instance's 'unresolved' folder and sends the unresolved-data notification, DISCARD discards it.
Host name of the mail server; overrides the server of channel when set. Empty uses the channel's. Placeholders such as %NAME% are resolved.
IMAP folder the fetched mails are moved to instead of being deleted; it must already exist, otherwise the run fails. Empty deletes fetched mails.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Rules that decide, for the body and for each attachment of a fetched mail, which profile processes it. They are checked in list order and the first matching rule whose profile is usable wins; scoring does not reorder them. Sending the member replaces all rules. Data no rule accepts is handled as handleUnknownMailData says, so an empty list sends everything there; at least one rule is required.
One routing rule of a mail agent, an element of mailDispatchSettings of a POP3, IMAP or X.400 agent. The agent checks the rules in list order against the body and against each attachment of a fetched mail, and hands the data to the profile of the first active rule whose criteria all match (contentType, filePattern, channel, sender, to, cc, subject, mimeType) and whose profile is usable. An empty criterion does not filter. Send sender, subject and filePattern explicitly, "" meaning no filter: an omitted one is stored without a value, which the matching does not handle.
The type of this object, always core.MailDispatchRule. Required where the member it is sent in accepts several types.
false switches the rule off, so it is skipped.
One mail address that must be among the mail's CC recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
Id of a partner channel the mail must belong to, checked as matchChannel says; the platform assigns incoming mails to partner channels, and an X.400 mail without one gets the agent's channel. List channels with GET /platform/api/partners/preview/{partnerId}/channels. Stored as sent without any check. 0 does not filter by channel.
Which part of a mail the rule applies to.
true requires the subject to equal subject, ignoring case; false only requires it to contain subject. Not used when subject is a regex: expression.
Pattern the attachment's file name must match (* and ? wildcards ignoring case, | alternatives, regex: regular expressions); * or "" accepts every attachment. Only checked for attachments.
Kind of agent the rule belongs to. Left out on an existing rule, the stored kind is kept.
How channel is checked. Only evaluated when channel is not 0.
Content type the mail body must have for a body rule, compared case-insensitively with the content types of the body. Only checked for the body (contentType BODY or BODY_AND_ATTACHMENT) and ignored for X.400; without a value no body matches.
Name of the profile that processes the matching data; a profile's id is its name, see GET /platform/api/profiles/preview. Empty means the agent's own profile. The target must belong to the same client, be active, not be a master template and be within its validity period; otherwise the rule is skipped and the next one is tried.
Ranking used to sort a rule list by how specific a rule is. The agent ignores it and checks the rules in list order; stored as sent, 0 is fine.
Text the sender's address must contain, ignoring case; with mailType X400 an X.400 address the sender must match. "" does not filter.
Text the subject must contain, ignoring case, or equal with exactMatchSubject; a value starting with regex: is a regular expression the whole subject must match. "" does not filter.
One mail address that must be among the mail's To recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Port of the mail server; a value above 0 overrides the port of channel. Omitted on create it is stored as 21, which then overrides the channel's port, so send 0 to use the channel's port.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every mail body and attachment to a separate background job and continues at once, so several jobs run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true skips a mail that cannot be read or parsed and continues with the next one; false aborts the run at such a mail.
Stored but not read: S/MIME handling of the fetched mails is always enabled.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Login name at the mail server; overrides the retrieval user of channel when set. Empty uses the channel's.
The type of this object, always core.CronMongodbAgentSettings. Required where the member it is sent in accepts several types.
Name of the MongoDB connection to read from; it must already exist on the instance and be allowed for the profile's client. @name@ variables are resolved.
Name of the collection in databaseName to query. @name@ variables are resolved.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Name of the MongoDB database. @name@ variables are resolved.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
How documents are written as JSON.
true sends the error mail when a run of the agent fails. null keeps the stored value.
With oneDocument: number of documents per array, so each block of that size becomes one job. 0 or 1 puts all documents into one array; ignored when it is not smaller than maxRows.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
Maximum number of documents a find reads per run. 0 or less means no limit.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
true combines the documents of a run into one JSON array [{...}, {...}] processed as a single job (split by maxBatchSize); false processes every document as its own job.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
JSON projection for a find that selects the fields to return. Empty returns whole documents. Not used for an aggregation query.
A JSON filter document for a find; empty reads every document. A JSON array instead runs an aggregation pipeline, e.g. [{"$match": {"status": "open"}}], and then projection and the maxRows limit are not applied. @0:t@ inserts the time of the previous run as yyyy-MM-dd'T'HH:mm:ss.SSS'Z', so a run can read only new documents.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.AmqpV2AgentSettings. Required where the member it is sent in accepts several types.
Message-buffering configuration for this agent; see core.AccumulationSettings. Only acknowledgmentMode IMMEDIATE can have it enabled.
The type of this object, always core.AccumulationSettings. Required where the member it is sent in accepts several types.
How the buffered payloads are combined into the job's data when the buffer flushes.
Payload comparisons that flush the buffer early: each entry is checked against the newest message's payload, read as payloadDataType, and entries are OR-composed with each other and with filters, maxCount, maxAgeSeconds and maxTotalBytes - any one of them flushes. Sending the member replaces the whole list.
One payload comparison of AccumulationSettings.comparators: operator checked against the newest buffered message's payload, read as payloadDataType, for each of values. Several values are OR-composed for the same operator, e.g. two EQUALS values flush on either.
The type of this object, always core.AccumulationComparator. Required where the member it is sent in accepts several types.
Comparison to apply: REGEX and CONTAINS need payloadDataType STRING; SMALLER, GREATER, SMALLER_EQUALS and GREATER_EQUALS need BIG_INTEGER, BIG_DECIMAL or DATE; EQUALS and NOT work with every supported payloadDataType. A value that fails to parse as payloadDataType fails the whole check for that message. Required.
Values compared against the payload; must not be empty. Compared as text for REGEX and CONTAINS, otherwise parsed as payloadDataType.
true buffers messages instead of starting a job for each. While false no other member is validated. At least one of maxCount, maxAgeSeconds or maxTotalBytes must then be above 0, else the profile is rejected.
Function chain conditions that flush the buffer early, evaluated on the newest message like comparators (see core.MessageFilter), but through a mapping function chain instead of a fixed operator. OR-composed with comparators, maxCount, maxAgeSeconds and maxTotalBytes.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
Which buffered payload is kept when aggregation is FINAL_VALUE; ignored otherwise. MIN, MAX and AVG need payloadDataType BIG_INTEGER or BIG_DECIMAL; LAST works with every payloadDataType.
Seconds since the oldest buffered message that flushes the batch. 0 disables this trigger; see enabled.
Number of buffered messages that flushes the batch. 0 disables this trigger; see enabled.
Total buffered payload size in bytes that flushes the batch. 0 disables this trigger; see enabled.
Which buffered message's file name, sender and variables the flushed job carries: FIRST or LAST message's, COLLECT_INDEXED all of them with an index suffix, COMMON_ONLY only the values every buffered message agrees on.
Type each buffered message's payload is read as for comparators and, with aggregation FINAL_VALUE, for finalValueFunction. comparators only work with STRING, BIG_INTEGER, BIG_DECIMAL or DATE; a finalValueFunction other than LAST needs BIG_INTEGER or BIG_DECIMAL.
Text put between the buffered payloads when aggregation is CONCAT_SEPARATOR; ignored otherwise.
Name of the root element the buffered payloads are wrapped in when aggregation is XML_WRAP; ignored otherwise. Must not be blank.
When a delivery is settled relative to the job it starts, and whether a reply is produced. Message buffering (accumulation) is only available with IMMEDIATE.
Name of the AMQP v2 connection to receive through; it must exist on the instance and be allowed for the profile's client, otherwise the agent is not started (only logged, the profile still saves). A write that sets an alias outside a restricted client's allow-list is refused, listing the allowed ones. The alias decides the protocol (AMQP 0.9.1, AMQP 1.0 or JMS).
AMQP 0.9.1 only: whether the declared queue/exchange is durable. In destinationType QUEUE it declares the consumed queue durable, in TOPIC it declares both the exchange and amqp091QueueName durable (needs a name then).
AMQP 0.9.1 only, only relevant while consuming via an exchange (destinationType TOPIC): the exchange kind bound with amqp091RoutingKey.
AMQP 0.9.1 only: number of messages the broker may deliver without an acknowledgment. 0 uses the broker default.
AMQP 0.9.1 only, only for destinationType TOPIC: name of the queue declared and bound to the exchange; empty means a server-named, auto-delete queue. A durable declaration (amqp091DeclareDurable) needs a name, since a server-named queue cannot be durable. %name% constants are resolved.
AMQP 0.9.1 only: whether a nacked message is requeued (true) instead of dead-lettered (false). Only relevant with a synchronous acknowledgmentMode (AFTER_PROCESSING / RPC).
AMQP 0.9.1 only, only for destinationType TOPIC: binding key for the exchange named by destinationName (wildcards * and #). %name% constants are resolved.
The client (AMQP container) id the receiver connections identify themselves with at the broker. Ignored for an AMQP 0.9.1 alias. Pinned on the connection whenever set for AMQP 1.0, only for a durable subscription for JMS (a JMS provider refuses a second connection holding an id already in use). Must be set together with subscriptionName for a durable subscription: the broker identifies it by client id plus subscription name. Must be unique per broker. %name% constants are resolved.
Name of the queue or topic (see destinationType) to consume from. %name% constants are resolved.
What destinationName names.
Whether the subscription is durable, i.e. survives times without a connected receiver. Only meaningful for destinationType TOPIC on an AMQP 1.0 or JMS alias; ignored for AMQP 0.9.1 and for destinationType QUEUE. Requires subscriptionName and clientId.
Id (factory name) of the cluster node that receives in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
JMS only: SQL-92 selector expression filtering the received messages. Empty receives all. %name% constants are resolved.
JMS only, only with durableSubscription true: whether the durable subscription is removed from the broker when the agent stops, so messages published meanwhile are not kept for it.
Delivery guarantee the consumer requests from the broker. A synchronous acknowledgmentMode (AFTER_PROCESSING or RPC) requires AT_LEAST_ONCE.
Seconds a synchronous acknowledgmentMode (AFTER_PROCESSING / RPC) waits for the in-flight job on shutdown/restart before it is cut off. 0 or negative falls back to 30. Ignored for acknowledgmentMode IMMEDIATE.
Name identifying the durable subscription on the broker, scoped to clientId: together they must be unique per broker. Only used when durableSubscription is true. %name% constants are resolved.
The type of this object, always core.PortalAgentSettings. Required where the member it is sent in accepts several types.
true lets anyone open the form without logging in; roles and userIds must then be empty. Switching it back to false later does not remove the public access from an existing form.
Milliseconds the form in the browser waits after an input before it requests dependent (dynamic) content from the server.
Class name of the form renderer. Stored only: the DataCockpit form is built from the profile's source structure, not from this value. Leave the default.
The form's image, Base64-encoded; empty removes it. null keeps the stored value.
map
true hides the job logs from the form's users.
true makes the form a mask without a save option, e.g. a search mask.
DataCockpit role names whose users may open the form. Copied into the form's access assignments only when the DataCockpit form is first created for the profile; later changes do not alter an existing form. Must be empty while allowAnonymousAccess is true.
true runs the profile while the user waits and reports success or the error back to the form; false starts it in the background and returns at once, so errors are not shown to the user.
true turns the form into a pure file upload: the user uploads data instead of filling in fields.
DataCockpit users who may open the form, each given by user id or login name. Like roles, only applied when the DataCockpit form is first created; must be empty while allowAnonymousAccess is true.
The type of this object, always core.CronFileAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
The SMB partner channel the directory is read through, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type SMB). Checked on write and read back resolved. Leave it out for a local directory; left out on an update, the stored channel stays. A channel that was deleted reads as no channel.
The type of this object, always core.IntegrationPartnerChannelSMB. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the SMB file server - no scheme, port or path. Replaces <SMBHOST> in the file path of a cron job or response unit that uses this channel. Required on create; a write may not blank it.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Display name of the channel. Must be unique among the partner's channels of the same type.
Share name, stored as the path of the channel's smb:// address (a leading / is added). Needs host. The file cron job and response unit take only the host from the channel, so name the share in their file path as well.
Windows domain the SMB login authenticates in; a domain set in the cron job or response unit wins. Required on create; a write may not blank it.
Account used during SMB authentication, next to smbDomain. Required on create; a write may not blank it. null or left out keeps the stored value.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes: right away when they are skipped (acceptEmptyFiles false), and after pickup when they are processed, even if fileHandling is NONE.
true treats a directory that does not exist as empty: it is only noted in the trace log and the run does not fail, e.g. for a network share that is not always mounted.
Directory on the Lobster server to scan; separate several with ;. Date masks such as <yyyyMMdd>, %NAME% constants and @MSG_CALL_<name>@ variables are resolved. A missing directory fails the run unless dirIsMounted is true; one that cannot be read is logged as an error and skipped. If the instance restricts file access with a path whitelist, the directory must be on it.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Hours part of an age limit that excludeMinute and excludeSecond complete: files last modified longer ago than this duration are skipped. All three 0 disables the limit. fileOlderThan flips it to skip files younger than the duration instead.
Minutes part of the age limit described at excludeHour.
Seconds part of the age limit described at excludeHour.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file once it has been picked up. RENAME is not supported by these agents and behaves like NONE. DELETE needs write access to the file and its directory; a file it cannot delete is skipped with an error.
Whether the age limit of excludeHour, excludeMinute and excludeSecond skips files modified longer ago (true) or files younger than the duration (false). null resets it.
Pattern the names of the files to pick up must match. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and regex2: makes the whole value one regular expression. <yyyyMMdd> or @yyyyMMdd@ insert the current date, %NAME% a constant, @MSG_CALL_<name>@ a trigger variable. Names starting with . are always ignored; the file agent fails the run if the pattern is empty.
true sorts ascending (A to Z, oldest first), false descending. Only used when the files are sorted, see fileSortItem.
Order in which the files of a run are processed, in the direction of fileSortAscending. The cloud storage agent always sorts: by name for NAME, by last-modified time otherwise.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Full path of a lock file. If it exists when a run starts, the run is skipped with a log entry; otherwise the agent creates it for the duration of the run and deletes it afterwards, so runs and a cooperating writer do not overlap. Date masks and variables are resolved. Empty disables it.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true also picks up files whose name starts with ~, which the file agent otherwise skips as temporary files. The cloud storage agent does not evaluate it and never skips such files.
true also picks up matching files from all sub-directories of the scanned directories, at any depth. Ignored by the file agent when singleFile is true.
true hands every file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true treats filePattern as one exact file name looked up in each directory instead of a pattern, and sub-directories are not scanned.
Windows domain of the login for an SMB share the directory is on. null resets it.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.CronSqlAgentSettings. Required where the member it is sent in accepts several types.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true Base64-encodes the values of BLOB columns in the result.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Seconds the test functions ("Test SQL", structure creation, the config assistant) may take; not used by the scheduled runs.
Maximum lifetime in seconds of the database session a run executes the statement in; 0 means no limit.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.CronSftpAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
true also deletes or renames the AS/400 main file when a member file is deleted or renamed after download (a.file/b.mbr -> a.file, a.b -> a).
The SFTP partner channel to fetch from, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type SFTP). Checked on write and read back resolved. The channel must allow SFTP, otherwise every run fails with a subtype mismatch. An agent created through the API keeps the internal default port 21, which overrides the channel's port (usually 22), so the connection fails until port: 0 is sent to use the channel's port. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelSFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Protocols the partner may log in to the platform's SSH server with: any of SCP, SFTP, SSH (remote command execution). At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits SCP and SFTP but not SSH.
An SSH flavour the partner may use to log in to the platform's SFTP server: allowedProtocols of an SFTP channel.
SCP: SCP: file copy over SSH.SFTP: SFTP: file transfer over SSH.SSH: SSH: remote command execution. Not allowed on a new channel.
Addresses the partner may not log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's SFTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Fingerprint of the host key the partner's SFTP server must present when the platform connects; compared case-insensitively together with keyType, and the connection fails on a mismatch. Left blank, any host key is accepted.
Type of the host key the partner's SFTP server must present, as the SSH library reports it; checked together with keyFingerprint.
User name the platform logs in with at the partner's SFTP server (SSH login); its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
TCP port of the partner's SFTP server. Requires host. A port set in the cron job or response unit overrides it.
Id of the local certificate holding the key pair the platform authenticates with (public-key authentication) when it connects to the partner's SFTP server. Must reference an existing certificate with an SSH common name.
Ids of the partner's certificates (public keys) in the certificate store, one of which the partner may authenticate with when it logs in to the platform's SFTP server by public key. Each must reference an existing certificate. Leaving it out keeps the stored list, null or an empty list removes it.
User name the partner logs in with on the platform's SFTP server; its password is remotePassword, its public keys are remoteCertificateIds. Must be unique among all SFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's SFTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. Without one the partner's file paths resolve against the server's working directory. Left out or blank on create, the server picks <client default channel directory>ssh/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the partner, logged in on the platform's SFTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. null or left out keeps the stored value; a new channel shows the real path.
Addresses the partner may log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Character set the SFTP/SCP server and client use for file names on the wire, e.g. ISO-8859-1. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it so the SSH library's default applies.
Text that turns a data file name into the name of its control file, see ftpControlNameType; compared case-insensitively. Placeholders such as <yyyyMMdd> are resolved. Required when useControlFile is true.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes from the server: skipped ones right away, and processed ones (with acceptEmptyFiles) even if fileHandling is NONE or RENAME.
true deletes the master control file once its directory has been processed. Only used with masterCtrlFile.
Directory on the partner's server to fetch from; separate several with ;, each is read in its own connection. Empty reads the login directory. %NAME% constants, @MSG_CALL_<name>@ trigger variables and date masks such as <yyyyMMdd> are resolved. A directory that cannot be entered is logged and skipped.
true fetches through the Lobster DMZ server: the DMZ connects to the partner, and the internal server then collects the files from the DMZ. Needs channel and a DMZ set up for the instance; file filter classes of the profile are not applied this way.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
true also downloads each data file's control file and passes its content to the mapping as the variable VAR_SYS_CTRL_FILE, decoded with the profile's encoding. Set it only together with useControlFile: with a controlSuffix but useControlFile false the downloads fail.
true also processes the master control file itself as data, after the other files of its directory. Only used with masterCtrlFile.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file on the partner's server right after its download, before the data is processed: NONE leaves it (so it is fetched again next run unless the profile skips already received files), RENAME renames or moves it as fileRename says.
Names of the files to fetch. A plain pattern is sent with the server's directory listing, so the server's wildcard rules apply; | separates alternatives that are listed one by one, and an alternative starting with regex: (or a whole value starting with regex2:) is a regular expression the agent applies to the full listing itself. <yyyyMMdd>, %NAME% and @MSG_CALL_<name>@ are resolved first.
New name of a fetched file when fileHandling is RENAME; a path moves it. <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. Empty leaves the file in place.
true sorts A to Z, false Z to A, ignoring case. Only used when fileSortItem is NAME.
NAME processes the fetched files in file-name order (direction fileSortAscending); any other value keeps the order in which the server lists them.
How controlSuffix forms a control file name: SUFFIX appends it to the data file name (orders.xml + .ok = orders.xml.ok), PREFIX puts it in front (ok_ + orders.xml = ok_orders.xml). Only used with useControlFile.
true opens the FTP data connection in passive mode, false in active mode. Ignored for SFTP.
Extra commands for the server, one per line. A line starting with before: is sent right after login, before the listing; the other lines after the directory has been processed, before logout. For FTP each line goes out as SITE <command> (a rfc: prefix sends it without SITE); SFTP only supports chmod <octal> <path>. @...@ variables are resolved.
true downloads in FTP ASCII mode, where the server may convert line endings; false in binary mode, which keeps the bytes unchanged. Ignored for SFTP.
FTP server host; non-empty overrides the channel's. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true: when deleting or renaming a file on the server fails after its download, the downloaded copy is kept in the server's temporary directory and its path logged, instead of being discarded; the file is not processed in either case. For servers that remove fetched files themselves and refuse client deletes.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Name of a master control file that must exist before anything is fetched: without it in the first directory of dir the run stops (see masterCtrlFileInSubDir). No wildcards (a * fails the run); date masks and variables are resolved. Empty disables it. Do not combine with useControlFile.
false: only the first directory in dir must hold masterCtrlFile, and without it the whole run stops. true: every directory needs its own master control file, and a directory without one is skipped.
Maximum number of files fetched per run, counted over all directories; the rest waits for the next run. 0 means no limit.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
FTP server port; above 0 overrides the channel's. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every downloaded file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
true fetches a data file only when its control file (see controlSuffix) exists next to it. Control files are never processed as data, and they are deleted or renamed together with their data file. A control file left without its data file fails the run with "Stale control files found"; with an empty controlSuffix every file counts as a control file, so the run always fails. Do not combine with masterCtrlFile.
true lists directories with the quick name listing, which does not tell files from sub-directories; false requests the full listing and keeps files only. Ignored for SFTP.
The type of this object, always core.SolutionAgentSettings. Required where the member it is sent in accepts several types.
true lets DELETE calls reach this endpoint (without body; the job gets a placeholder document).
true lets GET calls reach this endpoint (no body; the job gets a placeholder document).
true lets HEAD calls reach this endpoint (no body; the job gets a placeholder document).
true lets PATCH calls reach this endpoint; the request body is the job's input.
true lets POST calls reach this endpoint; the request body is the job's input.
true lets PUT calls reach this endpoint; the request body is the job's input.
Ids of the partners' HTTP channels allowed to call this endpoint; list them with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). When set, a caller must authenticate as one of these channels, else it gets 401. Empty requires no authentication; left out, the stored list stays (none on create).
Content type of the answer to the caller.
Elements named to match one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other element is unaffected.
A request parameter a call must carry for this profile to be chosen; one element of params of an HTTP or data-product input agent. A call without it, or with a value not listed, does not reach this profile. Not needed just to read a parameter: every query parameter of a call is available as the variable MSG_CALL_<NAME>.
The type of this object, always core.HttpAgentParam. Required where the member it is sent in accepts several types.
Name of the query or form parameter; compared case-insensitively. %NAME% constants are resolved.
Accepted values; the call's value must equal one of them exactly (case-sensitive), e.g. ["fast", "full"]. * accepts any value, regex:<pattern> a value the whole pattern matches, e.g. regex:[0-9]+; %NAME% constants are resolved. An empty list never matches, so the profile becomes unreachable; use ["*"] to require only the parameter's presence.
Names for path segments after url. The endpoint only evaluates them in REST mode, which a data-product agent never switches on: calls must hit url exactly and no path variable is set.
Name of the data product this endpoint implements. Not read by the running endpoint.
Path of the implemented operation in that OpenAPI definition. Not read by the running endpoint.
URL of the data product's OpenAPI definition the operation was imported from. Not read by the running endpoint, and setting it here imports nothing.
Path the endpoint listens on, appended to <instance>/dw/Request/. Leading and trailing / do not matter, the rest must match exactly. Keep it unique among active HTTP and data-product profiles.
The type of this object, always core.CronX400AgentSettings. Required where the member it is sent in accepts several types.
The X.400 partner channel whose mailbox is polled, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type X400). Checked on write and read back resolved. Required: without it every run fails with "X.400 channel not set!". A fetched mail that carries no partner channel of its own is assigned to this one. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelX400. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
The platform's own O/R address toward this partner: the sender of messages sent through this channel (unless the response unit names one), and incoming messages must be addressed to it.
The largest TPDU (transport data unit) in bytes the X.400 client uses. 0 restores the default; leaving it out keeps the stored value, null restores it too.
Display name of the channel. Must be unique among the partner's channels of the same type.
Presentation selector the X.400 client addresses on the X.400 server. Left out, the client's default applies; [empty] sends an explicitly empty value.
The partner's O/R address: the receiver of messages sent through this channel (unless the response unit names one), and an incoming message is assigned to this channel by its sender address (compared in upper case). Left out, the server fills a placeholder address (S=dummy;A=VIAT;C=DE;O=...).
Whether the X.400 mailbox can filter the messages it hands out by address. Leaving it out keeps the stored value, null resets it to false.
Session selector the X.400 client addresses on the X.400 server. Left out, the client's default applies; [empty] sends an explicitly empty value.
Transport access point (TSAP) the X.400 client sends when connecting to the X.400 server. Left out, the client's default applies; [empty] sends an explicitly empty value.
Configuration directory of the legacy UAFI X.400 interface. Stored only: the editor does not show it and the built-in X.400 client does not use it.
Incoming directory of the legacy UAFI X.400 interface. Stored only: the editor does not show it and the built-in X.400 client does not use it.
Outgoing directory of the legacy UAFI X.400 interface. Stored only: the editor does not show it and the built-in X.400 client does not use it.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true fetches the mails through the Lobster DMZ server instead of directly.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
true fetches only unread mails, false all mails in the mailbox.
true restricts polling to the X.400 addresses of channel and of the partners the rules in mailDispatchSettings name, by their sender or channel.
true fetches only mails received after the previous run; that time is updated after every successful fetch.
What happens to a mail body or attachment that no rule in mailDispatchSettings accepts.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Rules that decide, for the body and for each attachment of a fetched mail, which profile processes it. They are checked in list order and the first matching rule whose profile is usable wins; scoring does not reorder them. Sending the member replaces all rules; data no rule accepts is handled as handleUnknownMailData says. For X.400 a rule's sender is compared as an X.400 address, and to and cc should stay empty: bodies and attachments of X.400 mails are matched without recipients, so a rule that sets them never takes them.
One routing rule of a mail agent, an element of mailDispatchSettings of a POP3, IMAP or X.400 agent. The agent checks the rules in list order against the body and against each attachment of a fetched mail, and hands the data to the profile of the first active rule whose criteria all match (contentType, filePattern, channel, sender, to, cc, subject, mimeType) and whose profile is usable. An empty criterion does not filter. Send sender, subject and filePattern explicitly, "" meaning no filter: an omitted one is stored without a value, which the matching does not handle.
The type of this object, always core.MailDispatchRule. Required where the member it is sent in accepts several types.
false switches the rule off, so it is skipped.
One mail address that must be among the mail's CC recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
Id of a partner channel the mail must belong to, checked as matchChannel says; the platform assigns incoming mails to partner channels, and an X.400 mail without one gets the agent's channel. List channels with GET /platform/api/partners/preview/{partnerId}/channels. Stored as sent without any check. 0 does not filter by channel.
Which part of a mail the rule applies to.
true requires the subject to equal subject, ignoring case; false only requires it to contain subject. Not used when subject is a regex: expression.
Pattern the attachment's file name must match (* and ? wildcards ignoring case, | alternatives, regex: regular expressions); * or "" accepts every attachment. Only checked for attachments.
Kind of agent the rule belongs to. Left out on an existing rule, the stored kind is kept.
How channel is checked. Only evaluated when channel is not 0.
Content type the mail body must have for a body rule, compared case-insensitively with the content types of the body. Only checked for the body (contentType BODY or BODY_AND_ATTACHMENT) and ignored for X.400; without a value no body matches.
Name of the profile that processes the matching data; a profile's id is its name, see GET /platform/api/profiles/preview. Empty means the agent's own profile. The target must belong to the same client, be active, not be a master template and be within its validity period; otherwise the rule is skipped and the next one is tried.
Ranking used to sort a rule list by how specific a rule is. The agent ignores it and checks the rules in list order; stored as sent, 0 is fine.
Text the sender's address must contain, ignoring case; with mailType X400 an X.400 address the sender must match. "" does not filter.
Text the subject must contain, ignoring case, or equal with exactMatchSubject; a value starting with regex: is a regular expression the whole subject must match. "" does not filter.
One mail address that must be among the mail's To recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every mail body and attachment to a separate background job and continues at once, so several jobs run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
true leaves fetched mails in the X.400 mailbox; false deletes them once fetched, unless an instance-wide setting keeps them.
The type of this object, always core.CronFtpAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
true also deletes or renames the AS/400 main file when a member file is deleted or renamed after download (a.file/b.mbr -> a.file, a.b -> a).
The FTP partner channel to fetch from; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type FTP). Checked on write and read back resolved. Host, port, login and password come from the channel's own-identity settings. Pitfall: an agent created through the API keeps the internal default port 21, which overrides the channel's port; send port: 0 to use the channel's port. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
FTP flavours the partner may log in to the platform's FTP server with: any of FTP, FTPS_EXPLICIT, FTPS_IMPLICIT. At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits all three.
An FTP flavour the partner may use to log in to the platform's FTP server: allowedProtocols of an FTP channel.
FTP: Plain FTP, unencrypted.FTPS_EXPLICIT: FTPS explicit: the connection starts plain and upgrades to TLS (AUTH TLS).FTPS_IMPLICIT: FTPS implicit: TLS from the first byte.
Addresses the partner may not log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's FTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
User name the platform logs in with at the partner's FTP server; its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the partner, logged in on the platform's FTP server as remoteId, is confined to its home directory (remotePath) and cannot change to a directory above it. null or left out keeps the stored value; a new channel is not confined.
TCP port of the partner's FTP server; left out, the address carries no port. Requires host. A port set in the cron job or response unit overrides it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
User name the partner logs in with on the platform's FTP server; its password is remotePassword. Must be unique among all FTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's FTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. The FTP server refuses every login to a channel without one. Left out or blank on create, the server picks <client default channel directory>ftp/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the control connection's TLS session is reused for the data connections of an FTPS transfer when the platform connects to the partner; some servers refuse a data connection without it. Leaving it out keeps the stored value, null resets it to true; a new channel reuses the session.
Whether the partner, logged in on the platform's FTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. Leaving it out keeps the stored value, null resets it to false; a new channel shows the real path.
Addresses the partner may log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Text that turns a data file name into the name of its control file, see ftpControlNameType; compared case-insensitively. Placeholders such as <yyyyMMdd> are resolved. Required when useControlFile is true.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes from the server: skipped ones right away, and processed ones (with acceptEmptyFiles) even if fileHandling is NONE or RENAME.
true deletes the master control file once its directory has been processed. Only used with masterCtrlFile.
Directory on the partner's server to fetch from; separate several with ;, each is read in its own connection. Empty reads the login directory. %NAME% constants, @MSG_CALL_<name>@ trigger variables and date masks such as <yyyyMMdd> are resolved. A directory that cannot be entered is logged and skipped.
true fetches through the Lobster DMZ server: the DMZ connects to the partner, and the internal server then collects the files from the DMZ. Needs channel and a DMZ set up for the instance; file filter classes of the profile are not applied this way.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
true also downloads each data file's control file and passes its content to the mapping as the variable VAR_SYS_CTRL_FILE, decoded with the profile's encoding. Set it only together with useControlFile: with a controlSuffix but useControlFile false the downloads fail.
true also processes the master control file itself as data, after the other files of its directory. Only used with masterCtrlFile.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file on the partner's server right after its download, before the data is processed: NONE leaves it (so it is fetched again next run unless the profile skips already received files), RENAME renames or moves it as fileRename says.
Names of the files to fetch. A plain pattern is sent with the server's directory listing, so the server's wildcard rules apply; | separates alternatives that are listed one by one, and an alternative starting with regex: (or a whole value starting with regex2:) is a regular expression the agent applies to the full listing itself. <yyyyMMdd>, %NAME% and @MSG_CALL_<name>@ are resolved first.
New name of a fetched file when fileHandling is RENAME; a path moves it. <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. Empty leaves the file in place.
true sorts A to Z, false Z to A, ignoring case. Only used when fileSortItem is NAME.
NAME processes the fetched files in file-name order (direction fileSortAscending); any other value keeps the order in which the server lists them.
How controlSuffix forms a control file name: SUFFIX appends it to the data file name (orders.xml + .ok = orders.xml.ok), PREFIX puts it in front (ok_ + orders.xml = ok_orders.xml). Only used with useControlFile.
true opens the FTP data connection in passive mode, false in active mode. Ignored for SFTP.
Extra commands for the server, one per line. A line starting with before: is sent right after login, before the listing; the other lines after the directory has been processed, before logout. For FTP each line goes out as SITE <command> (a rfc: prefix sends it without SITE); SFTP only supports chmod <octal> <path>. @...@ variables are resolved.
true downloads in FTP ASCII mode, where the server may convert line endings; false in binary mode, which keeps the bytes unchanged. Ignored for SFTP.
true fetches over FTPS (FTP over TLS) instead of plain FTP. null keeps the stored value (plain FTP on create).
FTP server host; non-empty overrides the channel's. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true: when deleting or renaming a file on the server fails after its download, the downloaded copy is kept in the server's temporary directory and its path logged, instead of being discarded; the file is not processed in either case. For servers that remove fetched files themselves and refuse client deletes.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Name of a master control file that must exist before anything is fetched: without it in the first directory of dir the run stops (see masterCtrlFileInSubDir). No wildcards (a * fails the run); date masks and variables are resolved. Empty disables it. Do not combine with useControlFile.
false: only the first directory in dir must hold masterCtrlFile, and without it the whole run stops. true: every directory needs its own master control file, and a directory without one is skipped.
Maximum number of files fetched per run, counted over all directories; the rest waits for the next run. 0 means no limit.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
FTP server port; above 0 overrides the channel's. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every downloaded file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
true fetches a data file only when its control file (see controlSuffix) exists next to it. Control files are never processed as data, and they are deleted or renamed together with their data file. A control file left without its data file fails the run with "Stale control files found"; with an empty controlSuffix every file counts as a control file, so the run always fails. Do not combine with masterCtrlFile.
true lists directories with the quick name listing, which does not tell files from sub-directories; false requests the full listing and keeps files only. Ignored for SFTP.
The type of this object, always core.KafkaAgentSettings. Required where the member it is sent in accepts several types.
Name of the Kafka connection (bootstrap servers, security settings) to consume through; it must exist on the instance and be allowed for the profile's client, otherwise the agent is not started.
When true, the agent reads the partitions listed in assignmentList of topicName directly instead of joining the consumer group (no rebalancing). The list must not be empty, otherwise the agent stops; a regex: topic is not supported. After a polling error the agent reconnects with a normal group subscription.
Partition numbers of topicName the agent reads when assigned is true. Ignored otherwise. Empty by default.
Java class name of a custom binary converter, meant for complexDataType BINARY. Stored, but the Kafka agent does not call it.
Kafka client.id of the consumer; %name% constants are resolved. Empty: an id generated from the server id, the profile name and topicName.
When true, the offset of each record is committed right after the record was handed on; when false, offsets are committed every commitInterval records. Either way the commit does not wait for the job's result; all pending offsets are committed when the agent stops.
With commitEach false, the consumed offsets are committed to the broker every this many records (and when the agent stops). Must be at least 1; 0 makes every commit fail.
Structured payload type. Omit it for plain text or numbers read as genericDataType.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key, sasl.jaas.config, basic.auth.user.info, ssl.keystore.key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Deserializer for the record value, i.e. the data the job receives. STRING, and the numeric and UUID types, are handed on as text in the profile's encoding, BYTES as the raw bytes; AVRO (Confluent) and AVRO_APICURIO (Apicurio) are decoded with the schema registry from schemaRegistryUrl or registryChannelId and handed on as JSON text. Records that do not match pause the agent for 120 seconds each time and have to be removed from the topic.
Text put between the records when finalValueFunction is ALL and complexDataType is not set; NL stands for a line break (CRLF). Empty: the records are concatenated without separator.
Id (factory name) of the cluster node that runs this agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Function chain that decides, for each record that arrives while the buffer is not yet full, whether the collected records (including this one) are handed on early: the chain runs on the record text and the buffer is forwarded when its last result is true. It does not drop records. Only evaluated with messageBufferSize above 1, only on the records messageIntervalCheck selects and only when mqttConditions is absent; an empty mqttConditions list disables it too.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
What the job receives from the collected records. Without complexDataType, MIN, MAX and AVG need a numeric genericDataType (INTEGER, FLOAT, BIG_DECIMAL or BIG_INTEGER) and ALL works for STRING, INTEGER, FLOAT, BIG_DECIMAL and BIG_INTEGER; any other combination produces no job. With complexDataType JSON or XML, ALL combines the records (see there) and every other value passes the last record on.
Type the whole record value is read as for mqttConditions and finalValueFunction. mqttConditions support STRING, INTEGER, DOUBLE, DATE (yyyy-MM-dd), FLOAT and BIG_INTEGER. A value that does not parse as the type fails the check. Keep STRING when complexDataType is set.
Deserializer for the record key; BYTES keys are decoded as text in the profile's encoding. The key reaches the mapping as variable MSG_CALL_KAFKA_KEY. A type that does not match the records makes them fail to deserialize, and the agent then pauses for 120 seconds each time.
Number of records collected before they are handed on together as one job, combined by finalValueFunction. 1 starts one job per record; timeout, mqttConditions and filters only have an effect above 1. Records still buffered when the agent stops are processed.
mqttConditions and filters are only evaluated when the number of buffered records is a multiple of this value; 1 checks every record. Must be at least 1: 0 makes the processing of every record fail.
Conditions that hand the collected records on early: when a record that arrives before the buffer is full matches any value of any entry, the buffer including this record is forwarded. The whole value is compared, read as genericDataType; entries are OR-linked. They do not drop records. Only evaluated with messageBufferSize above 1 and on the records messageIntervalCheck selects; when present (even as an empty list), filters are ignored.
One entry of mqttConditions of an MQTT, Kafka or AMQP (Legacy) agent: a comparison (condition) and the values the whole received message is compared with, read as the agent's genericDataType. The entry matches when the message matches any of its values; the entries of the list are OR-linked. A match hands the buffered messages on early, it does not filter messages out.
The type of this object, always core.MqttConditionEntry. Required where the member it is sent in accepts several types.
Comparison to apply. Text (genericDataType STRING) supports REGEX, CONTAINS, EQUALS and NOT; numbers support EQUALS, NOT and the four comparisons; dates only SMALLER, GREATER and EQUALS; any other combination never matches. Required; a missing or unknown name is rejected. A later entry with the same condition replaces an earlier one.
Values the message is compared with, written in the agent's genericDataType, e.g. dates as 2024-12-31 or a regular expression for REGEX. Every value must parse as that type, otherwise the check fails.
When true, a tombstone record (a key without value) is committed and a notification mail about it is sent to the instance's notification recipient. Tombstones never start a job, whatever this is set to.
Id of an HTTP partner channel whose URL, login and OAuth2 client credentials are used to reach the schema registry for AVRO and AVRO_APICURIO values; 0 uses none. Get it from GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). Not validated: a wrong id is stored as is. Ignored for other dataType values.
UTC timestamp in ISO-8601 instant form, e.g. 2023-11-14T22:13:20Z, the agent rewinds its partitions to on its next start; empty or null does not rewind. One-off: it is not stored with the profile and reads empty afterwards.
URL of the schema registry used to decode AVRO and AVRO_APICURIO values; overrides the URL of registryChannelId. %name% constants are resolved. Ignored for other dataType values.
Seconds after which the records collected so far are handed on as one job even though fewer than messageBufferSize have arrived; checked about every 5 seconds. 0 waits until the buffer is full. Only meaningful with messageBufferSize above 1.
Topic to consume; %name% constants are resolved. The prefix regex: subscribes to every topic matching the Java regular expression that follows, e.g. regex:orders-.* (not usable with assigned). Also part of the default consumer group id and clientId.
Only matters in a load-balancing cluster: when true, the agent starts regardless of the node restriction and the jobs of received records may run on any node instead of the one that received them.
The type of this object, always core.AS2AgentSettings. Required where the member it is sent in accepts several types.
AS2 partner channels allowed to deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type AS2). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an AS2 channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An AS2 connection to the partner: the AS2 ids both sides use, the partner's AS2 URL and the signing/encryption settings for outgoing messages. Needs stationId (partnerAs2Id is filled when absent); set as2Url and the certificates via localCertificateId/remoteCertificateId; referenced by core.AS2ProfileResponseUnit.channel (send) and core.AS2AgentSettings.channels (partners allowed to deliver). The bridge is not settable through this API; channel list filter type=AS2.
The type of this object, always core.IntegrationPartnerChannelAS2. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
The partner's AS2 endpoint that outgoing messages are posted to; an AS2 response unit without its own URL uses it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing messages; used only when the channel sends encrypted. Not validated on save.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
Id of the platform's own certificate (with private key) that signs the messages it sends over this channel. Must reference an existing certificate. Reads as absent while the channel signs with localCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Reads as absent while the channel uses localCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Hash algorithm the MDN (receipt) is signed with, e.g. SHA256. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it.
Which MDN (receipt) the platform requests for outgoing messages: DEFAULT = the AS2 service's system setting, SYNCHRON = returned in the HTTP response, ASYNCHRON = sent later to the MDN URL. A channel stored with another code reads back without mdnMode, and a write that leaves it out keeps that code.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner's AS2 id: sent as AS2-To on outgoing messages, and an incoming message is assigned to this channel by its AS2-From. Left out, the server fills an AUTO_CREATE_... placeholder that no partner sends.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
Id of the partner's certificate (public key) that the signature of the messages it sends over this channel is checked against. Must reference an existing certificate. Reads as absent while the channel checks against remoteCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Reads as absent while the channel expects remoteCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the security settings of the message signature are removed (the editor's "Remove security settings of signature" switch). Leaving it out keeps the stored value, null resets it to false; a new channel keeps them.
Whether outgoing messages are sent with chunked transfer encoding, split into blocks, instead of with a content length. Leaving it out keeps the stored value, null resets it to false; a new channel does not chunk.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
URL the partner sends the asynchronous MDN (receipt) to; only used with mdnMode ASYNCHRON. Must be an HTTP or HTTPS URL. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing messages; used only when the channel sends signed. Not validated on save.
The platform's own AS2 id toward this partner: sent as AS2-From on outgoing messages and expected as AS2-To on incoming ones. Required on create; a write may not blank it. Together with partnerAs2Id it must be unique among AS2 channels.
Pattern the file name of the received payload must match, case-insensitive: wildcards * and ?, several patterns separated by |, regex:<expression> for a regular expression, and date placeholders like <yyyyMMdd> for today's date.
Content type the payload must have, compared case-insensitively; empty accepts any.
Text the subject of the AS2 message must contain, case-insensitive; empty accepts any subject. A longer subject makes this profile win over other matching profiles.
The type of this object, always core.CronCloudStorageAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
Where in the storage account to read: the bucket (S3, Google Cloud Storage), container (Azure Blob), share (Azure Files) or drive/site id (Microsoft 365, where @Name:<site name> names a SharePoint site). Not used for Dropbox and Google Drive. Placeholders such as %NAME% are resolved.
Id of the CloudStorage partner channel that holds the storage account; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type CloudStorage). Stored as sent without any check, so a wrong id only fails when the agent runs. A trigger variable VAR_SYS_TRIGGER_CHANNEL_ID replaces it for that run.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes: right away when they are skipped (acceptEmptyFiles false), and after pickup when they are processed, even if fileHandling is NONE.
Folder in the storage to scan; separate several with ;. Date masks, %NAME% constants and @MSG_CALL_<name>@ variables are resolved.
true accesses the storage through the Lobster DMZ server instead of directly.
Microsoft 365 only: name of the SharePoint document library to read from; takes effect only when bucket names the site as @Name:<site name>.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Hours part of an age limit that excludeMinute and excludeSecond complete: files last modified longer ago than this duration are skipped. All three 0 disables the limit. fileOlderThan flips it to skip files younger than the duration instead.
Minutes part of the age limit described at excludeHour.
Seconds part of the age limit described at excludeHour.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file once it has been picked up. RENAME is not supported by these agents and behaves like NONE. DELETE needs write access to the file and its directory; a file it cannot delete is skipped with an error.
Whether the age limit of excludeHour, excludeMinute and excludeSecond skips files modified longer ago (true) or files younger than the duration (false). null resets it.
Pattern the names of the files to pick up must match. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and regex2: makes the whole value one regular expression. <yyyyMMdd> or @yyyyMMdd@ insert the current date, %NAME% a constant, @MSG_CALL_<name>@ a trigger variable. Names starting with . are always ignored; the file agent fails the run if the pattern is empty.
true sorts ascending (A to Z, oldest first), false descending. Only used when the files are sorted, see fileSortItem.
Order in which the files of a run are processed, in the direction of fileSortAscending. The cloud storage agent always sorts: by name for NAME, by last-modified time otherwise.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true also picks up files whose name starts with ~, which the file agent otherwise skips as temporary files. The cloud storage agent does not evaluate it and never skips such files.
true also picks up matching files from all sub-directories of the scanned directories, at any depth. Ignored by the file agent when singleFile is true.
true hands every file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.CronLdapAgentSettings. Required where the member it is sent in accepts several types.
Name of the LDAP connection (server and credentials) to search; it must already exist on the instance and be allowed for the profile's client. Variables and %NAME% constants are resolved.
Comma-separated names of the attributes to return. Empty returns all attributes.
Distinguished name the search starts at.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
Maximum number of entries to read; when it is reached, the entries read so far are processed. 0 means no limit.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
LDAP search filter. @0:s#<mask>@ inserts the time of the previous run in a date mask, e.g. (modifyTimestamp>=@0:s#yyyyMMddHHmmss@Z), so a run reads only changed entries. @...@ is a placeholder, so a literal @ in the filter can be misread. Variables and %NAME% constants are resolved.
How deep to search below baseDN.
Maximum time in seconds the search may take; 0 means no limit.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
true writes every attribute as a JSON array of its values, so the structure is the same for single- and multi-valued attributes; false writes a single value as a plain string and only several values as an array. Binary values are Base64-encoded.
The type of this object, always core.SmsAgentSettings. Required where the member it is sent in accepts several types.
Phone number(s) this SMS profile receives messages for; separate multiple numbers with ;.
The type of this object, always core.AS4AgentSettings. Required where the member it is sent in accepts several types.
AS4 partner channels allowed to deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type AS4). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an AS4 channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An AS4 connection to the partner: the partner's AS4 id, its message service endpoint and the certificates. Referenced by core.As4ProfileResponseUnit.channel (send) and core.AS4AgentSettings.channels (partners allowed to deliver). The platform's own AS4 id, which outgoing messages are sent from, is not settable through this API; channel list filter type=AS4.
The type of this object, always core.IntegrationPartnerChannelAS4. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing messages; used only when the channel sends encrypted. Not validated on save. Leaving it out keeps the stored value, null resets it to the default, an empty string removes it.
The partner's AS4 message service endpoint that outgoing messages are pushed to.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
Id of the platform's own certificate (with private key) that signs the messages it sends over this channel. Must reference an existing certificate. Reads as absent while the channel signs with localCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Reads as absent while the channel uses localCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Which MDN (receipt) the platform requests for outgoing messages: DEFAULT = the AS4 service's system setting, SYNCHRON = returned in the HTTP response, ASYNCHRON = sent later to sendingMdnUrl. A channel stored with another code reads back without mdnMode, and a write that leaves it out or sends null keeps that code. Otherwise leaving it out keeps the stored value and null resets it to DEFAULT.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's AS4 id, the receiver of messages sent through this channel. Left out, the server fills an AUTO_CREATE_... placeholder.
Id of the partner's certificate (public key) that the signature of the messages it sends over this channel is checked against. Must reference an existing certificate. Reads as absent while the channel checks against remoteCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Reads as absent while the channel expects remoteCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
URL the partner sends the asynchronous MDN (receipt) to; only used with mdnMode ASYNCHRON. Must be an HTTP or HTTPS URL. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing messages; used only when the channel sends signed. Not validated on save. Leaving it out keeps the stored value, null resets it to the default, an empty string removes it.
Pattern the file name of the received payload must match, case-insensitive: wildcards * and ?, several patterns separated by |, regex:<expression> for a regular expression, and date placeholders like <yyyyMMdd> for today's date.
Content type the payload must have, compared case-insensitively; empty accepts any.
The type of this object, always core.FaxAgentSettings. Required where the member it is sent in accepts several types.
true accepts faxes from every partner of the profile's client, whatever channel they arrive on, and ignores channelIds; such a profile only receives a fax no channel-specific fax profile takes.
Ids of the fax channels whose incoming faxes this profile processes; list them with GET /platform/api/partners/preview/{partnerId}/channels (type Fax). The ids are stored as sent, without checking that they exist, so a wrong id only shows as faxes not arriving. Not evaluated while acceptAll is true.
The type of this object, always core.ManualUploadAgentSettings. Required where the member it is sent in accepts several types.
The type of this object, always core.SFTPAgentSettings. Required where the member it is sent in accepts several types.
true also processes uploaded files of zero bytes; false skips them with a log entry.
SFTP partner channels whose logins may deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type SFTP). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an SFTP channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An SFTP/SSH connection with the partner, in either direction: the partner logs in to the platform's SFTP server as remoteId and lands in remotePath, and the platform connects to the partner's server at host and port, checking its host key against keyType/keyFingerprint and authenticating with privateKeyId or a password. Referenced by core.CronSftpAgentSettings.channel and core.CronSshAgentSettings.channel (fetch), core.SSHProfileResponseUnit.channel (send) and core.SFTPAgentSettings.channels (partners allowed to upload). The partner's login password is remotePassword; the platform's own password at the partner's server is not settable through this API. Channel list filter type=SFTP.
The type of this object, always core.IntegrationPartnerChannelSFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Protocols the partner may log in to the platform's SSH server with: any of SCP, SFTP, SSH (remote command execution). At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits SCP and SFTP but not SSH.
An SSH flavour the partner may use to log in to the platform's SFTP server: allowedProtocols of an SFTP channel.
SCP: SCP: file copy over SSH.SFTP: SFTP: file transfer over SSH.SSH: SSH: remote command execution. Not allowed on a new channel.
Addresses the partner may not log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's SFTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Fingerprint of the host key the partner's SFTP server must present when the platform connects; compared case-insensitively together with keyType, and the connection fails on a mismatch. Left blank, any host key is accepted.
Type of the host key the partner's SFTP server must present, as the SSH library reports it; checked together with keyFingerprint.
User name the platform logs in with at the partner's SFTP server (SSH login); its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
TCP port of the partner's SFTP server. Requires host. A port set in the cron job or response unit overrides it.
Id of the local certificate holding the key pair the platform authenticates with (public-key authentication) when it connects to the partner's SFTP server. Must reference an existing certificate with an SSH common name.
Ids of the partner's certificates (public keys) in the certificate store, one of which the partner may authenticate with when it logs in to the platform's SFTP server by public key. Each must reference an existing certificate. Leaving it out keeps the stored list, null or an empty list removes it.
User name the partner logs in with on the platform's SFTP server; its password is remotePassword, its public keys are remoteCertificateIds. Must be unique among all SFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's SFTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. Without one the partner's file paths resolve against the server's working directory. Left out or blank on create, the server picks <client default channel directory>ssh/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the partner, logged in on the platform's SFTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. null or left out keeps the stored value; a new channel shows the real path.
Addresses the partner may log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Character set the SFTP/SCP server and client use for file names on the wire, e.g. ISO-8859-1. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it so the SSH library's default applies.
Sub-directory, relative to the partner's home directory on the Lobster FTP/SFTP server, that an upload must land in for this profile; separate several with ;. $USER$ is replaced by the uploading partner's login name. Empty accepts uploads in any directory.
File-name pattern a file the partner uploads must match for this profile to take it. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and <yyyyMMdd> is replaced by the current date. If several profiles accept an upload, the one with the longest matching dir and the most specific pattern wins.
true collects the files a partner uploads during one session and processes them only when the partner logs out; false processes each file as soon as its upload is complete.
Upload protocol this profile accepts; a file uploaded the other way is not taken by this profile.
The type of this object, always core.TcpAgentSettings. Required where the member it is sent in accepts several types.
Name of the TCP server connection (server type) to listen on, as defined on the instance in etc/tcp.xml; the profile's client must be allowed to use it. An unknown or disallowed alias keeps the listener from starting.
Class name of a binary converter. Stored only: the TCP listener does not read it. Leave it empty.
Id (factory name) of the cluster node that runs the listener; %NAME% constants are resolved. Empty runs it on the instance itself, but not on a load-balancing member; a value naming another node keeps it from starting here. Only relevant with load balancing.
The type of this object, always core.CronCustomAgentSettings. Required where the member it is sent in accepts several types.
Configuration value handed to customClass on every run, usually the path of its configuration file relative to the Lobster installation; what it must contain depends on the class. %NAME% constants and @MSG_CALL_<name>@ trigger variables in it are resolved first. For classes that take properties, a non-empty proProperties is passed instead of this value.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Fully qualified name of the Java class that produces the data. It must be a cron class installed on the Lobster server (registered in ./etc/admin/datawizard/custom_classes.properties or custom_own_classes.properties, or supplied by a platform module), or, for the orchestration agent, an orchestration class of a platform module. It is instantiated on every run, so a wrong name fails each run rather than being rejected on save. Every non-empty data block the class returns is processed as its own job. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=CUSTOM_CLASS; the orchestration agent takes only the orchestration classes of platform modules from that list.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every data block the class returns to a separate background job and continues at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.MessageAgentSettings. Required where the member it is sent in accepts several types.
Not evaluated for this agent type; leave it 0.
Message context the agent listens on; together with queue it must match what the sender uses. Context System with queue DWForwardReceiver is reserved for internal forwarding and gets no listener of its own.
Not evaluated for this agent type; leave it empty.
Message queue within context the agent listens on. Empty by default.
The type of this object, always core.GooglePubSubAgentSettings. Required where the member it is sent in accepts several types.
Message-buffering configuration for this agent; see core.AccumulationSettings.
The type of this object, always core.AccumulationSettings. Required where the member it is sent in accepts several types.
How the buffered payloads are combined into the job's data when the buffer flushes.
Payload comparisons that flush the buffer early: each entry is checked against the newest message's payload, read as payloadDataType, and entries are OR-composed with each other and with filters, maxCount, maxAgeSeconds and maxTotalBytes - any one of them flushes. Sending the member replaces the whole list.
One payload comparison of AccumulationSettings.comparators: operator checked against the newest buffered message's payload, read as payloadDataType, for each of values. Several values are OR-composed for the same operator, e.g. two EQUALS values flush on either.
The type of this object, always core.AccumulationComparator. Required where the member it is sent in accepts several types.
Comparison to apply: REGEX and CONTAINS need payloadDataType STRING; SMALLER, GREATER, SMALLER_EQUALS and GREATER_EQUALS need BIG_INTEGER, BIG_DECIMAL or DATE; EQUALS and NOT work with every supported payloadDataType. A value that fails to parse as payloadDataType fails the whole check for that message. Required.
Values compared against the payload; must not be empty. Compared as text for REGEX and CONTAINS, otherwise parsed as payloadDataType.
true buffers messages instead of starting a job for each. While false no other member is validated. At least one of maxCount, maxAgeSeconds or maxTotalBytes must then be above 0, else the profile is rejected.
Function chain conditions that flush the buffer early, evaluated on the newest message like comparators (see core.MessageFilter), but through a mapping function chain instead of a fixed operator. OR-composed with comparators, maxCount, maxAgeSeconds and maxTotalBytes.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
Which buffered payload is kept when aggregation is FINAL_VALUE; ignored otherwise. MIN, MAX and AVG need payloadDataType BIG_INTEGER or BIG_DECIMAL; LAST works with every payloadDataType.
Seconds since the oldest buffered message that flushes the batch. 0 disables this trigger; see enabled.
Number of buffered messages that flushes the batch. 0 disables this trigger; see enabled.
Total buffered payload size in bytes that flushes the batch. 0 disables this trigger; see enabled.
Which buffered message's file name, sender and variables the flushed job carries: FIRST or LAST message's, COLLECT_INDEXED all of them with an index suffix, COMMON_ONLY only the values every buffered message agrees on.
Type each buffered message's payload is read as for comparators and, with aggregation FINAL_VALUE, for finalValueFunction. comparators only work with STRING, BIG_INTEGER, BIG_DECIMAL or DATE; a finalValueFunction other than LAST needs BIG_INTEGER or BIG_DECIMAL.
Text put between the buffered payloads when aggregation is CONCAT_SEPARATOR; ignored otherwise.
Name of the root element the buffered payloads are wrapped in when aggregation is XML_WRAP; ignored otherwise. Must not be blank.
Name of the Google Pub/Sub connection to receive through; it must exist on the instance and be allowed for the profile's client. Its credentials also name the Google Cloud project topicId/subscriptionId are resolved in.
Id of the Google Cloud Pub/Sub subscription the agent pulls messages from, within the project named by alias's credentials. Created automatically if the connection is configured to auto-create subscriptions, otherwise it must already exist.
Id of the Google Cloud Pub/Sub topic subscriptionId is bound to, within the project named by alias's credentials. Created automatically if the connection is configured to auto-create topics, otherwise it must already exist.
The type of this object, always core.CronOrchestrationAgentSettings. Required where the member it is sent in accepts several types.
Configuration value handed to customClass on every run, usually the path of its configuration file relative to the Lobster installation; what it must contain depends on the class. %NAME% constants and @MSG_CALL_<name>@ trigger variables in it are resolved first. For classes that take properties, a non-empty proProperties is passed instead of this value.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Fully qualified name of the Java class that produces the data. It must be a cron class installed on the Lobster server (registered in ./etc/admin/datawizard/custom_classes.properties or custom_own_classes.properties, or supplied by a platform module), or, for the orchestration agent, an orchestration class of a platform module. It is instantiated on every run, so a wrong name fails each run rather than being rejected on save. Every non-empty data block the class returns is processed as its own job. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=CUSTOM_CLASS; the orchestration agent takes only the orchestration classes of platform modules from that list.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every data block the class returns to a separate background job and continues at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.AMQPAgentSettings. Required where the member it is sent in accepts several types.
Name of the AMQP (Legacy) connection to receive through; it must exist on the instance and be allowed for the profile's client, otherwise the agent is not started (only logged, the profile still saves). The alias decides the protocol (AMQP 0.9.1, AMQP 1.0 or JMS).
When true, a message is acknowledged to the broker only after its job finished successfully; a failed job rejects it (see requeue091). When false, the message is acknowledged as soon as its job is queued. Not used for queueType RPC.
Text put between the messages when finalValueFunction is ALL; NL stands for a line break (CRLF). Empty concatenates without a separator.
Id (factory name) of the cluster node that runs this agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Function chain that decides, for each message that arrives while the buffer is not yet full, whether the collected messages (including this one) are handed on early: the chain runs on the message text and the buffer is forwarded when its last result is true. It does not drop messages. Only evaluated with messageBufferSize above 1 and only when mqttConditions is absent; an empty mqttConditions list disables it too.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
What the job receives from the collected messages: LAST the most recent one, ALL all of them joined with delimiter, MIN/MAX the one with the smallest/largest numeric value, AVG their average. MIN, MAX and AVG need a numeric genericDataType (INTEGER, FLOAT, BIG_DECIMAL or BIG_INTEGER), ALL works for STRING, INTEGER, FLOAT, BIG_DECIMAL and BIG_INTEGER; any other combination produces no job, also with messageBufferSize 1.
Type the whole message payload is read as for mqttConditions and finalValueFunction: STRING text, INTEGER, DOUBLE, DATE (yyyy-MM-dd), FLOAT, BIG_DECIMAL or BIG_INTEGER. mqttConditions support STRING, INTEGER, DOUBLE, DATE, FLOAT and BIG_INTEGER. A message that does not parse as the type fails the check (logged).
JMS client id set on the connection, which brokers need for durable topic subscriptions. Empty sets none. Only for JMS aliases; two profiles on the same alias must not use the same client id. %name% constants are resolved.
JMS message selector (SQL-92 syntax on message headers and properties) that limits which messages the agent receives. Empty receives all. Only for JMS aliases. %name% constants are resolved.
When true, the durable JMS subscription subscriberName is removed when the agent closes its topic session (profile stopped, connection restarted), so messages published meanwhile are not kept for it. Only for JMS aliases with queueType TOPIC.
Number of messages collected before they are handed on together as one job, combined by finalValueFunction. 1 starts one job per message; timeout, mqttConditions and filters only have an effect above 1.
Stored but not evaluated by the AMQP agent: mqttConditions and filters are checked on every message.
Conditions that hand the collected messages on early: when a message that arrives before the buffer is full matches any value of any entry, the buffer including this message is forwarded. The whole message is compared, read as genericDataType; entries are OR-linked. They do not drop messages. Only evaluated with messageBufferSize above 1; when present (even as an empty list), filters are ignored.
One entry of mqttConditions of an MQTT, Kafka or AMQP (Legacy) agent: a comparison (condition) and the values the whole received message is compared with, read as the agent's genericDataType. The entry matches when the message matches any of its values; the entries of the list are OR-linked. A match hands the buffered messages on early, it does not filter messages out.
The type of this object, always core.MqttConditionEntry. Required where the member it is sent in accepts several types.
Comparison to apply. Text (genericDataType STRING) supports REGEX, CONTAINS, EQUALS and NOT; numbers support EQUALS, NOT and the four comparisons; dates only SMALLER, GREATER and EQUALS; any other combination never matches. Required; a missing or unknown name is rejected. A later entry with the same condition replaces an earlier one.
Values the message is compared with, written in the agent's genericDataType, e.g. dates as 2024-12-31 or a regular expression for REGEX. Every value must parse as that type, otherwise the check fails.
Durability: with AMQP 0.9.1 a queue or exchange the agent declares itself is declared durable; with JMS and queueType TOPIC the agent creates a durable subscription named subscriberName. Not used for queueType RPC and not for AMQP 1.0.
AMQP 0.9.1 prefetch count: the maximum number of unacknowledged messages the broker delivers to this agent at once. 0 means no limit; queueType RPC always uses 1. Ignored for AMQP 1.0 and JMS.
AMQP 0.9.1 prefetch window in bytes (basic.qos prefetch size): the broker sends at most this many unacknowledged bytes. 0 means no limit; RabbitMQ accepts only 0. Ignored for queueType RPC, AMQP 1.0 and JMS.
Message attribute that becomes the job's file name: CorrelationId or MessageId (the name is then CID <id> or MID <id>), for AMQP 1.0 also Subject, or the name of any other message property/header, whose value is used as is. Empty or a missing value gives amqp.data; / is replaced by ..
Delivery guarantee the consumer requests from an AMQP 1.0 broker. Only used for AMQP 1.0 aliases with queueType PUBLISH or RPC (topic and routing consumers always use AT_LEAST_ONCE); AMQP 0.9.1 and JMS ignore it.
Queue to consume from; for AMQP 0.9.1 with queueType TOPIC or ROUTING it is the name of the exchange, and for JMS the name of the queue or topic destination. %name% constants are resolved. With AMQP 0.9.1 a queue or exchange that does not exist is declared by the agent (durable when persistent is true) unless the connection requires it to exist.
How the agent consumes: PUBLISH Subscriber (reads the queue queueName), TOPIC (AMQP 0.9.1: binds to the topic exchange queueName with routingKey; JMS: subscribes to the topic queueName), ROUTING (AMQP 0.9.1 direct exchange with routingKey; not supported by JMS), RPC (reads requests from queueName and sends the profile's response back to the requester; add a response unit that returns data).
What happens to a message whose job failed: true puts it back into the queue at its position (it then blocks the queue until a job succeeds), false lets the broker discard it or move it to a dead-letter queue. Only for AMQP 0.9.1 aliases and only with confirmMessageAtEnd true.
Routing key the agent binds its own temporary queue with to the exchange queueName. Only used for AMQP 0.9.1 with queueType TOPIC (topic exchange, wildcards * and #) or ROUTING (direct exchange); ignored otherwise. %name% constants are resolved.
Name of the durable JMS topic subscription; the broker keeps unread messages under this name, so keep it stable. Only used for JMS aliases with queueType TOPIC and persistent true. %name% constants are resolved. When not set, a name SUB<number> is generated.
Seconds after which the messages collected so far are handed on as one job even though fewer than messageBufferSize have arrived; checked about every 5 seconds. 0 waits until the buffer is full. Only meaningful with messageBufferSize above 1.
The type of this object, always core.CronSapAgentSettings. Required where the member it is sent in accepts several types.
Name of the SAP connection to call through; the profile's client must be allowed to use it. %NAME% constants are resolved. An unknown or disallowed alias fails each run.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Scalar import parameters of the function module, one entry per parameter. Values may contain placeholders that are resolved on each run, e.g. @yyyyMMdd@ for the current date, %NAME% for a constant or @MSG_CALL_<NAME>@ for a variable a trigger handed over.
One scalar import parameter of the SAP function module an SAP cron agent calls; one element of fields. Sets the parameter key to value before each call.
The type of this object, always core.SapField. Required where the member it is sent in accepts several types.
Name of the import parameter as the function module defines it.
Value passed for the parameter; date masks, %NAME% constants and @NAME@ variables are resolved on each run. Always send it: an entry without a value fails the run.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Format the function's result is converted to before the profile parses it. Choose the profile's input format to match.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
Name of the remote-enabled SAP function module to call. A name the SAP system does not know fails the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Structure-typed import parameters of the function module, one entry per structure with its field names in header and a single row of values. An entry without rows is skipped; a name the function does not have fails the run.
Values for one structure or table parameter of the SAP function module an SAP cron agent calls; one element of structures or tables. header names the columns, each element of rows gives the values for those columns in the same order.
The type of this object, always core.SapStructureEntry. Required where the member it is sent in accepts several types.
Field names of the structure or table, in the order the values of each row follow. A row must not have more values than header has names.
Name of the structure or table parameter as the function module defines it. Must be unique within its list; a later entry with the same name replaces an earlier one.
The values to set: for a structure one row (further rows overwrite its values); for a table one row per table line to append. With no rows the parameter is left untouched.
One row of values for an SAP structure or table parameter; one element of the rows of an entry in structures or tables.
The type of this object, always core.SapStructureRow. Required where the member it is sent in accepts several types.
Values in the order of the entry's header, e.g. ["000000000000004711", "1000"]. Date masks such as @yyyyMMdd@, %NAME% constants and @NAME@ variables are resolved on each run.
Table parameters of the function module to fill before the call, one entry per table with its column names in header and one row per table line; the table is cleared first. A name that is neither a table nor a table-typed import parameter of the function fails the run.
Values for one structure or table parameter of the SAP function module an SAP cron agent calls; one element of structures or tables. header names the columns, each element of rows gives the values for those columns in the same order.
The type of this object, always core.SapStructureEntry. Required where the member it is sent in accepts several types.
Field names of the structure or table, in the order the values of each row follow. A row must not have more values than header has names.
Name of the structure or table parameter as the function module defines it. Must be unique within its list; a later entry with the same name replaces an earlier one.
The values to set: for a structure one row (further rows overwrite its values); for a table one row per table line to append. With no rows the parameter is left untouched.
One row of values for an SAP structure or table parameter; one element of the rows of an entry in structures or tables.
The type of this object, always core.SapStructureRow. Required where the member it is sent in accepts several types.
Values in the order of the entry's header, e.g. ["000000000000004711", "1000"]. Date masks such as @yyyyMMdd@, %NAME% constants and @NAME@ variables are resolved on each run.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Seconds to wait for the SAP call before the run fails; 0 waits without limit, and a negative value is stored as 0.
The type of this object, always core.SMTPAgentSettings. Required where the member it is sent in accepts several types.
The partner mail channel mails must come from, given as {"id": ...}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type MAIL). Checked on write and read back resolved. null for none.
The type of this object, always core.IntegrationPartnerChannelMail. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
What the channel may be used for: any of SMTP and ASMTP (sending mail, without and with a login) and POP3 and IMAP (fetching mail). At least one must stay allowed (an empty list leaves the stored allowance unchanged), and POP3 and IMAP are mutually exclusive (the editor keeps one); null or left out keeps the stored allowance, which on a new channel permits all four.
A mail protocol the channel may be used with: allowedProtocols of a mail channel.
SMTP: SMTP: sending mail without login.ASMTP: ASMTP: sending mail through an SMTP server that requires a login.POP3: POP3: fetching mail from a POP3 mailbox.IMAP: IMAP: fetching mail from an IMAP mailbox.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing mails; used only when the channel sends encrypted. Not validated on save. null or left out keeps the stored value.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
IMAP folder mail is fetched from; a directory set in the IMAP cron job overrides it.
Largest incoming mail accepted on this channel, in bytes. Must be at most 1073741824 (1024 MB). null (or leaving it out on create) means no limit, and an unlimited channel reads back null.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own mail address on this channel; matched case-insensitively, so an incoming mail is assigned to the channel whatever case it is addressed in, while the address is stored and read back as given. Unless the channel stores its own SMTP or retrieval user name, the platform logs in with this address, so changing it changes that login too. null or left out keeps the stored value.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's mail address, stored in lower case; an SMTP response unit sends to it unless the unit names its own receiver. A channel that receives mail should hold exactly one address; this API does not check. Left out, the server fills a placeholder address (mail...@mail.org).
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
SASL mechanism for the POP3/IMAP login when mail is fetched through this channel; left out, the mail library negotiates one.
POP3/IMAP server the platform fetches mail from through this channel (pop3://, pop3s://, pop3es://, imap://, imaps:// or imapes://; the s variants are TLS, the es variants STARTTLS). Another scheme is accepted as given and fails when mail is retrieved. null or left out keeps the stored value.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing mails; used only when the channel sends signed. Not validated on save. null or left out keeps the stored value.
SASL mechanism for the SMTP login, case-insensitive; OAuth2 tokens are not settable through this API. Left out, the mail library negotiates one.
SMTP server that mails to this partner are sent through (smtp:// default port 25, smtps:// 465, smtpes:// for STARTTLS). A host or port set in the SMTP response unit overrides it.
Attachment file name pattern; required unless the mail body is used.
Whether the channel of the mail is ignored.
Content type of the mail body; used when the mail body is taken.
Recipient address mails must be sent to; may contain defined constants.
Sender address mails must come from; may contain defined constants.
Whether a mail from a channel of the same local id is accepted.
Subject text a mail must match.
Whether the mail body is taken instead of the attachment.
Whether the RPC recipient address is used.
The type of this object, always core.CronSshAgentSettings. Required where the member it is sent in accepts several types.
The SFTP partner channel to fetch from over SCP, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type SFTP). Checked on write and read back resolved. The channel must allow SCP, otherwise every run fails with "channel does not match subtype". Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelSFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Protocols the partner may log in to the platform's SSH server with: any of SCP, SFTP, SSH (remote command execution). At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits SCP and SFTP but not SSH.
An SSH flavour the partner may use to log in to the platform's SFTP server: allowedProtocols of an SFTP channel.
SCP: SCP: file copy over SSH.SFTP: SFTP: file transfer over SSH.SSH: SSH: remote command execution. Not allowed on a new channel.
Addresses the partner may not log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's SFTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Fingerprint of the host key the partner's SFTP server must present when the platform connects; compared case-insensitively together with keyType, and the connection fails on a mismatch. Left blank, any host key is accepted.
Type of the host key the partner's SFTP server must present, as the SSH library reports it; checked together with keyFingerprint.
User name the platform logs in with at the partner's SFTP server (SSH login); its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
TCP port of the partner's SFTP server. Requires host. A port set in the cron job or response unit overrides it.
Id of the local certificate holding the key pair the platform authenticates with (public-key authentication) when it connects to the partner's SFTP server. Must reference an existing certificate with an SSH common name.
Ids of the partner's certificates (public keys) in the certificate store, one of which the partner may authenticate with when it logs in to the platform's SFTP server by public key. Each must reference an existing certificate. Leaving it out keeps the stored list, null or an empty list removes it.
User name the partner logs in with on the platform's SFTP server; its password is remotePassword, its public keys are remoteCertificateIds. Must be unique among all SFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's SFTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. Without one the partner's file paths resolve against the server's working directory. Left out or blank on create, the server picks <client default channel directory>ssh/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the partner, logged in on the platform's SFTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. null or left out keeps the stored value; a new channel shows the real path.
Addresses the partner may log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Character set the SFTP/SCP server and client use for file names on the wire, e.g. ISO-8859-1. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it so the SSH library's default applies.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Directory to read from on the partner's server. SCP agent: the remote path the files are copied from; WebDAV agent: the path appended to url (a missing / between them is added). Date masks such as <yyyyMMdd>, %NAME% constants and @MSG_CALL_<name>@ variables are resolved.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a fetched file on the server: NONE leaves it (so it is read again on the next run), RENAME renames or moves it as fileRename says. The WebDAV agent does this right after the download, before processing; the SCP agent after processing.
Names of the files to fetch. SCP agent: sent as part of the scp source path, so the remote shell's wildcards apply; a received file that then does not match the pattern (*, ?, |, regex:, ignoring case) is stored in 'unresolved' and skipped. WebDAV agent: the directory listing is filtered with that syntax, and files the server reports as zero bytes are skipped.
New name of a fetched file when fileHandling is RENAME: <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. SCP agent: the file is moved with mv, so a relative name is relative to the login directory, not to dir. WebDAV agent: a value starting with / is appended to url, any other to url plus dir, and <file> is inserted URL-encoded. Empty leaves the file in place.
Host name of the server; non-empty overrides the channel's. null resets it.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Port of the server; above 0 overrides the channel's. null resets it.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every fetched file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
The type of this object, always core.CommLogAgentSettings. Required where the member it is sent in accepts several types.
Whether the agent logs entries for every partner instead of only partnerList. A write that switches to a selection with partnerList empty is refused: a selection with nothing selected would never match.
Whether the agent logs entries for every communication protocol instead of only protocolTypes. Subject to the same all-or-selection rule as allPartners.
Communication-log event type this agent filters on; see core.CommLogEventType.
Communication direction this agent filters on; see core.CommLogDirection.
Ids of the partners this agent's log entries are limited to; get them with GET /platform/api/partners/preview. Only with allPartners false; sent while it is true it is refused, since the platform clears it.
Communication channel protocols this agent's log entries are limited to; see core.CommLogProtocolType. Only with allProtocolTypes false; sent while it is true it is refused.
Communication channel protocol a communication-log input agent filters on: protocolTypes of the agent.
AS2: AS2.FAX: Fax.HTTP: HTTP(S).MAIL: Mail.OFTP: OFTP.X400: X.400.
The type of this object, always core.SapAleAgentSettings. Required where the member it is sent in accepts several types.
Number of IDOCs of the same kind grouped into one job before it is handed to the target profile. 1 means no grouping.
Id (factory name) of the cluster node that runs this ALE listener in a load-balanced installation; empty runs it on the active node. Only relevant with load balancing - it is always stored empty otherwise.
Maximum number of IDOCs the platform accepts in one ALE transmission from SAP; a transmission with more is refused entirely and no job runs.
Ordered IDOC-to-profile routing table; see core.SapAleRelation. Must name at least one rule - the editor refuses to save an empty table.
One rule of a SAP ALE input agent's IDOC-to-profile routing table: one entry of relations. An incoming IDOC is matched against every rule's idoc, cim and field/fieldValue; the most specific match (or, with useAndOperation, the profile matching the most rules) decides which profileName runs.
The type of this object, always core.SapAleRelation. Required where the member it is sent in accepts several types.
IDOC extension (CIM) type this rule additionally matches; left blank, any CIM for the given idoc matches.
Name of the IDOC segment field checked against fieldValue; only evaluated when fieldValue is set.
Value field must equal for this rule to match; left blank the rule matches on idoc/cim alone.
IDOC type this rule matches; * matches any IDOC not matched more specifically by another rule.
Name of the profile started for a matching IDOC; must already exist.
Name of the SAP connection to receive ALE IDOCs from; the profile's client must be allowed to use it.
Whether a profileName used by more than one row of relations is only chosen once every one of its rows also finds a distinct match in the same IDOC, instead of the single best matching row deciding alone.
Whether the message handed to the matching profileName is persistent (kept up to 96 hours, delivered once a consumer is available) instead of synchronous (waits up to 12 hours for the profile's answer).
The type of this object, always core.CronWebdavAgentSettings. Required where the member it is sent in accepts several types.
Id of the local certificate the HTTPS connection authenticates with; it must already exist on the instance. 0 uses the local certificate of the comChannelId channel, if it has one.
Id of an HTTP partner channel that supplies the password and whatever url, user and certId leave empty; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). Stored as sent without any check, so a wrong id only fails when the agent runs. 0 uses no channel. A trigger variable VAR_SYS_TRIGGER_CHANNEL_ID replaces it for that run.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Directory to read from on the partner's server. SCP agent: the remote path the files are copied from; WebDAV agent: the path appended to url (a missing / between them is added). Date masks such as <yyyyMMdd>, %NAME% constants and @MSG_CALL_<name>@ variables are resolved.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a fetched file on the server: NONE leaves it (so it is read again on the next run), RENAME renames or moves it as fileRename says. The WebDAV agent does this right after the download, before processing; the SCP agent after processing.
Names of the files to fetch. SCP agent: sent as part of the scp source path, so the remote shell's wildcards apply; a received file that then does not match the pattern (*, ?, |, regex:, ignoring case) is stored in 'unresolved' and skipped. WebDAV agent: the directory listing is filtered with that syntax, and files the server reports as zero bytes are skipped.
New name of a fetched file when fileHandling is RENAME: <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. SCP agent: the file is moved with mv, so a relative name is relative to the login directory, not to dir. WebDAV agent: a value starting with / is appended to url, any other to url plus dir, and <file> is inserted URL-encoded. Empty leaves the file in place.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every fetched file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Base URL of the WebDAV server; dir is appended to it. Empty uses the address of the comChannelId channel. Date masks, %NAME% constants and variables are resolved.
Login name at the WebDAV server. Empty uses the login of the comChannelId channel.
The type of this object, always core.RuleAgentSettings. Required where the member it is sent in accepts several types.
The type of this object, always core.CronHttpAgentSettings. Required where the member it is sent in accepts several types.
Id of a client certificate for TLS client authentication at an https target; the certificate must already exist on the instance. A wrong id fails each run ("Defined certificate can not be found!"). 0 uses none, except a key store file etc/certs/<host> on the server if one exists.
The HTTP partner channel the request goes through, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). Checked on write and read back resolved. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelHTTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Authentication realm of the partner's login: a login on the platform's HTTP server only finds this channel when the realm of the protected area being called matches.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
User name the platform authenticates with at the partner's HTTP server; its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
How the platform validates a bearer-token (JWT) login of the partner on its HTTP server: issuer, audience and the certificate or key endpoint the signature is checked against. Read back only when the stored settings are readable on this installation; otherwise null, and a write of null keeps them. null or left out keeps the stored settings; {} (every member empty) removes them. Writing settings drops the channel's OAuth2 tokens, as the editor does (the two are exclusive). While the channel issues JWT tokens itself, the settings hold its signing certificate: a change must keep a stored certificateId with a private key, must not set certificateDynamicFetch, and cannot remove the settings.
The type of this object, always core.OpenIdSettings. Required where the member it is sent in accepts several types.
Audience (aud claim) a partner's token must contain: the token's aud may be this one value or a list that includes it.
true fetches the signing keys from url instead of using the stored certificate certificateId; false, null or left out uses the stored certificate.
Id of the stored (partner) certificate whose public key verifies the token signature; used when certificateDynamicFetch is not true. Must reference an existing certificate.
Issuer (iss claim) a partner's token must carry; compared for an exact match.
JWKS endpoint of the issuer the signing keys are fetched from; used only when certificateDynamicFetch is true.
Name of the rate-limit policy applied to requests the partner sends through this HTTP channel. Global is built in. null or left out keeps the stored value; a blank string clears it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
User name the partner logs in with on the platform's HTTP server (HTTP authentication); its password is not settable through this API. Must be unique among all HTTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
Base URL of the partner's server. An HTTP response unit that names this channel takes the host (and the port, if the unit sets none) from it when its own host is empty or <serverurl>, and replaces <serverurl> in its URL with this URL's path; an HTTP cron job replaces <serverurl> with the whole URL.
Role names the partner holds after logging in with this channel; which role a protected HTTP area requires is part of the platform's HTTP server configuration, not of the channel. Stored as given.
true keeps paging when the next page's URL equals the previous one; false stops paging at a repeated URL. Only used with selfTrigger.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true sends the request through the Lobster DMZ server, for targets only reachable from there.
true percent-encodes the resolved URL, e.g. spaces in the path or query, before sending. The URL from VAR_SYS_HTTP_PAGING_URL is not encoded.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
The GraphQL query sent when graphQlRequest is true; %NAME% constants, date masks such as @yyyyMMdd@ and @NAME@ variables are resolved on each run before the query is wrapped in the JSON body.
true sends a GraphQL request: graphQlQuery is posted as a JSON body with method POST, multipart parts are dropped, and soapData is ignored. Takes precedence over webServiceRequest.
Content type of the request body soapData. The profile's encoding is added as charset unless the value contains ;raw, which is removed before sending.
The request to send: sslEnabled (https), host, port, uri and query are joined into one URL, httpMethod is the method (GETWITHCONTENT and DELETEWITHCONTENT send a body with GET and DELETE), headers are sent as request headers (a header named method overrides the method). In the URL, %NAME% constants, date masks such as @yyyyMMdd@ and @NAME@ variables are resolved on each run. Default method GET.
The type of this object, always core.HttpClientSettings. Required where the member it is sent in accepts several types.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Host name or IP address of the server, without scheme, port or path. In a response unit @name@ placeholders (a target field or variable) are resolved at run time, and an empty host (or <serverurl>) is taken from the unit's channel.
HTTP method of the request. Left out, a response unit uses POST and a time-driven agent GET. A header named method in headers overrides it at run time. SOAP and multipart requests need a method with a body (POST, PUT, PATCH, GETWITHCONTENT, DELETEWITHCONTENT): a response unit fails with any other, a time-driven agent switches to POST.
Port as text, so it can hold a placeholder such as @VAR_PORT@. Empty uses 443 with sslEnabled, else 80; a response unit with a channel takes the channel's port first. In a response unit a value that does not resolve to a number fails the unit at run time.
Query string without the leading ?. In a response unit it is the URL query of a GET, HEAD or DELETE. With a body method it becomes the request body when the unit sends no content (contentType core.ResponseContentType_NONE) or when it contains <http-data> (replaced by the URL-encoded output data); otherwise it is the URL query and the content is the body. @name@ placeholders are URL-encoded unless noUrlEncoding or multiPart is set. A time-driven agent appends it to the URL after ?.
true (default) sends the request over HTTPS, false over plain HTTP. Also decides the port used when port is empty: 443 or 80.
Path of the request; a missing leading / is added. In a response unit anything after ? is dropped (use query), @name@ placeholders are URL-encoded unless noUrlEncoding is set, <http-data> is replaced by the URL-encoded output data, and <serverurl> by the path of the channel's address.
Seconds to wait for the target's answer before the request fails; a value below 1 also means 90. Seconds, not milliseconds: 30000 waits more than 8 hours.
User name for HTTP authentication at the target (Basic or Digest; a name with a backslash uses NTLM). The password is not settable through this API. Placeholders are resolved like in the URL. Empty: no user, unless a partner channel supplies one.
true processes a non-empty answer even when its status is not 2xx, e.g. to map an error document. false logs such an answer as an error and runs no job.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum number of requests per scheduled run, the first one included. Limits paging. 0 or less sends no request at all.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
Elements named to match one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other element is unaffected.
One part of the multipart/form-data body a cron HTTP agent sends; one element of multiParts. As soon as one part is set, the request is sent as multipart (as POST unless PUT or PATCH is chosen) instead of soapData; parts are dropped for a SOAP request (webServiceRequest). A text part needs key, data and mimeType; a file part (file: true) also fileName.
The type of this object, always core.CronHttpMultiPart. Required where the member it is sent in accepts several types.
Content of the part. For a text part the value itself; for a file part either file: plus the path of a file on the Lobster server whose content is sent (the profile's client must be allowed to read it), or the literal file content. Placeholders are resolved on each run; empty after resolving fails the run.
Character encoding of a text part or of literal file content; empty means UTF-8.
true sends the part as a file (with fileName), false as a plain form field.
File name sent for a file part; placeholders are resolved. For a file: part an empty name takes the file's own name. Not used for text parts. Send it for every file part: a missing one fails the run.
Form field name of the part. Placeholders (%NAME%, @NAME@, date masks) are resolved on each run; a name that resolves to empty fails the run.
Content type of the part; for a file: part an empty value means application/octet-stream. Send it for every part: a missing one fails the run.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands each fetched answer to a separate background job, so the schedule does not wait for processing. Paging (selfTrigger) needs it false: the paging variable is only read from a job that ran in the foreground. A write that switches paging on and leaves this member as stored sets it to false; one that switches it on together with paging is refused.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true enables paging: after a job, if the mapping set the variable VAR_SYS_HTTP_PAGING_URL to a non-empty URL, the agent requests that URL next and runs the profile again, until the variable stays empty, the URL repeats (see continueHttpCronWithSameUrl) or maxPaging requests were made.
Request body sent with POST, PUT, PATCH, GETWITHCONTENT and DELETEWITHCONTENT (unless multipart parts are set), e.g. a JSON query or a SOAP envelope. %NAME% constants, date masks such as @yyyyMMdd@ and @NAME@ variables are resolved on each run.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
true checks the target's TLS certificate chain against the trusted certificates and fails the request on an untrusted one; false accepts any server certificate.
true sends a SOAP request: soapData is posted (the method becomes POST unless PUT or PATCH is chosen), the SOAPAction header is derived from the envelope, multipart parts are dropped, and a non-2xx answer is checked for a SOAP fault.
The type of this object, always core.IoTAgentSettings. Required where the member it is sent in accepts several types.
Which of the two ways the agent connects to OPC UA.
Server model (agentType OPC_Function): IoT partner channels assigned to the profile, as numeric channel ids from GET /platform/api/partners/preview/{partnerId}/channels (type IoT). Not validated: a wrong id is stored as is.
Subscription model: when true, values read for subscriptionReadValueEntries go into the job even if the server reports a status other than Good; when false such a value makes the notification fail and no job starts.
Subscription model: when true, the first notification right after the subscription starts (OPC UA servers send the current values then) also starts a job; when false it is skipped.
Server model: when true, the OPC UA method has no output arguments and the caller only gets a generic success; when false it returns the fields of the target node IOT_Result as output arguments, so the target structure must have that node.
Subscription model: alias of the OPC UA client connection to the external server; it must exist on the instance.
Subscription model: OPC UA node ids to subscribe to; with subscriptionType DataChange a change of any of them starts a job. Must not be empty for either subscriptionType: without ids no subscription is created at all.
Subscription model: publishing and sampling interval of the subscription in milliseconds; values below 1 are raised to 1. With subscriptionType Direct it is the interval at which jobs start.
Subscription model: nodes read on every notification and written into the job's XML as a tree, each entry as an element named by its outputIdentifier holding the node's value, its children as child elements. Required for subscriptionType Direct.
One node of the tree in subscriptionReadValueEntries of an IoT subscription agent: an OPC UA node read on every notification and the XML element its value is written to in the job's input, with nested children as child elements.
The type of this object, always core.IoTReadValueEntry. Required where the member it is sent in accepts several types.
Nested entries, written as child elements of this entry's element.
Display name of the node; not written into the job's data.
OPC UA node id to read. Without it the entry only produces a grouping element for its children.
Name of the XML element the node's value is written to; the element also carries the attributes nodeid, valdate, statuscode and statustext.
Subscription model: how the subscription reports values.
How the raw input is received before parsing. null keeps every stored value.
The type of this object, always core.InputHandlingSettings. Required where the member it is sent in accepts several types.
The input arrives as an archive. null keeps every stored value.
The type of this object, always core.InputArchiveSettings. Required where the member it is sent in accepts several types.
Whether the input data arrives already compressed as an archive of the given format.
Password protection of a ZIP/SEVEN_ZIP archive. The archive password itself is not settable through this API; a write keeps it. A stored password counts as configured whatever encryption says; see passwordConfigured.
Archive format of the input, used only while compressed is true.
Character encoding the input is read with in phase 2, a Java charset name (send UTF-8 for JSON). Must be a known charset name. An ISO-... name is read back in its short form (8859_1).
Skips a file already treated by Comm-Log; only meaningful for data received over a partner channel with Comm-Log active.
The checks the parser runs on the parsed source tree. null keeps every stored value.
The type of this object, always core.InputValidationSettings. Required where the member it is sent in accepts several types.
Whether the parser checks that every source field has a value where the structure marks it mandatory, and that the value parses as the field's type.
Whether the parser checks a source field's value against its structure's minimum/maximum (for XML, length) constraints. Stored per document type: a value sent unchanged on a write that switches parsing.documentType leaves the new type's stored value alone. Not supported while an XML profile's parser is V4: switching it on there is rejected, and it is left out of the response.
Checks applied to EDIFACT input. null keeps every stored value.
The type of this object, always core.EdifactValidationSettings. Required where the member it is sent in accepts several types.
Whether the character set the interchange declares is checked.
Whether the interchange envelope (UNB/UNZ) is checked.
Whether the data is validated against the UNOA/UNOB character set.
Whether only top-level source nodes that carry a value are checked, the pre-3.3.4 back-compatibility behaviour.
Whether a fixed-length source field's padding is trimmed from its value before it is mapped.
Whether the parser runs the source structure's semantic (cross-field) checks.
Phase 5: the integration unit in unit that serialises the target tree after the mapping, e.g. core.JsonCreationIU or core.XMLCreationIU. A response unit sends that output when its contentType is core.ResponseContentType_IU; leave the unit out when no response unit sends it.
The type of this object, always core.ProfileIntegrationSettings. Required where the member it is sent in accepts several types.
Path of a configuration file on the Lobster server the integration unit reads, for a unit type that needs one (most do not). null keeps the stored value; send "" to clear it.
Character encoding the integration unit's own data is read in, as a Java charset name. null keeps the stored value.
Fully qualified Java class name of a post-executor that processes the integration unit's output file before the response units run; empty runs none. Must be one of the post-executors installed on the instance (listed in ./etc/admin/datawizard/post_executer.properties), unless it is already the stored value - a legally stored value that no longer resolves survives an unrelated edit. null keeps the stored value; send "" to switch it off. Runs only when an integration unit produced output. Its configuration file is not settable through this API. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=POST_EXECUTER.
Client id of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Function number of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Sub-function number of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Supplier id of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Name of a boolean target field or variable that gates whether the integration unit runs at all: empty always runs it, a non-empty name skips the unit for a record where that field or variable is not true. Ignored while unit is absent. null keeps the stored value; send "" to clear it.
The integration unit that writes the target structure as a document: core.JsonCreationIU, core.XMLCreationIU, core.EdifactCreationIU, or core.GenericIntegrationUnit for any other class installed on the instance. Left out or null, the stored unit is kept, so a new profile then has none. Writing the same unit class as the one stored keeps its other parameters; writing a different class (or creating the unit) starts that class's parameters from its own defaults.
The type of this object, always core.GenericIntegrationUnit. Required where the member it is sent in accepts several types.
Fully qualified Java class name of the integration unit. Must be one of the classes installed on this instance, and not com.ebd.hub.datawizard.iu.NoActionUnit. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=INTEGRATION_UNIT.
The unit's free-form configuration, parameter name to string value; a unit created without it reads back with every one at its default. A key must be one the class declares. Omitting a key keeps the value already stored for it (or the class's own default, for a unit that is new or whose className just changed). Sending a key with an explicit null value removes it, and the unit then runs with it unset, which is not necessarily its default. A parameter whose name marks it as a credential (e.g. Excel password to open file) is a secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
The type of this object, always core.EdifactCreationIU. Required where the member it is sent in accepts several types.
Whether a mandatory EDIFACT segment or element with no mapped value is written empty rather than left out. Writing it empty produces an interchange the receiver's own mapper typically cannot handle (e.g. an empty segment group, a wrong UNT count); the underlying unit's own default is true, but a new unit defaults to false here instead. Left out on an already stored unit, the stored value survives; a stored unit that never set it reads back false, as it runs.
The unit's remaining settings, key to string value, e.g. {"Delimiters": ":+.? '"}. Keys: Add UNA-segment to result, Add value to segment counter, Cut line after 80 chars, Delimiters, Length to cut line, One EDI-document per record, Replace umlauts, Replace umlauts with checking case, Return EDIFACT in uppercase completely, Trim type (both,left,right), Trim values, Write message in one line. A key left out keeps its stored value (or its default, on a unit that is new or whose class just changed); a key sent as null is removed, and the unit then runs with it unset, which is not necessarily its default. Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
The type of this object, always core.XMLCreationIU. Required where the member it is sent in accepts several types.
This unit's remaining configuration (everything but rootName), parameter name to string value, e.g. {"Without XML-Header": "true"} (the class is com.ebd.hub.datawizard.iu.XMLNoTemplateUnit); a unit created without it reads back with every one at its default. A key must be one this class declares. Omitting a key keeps the value already stored for it (or the class's own default, for a unit that is new or whose class just changed). Sending a key with an explicit null value removes it, and the unit then runs with it unset, which is not necessarily its default. Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of the target node that becomes the root element of the document; everything below it is written. Always set it: changing it must name a node of the target structure; a legally stored value survives an edit that does not touch it, even where it no longer resolves at run time.
The type of this object, always core.JsonCreationIU. Required where the member it is sent in accepts several types.
This unit's remaining configuration (everything but startAtNode), parameter name to string value, e.g. {"Pretty print": "true"} (the class is com.ebd.hub.datawizard.iu.ExtendedJsonCreationUnit); a unit created without it reads back with every one at its default. A key must be one this class declares. Omitting a key keeps the value already stored for it (or the class's own default, for a unit that is new or whose class just changed). Sending a key with an explicit null value removes it, and the unit then runs with it unset, which is not necessarily its default: an unset Write values type safe is false, its default true. Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of the target node the JSON starts at; the output is wrapped in that node's name (lines gives {"lines": [...]}). Empty or root writes the whole target structure, wrapped in the top node's name ({"PurchaseOrder": {...}}); give the start node xmlJsonMode TRANSPARENT to drop the wrapper. Changing it must name a node of the target structure; a legally stored value survives an edit that does not touch it, even where it no longer resolves at run time.
How and how long a job runs. null keeps every stored value.
The type of this object, always core.JobExecutionSettings. Required where the member it is sent in accepts several types.
Limits on the input a run accepts. null keeps every stored value.
The type of this object, always core.JobExecutionLimits. Required where the member it is sent in accepts several types.
Maximum size in KB the input may have; 0 is unlimited. Must be at least 0.
Maximum number of records a run processes. Must be at least 1; 2147483647 is unlimited.
Alias of the log pool the profile's run history is written to; must name a log pool that exists on the instance when changed.
Minutes a run may take before a notification mail is sent; 0 is unlimited. Must be at least 0.
Thread-pool priority the profile's jobs run at. Forced to NORMAL while singleInstance is true.
Strict serial processing: only one job of the profile runs at a time. Forces priority to NORMAL and responseSettings.asThread to false.
Phase 3 behaviour of the mapping (the trees themselves stay in mappingSettings). null keeps every stored value.
The type of this object, always core.MappingBehaviourSettings. Required where the member it is sent in accepts several types.
How empty values are mapped. null keeps every stored value.
The type of this object, always core.EmptyValueSettings. Required where the member it is sent in accepts several types.
Treats an empty field value as "not existing" rather than as an empty string.
Skips an empty field to save memory instead of mapping it as empty.
Ignores an empty source field to save memory.
Runs the filler again after a template operation.
FixRecord output. null keeps every stored value.
The type of this object, always core.FixRecordOutputSettings. Required where the member it is sent in accepts several types.
Fills a numeric FixRecord output field with 0 instead of blanks.
The data mapper the mapping runs with. A V4 XML parser forces this to EXTENDED regardless of what is sent.
How the mapping holds its data. null keeps every stored value.
The type of this object, always core.MappingMemorySettings. Required where the member it is sent in accepts several types.
Memory-use percentage at which swapToDisk kicks in, 0 to 95.
Writes mapped data to disk temporarily instead of holding it all in memory.
Starts a new output record as soon as a single one of the fields configured in the mapping changes, instead of requiring all of them to change; only meaningful for a CSV, FIX, EXCEL, BWA, DB or SAP_ALE parsing.documentType.
Whether resetOnNewRecord on a core.Variable resets it to initialValue re-created from its declared type, instead of to an empty string regardless of type.
Uses matchcode values for functions in the mapping.
Allows field values to be Base64-encoded.
Phase 3, the mapping: the source structure (the parsed input), the target structure (what the profile builds) and the links between their fields. Function chains, conditions and database settings live on the target nodes and fields.
The type of this object, always core.MappingSettings. Required where the member it is sent in accepts several types.
The profile's constants: fixed name/value pairs a mapping function or filter can read like a variable, but which never change while the profile runs. A PATCH that sends this list replaces the whole set; a null list keeps the stored one.
One entry of mappingSettings.constants: a fixed name/value pair a mapping function or filter can read like a variable, but which a profile can never change while it runs (unlike a variable).
The type of this object, always core.ConstantDefinition. Required where the member it is sent in accepts several types.
The constant's name, unique within the list; a second entry with the same name overwrites the first one when the list is parsed back. Must not contain a tab or a newline.
The constant's value, read as plain text wherever a mapping names the constant. Must not contain a tab or a newline.
The field links: each core.MappingLink copies a source field's value into a target field, both named by field name. One source field may feed several target fields; a target field takes one link. "For every source X produce a target Y" is not a link but the target node's path. A PATCH replaces the whole list, so send the existing links along with the new ones. Must name fields present in their structure.
A field link, one element of mappingSettings.mappings: the target field named in destination takes the value of the source field named in source, e.g. {"class": "core.MappingLink", "source": "qty", "destination": "quantity"}. The value is read from the source node instance the enclosing target node currently iterates (see path on core.DestinationNode), and a link may cross levels, e.g. a field of a nested source node into a field of the parent target node. A function chain on the target field sees the linked value as its LINK parameters, so a field whose chain reads LINK needs a link too.
The type of this object, always core.MappingLink. Required where the member it is sent in accepts several types.
Name of the target field that receives the value, exactly as in mappingSettings.targetStructure (case-sensitive). Must reference an existing target field. If the field also has functions, the last function's result becomes its value; a fixValue overrides both.
Name of the source field whose value the link copies, exactly as in mappingSettings.sourceStructure (case-sensitive). Must reference an existing source field.
The tree the parser fills from the input: core.SourceNode and core.SourceField items. For JSON input the top-level JSON object is the top-level source node, and object keys match items by name. A PATCH that sends its nodes replaces the whole tree, so send it complete.
The type of this object, always core.SourceDataStructure. Required where the member it is sent in accepts several types.
XML namespaces declared for this side of the tree: prefix is usable in core.DestinationNode.xmlNameSpace and matches an XML input's namespaced element names. A PATCH that sends this list replaces the whole set.
One XML namespace declared for a structure: prefix names it in core.DestinationNode.xmlNameSpace (prefix=uri or a bare prefix) and in an XML input's node/field names.
The type of this object, always core.NamespaceDefinition. Required where the member it is sent in accepts several types.
The namespace prefix; unique within the list, a second entry with the same prefix overwrites the first.
The namespace URI the prefix stands for.
The top-level items of the tree, in order; each nests its own items in children. Use one top-level node (minimum 1, maximum 1); a node named root, which the platform reserves, is stored as Root; a node name must be unique within the tree, after names are corrected (unless it is already stored that way and this write leaves names alone). A PATCH that sends this list replaces the whole tree.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.DestinationField. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
Makes the field a helper that computes a value without writing it to the output, e.g. to fill a list, sum into a map or drop a record; its chain runs as usual.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.DestinationNode. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.SourceField. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
The only values the field accepts, e.g. ["EUR", "USD"]: for JSON and XML input a value not in the list fails the job. * accepts anything, and a first entry regex:<pattern> makes the check a regular expression. Empty or left out, any value is accepted.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.SourceNode. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
Profile created.
Standard Platform API success envelope. Every response carries exactly one of data (success) or error (failure) at top level.
An integration profile: what data comes in, how it is parsed and mapped, and where the result goes. It runs in six phases, each held by members of this object: 1 the input agent (inputAgentSettings), 2 parsing (parsing), 3 the mapping (mappingSettings), 4 optional database access (the SQL members of the target nodes and fields), 5 the integration unit that serialises the target tree (integrationSettings) and 6 the response units (responseSettings). Only name is required; a profile is live as soon as it is stored with active: true.
The type of this object, always core.IntegrationProfile. Required where the member it is sent in accepts several types.
Whether the profile runs. An active profile takes calls on its input agent (an HTTP alias answers under /dw/Request/<url>) and a Cron* agent runs on its schedule from the moment it is stored; the change takes effect at once.
What happens to the input data after a run. null keeps every stored value.
The type of this object, always core.ArchivingSettings. Required where the member it is sent in accepts several types.
Hands the input data over to the archive system after processing.
Indexes the input backup for search.
Days a run's backup is retained. Must be at least -1, which follows the system-wide setting.
When the profile was created; assigned by the server.
Both database concerns in one place: the phase 4 SQL step after the mapping. null keeps every stored value.
The type of this object, always core.DatabaseAccessSettings. Required where the member it is sent in accepts several types.
The SQL step run against a database after the mapping. null keeps every stored value.
The type of this object, always core.Phase4Settings. Required where the member it is sent in accepts several types.
Continues with the next record when a phase 4 SQL statement errors, instead of failing the job.
Turns phase 4 on. Forced back to false while the profile's integrationSettings.unit is core.SqlBulkUnit.
Name of a profile variable that must resolve to true at run time for phase 4 to execute; empty always runs phase 4 while enabled is true.
Trims SQL values before they are used in phase 4.
The statement a Cron-SQL input runs. null keeps every stored value.
The type of this object, always core.DatabaseSourceSettings. Required where the member it is sent in accepts several types.
Name of the database connection (alias) to query; it must already exist on the instance and be allowed for the profile's client. %NAME% constants and variables are resolved.
Whether, and how, the rows statement selected are deleted once the job has processed them.
What the input does when statement returns no row. null keeps every stored value.
The type of this object, always core.SourceEmptyResultSettings. Required where the member it is sent in accepts several types.
The input used while useReplacement is true, in the same CSV shape a real result row would have. Empty by default.
Starts one job with replacementData as its input instead of starting none.
Statement parameters bound positionally into statement. Left out keeps the stored ones; an empty list binds none.
One SQL statement parameter of a core.CronSqlAgentSettings agent, bound positionally. name is a display label, e.g. the parameter's position, not a bind variable name.
The type of this object, always core.SqlCronParameter. Required where the member it is sent in accepts several types.
Display label of the parameter, e.g. its position.
Value bound for the parameter. %NAME% constants and profile variables are resolved.
The SQL statement to run. Lines starting with -- are dropped. @0:t@ passes the time of the previous run as a statement parameter, so a run can read only new rows. %NAME% constants and variables are resolved.
Free text saying what the profile does.
Notes and a documentation link of the profile. null keeps every stored value.
The type of this object, always core.DocumentationSettings. Required where the member it is sent in accepts several types.
URL of external documentation for the profile, %CONST% fillers allowed. Must not carry credentials (user info). Empty by default.
Free-text note shown when the profile is imported (for example, path adjustments). Empty by default.
What happens when a job fails. null keeps every stored value.
The type of this object, always core.ErrorHandlingSettings. Required where the member it is sent in accepts several types.
CSV only: skips a record that fails to parse instead of failing the job. Applies only while parsing.documentType is CSV, otherwise a changed value is rejected.
The EDIFACT CONTRL acknowledgement. null keeps every stored value.
The type of this object, always core.EdifactContrlSettings. Required where the member it is sent in accepts several types.
Whether a CONTRL message is sent to the profile named in profile. Forced false while parsing.formatSettings.tradacoms is true; switching it on there is rejected.
Name of the profile that sends the CONTRL message; not checked for existence on write.
Name of a profile to run when this one's job fails; must name an existing profile with a core.MessageAgentSettings input agent when changed - any other input agent type is never found for exception handling at run time. Empty runs none.
Mail address notified when a job fails in phase 2 to 5 (parsing/mapping/database), distinct from responseSettings.errorRecipient which covers phase 6. Empty sends none.
Skips a record that errors instead of failing the whole job.
The workflow to run when this profile's job fails, referenced by its id, which is the workflow's name. A profile that runs none reads back null; sending null keeps the stored workflow, an empty or null id runs none.
The type of this object, always core.WorkflowReference. Required where the member it is sent in accepts several types.
The workflow's name, which identifies it: the latest version of the workflow with this name is started, ignoring upper and lower case. An empty or null id runs none.
Pluggable Java classes the profile runs, and their parameter. Any change needs a data-admin session. null keeps every stored value.
The type of this object, always core.ExtensionSettings. Required where the member it is sent in accepts several types.
A check run before the job starts. null keeps every stored value.
The type of this object, always core.EnvironmentCheckSettings. Required where the member it is sent in accepts several types.
Fully qualified Java class name of an environment check run before the job starts; must be one of the environment checks installed on the instance when changed. Empty runs none. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=ENVIRONMENT_CHECK.
Config file path for className; its content is not settable through this API.
A postparser that runs after parsing. null keeps every stored value.
The type of this object, always core.PostParserSettings. Required where the member it is sent in accepts several types.
Fully qualified Java class name of a postparser that runs after phase 2; must be one of the postparsers installed on the instance when changed. Empty runs none. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=POST_PARSER.
A preparser that runs before parsing. null keeps every stored value.
The type of this object, always core.PreParserSettings. Required where the member it is sent in accepts several types.
Fully qualified Java class name of a preparser that runs before phase 2; must be one of the preparsers installed on the instance when changed. com.ebd.hub.datawizard.parser.DummyPreParser skips the mapping while still handing the input on unchanged. Empty runs none. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=PRE_PARSER.
Config file path for className; its content is not settable through this API.
Whether the preparser's result overwrites the backup of the original input.
Administrative flags of the profile. null keeps every stored value.
The type of this object, always core.GovernanceSettings. Required where the member it is sent in accepts several types.
Marks the profile as holding private data. Only a data administrator may change it.
The id of the profile group the profile is listed under, as GET /platform/api/profiles/preview/groups returns it. Required on create: a missing, blank or root value, or an unknown id, is rejected as invalid. On an update by PATCH (also in overwrite mode), a missing, null or blank value keeps the stored group; a full replace by PUT must name the group, so there such a value is rejected as invalid. Any other value may only move the profile into an existing group, so root or an unknown id is rejected as invalid. A legacy value (such as Default, or root for a profile at the top level) is read back as stored and accepted while it stays unchanged.
The profile's identifier, an opaque string such as -45e51368:1a0d2b4eb4f:59e3...:-8000; assigned by the server. Use it as-is in /platform/api/profiles/preview/{id}. It is not the name: references to a profile from other objects and mapping functions use name.
Phase 1, how data arrives: one input agent object naming its type in class, e.g. core.HttpAgentSettings (the profile listens on /dw/Request/<url>) or a time-driven core.CronHttpAgentSettings, core.CronFileAgentSettings, ... that runs on a schedule.
The type of this object, always core.DataQueueAgentSettings. Required where the member it is sent in accepts several types.
Database alias sqlStatement runs on, allowed for the profile's client; %name% constants are resolved. Only used when useSql is true.
Java class that inserts the entry into sqlStatement when useSql is true (replaces &1). A custom class must be installed on the instance.
When true, an entry whose sqlStatement returns no rows is logged as a failed job; when false it is skipped silently. Only used when useSql is true.
Id (factory name) of the cluster node that reads the queue in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Host name or IP address of the IBM i (AS/400) system. %name% constants are resolved.
Milliseconds between two polls of the queue. Each poll reads entries until the queue is empty; with an interval of up to one minute at most 50 entries per poll.
Key for a keyed data queue: when set, the queue is read as a keyed queue and only entries with exactly this key are read. Empty reads a normal (non-keyed) queue.
Integrated file system path of the data queue object.
Weekly time windows in which the queue is not read, e.g. a nightly backup of the IBM i system. Empty: the queue is polled all the time the profile is active.
A weekly time window in which a data queue agent does not read its queue: it starts on day at hour:minute (server time) and lasts duration minutes. One element of skipExecution.
The type of this object, always core.DataQueueSkipExecution. Required where the member it is sent in accepts several types.
Day of the week the window starts.
Length of the window in minutes.
Hour of the day the window starts, 0 to 23.
Minute of the hour the window starts, 0 to 59.
SQL query run against the database alias for every entry read when useSql is true; with the default className every &1 is replaced by the entry text, unescaped. Line breaks are replaced by spaces. The result rows, as comma-separated CSV, become the job's input; no rows means no job (see errorOnNoData).
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
When true, each entry read is not processed itself but used as parameter of sqlStatement on alias, and the query result is the job's input; when false the entry text is the input.
User profile the agent signs on to the IBM i system with. %name% constants are resolved. A failed sign-on is logged at runtime, not rejected on save.
The type of this object, always core.HttpAgentSettings. Required where the member it is sent in accepts several types.
What a POST, PUT or PATCH without body does. false refuses it with status 500 and runs no job; true runs the job with a placeholder document, e.g. { "body": "data" } for JSON input.
true answers every successful call with status 204 and no body, taking precedence over useResponseOnSuccess and responseOnSuccess.
true lets DELETE calls reach this profile. Its body is read only with deleteHasPayload; otherwise the job gets a placeholder document.
true lets GET calls reach this profile. A GET carries no body: the job gets a placeholder document, and the query parameters as MSG_CALL_<NAME> variables. A call with a method the agent does not accept does not match it.
true lets HEAD calls reach this profile; the job gets a placeholder document.
true lets PATCH calls reach this profile; the request body is the job's input.
true lets POST calls reach this profile; the request body is the job's input.
true lets PUT calls reach this profile; the request body is the job's input.
true makes this a REST endpoint: calls to any sub-path of url match too, e.g. orders/v1/42; the part after url is put into the variable MSG_CALL_HTTP_PATH_DATA and split into named variables by restUrlPlaceholder.
Response examples for the generated OpenAPI document, taken from the profile's sample-response files; a listed file that does not exist can make the ?api request fail. Has no effect on calls.
An example file shown in the OpenAPI document an HTTP input agent generates for its profile; one element of apiTestFiles (request examples) or apiResponseTestFiles (response examples). The file itself is not transferred through this API: it must already be stored with the profile. The for* flags choose for which HTTP operations of the document it is the example.
The type of this object, always core.HttpAgentTestFile. Required where the member it is sent in accepts several types.
true uses the file as example for the DELETE operation.
true uses the file as example for the GET operation.
true uses the file as example for the HEAD operation.
true uses the file as example for the PATCH operation.
true uses the file as example for the POST operation.
true uses the file as example for the PUT operation.
File name of the example, relative to the profile's folder for such files: its test-mapping samples for request examples, its sample responses for response examples. A request example that does not exist there is left out of the document.
Request examples for the generated OpenAPI document, taken from the profile's test-mapping sample files. Has no effect on calls.
An example file shown in the OpenAPI document an HTTP input agent generates for its profile; one element of apiTestFiles (request examples) or apiResponseTestFiles (response examples). The file itself is not transferred through this API: it must already be stored with the profile. The for* flags choose for which HTTP operations of the document it is the example.
The type of this object, always core.HttpAgentTestFile. Required where the member it is sent in accepts several types.
true uses the file as example for the DELETE operation.
true uses the file as example for the GET operation.
true uses the file as example for the HEAD operation.
true uses the file as example for the PATCH operation.
true uses the file as example for the POST operation.
true uses the file as example for the PUT operation.
File name of the example, relative to the profile's folder for such files: its test-mapping samples for request examples, its sample responses for response examples. A request example that does not exist there is left out of the document.
true hands the call to background processing and answers at once, before the job has run: with responseOnSuccess (or 204 with acceptEmptyResponse). A response unit can then not return data, so with useResponseOnSuccess: false the caller gets an error.
HTTP authentication scheme the caller must use when authentication is required (see channelIds).
Ids of the partners' HTTP channels allowed to call this agent; list them with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). When set, a caller must authenticate as one of these channels (its remoteId as user plus its password, or a token accepted for it), else it gets 401. Empty requires no authentication. The ids are stored as sent, without checking that they exist.
true reads the body of a DELETE call as the job's input, like for POST. Only relevant with acceptHttpDelete.
true publishes a generated API description of the endpoint: <url>?api returns an OpenAPI document as JSON (?api&yaml as YAML), for a SOAP agent <url>?wsdl the WSDL. With false such calls run the profile like any other call.
HTTP status sent with responseOnError when the job fails, as text; a %NAME% constant may be used. A value that is not a number, or below 100, falls back to 500 at run time. Empty or blank on a write is treated the same as absent. Always 500 while webservice is true.
Error bodies for further HTTP statuses besides errorCode, e.g. a status a mapping raises with 480 throw http exception and an empty message. Also listed as error responses in the generated OpenAPI document.
Error body for one further HTTP status of an HTTP input agent; one element of errorCodeSettings. When a failed job answers with statusCode (other than the agent's errorCode), e.g. through the mapping function 480 throw http exception with an empty message, the caller receives responseMsg instead of responseOnError. Also listed as an error response in the profile's generated OpenAPI document.
The type of this object, always core.HttpAgentErrorCode. Required where the member it is sent in accepts several types.
Body sent with that status. The placeholders of responseOnError work here too: {--Exception--}, {--ExceptionBase64--}, {--FullStackTraceException--}, @VAR_JOBNR@.
HTTP status code this body is for, 100 to 599.
true refuses calls that reach the instance through the Lobster DMZ server (answered 404 as if no profile matched); only calls made directly to the instance get through.
OAuth2 scopes a JWT bearer token must carry to call this agent, separated by spaces; all listed scopes are required, more are fine, a token missing one gets 403. Empty checks no scopes. Only checked when the caller authenticates with a JWT bearer token.
Content type of the answer to the caller, on success and when the job fails. A value containing json also makes the error placeholders JSON-escaped. Sent as the answer's Content-Type; a charset in it only labels the body and does not convert it. The profile output is sent as written, so set the unit's encoding to match the charset (e.g. application/json; charset=UTF-8). A fixed response message is sent as UTF-8, except when the input is unpacked as an archive (compressed input): then it is sent as ISO-8859-1. The job-error text is always ISO-8859-1, whatever charset is declared. Also the media type of the responses in the generated OpenAPI document.
For a multipart/form-data call: name of the part that carries the data to process. Empty takes the part named file if there is one, else the first file part. The other parts become variables MSG_CALL_HTTP_MULTIPART<n>_NAME / _VALUE, their count MSG_CALL_HTTP_MULTIPARTS.
Target namespace of the WSDL generated for a SOAP agent and of its default SOAP answer. Only used while webservice is true.
Elements named to match one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other element is unaffected.
A request parameter a call must carry for this profile to be chosen; one element of params of an HTTP or data-product input agent. A call without it, or with a value not listed, does not reach this profile. Not needed just to read a parameter: every query parameter of a call is available as the variable MSG_CALL_<NAME>.
The type of this object, always core.HttpAgentParam. Required where the member it is sent in accepts several types.
Name of the query or form parameter; compared case-insensitively. %NAME% constants are resolved.
Accepted values; the call's value must equal one of them exactly (case-sensitive), e.g. ["fast", "full"]. * accepts any value, regex:<pattern> a value the whole pattern matches, e.g. regex:[0-9]+; %NAME% constants are resolved. An empty list never matches, so the profile becomes unreachable; use ["*"] to require only the parameter's presence.
Body sent with status errorCode when the job fails. Without webservice, absent or blank defaults to [Job-Id @VAR_JOBNR@] failed. Placeholders: {--Exception--} (error text), {--ExceptionBase64--}, {--FullStackTraceException--}, @VAR_JOBNR@; for a JSON mimeType the inserted texts are escaped for JSON, and with webservice the body is wrapped in a SOAP fault.
Fixed body sent to the caller after a successful job while useResponseOnSuccess is true; @VAR_JOBNR@ and @VAR_SYS_MESSAGE_ID@ are replaced with the job number and message id. Always used for an archive (e.g. ZIP) upload.
Names for the path segments after url in REST mode: a call to <url>/berlin/42 sets the variables MSG_CALL_HTTP_REST_API_PATH_shop = berlin and MSG_CALL_HTTP_REST_API_PATH_petId = 42. A leading or trailing / is removed. Only evaluated while acceptREST is true.
Description of the success response in the generated OpenAPI document; only used while responseOnSuccess is empty, and Success! when this is empty too. Has no effect on calls.
Generator of the ?api OpenAPI document. Has no effect on calls.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Path the agent listens on, appended to <instance>/dw/Request/. Leading and trailing / do not matter; the rest must match exactly, unless acceptREST also admits sub-paths. Keep it unique: when several active profiles match a call (same path, method and params), one of them is taken.
How the caller's success answer is produced. true sends the fixed text responseOnSuccess; false sends what a response unit with returnResponseToCaller: true hands back, and if none does the caller gets an error. Ignored while acceptEmptyResponse is true. With false, input that is split into several messages or an archive is refused.
true makes this a SOAP web service: ?wsdl serves a generated WSDL (see wsdlCreator, namespaceUrl), errors are answered as SOAP faults with status 500 (ignoring errorCode), and multipart parts are not turned into variables. Through this API, acceptHttpPost, acceptHttpGet, acceptHttpHead and acceptHttpDelete keep the values sent.
How the WSDL and the success answer of a SOAP agent are built: com.ebd.hub.datawizard.util.creator.DefaultWSDLCreator answers with a fixed SOAP envelope carrying the job number (ProfileReferenceID), whatever useResponseOnSuccess says; com.ebd.hub.datawizard.util.creator.ResponseWSDLCreator derives the WSDL from the target structure. Only used while webservice is true.
The type of this object, always core.CronOftpAgentSettings. Required where the member it is sent in accepts several types.
Stored but not evaluated: the OFTP agent processes every received file, whatever its size.
The OFTP partner channel to call, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type OFTP). Checked on write and read back resolved. Required: without it every run fails with "No OFTP partner channel set". The host comes from the channel's address. Its direction must be OUT or IN_AND_OUT, because the call opens the connection; this is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelOFTP. Required where the member it is sent in accepts several types.
Whether the certificates are exchanged with this partner automatically. Leaving it out keeps the stored value, null resets it to false.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Transports the partner may use. The editor exposes TCPIP and TCPIP_TLS; ISDN is also represented for existing channels. null, an empty list or omission keeps the stored allowance.
An OFTP transport allowed by allowedProtocols on an OFTP channel.
ISDN: OFTP over ISDN.TCPIP: OFTP over TCP/IP without TLS.TCPIP_TLS: OFTP over TCP/IP with TLS.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The credit count of the OFTP session. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Whether the platform may send the change-direction command twice in a row. Leaving it out keeps the stored value, null resets it to false.
Whether the partner's end-to-end responses must be signed. Leaving it out keeps the stored value, null resets it to false.
The encryption algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to AES256.
The partner's OFTP server the platform connects to; oftps:// uses TLS (commonly port 6619).
The size of the exchange buffer in bytes. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own OFTP identifier (SSID) toward this partner. Required on create; a write may not blank it.
The highest OFTP protocol release the platform offers. Leaving it out keeps the stored value, null restores the default.
Display name of the channel. Must be unique among the partner's channels of the same type.
The name of the trusted service list the partner's certificate is checked against. An empty string restores the default; leaving it out keeps the stored value, null restores it too.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Id of the platform's own certificate (with private key) that takes over as localCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) that takes over as remoteCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
The subject of the partner's certificate the platform looks for when remoteCertificateId names none. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's OFTP identifier - the SSID it presents when it connects, which assigns the session to this channel. Must be unique among OFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that no partner presents.
Whether the partner must authenticate securely. Leaving it out keeps the stored value, null resets it to false.
Whether an interrupted send is never resumed, but started again from the beginning. Leaving it out keeps the stored value, null resets it to false.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
The signature algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to SHA1.
Whether the SFID of every incoming file must match one the partner is allowed to send. Leaving it out keeps the stored value, null resets it to false.
The TLS cipher suite to use. An empty string removes the preference; leaving it out keeps the stored value, null resets it to the default.
The directory on the platform incoming files of this partner go to. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The directory on the platform outgoing files for this partner are taken from. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The X.25 window size. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Recipient SFID. Stored but not evaluated: the call uses the identities of channel.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Host name or address to call; non-empty overrides the channel's address. null resets it to the default.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
true calls over TCP/IP, which oftpTLS then secures; false calls over ISDN. null resets it to the default.
Whether the call goes through the Lobster DMZ.
Port to call; a value above 0 overrides the port of the channel's address. Omitted on create it is stored as 6619, which then overrides the channel's port, so send 0 to use the channel's port.
Name of the OFTP service on the instance that makes the call; only change it where several OFTP services are installed.
true connects over TCP/IP with TLS, false over plain TCP/IP. It also decides the port used when neither oftpPort nor the channel's address has one: 6619 with TLS, 3305 without.
Sender SFID. Stored but not evaluated: the call uses the identities of channel.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every received file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.FTPAgentSettings. Required where the member it is sent in accepts several types.
true also processes uploaded files of zero bytes; false skips them with a log entry.
FTP partner channels whose logins may deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type FTP). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an FTP channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An FTP connection with the partner, in either direction: the partner logs in to the platform's FTP server as remoteId and lands in remotePath, and the platform connects to the partner's server at host and port. Referenced by core.CronFtpAgentSettings.channel (fetch), core.FtpProfileResponseUnit.channel (send) and core.FTPAgentSettings.channels (partners allowed to upload). The partner's login password is remotePassword; the password the platform uses at the partner's server is not settable through this API, give it in the cron job or response unit instead. Channel list filter type=FTP.
The type of this object, always core.IntegrationPartnerChannelFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
FTP flavours the partner may log in to the platform's FTP server with: any of FTP, FTPS_EXPLICIT, FTPS_IMPLICIT. At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits all three.
An FTP flavour the partner may use to log in to the platform's FTP server: allowedProtocols of an FTP channel.
FTP: Plain FTP, unencrypted.FTPS_EXPLICIT: FTPS explicit: the connection starts plain and upgrades to TLS (AUTH TLS).FTPS_IMPLICIT: FTPS implicit: TLS from the first byte.
Addresses the partner may not log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's FTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
User name the platform logs in with at the partner's FTP server; its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the partner, logged in on the platform's FTP server as remoteId, is confined to its home directory (remotePath) and cannot change to a directory above it. null or left out keeps the stored value; a new channel is not confined.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
TCP port of the partner's FTP server; left out, the address carries no port. Requires host. A port set in the cron job or response unit overrides it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
User name the partner logs in with on the platform's FTP server; its password is remotePassword. Must be unique among all FTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's FTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. The FTP server refuses every login to a channel without one. Left out or blank on create, the server picks <client default channel directory>ftp/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the control connection's TLS session is reused for the data connections of an FTPS transfer when the platform connects to the partner; some servers refuse a data connection without it. Leaving it out keeps the stored value, null resets it to true; a new channel reuses the session.
Whether the partner, logged in on the platform's FTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. Leaving it out keeps the stored value, null resets it to false; a new channel shows the real path.
Addresses the partner may log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Sub-directory, relative to the partner's home directory on the Lobster FTP/SFTP server, that an upload must land in for this profile; separate several with ;. $USER$ is replaced by the uploading partner's login name. Empty accepts uploads in any directory.
File-name pattern a file the partner uploads must match for this profile to take it. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and <yyyyMMdd> is replaced by the current date. If several profiles accept an upload, the one with the longest matching dir and the most specific pattern wins.
true collects the files a partner uploads during one session and processes them only when the partner logs out; false processes each file as soon as its upload is complete.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronPop3AgentSettings. Required where the member it is sent in accepts several types.
The Mail partner channel whose mailbox is polled, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type Mail). Checked on write and read back resolved. Server, protocol, login and password come from the channel; host, port and user override them when set. The channel must allow POP3 or IMAP retrieval respectively, otherwise every run fails. Without a channel host and user are required, and the password cannot be set through the API. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelMail. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
What the channel may be used for: any of SMTP and ASMTP (sending mail, without and with a login) and POP3 and IMAP (fetching mail). At least one must stay allowed (an empty list leaves the stored allowance unchanged), and POP3 and IMAP are mutually exclusive (the editor keeps one); null or left out keeps the stored allowance, which on a new channel permits all four.
A mail protocol the channel may be used with: allowedProtocols of a mail channel.
SMTP: SMTP: sending mail without login.ASMTP: ASMTP: sending mail through an SMTP server that requires a login.POP3: POP3: fetching mail from a POP3 mailbox.IMAP: IMAP: fetching mail from an IMAP mailbox.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing mails; used only when the channel sends encrypted. Not validated on save. null or left out keeps the stored value.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
IMAP folder mail is fetched from; a directory set in the IMAP cron job overrides it.
Largest incoming mail accepted on this channel, in bytes. Must be at most 1073741824 (1024 MB). null (or leaving it out on create) means no limit, and an unlimited channel reads back null.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own mail address on this channel; matched case-insensitively, so an incoming mail is assigned to the channel whatever case it is addressed in, while the address is stored and read back as given. Unless the channel stores its own SMTP or retrieval user name, the platform logs in with this address, so changing it changes that login too. null or left out keeps the stored value.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's mail address, stored in lower case; an SMTP response unit sends to it unless the unit names its own receiver. A channel that receives mail should hold exactly one address; this API does not check. Left out, the server fills a placeholder address (mail...@mail.org).
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
SASL mechanism for the POP3/IMAP login when mail is fetched through this channel; left out, the mail library negotiates one.
POP3/IMAP server the platform fetches mail from through this channel (pop3://, pop3s://, pop3es://, imap://, imaps:// or imapes://; the s variants are TLS, the es variants STARTTLS). Another scheme is accepted as given and fails when mail is retrieved. null or left out keeps the stored value.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing mails; used only when the channel sends signed. Not validated on save. null or left out keeps the stored value.
SASL mechanism for the SMTP login, case-insensitive; OAuth2 tokens are not settable through this API. Left out, the mail library negotiates one.
SMTP server that mails to this partner are sent through (smtp:// default port 25, smtps:// 465, smtpes:// for STARTTLS). A host or port set in the SMTP response unit overrides it.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Not used by POP3 and IMAP: the mail is always fetched directly. Leave it false.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a mail body or attachment that no rule in mailDispatchSettings accepts: STORE_UNRESOLVED stores it in the instance's 'unresolved' folder and sends the unresolved-data notification, DISCARD discards it.
Host name of the mail server; overrides the server of channel when set. Empty uses the channel's. Placeholders such as %NAME% are resolved.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Rules that decide, for the body and for each attachment of a fetched mail, which profile processes it. They are checked in list order and the first matching rule whose profile is usable wins; scoring does not reorder them. Sending the member replaces all rules. Data no rule accepts is handled as handleUnknownMailData says, so an empty list sends everything there; at least one rule is required.
One routing rule of a mail agent, an element of mailDispatchSettings of a POP3, IMAP or X.400 agent. The agent checks the rules in list order against the body and against each attachment of a fetched mail, and hands the data to the profile of the first active rule whose criteria all match (contentType, filePattern, channel, sender, to, cc, subject, mimeType) and whose profile is usable. An empty criterion does not filter. Send sender, subject and filePattern explicitly, "" meaning no filter: an omitted one is stored without a value, which the matching does not handle.
The type of this object, always core.MailDispatchRule. Required where the member it is sent in accepts several types.
false switches the rule off, so it is skipped.
One mail address that must be among the mail's CC recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
Id of a partner channel the mail must belong to, checked as matchChannel says; the platform assigns incoming mails to partner channels, and an X.400 mail without one gets the agent's channel. List channels with GET /platform/api/partners/preview/{partnerId}/channels. Stored as sent without any check. 0 does not filter by channel.
Which part of a mail the rule applies to.
true requires the subject to equal subject, ignoring case; false only requires it to contain subject. Not used when subject is a regex: expression.
Pattern the attachment's file name must match (* and ? wildcards ignoring case, | alternatives, regex: regular expressions); * or "" accepts every attachment. Only checked for attachments.
Kind of agent the rule belongs to. Left out on an existing rule, the stored kind is kept.
How channel is checked. Only evaluated when channel is not 0.
Content type the mail body must have for a body rule, compared case-insensitively with the content types of the body. Only checked for the body (contentType BODY or BODY_AND_ATTACHMENT) and ignored for X.400; without a value no body matches.
Name of the profile that processes the matching data; a profile's id is its name, see GET /platform/api/profiles/preview. Empty means the agent's own profile. The target must belong to the same client, be active, not be a master template and be within its validity period; otherwise the rule is skipped and the next one is tried.
Ranking used to sort a rule list by how specific a rule is. The agent ignores it and checks the rules in list order; stored as sent, 0 is fine.
Text the sender's address must contain, ignoring case; with mailType X400 an X.400 address the sender must match. "" does not filter.
Text the subject must contain, ignoring case, or equal with exactMatchSubject; a value starting with regex: is a regular expression the whole subject must match. "" does not filter.
One mail address that must be among the mail's To recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Port of the mail server; a value above 0 overrides the port of channel. Omitted on create it is stored as 21, which then overrides the channel's port, so send 0 to use the channel's port.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every mail body and attachment to a separate background job and continues at once, so several jobs run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true skips a mail that cannot be read or parsed and continues with the next one; false aborts the run at such a mail.
Stored but not read: S/MIME handling of the fetched mails is always enabled.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Login name at the mail server; overrides the retrieval user of channel when set. Empty uses the channel's.
The type of this object, always core.MQTTAgentSettings. Required where the member it is sent in accepts several types.
Name of the MQTT connection (broker, credentials, MQTT version) to subscribe with; it must exist on the instance.
Java class name of a custom binary converter, meant for complexDataType BINARY. Stored, but the MQTT agent does not call it.
Structured payload type. Omit it for plain text or numbers read as genericDataType.
Text put between the messages when finalValueFunction is ALL and complexDataType is not set; NL stands for a line break (CRLF). Empty: the messages are concatenated without separator.
Id (factory name) of the cluster node that runs this agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Function chain that decides, for each message that arrives while the buffer is not yet full, whether the collected messages (including this one) are handed on early: the chain runs on the message text and the buffer is forwarded when its last result is true. It does not drop messages. Only evaluated with messageBufferSize above 1 and only when mqttConditions is absent; an empty mqttConditions list disables it too.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
What the job receives from the collected messages. Without complexDataType, MIN, MAX and AVG need a numeric genericDataType (INTEGER, FLOAT, BIG_DECIMAL or BIG_INTEGER) and ALL works for STRING, INTEGER, FLOAT, BIG_DECIMAL and BIG_INTEGER; any other combination produces no job. With complexDataType JSON or XML, ALL combines the messages (see there) and every other value passes the last message on.
Type the whole message payload is read as for mqttConditions and finalValueFunction. mqttConditions support STRING, INTEGER, DOUBLE, DATE (yyyy-MM-dd), FLOAT and BIG_INTEGER. A message that does not parse as the type fails the check. Keep STRING when complexDataType is set.
Number of messages collected before they are handed on together as one job, combined by finalValueFunction. 1 starts one job per message; timeout, mqttConditions and filters only have an effect above 1.
Not evaluated by the MQTT agent: mqttConditions and filters are checked on every message.
Conditions that hand the collected messages on early: when a message that arrives before the buffer is full matches any value of any entry, the buffer including this message is forwarded. The whole message is compared, read as genericDataType; entries are OR-linked. They do not drop messages. Only evaluated with messageBufferSize above 1; when present (even as an empty list), filters are ignored.
One entry of mqttConditions of an MQTT, Kafka or AMQP (Legacy) agent: a comparison (condition) and the values the whole received message is compared with, read as the agent's genericDataType. The entry matches when the message matches any of its values; the entries of the list are OR-linked. A match hands the buffered messages on early, it does not filter messages out.
The type of this object, always core.MqttConditionEntry. Required where the member it is sent in accepts several types.
Comparison to apply. Text (genericDataType STRING) supports REGEX, CONTAINS, EQUALS and NOT; numbers support EQUALS, NOT and the four comparisons; dates only SMALLER, GREATER and EQUALS; any other combination never matches. Required; a missing or unknown name is rejected. A later entry with the same condition replaces an earlier one.
Values the message is compared with, written in the agent's genericDataType, e.g. dates as 2024-12-31 or a regular expression for REGEX. Every value must parse as that type, otherwise the check fails.
MQTT quality of service of the subscription.
Seconds after which the messages collected so far are handed on as one job even though fewer than messageBufferSize have arrived; checked about every 5 seconds. 0 waits until the buffer is full. Only meaningful with messageBufferSize above 1.
Topic filter to subscribe to (MQTT wildcards + and # are allowed). %name% constants are resolved.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.OFTPAgentSettings. Required where the member it is sent in accepts several types.
OFTP partner channels allowed to deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type OFTP). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an OFTP channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An OFTP connection with the partner: both sides' OFTP identifiers, the partner's OFTP server and the certificates. Needs localSsid; remoteSfid and endpointUrl are filled from defaults when absent. Referenced by core.CronOftpAgentSettings.channel (fetch), core.OftpProfileResponseUnit.channel (send) and core.OFTPAgentSettings.channels (partners allowed to deliver). The session passwords and additional SFIDs are not settable through this API; channel list filter type=OFTP.
The type of this object, always core.IntegrationPartnerChannelOFTP. Required where the member it is sent in accepts several types.
Whether the certificates are exchanged with this partner automatically. Leaving it out keeps the stored value, null resets it to false.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Transports the partner may use. The editor exposes TCPIP and TCPIP_TLS; ISDN is also represented for existing channels. null, an empty list or omission keeps the stored allowance.
An OFTP transport allowed by allowedProtocols on an OFTP channel.
ISDN: OFTP over ISDN.TCPIP: OFTP over TCP/IP without TLS.TCPIP_TLS: OFTP over TCP/IP with TLS.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The credit count of the OFTP session. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Whether the platform may send the change-direction command twice in a row. Leaving it out keeps the stored value, null resets it to false.
Whether the partner's end-to-end responses must be signed. Leaving it out keeps the stored value, null resets it to false.
The encryption algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to AES256.
The partner's OFTP server the platform connects to; oftps:// uses TLS (commonly port 6619).
The size of the exchange buffer in bytes. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own OFTP identifier (SSID) toward this partner. Required on create; a write may not blank it.
The highest OFTP protocol release the platform offers. Leaving it out keeps the stored value, null restores the default.
Display name of the channel. Must be unique among the partner's channels of the same type.
The name of the trusted service list the partner's certificate is checked against. An empty string restores the default; leaving it out keeps the stored value, null restores it too.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Id of the platform's own certificate (with private key) that takes over as localCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) that takes over as remoteCertificateId once it is activated, for a certificate exchange in preparation. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
The subject of the partner's certificate the platform looks for when remoteCertificateId names none. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's OFTP identifier - the SSID it presents when it connects, which assigns the session to this channel. Must be unique among OFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that no partner presents.
Whether the partner must authenticate securely. Leaving it out keeps the stored value, null resets it to false.
Whether an interrupted send is never resumed, but started again from the beginning. Leaving it out keeps the stored value, null resets it to false.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
The signature algorithm for OFTP messages. Leaving it out keeps the stored value, null resets it to SHA1.
Whether the SFID of every incoming file must match one the partner is allowed to send. Leaving it out keeps the stored value, null resets it to false.
The TLS cipher suite to use. An empty string removes the preference; leaving it out keeps the stored value, null resets it to the default.
The directory on the platform incoming files of this partner go to. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The directory on the platform outgoing files for this partner are taken from. An empty string removes it; leaving it out keeps the stored value, null removes it too.
The X.25 window size. 0 removes the setting; leaving it out keeps the stored value, null removes it too.
Destination SFID (Odette id of the recipient) the file must be addressed to, compared case-insensitively; a trailing * matches every id starting with the text before it. Empty accepts any.
Pattern the virtual file (dataset) name must match, case-insensitive: wildcards * and ?, several patterns separated by |, regex:<expression> for a regular expression, and date placeholders like <yyyyMMdd>. addval:<key> takes the pattern from the additional value <key> of the delivering channel.
Originator SFID (Odette id of the sender) the file must come from, compared case-insensitively; a trailing * matches every id starting with the text before it. Empty accepts any.
When true, received files are collected and processed only when the partner ends the OFTP session; when false, each file is processed as soon as it arrives.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronImapAgentSettings. Required where the member it is sent in accepts several types.
The Mail partner channel whose mailbox is polled, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type Mail). Checked on write and read back resolved. Server, protocol, login and password come from the channel; host, port and user override them when set. The channel must allow POP3 or IMAP retrieval respectively, otherwise every run fails. Without a channel host and user are required, and the password cannot be set through the API. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelMail. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
What the channel may be used for: any of SMTP and ASMTP (sending mail, without and with a login) and POP3 and IMAP (fetching mail). At least one must stay allowed (an empty list leaves the stored allowance unchanged), and POP3 and IMAP are mutually exclusive (the editor keeps one); null or left out keeps the stored allowance, which on a new channel permits all four.
A mail protocol the channel may be used with: allowedProtocols of a mail channel.
SMTP: SMTP: sending mail without login.ASMTP: ASMTP: sending mail through an SMTP server that requires a login.POP3: POP3: fetching mail from a POP3 mailbox.IMAP: IMAP: fetching mail from an IMAP mailbox.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing mails; used only when the channel sends encrypted. Not validated on save. null or left out keeps the stored value.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
IMAP folder mail is fetched from; a directory set in the IMAP cron job overrides it.
Largest incoming mail accepted on this channel, in bytes. Must be at most 1073741824 (1024 MB). null (or leaving it out on create) means no limit, and an unlimited channel reads back null.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own mail address on this channel; matched case-insensitively, so an incoming mail is assigned to the channel whatever case it is addressed in, while the address is stored and read back as given. Unless the channel stores its own SMTP or retrieval user name, the platform logs in with this address, so changing it changes that login too. null or left out keeps the stored value.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's mail address, stored in lower case; an SMTP response unit sends to it unless the unit names its own receiver. A channel that receives mail should hold exactly one address; this API does not check. Left out, the server fills a placeholder address (mail...@mail.org).
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
SASL mechanism for the POP3/IMAP login when mail is fetched through this channel; left out, the mail library negotiates one.
POP3/IMAP server the platform fetches mail from through this channel (pop3://, pop3s://, pop3es://, imap://, imaps:// or imapes://; the s variants are TLS, the es variants STARTTLS). Another scheme is accepted as given and fails when mail is retrieved. null or left out keeps the stored value.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing mails; used only when the channel sends signed. Not validated on save. null or left out keeps the stored value.
SASL mechanism for the SMTP login, case-insensitive; OAuth2 tokens are not settable through this API. Left out, the mail library negotiates one.
SMTP server that mails to this partner are sent through (smtp:// default port 25, smtps:// 465, smtpes:// for STARTTLS). A host or port set in the SMTP response unit overrides it.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
IMAP folder to read; when not empty it overrides the folder set on channel. Date masks and variables are resolved.
Not used by POP3 and IMAP: the mail is always fetched directly. Leave it false.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a mail body or attachment that no rule in mailDispatchSettings accepts: STORE_UNRESOLVED stores it in the instance's 'unresolved' folder and sends the unresolved-data notification, DISCARD discards it.
Host name of the mail server; overrides the server of channel when set. Empty uses the channel's. Placeholders such as %NAME% are resolved.
IMAP folder the fetched mails are moved to instead of being deleted; it must already exist, otherwise the run fails. Empty deletes fetched mails.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Rules that decide, for the body and for each attachment of a fetched mail, which profile processes it. They are checked in list order and the first matching rule whose profile is usable wins; scoring does not reorder them. Sending the member replaces all rules. Data no rule accepts is handled as handleUnknownMailData says, so an empty list sends everything there; at least one rule is required.
One routing rule of a mail agent, an element of mailDispatchSettings of a POP3, IMAP or X.400 agent. The agent checks the rules in list order against the body and against each attachment of a fetched mail, and hands the data to the profile of the first active rule whose criteria all match (contentType, filePattern, channel, sender, to, cc, subject, mimeType) and whose profile is usable. An empty criterion does not filter. Send sender, subject and filePattern explicitly, "" meaning no filter: an omitted one is stored without a value, which the matching does not handle.
The type of this object, always core.MailDispatchRule. Required where the member it is sent in accepts several types.
false switches the rule off, so it is skipped.
One mail address that must be among the mail's CC recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
Id of a partner channel the mail must belong to, checked as matchChannel says; the platform assigns incoming mails to partner channels, and an X.400 mail without one gets the agent's channel. List channels with GET /platform/api/partners/preview/{partnerId}/channels. Stored as sent without any check. 0 does not filter by channel.
Which part of a mail the rule applies to.
true requires the subject to equal subject, ignoring case; false only requires it to contain subject. Not used when subject is a regex: expression.
Pattern the attachment's file name must match (* and ? wildcards ignoring case, | alternatives, regex: regular expressions); * or "" accepts every attachment. Only checked for attachments.
Kind of agent the rule belongs to. Left out on an existing rule, the stored kind is kept.
How channel is checked. Only evaluated when channel is not 0.
Content type the mail body must have for a body rule, compared case-insensitively with the content types of the body. Only checked for the body (contentType BODY or BODY_AND_ATTACHMENT) and ignored for X.400; without a value no body matches.
Name of the profile that processes the matching data; a profile's id is its name, see GET /platform/api/profiles/preview. Empty means the agent's own profile. The target must belong to the same client, be active, not be a master template and be within its validity period; otherwise the rule is skipped and the next one is tried.
Ranking used to sort a rule list by how specific a rule is. The agent ignores it and checks the rules in list order; stored as sent, 0 is fine.
Text the sender's address must contain, ignoring case; with mailType X400 an X.400 address the sender must match. "" does not filter.
Text the subject must contain, ignoring case, or equal with exactMatchSubject; a value starting with regex: is a regular expression the whole subject must match. "" does not filter.
One mail address that must be among the mail's To recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Port of the mail server; a value above 0 overrides the port of channel. Omitted on create it is stored as 21, which then overrides the channel's port, so send 0 to use the channel's port.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every mail body and attachment to a separate background job and continues at once, so several jobs run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true skips a mail that cannot be read or parsed and continues with the next one; false aborts the run at such a mail.
Stored but not read: S/MIME handling of the fetched mails is always enabled.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Login name at the mail server; overrides the retrieval user of channel when set. Empty uses the channel's.
The type of this object, always core.CronMongodbAgentSettings. Required where the member it is sent in accepts several types.
Name of the MongoDB connection to read from; it must already exist on the instance and be allowed for the profile's client. @name@ variables are resolved.
Name of the collection in databaseName to query. @name@ variables are resolved.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Name of the MongoDB database. @name@ variables are resolved.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
How documents are written as JSON.
true sends the error mail when a run of the agent fails. null keeps the stored value.
With oneDocument: number of documents per array, so each block of that size becomes one job. 0 or 1 puts all documents into one array; ignored when it is not smaller than maxRows.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
Maximum number of documents a find reads per run. 0 or less means no limit.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
true combines the documents of a run into one JSON array [{...}, {...}] processed as a single job (split by maxBatchSize); false processes every document as its own job.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
JSON projection for a find that selects the fields to return. Empty returns whole documents. Not used for an aggregation query.
A JSON filter document for a find; empty reads every document. A JSON array instead runs an aggregation pipeline, e.g. [{"$match": {"status": "open"}}], and then projection and the maxRows limit are not applied. @0:t@ inserts the time of the previous run as yyyy-MM-dd'T'HH:mm:ss.SSS'Z', so a run can read only new documents.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.AmqpV2AgentSettings. Required where the member it is sent in accepts several types.
Message-buffering configuration for this agent; see core.AccumulationSettings. Only acknowledgmentMode IMMEDIATE can have it enabled.
The type of this object, always core.AccumulationSettings. Required where the member it is sent in accepts several types.
How the buffered payloads are combined into the job's data when the buffer flushes.
Payload comparisons that flush the buffer early: each entry is checked against the newest message's payload, read as payloadDataType, and entries are OR-composed with each other and with filters, maxCount, maxAgeSeconds and maxTotalBytes - any one of them flushes. Sending the member replaces the whole list.
One payload comparison of AccumulationSettings.comparators: operator checked against the newest buffered message's payload, read as payloadDataType, for each of values. Several values are OR-composed for the same operator, e.g. two EQUALS values flush on either.
The type of this object, always core.AccumulationComparator. Required where the member it is sent in accepts several types.
Comparison to apply: REGEX and CONTAINS need payloadDataType STRING; SMALLER, GREATER, SMALLER_EQUALS and GREATER_EQUALS need BIG_INTEGER, BIG_DECIMAL or DATE; EQUALS and NOT work with every supported payloadDataType. A value that fails to parse as payloadDataType fails the whole check for that message. Required.
Values compared against the payload; must not be empty. Compared as text for REGEX and CONTAINS, otherwise parsed as payloadDataType.
true buffers messages instead of starting a job for each. While false no other member is validated. At least one of maxCount, maxAgeSeconds or maxTotalBytes must then be above 0, else the profile is rejected.
Function chain conditions that flush the buffer early, evaluated on the newest message like comparators (see core.MessageFilter), but through a mapping function chain instead of a fixed operator. OR-composed with comparators, maxCount, maxAgeSeconds and maxTotalBytes.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
Which buffered payload is kept when aggregation is FINAL_VALUE; ignored otherwise. MIN, MAX and AVG need payloadDataType BIG_INTEGER or BIG_DECIMAL; LAST works with every payloadDataType.
Seconds since the oldest buffered message that flushes the batch. 0 disables this trigger; see enabled.
Number of buffered messages that flushes the batch. 0 disables this trigger; see enabled.
Total buffered payload size in bytes that flushes the batch. 0 disables this trigger; see enabled.
Which buffered message's file name, sender and variables the flushed job carries: FIRST or LAST message's, COLLECT_INDEXED all of them with an index suffix, COMMON_ONLY only the values every buffered message agrees on.
Type each buffered message's payload is read as for comparators and, with aggregation FINAL_VALUE, for finalValueFunction. comparators only work with STRING, BIG_INTEGER, BIG_DECIMAL or DATE; a finalValueFunction other than LAST needs BIG_INTEGER or BIG_DECIMAL.
Text put between the buffered payloads when aggregation is CONCAT_SEPARATOR; ignored otherwise.
Name of the root element the buffered payloads are wrapped in when aggregation is XML_WRAP; ignored otherwise. Must not be blank.
When a delivery is settled relative to the job it starts, and whether a reply is produced. Message buffering (accumulation) is only available with IMMEDIATE.
Name of the AMQP v2 connection to receive through; it must exist on the instance and be allowed for the profile's client, otherwise the agent is not started (only logged, the profile still saves). A write that sets an alias outside a restricted client's allow-list is refused, listing the allowed ones. The alias decides the protocol (AMQP 0.9.1, AMQP 1.0 or JMS).
AMQP 0.9.1 only: whether the declared queue/exchange is durable. In destinationType QUEUE it declares the consumed queue durable, in TOPIC it declares both the exchange and amqp091QueueName durable (needs a name then).
AMQP 0.9.1 only, only relevant while consuming via an exchange (destinationType TOPIC): the exchange kind bound with amqp091RoutingKey.
AMQP 0.9.1 only: number of messages the broker may deliver without an acknowledgment. 0 uses the broker default.
AMQP 0.9.1 only, only for destinationType TOPIC: name of the queue declared and bound to the exchange; empty means a server-named, auto-delete queue. A durable declaration (amqp091DeclareDurable) needs a name, since a server-named queue cannot be durable. %name% constants are resolved.
AMQP 0.9.1 only: whether a nacked message is requeued (true) instead of dead-lettered (false). Only relevant with a synchronous acknowledgmentMode (AFTER_PROCESSING / RPC).
AMQP 0.9.1 only, only for destinationType TOPIC: binding key for the exchange named by destinationName (wildcards * and #). %name% constants are resolved.
The client (AMQP container) id the receiver connections identify themselves with at the broker. Ignored for an AMQP 0.9.1 alias. Pinned on the connection whenever set for AMQP 1.0, only for a durable subscription for JMS (a JMS provider refuses a second connection holding an id already in use). Must be set together with subscriptionName for a durable subscription: the broker identifies it by client id plus subscription name. Must be unique per broker. %name% constants are resolved.
Name of the queue or topic (see destinationType) to consume from. %name% constants are resolved.
What destinationName names.
Whether the subscription is durable, i.e. survives times without a connected receiver. Only meaningful for destinationType TOPIC on an AMQP 1.0 or JMS alias; ignored for AMQP 0.9.1 and for destinationType QUEUE. Requires subscriptionName and clientId.
Id (factory name) of the cluster node that receives in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
JMS only: SQL-92 selector expression filtering the received messages. Empty receives all. %name% constants are resolved.
JMS only, only with durableSubscription true: whether the durable subscription is removed from the broker when the agent stops, so messages published meanwhile are not kept for it.
Delivery guarantee the consumer requests from the broker. A synchronous acknowledgmentMode (AFTER_PROCESSING or RPC) requires AT_LEAST_ONCE.
Seconds a synchronous acknowledgmentMode (AFTER_PROCESSING / RPC) waits for the in-flight job on shutdown/restart before it is cut off. 0 or negative falls back to 30. Ignored for acknowledgmentMode IMMEDIATE.
Name identifying the durable subscription on the broker, scoped to clientId: together they must be unique per broker. Only used when durableSubscription is true. %name% constants are resolved.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.PortalAgentSettings. Required where the member it is sent in accepts several types.
true lets anyone open the form without logging in; roles and userIds must then be empty. Switching it back to false later does not remove the public access from an existing form.
Milliseconds the form in the browser waits after an input before it requests dependent (dynamic) content from the server.
Class name of the form renderer. Stored only: the DataCockpit form is built from the profile's source structure, not from this value. Leave the default.
The form's image, Base64-encoded; empty removes it. null keeps the stored value.
map
true hides the job logs from the form's users.
true makes the form a mask without a save option, e.g. a search mask.
DataCockpit role names whose users may open the form. Copied into the form's access assignments only when the DataCockpit form is first created for the profile; later changes do not alter an existing form. Must be empty while allowAnonymousAccess is true.
true runs the profile while the user waits and reports success or the error back to the form; false starts it in the background and returns at once, so errors are not shown to the user.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
true turns the form into a pure file upload: the user uploads data instead of filling in fields.
DataCockpit users who may open the form, each given by user id or login name. Like roles, only applied when the DataCockpit form is first created; must be empty while allowAnonymousAccess is true.
The type of this object, always core.CronFileAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
The SMB partner channel the directory is read through, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type SMB). Checked on write and read back resolved. Leave it out for a local directory; left out on an update, the stored channel stays. A channel that was deleted reads as no channel.
The type of this object, always core.IntegrationPartnerChannelSMB. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the SMB file server - no scheme, port or path. Replaces <SMBHOST> in the file path of a cron job or response unit that uses this channel. Required on create; a write may not blank it.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Identity of the channel, composed by the server as //<host>/<smbUser>@<smbDomain> in lower case; it follows host, smbUser and smbDomain and cannot be written. It is the channel's uniqueness key, so a channel without smbUser reads //<host>/null@<smbDomain> (without a domain, no @ part) and collides with every other such channel on the same host.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Internal identity of the channel, generated by the server (an AUTO_CREATE_... value); it has no meaning for the SMB connection and cannot be written.
Share name, stored as the path of the channel's smb:// address (a leading / is added). Needs host. The file cron job and response unit take only the host from the channel, so name the share in their file path as well.
Windows domain the SMB login authenticates in; a domain set in the cron job or response unit wins. Required on create; a write may not blank it.
Account used during SMB authentication, next to smbDomain. Required on create; a write may not blank it. null or left out keeps the stored value.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes: right away when they are skipped (acceptEmptyFiles false), and after pickup when they are processed, even if fileHandling is NONE.
true treats a directory that does not exist as empty: it is only noted in the trace log and the run does not fail, e.g. for a network share that is not always mounted.
Directory on the Lobster server to scan; separate several with ;. Date masks such as <yyyyMMdd>, %NAME% constants and @MSG_CALL_<name>@ variables are resolved. A missing directory fails the run unless dirIsMounted is true; one that cannot be read is logged as an error and skipped. If the instance restricts file access with a path whitelist, the directory must be on it.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Hours part of an age limit that excludeMinute and excludeSecond complete: files last modified longer ago than this duration are skipped. All three 0 disables the limit. fileOlderThan flips it to skip files younger than the duration instead.
Minutes part of the age limit described at excludeHour.
Seconds part of the age limit described at excludeHour.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file once it has been picked up. RENAME is not supported by these agents and behaves like NONE. DELETE needs write access to the file and its directory; a file it cannot delete is skipped with an error.
Whether the age limit of excludeHour, excludeMinute and excludeSecond skips files modified longer ago (true) or files younger than the duration (false). null resets it.
Pattern the names of the files to pick up must match. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and regex2: makes the whole value one regular expression. <yyyyMMdd> or @yyyyMMdd@ insert the current date, %NAME% a constant, @MSG_CALL_<name>@ a trigger variable. Names starting with . are always ignored; the file agent fails the run if the pattern is empty.
true sorts ascending (A to Z, oldest first), false descending. Only used when the files are sorted, see fileSortItem.
Order in which the files of a run are processed, in the direction of fileSortAscending. The cloud storage agent always sorts: by name for NAME, by last-modified time otherwise.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Full path of a lock file. If it exists when a run starts, the run is skipped with a log entry; otherwise the agent creates it for the duration of the run and deletes it afterwards, so runs and a cooperating writer do not overlap. Date masks and variables are resolved. Empty disables it.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true also picks up files whose name starts with ~, which the file agent otherwise skips as temporary files. The cloud storage agent does not evaluate it and never skips such files.
true also picks up matching files from all sub-directories of the scanned directories, at any depth. Ignored by the file agent when singleFile is true.
true hands every file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true treats filePattern as one exact file name looked up in each directory instead of a pattern, and sub-directories are not scanned.
Windows domain of the login for an SMB share the directory is on. null resets it.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronSqlAgentSettings. Required where the member it is sent in accepts several types.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true Base64-encodes the values of BLOB columns in the result.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Seconds the test functions ("Test SQL", structure creation, the config assistant) may take; not used by the scheduled runs.
Maximum lifetime in seconds of the database session a run executes the statement in; 0 means no limit.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronSftpAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
true also deletes or renames the AS/400 main file when a member file is deleted or renamed after download (a.file/b.mbr -> a.file, a.b -> a).
The SFTP partner channel to fetch from, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type SFTP). Checked on write and read back resolved. The channel must allow SFTP, otherwise every run fails with a subtype mismatch. An agent created through the API keeps the internal default port 21, which overrides the channel's port (usually 22), so the connection fails until port: 0 is sent to use the channel's port. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelSFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Protocols the partner may log in to the platform's SSH server with: any of SCP, SFTP, SSH (remote command execution). At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits SCP and SFTP but not SSH.
An SSH flavour the partner may use to log in to the platform's SFTP server: allowedProtocols of an SFTP channel.
SCP: SCP: file copy over SSH.SFTP: SFTP: file transfer over SSH.SSH: SSH: remote command execution. Not allowed on a new channel.
Addresses the partner may not log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's SFTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Fingerprint of the host key the partner's SFTP server must present when the platform connects; compared case-insensitively together with keyType, and the connection fails on a mismatch. Left blank, any host key is accepted.
Type of the host key the partner's SFTP server must present, as the SSH library reports it; checked together with keyFingerprint.
User name the platform logs in with at the partner's SFTP server (SSH login); its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
TCP port of the partner's SFTP server. Requires host. A port set in the cron job or response unit overrides it.
Id of the local certificate holding the key pair the platform authenticates with (public-key authentication) when it connects to the partner's SFTP server. Must reference an existing certificate with an SSH common name.
Ids of the partner's certificates (public keys) in the certificate store, one of which the partner may authenticate with when it logs in to the platform's SFTP server by public key. Each must reference an existing certificate. Leaving it out keeps the stored list, null or an empty list removes it.
User name the partner logs in with on the platform's SFTP server; its password is remotePassword, its public keys are remoteCertificateIds. Must be unique among all SFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's SFTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. Without one the partner's file paths resolve against the server's working directory. Left out or blank on create, the server picks <client default channel directory>ssh/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the partner, logged in on the platform's SFTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. null or left out keeps the stored value; a new channel shows the real path.
Addresses the partner may log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Character set the SFTP/SCP server and client use for file names on the wire, e.g. ISO-8859-1. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it so the SSH library's default applies.
Text that turns a data file name into the name of its control file, see ftpControlNameType; compared case-insensitively. Placeholders such as <yyyyMMdd> are resolved. Required when useControlFile is true.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes from the server: skipped ones right away, and processed ones (with acceptEmptyFiles) even if fileHandling is NONE or RENAME.
true deletes the master control file once its directory has been processed. Only used with masterCtrlFile.
Directory on the partner's server to fetch from; separate several with ;, each is read in its own connection. Empty reads the login directory. %NAME% constants, @MSG_CALL_<name>@ trigger variables and date masks such as <yyyyMMdd> are resolved. A directory that cannot be entered is logged and skipped.
true fetches through the Lobster DMZ server: the DMZ connects to the partner, and the internal server then collects the files from the DMZ. Needs channel and a DMZ set up for the instance; file filter classes of the profile are not applied this way.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
true also downloads each data file's control file and passes its content to the mapping as the variable VAR_SYS_CTRL_FILE, decoded with the profile's encoding. Set it only together with useControlFile: with a controlSuffix but useControlFile false the downloads fail.
true also processes the master control file itself as data, after the other files of its directory. Only used with masterCtrlFile.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file on the partner's server right after its download, before the data is processed: NONE leaves it (so it is fetched again next run unless the profile skips already received files), RENAME renames or moves it as fileRename says.
Names of the files to fetch. A plain pattern is sent with the server's directory listing, so the server's wildcard rules apply; | separates alternatives that are listed one by one, and an alternative starting with regex: (or a whole value starting with regex2:) is a regular expression the agent applies to the full listing itself. <yyyyMMdd>, %NAME% and @MSG_CALL_<name>@ are resolved first.
New name of a fetched file when fileHandling is RENAME; a path moves it. <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. Empty leaves the file in place.
true sorts A to Z, false Z to A, ignoring case. Only used when fileSortItem is NAME.
NAME processes the fetched files in file-name order (direction fileSortAscending); any other value keeps the order in which the server lists them.
How controlSuffix forms a control file name: SUFFIX appends it to the data file name (orders.xml + .ok = orders.xml.ok), PREFIX puts it in front (ok_ + orders.xml = ok_orders.xml). Only used with useControlFile.
true opens the FTP data connection in passive mode, false in active mode. Ignored for SFTP.
Extra commands for the server, one per line. A line starting with before: is sent right after login, before the listing; the other lines after the directory has been processed, before logout. For FTP each line goes out as SITE <command> (a rfc: prefix sends it without SITE); SFTP only supports chmod <octal> <path>. @...@ variables are resolved.
true downloads in FTP ASCII mode, where the server may convert line endings; false in binary mode, which keeps the bytes unchanged. Ignored for SFTP.
FTP server host; non-empty overrides the channel's. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true: when deleting or renaming a file on the server fails after its download, the downloaded copy is kept in the server's temporary directory and its path logged, instead of being discarded; the file is not processed in either case. For servers that remove fetched files themselves and refuse client deletes.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Name of a master control file that must exist before anything is fetched: without it in the first directory of dir the run stops (see masterCtrlFileInSubDir). No wildcards (a * fails the run); date masks and variables are resolved. Empty disables it. Do not combine with useControlFile.
false: only the first directory in dir must hold masterCtrlFile, and without it the whole run stops. true: every directory needs its own master control file, and a directory without one is skipped.
Maximum number of files fetched per run, counted over all directories; the rest waits for the next run. 0 means no limit.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
FTP server port; above 0 overrides the channel's. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every downloaded file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
true fetches a data file only when its control file (see controlSuffix) exists next to it. Control files are never processed as data, and they are deleted or renamed together with their data file. A control file left without its data file fails the run with "Stale control files found"; with an empty controlSuffix every file counts as a control file, so the run always fails. Do not combine with masterCtrlFile.
true lists directories with the quick name listing, which does not tell files from sub-directories; false requests the full listing and keeps files only. Ignored for SFTP.
The type of this object, always core.SolutionAgentSettings. Required where the member it is sent in accepts several types.
true lets DELETE calls reach this endpoint (without body; the job gets a placeholder document).
true lets GET calls reach this endpoint (no body; the job gets a placeholder document).
true lets HEAD calls reach this endpoint (no body; the job gets a placeholder document).
true lets PATCH calls reach this endpoint; the request body is the job's input.
true lets POST calls reach this endpoint; the request body is the job's input.
true lets PUT calls reach this endpoint; the request body is the job's input.
Ids of the partners' HTTP channels allowed to call this endpoint; list them with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). When set, a caller must authenticate as one of these channels, else it gets 401. Empty requires no authentication; left out, the stored list stays (none on create).
Content type of the answer to the caller.
Elements named to match one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other element is unaffected.
A request parameter a call must carry for this profile to be chosen; one element of params of an HTTP or data-product input agent. A call without it, or with a value not listed, does not reach this profile. Not needed just to read a parameter: every query parameter of a call is available as the variable MSG_CALL_<NAME>.
The type of this object, always core.HttpAgentParam. Required where the member it is sent in accepts several types.
Name of the query or form parameter; compared case-insensitively. %NAME% constants are resolved.
Accepted values; the call's value must equal one of them exactly (case-sensitive), e.g. ["fast", "full"]. * accepts any value, regex:<pattern> a value the whole pattern matches, e.g. regex:[0-9]+; %NAME% constants are resolved. An empty list never matches, so the profile becomes unreachable; use ["*"] to require only the parameter's presence.
Names for path segments after url. The endpoint only evaluates them in REST mode, which a data-product agent never switches on: calls must hit url exactly and no path variable is set.
Name of the data product this endpoint implements. Not read by the running endpoint.
Path of the implemented operation in that OpenAPI definition. Not read by the running endpoint.
URL of the data product's OpenAPI definition the operation was imported from. Not read by the running endpoint, and setting it here imports nothing.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Path the endpoint listens on, appended to <instance>/dw/Request/. Leading and trailing / do not matter, the rest must match exactly. Keep it unique among active HTTP and data-product profiles.
The type of this object, always core.CronX400AgentSettings. Required where the member it is sent in accepts several types.
The X.400 partner channel whose mailbox is polled, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type X400). Checked on write and read back resolved. Required: without it every run fails with "X.400 channel not set!". A fetched mail that carries no partner channel of its own is assigned to this one. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelX400. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
The platform's own O/R address toward this partner: the sender of messages sent through this channel (unless the response unit names one), and incoming messages must be addressed to it.
The largest TPDU (transport data unit) in bytes the X.400 client uses. 0 restores the default; leaving it out keeps the stored value, null restores it too.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Presentation selector the X.400 client addresses on the X.400 server. Left out, the client's default applies; [empty] sends an explicitly empty value.
The partner's O/R address: the receiver of messages sent through this channel (unless the response unit names one), and an incoming message is assigned to this channel by its sender address (compared in upper case). Left out, the server fills a placeholder address (S=dummy;A=VIAT;C=DE;O=...).
Whether the X.400 mailbox can filter the messages it hands out by address. Leaving it out keeps the stored value, null resets it to false.
Session selector the X.400 client addresses on the X.400 server. Left out, the client's default applies; [empty] sends an explicitly empty value.
Transport access point (TSAP) the X.400 client sends when connecting to the X.400 server. Left out, the client's default applies; [empty] sends an explicitly empty value.
Configuration directory of the legacy UAFI X.400 interface. Stored only: the editor does not show it and the built-in X.400 client does not use it.
Incoming directory of the legacy UAFI X.400 interface. Stored only: the editor does not show it and the built-in X.400 client does not use it.
Outgoing directory of the legacy UAFI X.400 interface. Stored only: the editor does not show it and the built-in X.400 client does not use it.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true fetches the mails through the Lobster DMZ server instead of directly.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
true fetches only unread mails, false all mails in the mailbox.
true restricts polling to the X.400 addresses of channel and of the partners the rules in mailDispatchSettings name, by their sender or channel.
true fetches only mails received after the previous run; that time is updated after every successful fetch.
What happens to a mail body or attachment that no rule in mailDispatchSettings accepts.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
Rules that decide, for the body and for each attachment of a fetched mail, which profile processes it. They are checked in list order and the first matching rule whose profile is usable wins; scoring does not reorder them. Sending the member replaces all rules; data no rule accepts is handled as handleUnknownMailData says. For X.400 a rule's sender is compared as an X.400 address, and to and cc should stay empty: bodies and attachments of X.400 mails are matched without recipients, so a rule that sets them never takes them.
One routing rule of a mail agent, an element of mailDispatchSettings of a POP3, IMAP or X.400 agent. The agent checks the rules in list order against the body and against each attachment of a fetched mail, and hands the data to the profile of the first active rule whose criteria all match (contentType, filePattern, channel, sender, to, cc, subject, mimeType) and whose profile is usable. An empty criterion does not filter. Send sender, subject and filePattern explicitly, "" meaning no filter: an omitted one is stored without a value, which the matching does not handle.
The type of this object, always core.MailDispatchRule. Required where the member it is sent in accepts several types.
false switches the rule off, so it is skipped.
One mail address that must be among the mail's CC recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
Id of a partner channel the mail must belong to, checked as matchChannel says; the platform assigns incoming mails to partner channels, and an X.400 mail without one gets the agent's channel. List channels with GET /platform/api/partners/preview/{partnerId}/channels. Stored as sent without any check. 0 does not filter by channel.
Which part of a mail the rule applies to.
true requires the subject to equal subject, ignoring case; false only requires it to contain subject. Not used when subject is a regex: expression.
Pattern the attachment's file name must match (* and ? wildcards ignoring case, | alternatives, regex: regular expressions); * or "" accepts every attachment. Only checked for attachments.
Kind of agent the rule belongs to. Left out on an existing rule, the stored kind is kept.
How channel is checked. Only evaluated when channel is not 0.
Content type the mail body must have for a body rule, compared case-insensitively with the content types of the body. Only checked for the body (contentType BODY or BODY_AND_ATTACHMENT) and ignored for X.400; without a value no body matches.
Name of the profile that processes the matching data; a profile's id is its name, see GET /platform/api/profiles/preview. Empty means the agent's own profile. The target must belong to the same client, be active, not be a master template and be within its validity period; otherwise the rule is skipped and the next one is tried.
Ranking used to sort a rule list by how specific a rule is. The agent ignores it and checks the rules in list order; stored as sent, 0 is fine.
Text the sender's address must contain, ignoring case; with mailType X400 an X.400 address the sender must match. "" does not filter.
Text the subject must contain, ignoring case, or equal with exactMatchSubject; a value starting with regex: is a regular expression the whole subject must match. "" does not filter.
One mail address that must be among the mail's To recipients; compared ignoring case, spaces are removed. Empty does not filter. Bodies and attachments of X.400 mails are matched without recipients.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every mail body and attachment to a separate background job and continues at once, so several jobs run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
true leaves fetched mails in the X.400 mailbox; false deletes them once fetched, unless an instance-wide setting keeps them.
The type of this object, always core.CronFtpAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
true also deletes or renames the AS/400 main file when a member file is deleted or renamed after download (a.file/b.mbr -> a.file, a.b -> a).
The FTP partner channel to fetch from; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type FTP). Checked on write and read back resolved. Host, port, login and password come from the channel's own-identity settings. Pitfall: an agent created through the API keeps the internal default port 21, which overrides the channel's port; send port: 0 to use the channel's port. Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
FTP flavours the partner may log in to the platform's FTP server with: any of FTP, FTPS_EXPLICIT, FTPS_IMPLICIT. At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits all three.
An FTP flavour the partner may use to log in to the platform's FTP server: allowedProtocols of an FTP channel.
FTP: Plain FTP, unencrypted.FTPS_EXPLICIT: FTPS explicit: the connection starts plain and upgrades to TLS (AUTH TLS).FTPS_IMPLICIT: FTPS implicit: TLS from the first byte.
Addresses the partner may not log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's FTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
User name the platform logs in with at the partner's FTP server; its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
Whether the partner, logged in on the platform's FTP server as remoteId, is confined to its home directory (remotePath) and cannot change to a directory above it. null or left out keeps the stored value; a new channel is not confined.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
TCP port of the partner's FTP server; left out, the address carries no port. Requires host. A port set in the cron job or response unit overrides it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
User name the partner logs in with on the platform's FTP server; its password is remotePassword. Must be unique among all FTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's FTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. The FTP server refuses every login to a channel without one. Left out or blank on create, the server picks <client default channel directory>ftp/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the control connection's TLS session is reused for the data connections of an FTPS transfer when the platform connects to the partner; some servers refuse a data connection without it. Leaving it out keeps the stored value, null resets it to true; a new channel reuses the session.
Whether the partner, logged in on the platform's FTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. Leaving it out keeps the stored value, null resets it to false; a new channel shows the real path.
Addresses the partner may log in to the platform's FTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Text that turns a data file name into the name of its control file, see ftpControlNameType; compared case-insensitively. Placeholders such as <yyyyMMdd> are resolved. Required when useControlFile is true.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes from the server: skipped ones right away, and processed ones (with acceptEmptyFiles) even if fileHandling is NONE or RENAME.
true deletes the master control file once its directory has been processed. Only used with masterCtrlFile.
Directory on the partner's server to fetch from; separate several with ;, each is read in its own connection. Empty reads the login directory. %NAME% constants, @MSG_CALL_<name>@ trigger variables and date masks such as <yyyyMMdd> are resolved. A directory that cannot be entered is logged and skipped.
true fetches through the Lobster DMZ server: the DMZ connects to the partner, and the internal server then collects the files from the DMZ. Needs channel and a DMZ set up for the instance; file filter classes of the profile are not applied this way.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
true also downloads each data file's control file and passes its content to the mapping as the variable VAR_SYS_CTRL_FILE, decoded with the profile's encoding. Set it only together with useControlFile: with a controlSuffix but useControlFile false the downloads fail.
true also processes the master control file itself as data, after the other files of its directory. Only used with masterCtrlFile.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file on the partner's server right after its download, before the data is processed: NONE leaves it (so it is fetched again next run unless the profile skips already received files), RENAME renames or moves it as fileRename says.
Names of the files to fetch. A plain pattern is sent with the server's directory listing, so the server's wildcard rules apply; | separates alternatives that are listed one by one, and an alternative starting with regex: (or a whole value starting with regex2:) is a regular expression the agent applies to the full listing itself. <yyyyMMdd>, %NAME% and @MSG_CALL_<name>@ are resolved first.
New name of a fetched file when fileHandling is RENAME; a path moves it. <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. Empty leaves the file in place.
true sorts A to Z, false Z to A, ignoring case. Only used when fileSortItem is NAME.
NAME processes the fetched files in file-name order (direction fileSortAscending); any other value keeps the order in which the server lists them.
How controlSuffix forms a control file name: SUFFIX appends it to the data file name (orders.xml + .ok = orders.xml.ok), PREFIX puts it in front (ok_ + orders.xml = ok_orders.xml). Only used with useControlFile.
true opens the FTP data connection in passive mode, false in active mode. Ignored for SFTP.
Extra commands for the server, one per line. A line starting with before: is sent right after login, before the listing; the other lines after the directory has been processed, before logout. For FTP each line goes out as SITE <command> (a rfc: prefix sends it without SITE); SFTP only supports chmod <octal> <path>. @...@ variables are resolved.
true downloads in FTP ASCII mode, where the server may convert line endings; false in binary mode, which keeps the bytes unchanged. Ignored for SFTP.
true fetches over FTPS (FTP over TLS) instead of plain FTP. null keeps the stored value (plain FTP on create).
FTP server host; non-empty overrides the channel's. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true: when deleting or renaming a file on the server fails after its download, the downloaded copy is kept in the server's temporary directory and its path logged, instead of being discarded; the file is not processed in either case. For servers that remove fetched files themselves and refuse client deletes.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Name of a master control file that must exist before anything is fetched: without it in the first directory of dir the run stops (see masterCtrlFileInSubDir). No wildcards (a * fails the run); date masks and variables are resolved. Empty disables it. Do not combine with useControlFile.
false: only the first directory in dir must hold masterCtrlFile, and without it the whole run stops. true: every directory needs its own master control file, and a directory without one is skipped.
Maximum number of files fetched per run, counted over all directories; the rest waits for the next run. 0 means no limit.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
FTP server port; above 0 overrides the channel's. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every downloaded file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
true fetches a data file only when its control file (see controlSuffix) exists next to it. Control files are never processed as data, and they are deleted or renamed together with their data file. A control file left without its data file fails the run with "Stale control files found"; with an empty controlSuffix every file counts as a control file, so the run always fails. Do not combine with masterCtrlFile.
true lists directories with the quick name listing, which does not tell files from sub-directories; false requests the full listing and keeps files only. Ignored for SFTP.
The type of this object, always core.KafkaAgentSettings. Required where the member it is sent in accepts several types.
Name of the Kafka connection (bootstrap servers, security settings) to consume through; it must exist on the instance and be allowed for the profile's client, otherwise the agent is not started.
When true, the agent reads the partitions listed in assignmentList of topicName directly instead of joining the consumer group (no rebalancing). The list must not be empty, otherwise the agent stops; a regex: topic is not supported. After a polling error the agent reconnects with a normal group subscription.
Partition numbers of topicName the agent reads when assigned is true. Ignored otherwise. Empty by default.
Java class name of a custom binary converter, meant for complexDataType BINARY. Stored, but the Kafka agent does not call it.
Kafka client.id of the consumer; %name% constants are resolved. Empty: an id generated from the server id, the profile name and topicName.
When true, the offset of each record is committed right after the record was handed on; when false, offsets are committed every commitInterval records. Either way the commit does not wait for the job's result; all pending offsets are committed when the agent stops.
With commitEach false, the consumed offsets are committed to the broker every this many records (and when the agent stops). Must be at least 1; 0 makes every commit fail.
Structured payload type. Omit it for plain text or numbers read as genericDataType.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key, sasl.jaas.config, basic.auth.user.info, ssl.keystore.key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Deserializer for the record value, i.e. the data the job receives. STRING, and the numeric and UUID types, are handed on as text in the profile's encoding, BYTES as the raw bytes; AVRO (Confluent) and AVRO_APICURIO (Apicurio) are decoded with the schema registry from schemaRegistryUrl or registryChannelId and handed on as JSON text. Records that do not match pause the agent for 120 seconds each time and have to be removed from the topic.
Text put between the records when finalValueFunction is ALL and complexDataType is not set; NL stands for a line break (CRLF). Empty: the records are concatenated without separator.
Id (factory name) of the cluster node that runs this agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Function chain that decides, for each record that arrives while the buffer is not yet full, whether the collected records (including this one) are handed on early: the chain runs on the record text and the buffer is forwarded when its last result is true. It does not drop records. Only evaluated with messageBufferSize above 1, only on the records messageIntervalCheck selects and only when mqttConditions is absent; an empty mqttConditions list disables it too.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
What the job receives from the collected records. Without complexDataType, MIN, MAX and AVG need a numeric genericDataType (INTEGER, FLOAT, BIG_DECIMAL or BIG_INTEGER) and ALL works for STRING, INTEGER, FLOAT, BIG_DECIMAL and BIG_INTEGER; any other combination produces no job. With complexDataType JSON or XML, ALL combines the records (see there) and every other value passes the last record on.
Type the whole record value is read as for mqttConditions and finalValueFunction. mqttConditions support STRING, INTEGER, DOUBLE, DATE (yyyy-MM-dd), FLOAT and BIG_INTEGER. A value that does not parse as the type fails the check. Keep STRING when complexDataType is set.
Deserializer for the record key; BYTES keys are decoded as text in the profile's encoding. The key reaches the mapping as variable MSG_CALL_KAFKA_KEY. A type that does not match the records makes them fail to deserialize, and the agent then pauses for 120 seconds each time.
Number of records collected before they are handed on together as one job, combined by finalValueFunction. 1 starts one job per record; timeout, mqttConditions and filters only have an effect above 1. Records still buffered when the agent stops are processed.
mqttConditions and filters are only evaluated when the number of buffered records is a multiple of this value; 1 checks every record. Must be at least 1: 0 makes the processing of every record fail.
Conditions that hand the collected records on early: when a record that arrives before the buffer is full matches any value of any entry, the buffer including this record is forwarded. The whole value is compared, read as genericDataType; entries are OR-linked. They do not drop records. Only evaluated with messageBufferSize above 1 and on the records messageIntervalCheck selects; when present (even as an empty list), filters are ignored.
One entry of mqttConditions of an MQTT, Kafka or AMQP (Legacy) agent: a comparison (condition) and the values the whole received message is compared with, read as the agent's genericDataType. The entry matches when the message matches any of its values; the entries of the list are OR-linked. A match hands the buffered messages on early, it does not filter messages out.
The type of this object, always core.MqttConditionEntry. Required where the member it is sent in accepts several types.
Comparison to apply. Text (genericDataType STRING) supports REGEX, CONTAINS, EQUALS and NOT; numbers support EQUALS, NOT and the four comparisons; dates only SMALLER, GREATER and EQUALS; any other combination never matches. Required; a missing or unknown name is rejected. A later entry with the same condition replaces an earlier one.
Values the message is compared with, written in the agent's genericDataType, e.g. dates as 2024-12-31 or a regular expression for REGEX. Every value must parse as that type, otherwise the check fails.
When true, a tombstone record (a key without value) is committed and a notification mail about it is sent to the instance's notification recipient. Tombstones never start a job, whatever this is set to.
Id of an HTTP partner channel whose URL, login and OAuth2 client credentials are used to reach the schema registry for AVRO and AVRO_APICURIO values; 0 uses none. Get it from GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). Not validated: a wrong id is stored as is. Ignored for other dataType values.
UTC timestamp in ISO-8601 instant form, e.g. 2023-11-14T22:13:20Z, the agent rewinds its partitions to on its next start; empty or null does not rewind. One-off: it is not stored with the profile and reads empty afterwards.
URL of the schema registry used to decode AVRO and AVRO_APICURIO values; overrides the URL of registryChannelId. %name% constants are resolved. Ignored for other dataType values.
Seconds after which the records collected so far are handed on as one job even though fewer than messageBufferSize have arrived; checked about every 5 seconds. 0 waits until the buffer is full. Only meaningful with messageBufferSize above 1.
Topic to consume; %name% constants are resolved. The prefix regex: subscribes to every topic matching the Java regular expression that follows, e.g. regex:orders-.* (not usable with assigned). Also part of the default consumer group id and clientId.
Only matters in a load-balancing cluster: when true, the agent starts regardless of the node restriction and the jobs of received records may run on any node instead of the one that received them.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.AS2AgentSettings. Required where the member it is sent in accepts several types.
AS2 partner channels allowed to deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type AS2). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an AS2 channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An AS2 connection to the partner: the AS2 ids both sides use, the partner's AS2 URL and the signing/encryption settings for outgoing messages. Needs stationId (partnerAs2Id is filled when absent); set as2Url and the certificates via localCertificateId/remoteCertificateId; referenced by core.AS2ProfileResponseUnit.channel (send) and core.AS2AgentSettings.channels (partners allowed to deliver). The bridge is not settable through this API; channel list filter type=AS2.
The type of this object, always core.IntegrationPartnerChannelAS2. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
The partner's AS2 endpoint that outgoing messages are posted to; an AS2 response unit without its own URL uses it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing messages; used only when the channel sends encrypted. Not validated on save.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
Id of the platform's own certificate (with private key) that signs the messages it sends over this channel. Must reference an existing certificate. Reads as absent while the channel signs with localCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Reads as absent while the channel uses localCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Hash algorithm the MDN (receipt) is signed with, e.g. SHA256. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it.
Which MDN (receipt) the platform requests for outgoing messages: DEFAULT = the AS2 service's system setting, SYNCHRON = returned in the HTTP response, ASYNCHRON = sent later to the MDN URL. A channel stored with another code reads back without mdnMode, and a write that leaves it out keeps that code.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
The partner's AS2 id: sent as AS2-To on outgoing messages, and an incoming message is assigned to this channel by its AS2-From. Left out, the server fills an AUTO_CREATE_... placeholder that no partner sends.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
Id of the partner's certificate (public key) that the signature of the messages it sends over this channel is checked against. Must reference an existing certificate. Reads as absent while the channel checks against remoteCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Reads as absent while the channel expects remoteCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the security settings of the message signature are removed (the editor's "Remove security settings of signature" switch). Leaving it out keeps the stored value, null resets it to false; a new channel keeps them.
Whether outgoing messages are sent with chunked transfer encoding, split into blocks, instead of with a content length. Leaving it out keeps the stored value, null resets it to false; a new channel does not chunk.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
URL the partner sends the asynchronous MDN (receipt) to; only used with mdnMode ASYNCHRON. Must be an HTTP or HTTPS URL. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing messages; used only when the channel sends signed. Not validated on save.
The platform's own AS2 id toward this partner: sent as AS2-From on outgoing messages and expected as AS2-To on incoming ones. Required on create; a write may not blank it. Together with partnerAs2Id it must be unique among AS2 channels.
Pattern the file name of the received payload must match, case-insensitive: wildcards * and ?, several patterns separated by |, regex:<expression> for a regular expression, and date placeholders like <yyyyMMdd> for today's date.
Content type the payload must have, compared case-insensitively; empty accepts any.
Text the subject of the AS2 message must contain, case-insensitive; empty accepts any subject. A longer subject makes this profile win over other matching profiles.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronCloudStorageAgentSettings. Required where the member it is sent in accepts several types.
true also processes files of zero bytes; false skips them (and deletes them only if deleteEmptyFiles is true).
Where in the storage account to read: the bucket (S3, Google Cloud Storage), container (Azure Blob), share (Azure Files) or drive/site id (Microsoft 365, where @Name:<site name> names a SharePoint site). Not used for Dropbox and Google Drive. Placeholders such as %NAME% are resolved.
Id of the CloudStorage partner channel that holds the storage account; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type CloudStorage). Stored as sent without any check, so a wrong id only fails when the agent runs. A trigger variable VAR_SYS_TRIGGER_CHANNEL_ID replaces it for that run.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true deletes files of zero bytes: right away when they are skipped (acceptEmptyFiles false), and after pickup when they are processed, even if fileHandling is NONE.
Folder in the storage to scan; separate several with ;. Date masks, %NAME% constants and @MSG_CALL_<name>@ variables are resolved.
true accesses the storage through the Lobster DMZ server instead of directly.
Microsoft 365 only: name of the SharePoint document library to read from; takes effect only when bucket names the site as @Name:<site name>.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Hours part of an age limit that excludeMinute and excludeSecond complete: files last modified longer ago than this duration are skipped. All three 0 disables the limit. fileOlderThan flips it to skip files younger than the duration instead.
Minutes part of the age limit described at excludeHour.
Seconds part of the age limit described at excludeHour.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a file once it has been picked up. RENAME is not supported by these agents and behaves like NONE. DELETE needs write access to the file and its directory; a file it cannot delete is skipped with an error.
Whether the age limit of excludeHour, excludeMinute and excludeSecond skips files modified longer ago (true) or files younger than the duration (false). null resets it.
Pattern the names of the files to pick up must match. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and regex2: makes the whole value one regular expression. <yyyyMMdd> or @yyyyMMdd@ insert the current date, %NAME% a constant, @MSG_CALL_<name>@ a trigger variable. Names starting with . are always ignored; the file agent fails the run if the pattern is empty.
true sorts ascending (A to Z, oldest first), false descending. Only used when the files are sorted, see fileSortItem.
Order in which the files of a run are processed, in the direction of fileSortAscending. The cloud storage agent always sorts: by name for NAME, by last-modified time otherwise.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true also picks up files whose name starts with ~, which the file agent otherwise skips as temporary files. The cloud storage agent does not evaluate it and never skips such files.
true also picks up matching files from all sub-directories of the scanned directories, at any depth. Ignored by the file agent when singleFile is true.
true hands every file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronLdapAgentSettings. Required where the member it is sent in accepts several types.
Name of the LDAP connection (server and credentials) to search; it must already exist on the instance and be allowed for the profile's client. Variables and %NAME% constants are resolved.
Comma-separated names of the attributes to return. Empty returns all attributes.
Distinguished name the search starts at.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
Maximum number of entries to read; when it is reached, the entries read so far are processed. 0 means no limit.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
LDAP search filter. @0:s#<mask>@ inserts the time of the previous run in a date mask, e.g. (modifyTimestamp>=@0:s#yyyyMMddHHmmss@Z), so a run reads only changed entries. @...@ is a placeholder, so a literal @ in the filter can be misread. Variables and %NAME% constants are resolved.
How deep to search below baseDN.
Maximum time in seconds the search may take; 0 means no limit.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
true writes every attribute as a JSON array of its values, so the structure is the same for single- and multi-valued attributes; false writes a single value as a plain string and only several values as an array. Binary values are Base64-encoded.
The type of this object, always core.SmsAgentSettings. Required where the member it is sent in accepts several types.
Phone number(s) this SMS profile receives messages for; separate multiple numbers with ;.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.AS4AgentSettings. Required where the member it is sent in accepts several types.
AS4 partner channels allowed to deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type AS4). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an AS4 channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An AS4 connection to the partner: the partner's AS4 id, its message service endpoint and the certificates. Referenced by core.As4ProfileResponseUnit.channel (send) and core.AS4AgentSettings.channels (partners allowed to deliver). The platform's own AS4 id, which outgoing messages are sent from, is not settable through this API; channel list filter type=AS4.
The type of this object, always core.IntegrationPartnerChannelAS4. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing messages; used only when the channel sends encrypted. Not validated on save. Leaving it out keeps the stored value, null resets it to the default, an empty string removes it.
The partner's AS4 message service endpoint that outgoing messages are pushed to.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
Id of the platform's own certificate (with private key) that signs the messages it sends over this channel. Must reference an existing certificate. Reads as absent while the channel signs with localCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Reads as absent while the channel uses localCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Which MDN (receipt) the platform requests for outgoing messages: DEFAULT = the AS4 service's system setting, SYNCHRON = returned in the HTTP response, ASYNCHRON = sent later to sendingMdnUrl. A channel stored with another code reads back without mdnMode, and a write that leaves it out or sends null keeps that code. Otherwise leaving it out keeps the stored value and null resets it to DEFAULT.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's AS4 id, the receiver of messages sent through this channel. Left out, the server fills an AUTO_CREATE_... placeholder.
Id of the partner's certificate (public key) that the signature of the messages it sends over this channel is checked against. Must reference an existing certificate. Reads as absent while the channel checks against remoteCertificateId, which is what applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Reads as absent while the channel expects remoteCertificateId, which applies when it is unset. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
URL the partner sends the asynchronous MDN (receipt) to; only used with mdnMode ASYNCHRON. Must be an HTTP or HTTPS URL. Leaving it out keeps the stored value, null or an empty string removes it.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing messages; used only when the channel sends signed. Not validated on save. Leaving it out keeps the stored value, null resets it to the default, an empty string removes it.
Pattern the file name of the received payload must match, case-insensitive: wildcards * and ?, several patterns separated by |, regex:<expression> for a regular expression, and date placeholders like <yyyyMMdd> for today's date.
Content type the payload must have, compared case-insensitively; empty accepts any.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.FaxAgentSettings. Required where the member it is sent in accepts several types.
true accepts faxes from every partner of the profile's client, whatever channel they arrive on, and ignores channelIds; such a profile only receives a fax no channel-specific fax profile takes.
Ids of the fax channels whose incoming faxes this profile processes; list them with GET /platform/api/partners/preview/{partnerId}/channels (type Fax). The ids are stored as sent, without checking that they exist, so a wrong id only shows as faxes not arriving. Not evaluated while acceptAll is true.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.ManualUploadAgentSettings. Required where the member it is sent in accepts several types.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.SFTPAgentSettings. Required where the member it is sent in accepts several types.
true also processes uploaded files of zero bytes; false skips them with a log entry.
SFTP partner channels whose logins may deliver to this profile, each as {"id": <channelId>} from GET /platform/api/partners/preview/{partnerId}/channels (type SFTP). Only the id is read on write and neither its existence nor its type is checked; an entry that does not resolve to an SFTP channel is left out on read. An existing channel's direction must be IN or IN_AND_OUT, which is checked on write. Without a channel the profile never receives anything.
An SFTP/SSH connection with the partner, in either direction: the partner logs in to the platform's SFTP server as remoteId and lands in remotePath, and the platform connects to the partner's server at host and port, checking its host key against keyType/keyFingerprint and authenticating with privateKeyId or a password. Referenced by core.CronSftpAgentSettings.channel and core.CronSshAgentSettings.channel (fetch), core.SSHProfileResponseUnit.channel (send) and core.SFTPAgentSettings.channels (partners allowed to upload). The partner's login password is remotePassword; the platform's own password at the partner's server is not settable through this API. Channel list filter type=SFTP.
The type of this object, always core.IntegrationPartnerChannelSFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Protocols the partner may log in to the platform's SSH server with: any of SCP, SFTP, SSH (remote command execution). At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits SCP and SFTP but not SSH.
An SSH flavour the partner may use to log in to the platform's SFTP server: allowedProtocols of an SFTP channel.
SCP: SCP: file copy over SSH.SFTP: SFTP: file transfer over SSH.SSH: SSH: remote command execution. Not allowed on a new channel.
Addresses the partner may not log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's SFTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Fingerprint of the host key the partner's SFTP server must present when the platform connects; compared case-insensitively together with keyType, and the connection fails on a mismatch. Left blank, any host key is accepted.
Type of the host key the partner's SFTP server must present, as the SSH library reports it; checked together with keyFingerprint.
User name the platform logs in with at the partner's SFTP server (SSH login); its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
TCP port of the partner's SFTP server. Requires host. A port set in the cron job or response unit overrides it.
Id of the local certificate holding the key pair the platform authenticates with (public-key authentication) when it connects to the partner's SFTP server. Must reference an existing certificate with an SSH common name.
Ids of the partner's certificates (public keys) in the certificate store, one of which the partner may authenticate with when it logs in to the platform's SFTP server by public key. Each must reference an existing certificate. Leaving it out keeps the stored list, null or an empty list removes it.
User name the partner logs in with on the platform's SFTP server; its password is remotePassword, its public keys are remoteCertificateIds. Must be unique among all SFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's SFTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. Without one the partner's file paths resolve against the server's working directory. Left out or blank on create, the server picks <client default channel directory>ssh/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the partner, logged in on the platform's SFTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. null or left out keeps the stored value; a new channel shows the real path.
Addresses the partner may log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Character set the SFTP/SCP server and client use for file names on the wire, e.g. ISO-8859-1. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it so the SSH library's default applies.
Sub-directory, relative to the partner's home directory on the Lobster FTP/SFTP server, that an upload must land in for this profile; separate several with ;. $USER$ is replaced by the uploading partner's login name. Empty accepts uploads in any directory.
File-name pattern a file the partner uploads must match for this profile to take it. * and ? are wildcards and the match ignores case; | separates alternatives, an alternative starting with regex: is a regular expression, and <yyyyMMdd> is replaced by the current date. If several profiles accept an upload, the one with the longest matching dir and the most specific pattern wins.
true collects the files a partner uploads during one session and processes them only when the partner logs out; false processes each file as soon as its upload is complete.
Upload protocol this profile accepts; a file uploaded the other way is not taken by this profile.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.TcpAgentSettings. Required where the member it is sent in accepts several types.
Name of the TCP server connection (server type) to listen on, as defined on the instance in etc/tcp.xml; the profile's client must be allowed to use it. An unknown or disallowed alias keeps the listener from starting.
Class name of a binary converter. Stored only: the TCP listener does not read it. Leave it empty.
Id (factory name) of the cluster node that runs the listener; %NAME% constants are resolved. Empty runs it on the instance itself, but not on a load-balancing member; a value naming another node keeps it from starting here. Only relevant with load balancing.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronCustomAgentSettings. Required where the member it is sent in accepts several types.
Configuration value handed to customClass on every run, usually the path of its configuration file relative to the Lobster installation; what it must contain depends on the class. %NAME% constants and @MSG_CALL_<name>@ trigger variables in it are resolved first. For classes that take properties, a non-empty proProperties is passed instead of this value.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Fully qualified name of the Java class that produces the data. It must be a cron class installed on the Lobster server (registered in ./etc/admin/datawizard/custom_classes.properties or custom_own_classes.properties, or supplied by a platform module), or, for the orchestration agent, an orchestration class of a platform module. It is instantiated on every run, so a wrong name fails each run rather than being rejected on save. Every non-empty data block the class returns is processed as its own job. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=CUSTOM_CLASS; the orchestration agent takes only the orchestration classes of platform modules from that list.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every data block the class returns to a separate background job and continues at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.MessageAgentSettings. Required where the member it is sent in accepts several types.
Not evaluated for this agent type; leave it 0.
Message context the agent listens on; together with queue it must match what the sender uses. Context System with queue DWForwardReceiver is reserved for internal forwarding and gets no listener of its own.
Not evaluated for this agent type; leave it empty.
Message queue within context the agent listens on. Empty by default.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.GooglePubSubAgentSettings. Required where the member it is sent in accepts several types.
Message-buffering configuration for this agent; see core.AccumulationSettings.
The type of this object, always core.AccumulationSettings. Required where the member it is sent in accepts several types.
How the buffered payloads are combined into the job's data when the buffer flushes.
Payload comparisons that flush the buffer early: each entry is checked against the newest message's payload, read as payloadDataType, and entries are OR-composed with each other and with filters, maxCount, maxAgeSeconds and maxTotalBytes - any one of them flushes. Sending the member replaces the whole list.
One payload comparison of AccumulationSettings.comparators: operator checked against the newest buffered message's payload, read as payloadDataType, for each of values. Several values are OR-composed for the same operator, e.g. two EQUALS values flush on either.
The type of this object, always core.AccumulationComparator. Required where the member it is sent in accepts several types.
Comparison to apply: REGEX and CONTAINS need payloadDataType STRING; SMALLER, GREATER, SMALLER_EQUALS and GREATER_EQUALS need BIG_INTEGER, BIG_DECIMAL or DATE; EQUALS and NOT work with every supported payloadDataType. A value that fails to parse as payloadDataType fails the whole check for that message. Required.
Values compared against the payload; must not be empty. Compared as text for REGEX and CONTAINS, otherwise parsed as payloadDataType.
true buffers messages instead of starting a job for each. While false no other member is validated. At least one of maxCount, maxAgeSeconds or maxTotalBytes must then be above 0, else the profile is rejected.
Function chain conditions that flush the buffer early, evaluated on the newest message like comparators (see core.MessageFilter), but through a mapping function chain instead of a fixed operator. OR-composed with comparators, maxCount, maxAgeSeconds and maxTotalBytes.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
Which buffered payload is kept when aggregation is FINAL_VALUE; ignored otherwise. MIN, MAX and AVG need payloadDataType BIG_INTEGER or BIG_DECIMAL; LAST works with every payloadDataType.
Seconds since the oldest buffered message that flushes the batch. 0 disables this trigger; see enabled.
Number of buffered messages that flushes the batch. 0 disables this trigger; see enabled.
Total buffered payload size in bytes that flushes the batch. 0 disables this trigger; see enabled.
Which buffered message's file name, sender and variables the flushed job carries: FIRST or LAST message's, COLLECT_INDEXED all of them with an index suffix, COMMON_ONLY only the values every buffered message agrees on.
Type each buffered message's payload is read as for comparators and, with aggregation FINAL_VALUE, for finalValueFunction. comparators only work with STRING, BIG_INTEGER, BIG_DECIMAL or DATE; a finalValueFunction other than LAST needs BIG_INTEGER or BIG_DECIMAL.
Text put between the buffered payloads when aggregation is CONCAT_SEPARATOR; ignored otherwise.
Name of the root element the buffered payloads are wrapped in when aggregation is XML_WRAP; ignored otherwise. Must not be blank.
Name of the Google Pub/Sub connection to receive through; it must exist on the instance and be allowed for the profile's client. Its credentials also name the Google Cloud project topicId/subscriptionId are resolved in.
Id of the Google Cloud Pub/Sub subscription the agent pulls messages from, within the project named by alias's credentials. Created automatically if the connection is configured to auto-create subscriptions, otherwise it must already exist.
Id of the Google Cloud Pub/Sub topic subscriptionId is bound to, within the project named by alias's credentials. Created automatically if the connection is configured to auto-create topics, otherwise it must already exist.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronOrchestrationAgentSettings. Required where the member it is sent in accepts several types.
Configuration value handed to customClass on every run, usually the path of its configuration file relative to the Lobster installation; what it must contain depends on the class. %NAME% constants and @MSG_CALL_<name>@ trigger variables in it are resolved first. For classes that take properties, a non-empty proProperties is passed instead of this value.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Fully qualified name of the Java class that produces the data. It must be a cron class installed on the Lobster server (registered in ./etc/admin/datawizard/custom_classes.properties or custom_own_classes.properties, or supplied by a platform module), or, for the orchestration agent, an orchestration class of a platform module. It is instantiated on every run, so a wrong name fails each run rather than being rejected on save. Every non-empty data block the class returns is processed as its own job. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=CUSTOM_CLASS; the orchestration agent takes only the orchestration classes of platform modules from that list.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every data block the class returns to a separate background job and continues at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes them one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.AMQPAgentSettings. Required where the member it is sent in accepts several types.
Name of the AMQP (Legacy) connection to receive through; it must exist on the instance and be allowed for the profile's client, otherwise the agent is not started (only logged, the profile still saves). The alias decides the protocol (AMQP 0.9.1, AMQP 1.0 or JMS).
When true, a message is acknowledged to the broker only after its job finished successfully; a failed job rejects it (see requeue091). When false, the message is acknowledged as soon as its job is queued. Not used for queueType RPC.
Text put between the messages when finalValueFunction is ALL; NL stands for a line break (CRLF). Empty concatenates without a separator.
Id (factory name) of the cluster node that runs this agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation.
Function chain that decides, for each message that arrives while the buffer is not yet full, whether the collected messages (including this one) are handed on early: the chain runs on the message text and the buffer is forwarded when its last result is true. It does not drop messages. Only evaluated with messageBufferSize above 1 and only when mqttConditions is absent; an empty mqttConditions list disables it too.
One function of the chain in filters of an MQTT, Kafka or AMQP (Legacy) agent: the mapping function filterId with its parameters settings. The entries of filters run in order, like a function chain on a target field whose value is the received message text; the last function's result, read as a boolean, decides whether the buffered messages are handed on early.
The type of this object, always core.MessageFilter. Required where the member it is sent in accepts several types.
Id of the mapping function to run, from GET /platform/api/functions/preview?search=<what it should do>. An unknown id is stored and only makes the check fail at runtime.
Parameters of the function, by position: the first entry is parameter a, the second b, and so on. Send one entry per parameter the function declares, unused ones as type constant with an empty value: many functions read their parameters by position and fail on a missing one.
One parameter of a function in an agent's filters (an element of settings): where the value comes from (type) and the value itself (value). The position in settings decides which parameter of the function it fills.
The type of this object, always core.MessageFilterSetting. Required where the member it is sent in accepts several types.
Letter of the parameter this entry fills: a for the first, b for the second, and so on. Keep it matching the entry's position in settings: the function takes its parameters by position.
Where the parameter's value comes from: constant the text in value (%name% constants are resolved), linked field the received message text (value is ignored), result the result of an earlier function of the same filters list, value being its 1-based position, variable the variable named in value (the profile's own variables are not available in this check). field, destination and input refer to source fields, target fields and macro inputs, which the message check does not have. Required; any other value is rejected.
The parameter's value as text; its meaning depends on type: the constant itself, the 1-based position of an earlier function for result, or a variable name for variable.
XPath of a source value, used only by the XML/JSON path mapping engine; the message check runs a simple mapping and ignores it. Leave it empty.
What the job receives from the collected messages: LAST the most recent one, ALL all of them joined with delimiter, MIN/MAX the one with the smallest/largest numeric value, AVG their average. MIN, MAX and AVG need a numeric genericDataType (INTEGER, FLOAT, BIG_DECIMAL or BIG_INTEGER), ALL works for STRING, INTEGER, FLOAT, BIG_DECIMAL and BIG_INTEGER; any other combination produces no job, also with messageBufferSize 1.
Type the whole message payload is read as for mqttConditions and finalValueFunction: STRING text, INTEGER, DOUBLE, DATE (yyyy-MM-dd), FLOAT, BIG_DECIMAL or BIG_INTEGER. mqttConditions support STRING, INTEGER, DOUBLE, DATE, FLOAT and BIG_INTEGER. A message that does not parse as the type fails the check (logged).
JMS client id set on the connection, which brokers need for durable topic subscriptions. Empty sets none. Only for JMS aliases; two profiles on the same alias must not use the same client id. %name% constants are resolved.
JMS message selector (SQL-92 syntax on message headers and properties) that limits which messages the agent receives. Empty receives all. Only for JMS aliases. %name% constants are resolved.
When true, the durable JMS subscription subscriberName is removed when the agent closes its topic session (profile stopped, connection restarted), so messages published meanwhile are not kept for it. Only for JMS aliases with queueType TOPIC.
Number of messages collected before they are handed on together as one job, combined by finalValueFunction. 1 starts one job per message; timeout, mqttConditions and filters only have an effect above 1.
Stored but not evaluated by the AMQP agent: mqttConditions and filters are checked on every message.
Conditions that hand the collected messages on early: when a message that arrives before the buffer is full matches any value of any entry, the buffer including this message is forwarded. The whole message is compared, read as genericDataType; entries are OR-linked. They do not drop messages. Only evaluated with messageBufferSize above 1; when present (even as an empty list), filters are ignored.
One entry of mqttConditions of an MQTT, Kafka or AMQP (Legacy) agent: a comparison (condition) and the values the whole received message is compared with, read as the agent's genericDataType. The entry matches when the message matches any of its values; the entries of the list are OR-linked. A match hands the buffered messages on early, it does not filter messages out.
The type of this object, always core.MqttConditionEntry. Required where the member it is sent in accepts several types.
Comparison to apply. Text (genericDataType STRING) supports REGEX, CONTAINS, EQUALS and NOT; numbers support EQUALS, NOT and the four comparisons; dates only SMALLER, GREATER and EQUALS; any other combination never matches. Required; a missing or unknown name is rejected. A later entry with the same condition replaces an earlier one.
Values the message is compared with, written in the agent's genericDataType, e.g. dates as 2024-12-31 or a regular expression for REGEX. Every value must parse as that type, otherwise the check fails.
Durability: with AMQP 0.9.1 a queue or exchange the agent declares itself is declared durable; with JMS and queueType TOPIC the agent creates a durable subscription named subscriberName. Not used for queueType RPC and not for AMQP 1.0.
AMQP 0.9.1 prefetch count: the maximum number of unacknowledged messages the broker delivers to this agent at once. 0 means no limit; queueType RPC always uses 1. Ignored for AMQP 1.0 and JMS.
AMQP 0.9.1 prefetch window in bytes (basic.qos prefetch size): the broker sends at most this many unacknowledged bytes. 0 means no limit; RabbitMQ accepts only 0. Ignored for queueType RPC, AMQP 1.0 and JMS.
Message attribute that becomes the job's file name: CorrelationId or MessageId (the name is then CID <id> or MID <id>), for AMQP 1.0 also Subject, or the name of any other message property/header, whose value is used as is. Empty or a missing value gives amqp.data; / is replaced by ..
Delivery guarantee the consumer requests from an AMQP 1.0 broker. Only used for AMQP 1.0 aliases with queueType PUBLISH or RPC (topic and routing consumers always use AT_LEAST_ONCE); AMQP 0.9.1 and JMS ignore it.
Queue to consume from; for AMQP 0.9.1 with queueType TOPIC or ROUTING it is the name of the exchange, and for JMS the name of the queue or topic destination. %name% constants are resolved. With AMQP 0.9.1 a queue or exchange that does not exist is declared by the agent (durable when persistent is true) unless the connection requires it to exist.
How the agent consumes: PUBLISH Subscriber (reads the queue queueName), TOPIC (AMQP 0.9.1: binds to the topic exchange queueName with routingKey; JMS: subscribes to the topic queueName), ROUTING (AMQP 0.9.1 direct exchange with routingKey; not supported by JMS), RPC (reads requests from queueName and sends the profile's response back to the requester; add a response unit that returns data).
What happens to a message whose job failed: true puts it back into the queue at its position (it then blocks the queue until a job succeeds), false lets the broker discard it or move it to a dead-letter queue. Only for AMQP 0.9.1 aliases and only with confirmMessageAtEnd true.
Routing key the agent binds its own temporary queue with to the exchange queueName. Only used for AMQP 0.9.1 with queueType TOPIC (topic exchange, wildcards * and #) or ROUTING (direct exchange); ignored otherwise. %name% constants are resolved.
Name of the durable JMS topic subscription; the broker keeps unread messages under this name, so keep it stable. Only used for JMS aliases with queueType TOPIC and persistent true. %name% constants are resolved. When not set, a name SUB<number> is generated.
Seconds after which the messages collected so far are handed on as one job even though fewer than messageBufferSize have arrived; checked about every 5 seconds. 0 waits until the buffer is full. Only meaningful with messageBufferSize above 1.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronSapAgentSettings. Required where the member it is sent in accepts several types.
Name of the SAP connection to call through; the profile's client must be allowed to use it. %NAME% constants are resolved. An unknown or disallowed alias fails each run.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Scalar import parameters of the function module, one entry per parameter. Values may contain placeholders that are resolved on each run, e.g. @yyyyMMdd@ for the current date, %NAME% for a constant or @MSG_CALL_<NAME>@ for a variable a trigger handed over.
One scalar import parameter of the SAP function module an SAP cron agent calls; one element of fields. Sets the parameter key to value before each call.
The type of this object, always core.SapField. Required where the member it is sent in accepts several types.
Name of the import parameter as the function module defines it.
Value passed for the parameter; date masks, %NAME% constants and @NAME@ variables are resolved on each run. Always send it: an entry without a value fails the run.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
Format the function's result is converted to before the profile parses it. Choose the profile's input format to match.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
Name of the remote-enabled SAP function module to call. A name the SAP system does not know fails the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Structure-typed import parameters of the function module, one entry per structure with its field names in header and a single row of values. An entry without rows is skipped; a name the function does not have fails the run.
Values for one structure or table parameter of the SAP function module an SAP cron agent calls; one element of structures or tables. header names the columns, each element of rows gives the values for those columns in the same order.
The type of this object, always core.SapStructureEntry. Required where the member it is sent in accepts several types.
Field names of the structure or table, in the order the values of each row follow. A row must not have more values than header has names.
Name of the structure or table parameter as the function module defines it. Must be unique within its list; a later entry with the same name replaces an earlier one.
The values to set: for a structure one row (further rows overwrite its values); for a table one row per table line to append. With no rows the parameter is left untouched.
One row of values for an SAP structure or table parameter; one element of the rows of an entry in structures or tables.
The type of this object, always core.SapStructureRow. Required where the member it is sent in accepts several types.
Values in the order of the entry's header, e.g. ["000000000000004711", "1000"]. Date masks such as @yyyyMMdd@, %NAME% constants and @NAME@ variables are resolved on each run.
Table parameters of the function module to fill before the call, one entry per table with its column names in header and one row per table line; the table is cleared first. A name that is neither a table nor a table-typed import parameter of the function fails the run.
Values for one structure or table parameter of the SAP function module an SAP cron agent calls; one element of structures or tables. header names the columns, each element of rows gives the values for those columns in the same order.
The type of this object, always core.SapStructureEntry. Required where the member it is sent in accepts several types.
Field names of the structure or table, in the order the values of each row follow. A row must not have more values than header has names.
Name of the structure or table parameter as the function module defines it. Must be unique within its list; a later entry with the same name replaces an earlier one.
The values to set: for a structure one row (further rows overwrite its values); for a table one row per table line to append. With no rows the parameter is left untouched.
One row of values for an SAP structure or table parameter; one element of the rows of an entry in structures or tables.
The type of this object, always core.SapStructureRow. Required where the member it is sent in accepts several types.
Values in the order of the entry's header, e.g. ["000000000000004711", "1000"]. Date masks such as @yyyyMMdd@, %NAME% constants and @NAME@ variables are resolved on each run.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Seconds to wait for the SAP call before the run fails; 0 waits without limit, and a negative value is stored as 0.
The type of this object, always core.SMTPAgentSettings. Required where the member it is sent in accepts several types.
The partner mail channel mails must come from, given as {"id": ...}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type MAIL). Checked on write and read back resolved. null for none.
The type of this object, always core.IntegrationPartnerChannelMail. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
What the channel may be used for: any of SMTP and ASMTP (sending mail, without and with a login) and POP3 and IMAP (fetching mail). At least one must stay allowed (an empty list leaves the stored allowance unchanged), and POP3 and IMAP are mutually exclusive (the editor keeps one); null or left out keeps the stored allowance, which on a new channel permits all four.
A mail protocol the channel may be used with: allowedProtocols of a mail channel.
SMTP: SMTP: sending mail without login.ASMTP: ASMTP: sending mail through an SMTP server that requires a login.POP3: POP3: fetching mail from a POP3 mailbox.IMAP: IMAP: fetching mail from an IMAP mailbox.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Cipher for encrypting outgoing mails; used only when the channel sends encrypted. Not validated on save. null or left out keeps the stored value.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
IMAP folder mail is fetched from; a directory set in the IMAP cron job overrides it.
Largest incoming mail accepted on this channel, in bytes. Must be at most 1073741824 (1024 MB). null (or leaving it out on create) means no limit, and an unlimited channel reads back null.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
The platform's own mail address on this channel; matched case-insensitively, so an incoming mail is assigned to the channel whatever case it is addressed in, while the address is stored and read back as given. Unless the channel stores its own SMTP or retrieval user name, the platform logs in with this address, so changing it changes that login too. null or left out keeps the stored value.
Id of the platform's own certificate (with private key) it presents as TLS client certificate when it connects to the partner. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Whether the messages the partner sends over this channel must be encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unencrypted messages.
Whether the messages the partner sends over this channel must be signed. Leaving it out keeps the stored value, null resets it to false; a new channel accepts unsigned messages.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
The partner's mail address, stored in lower case; an SMTP response unit sends to it unless the unit names its own receiver. A channel that receives mail should hold exactly one address; this API does not check. Left out, the server fills a placeholder address (mail...@mail.org).
Id of the partner's certificate (public key) it must present as TLS client certificate when it connects to the platform. Must reference an existing certificate. Leaving it out keeps the stored value, null or an empty string removes it.
SASL mechanism for the POP3/IMAP login when mail is fetched through this channel; left out, the mail library negotiates one.
POP3/IMAP server the platform fetches mail from through this channel (pop3://, pop3s://, pop3es://, imap://, imaps:// or imapes://; the s variants are TLS, the es variants STARTTLS). Another scheme is accepted as given and fails when mail is retrieved. null or left out keeps the stored value.
Whether the messages the platform sends over this channel are compressed. Leaving it out keeps the stored value, null resets it to false; a new channel does not compress.
Whether the messages the platform sends over this channel are encrypted. Leaving it out keeps the stored value, null resets it to false; a new channel does not encrypt.
Whether the messages the platform sends over this channel are signed. Leaving it out keeps the stored value, null resets it to false; a new channel does not sign.
Hash algorithm for signing outgoing mails; used only when the channel sends signed. Not validated on save. null or left out keeps the stored value.
SASL mechanism for the SMTP login, case-insensitive; OAuth2 tokens are not settable through this API. Left out, the mail library negotiates one.
SMTP server that mails to this partner are sent through (smtp:// default port 25, smtps:// 465, smtpes:// for STARTTLS). A host or port set in the SMTP response unit overrides it.
Attachment file name pattern; required unless the mail body is used.
Whether the channel of the mail is ignored.
Content type of the mail body; used when the mail body is taken.
Recipient address mails must be sent to; may contain defined constants.
Sender address mails must come from; may contain defined constants.
Whether a mail from a channel of the same local id is accepted.
Subject text a mail must match.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Whether the mail body is taken instead of the attachment.
Whether the RPC recipient address is used.
The type of this object, always core.CronSshAgentSettings. Required where the member it is sent in accepts several types.
The SFTP partner channel to fetch from over SCP, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type SFTP). Checked on write and read back resolved. The channel must allow SCP, otherwise every run fails with "channel does not match subtype". Its direction must be IN or IN_AND_OUT, which is checked on write. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelSFTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Protocols the partner may log in to the platform's SSH server with: any of SCP, SFTP, SSH (remote command execution). At least one must stay allowed; null, an empty list or left out keeps the stored allowance, which on a new channel permits SCP and SFTP but not SSH.
An SSH flavour the partner may use to log in to the platform's SFTP server: allowedProtocols of an SFTP channel.
SCP: SCP: file copy over SSH.SFTP: SFTP: file transfer over SSH.SSH: SSH: remote command execution. Not allowed on a new channel.
Addresses the partner may not log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 203.0.113.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Host name or IP address of the partner's SFTP server - no scheme, port or path. Used when the platform connects to the partner; a host set in the cron job or response unit overrides it. {"host": null, "port": null} clears the address.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Fingerprint of the host key the partner's SFTP server must present when the platform connects; compared case-insensitively together with keyType, and the connection fails on a mismatch. Left blank, any host key is accepted.
Type of the host key the partner's SFTP server must present, as the SSH library reports it; checked together with keyFingerprint.
User name the platform logs in with at the partner's SFTP server (SSH login); its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
TCP port of the partner's SFTP server. Requires host. A port set in the cron job or response unit overrides it.
Id of the local certificate holding the key pair the platform authenticates with (public-key authentication) when it connects to the partner's SFTP server. Must reference an existing certificate with an SSH common name.
Ids of the partner's certificates (public keys) in the certificate store, one of which the partner may authenticate with when it logs in to the platform's SFTP server by public key. Each must reference an existing certificate. Leaving it out keeps the stored list, null or an empty list removes it.
User name the partner logs in with on the platform's SFTP server; its password is remotePassword, its public keys are remoteCertificateIds. Must be unique among all SFTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
The password the partner logs in with on the platform's server as remoteId. A secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Required on create. A channel that has one cannot be changed to an empty one; a channel stored without one stays writable without. null or left out keeps the stored value. Holds a secret. A read returns it encrypted; a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else.
Directory on the Lobster server that becomes the partner's home when it logs in to the platform's SFTP server as remoteId (relative paths resolve against the server's working directory). Not a path on the partner's server. Without one the partner's file paths resolve against the server's working directory. Left out or blank on create, the server picks <client default channel directory>ssh/<id hash> like the channel editor and creates that directory, on the DMZ too where one is configured; a directory given here is not created. A stored directory cannot be changed to a blank one (422), which an overwrite patch that leaves the member out would do.
Whether the partner, logged in on the platform's SFTP server, sees a virtual file system with its home directory as the root (/) instead of the real path of the home directory. null or left out keeps the stored value; a new channel shows the real path.
Addresses the partner may log in to the platform's SFTP server from: IP addresses, host names or address/netmask ranges, e.g. 198.51.100.0/255.255.255.0. Leaving it out keeps the stored list, null or an empty list removes it; with a list set, a login from any other address is refused.
Character set the SFTP/SCP server and client use for file names on the wire, e.g. ISO-8859-1. Not validated on save. Leaving it out keeps the stored value, null or an empty string removes it so the SSH library's default applies.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Directory to read from on the partner's server. SCP agent: the remote path the files are copied from; WebDAV agent: the path appended to url (a missing / between them is added). Date masks such as <yyyyMMdd>, %NAME% constants and @MSG_CALL_<name>@ variables are resolved.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a fetched file on the server: NONE leaves it (so it is read again on the next run), RENAME renames or moves it as fileRename says. The WebDAV agent does this right after the download, before processing; the SCP agent after processing.
Names of the files to fetch. SCP agent: sent as part of the scp source path, so the remote shell's wildcards apply; a received file that then does not match the pattern (*, ?, |, regex:, ignoring case) is stored in 'unresolved' and skipped. WebDAV agent: the directory listing is filtered with that syntax, and files the server reports as zero bytes are skipped.
New name of a fetched file when fileHandling is RENAME: <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. SCP agent: the file is moved with mv, so a relative name is relative to the login directory, not to dir. WebDAV agent: a value starting with / is appended to url, any other to url plus dir, and <file> is inserted URL-encoded. Empty leaves the file in place.
Host name of the server; non-empty overrides the channel's. null resets it.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Port of the server; above 0 overrides the channel's. null resets it.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every fetched file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CommLogAgentSettings. Required where the member it is sent in accepts several types.
Whether the agent logs entries for every partner instead of only partnerList. A write that switches to a selection with partnerList empty is refused: a selection with nothing selected would never match.
Whether the agent logs entries for every communication protocol instead of only protocolTypes. Subject to the same all-or-selection rule as allPartners.
Communication-log event type this agent filters on; see core.CommLogEventType.
Communication direction this agent filters on; see core.CommLogDirection.
Ids of the partners this agent's log entries are limited to; get them with GET /platform/api/partners/preview. Only with allPartners false; sent while it is true it is refused, since the platform clears it.
Communication channel protocols this agent's log entries are limited to; see core.CommLogProtocolType. Only with allProtocolTypes false; sent while it is true it is refused.
Communication channel protocol a communication-log input agent filters on: protocolTypes of the agent.
AS2: AS2.FAX: Fax.HTTP: HTTP(S).MAIL: Mail.OFTP: OFTP.X400: X.400.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.SapAleAgentSettings. Required where the member it is sent in accepts several types.
Number of IDOCs of the same kind grouped into one job before it is handed to the target profile. 1 means no grouping.
Id (factory name) of the cluster node that runs this ALE listener in a load-balanced installation; empty runs it on the active node. Only relevant with load balancing - it is always stored empty otherwise.
Maximum number of IDOCs the platform accepts in one ALE transmission from SAP; a transmission with more is refused entirely and no job runs.
Ordered IDOC-to-profile routing table; see core.SapAleRelation. Must name at least one rule - the editor refuses to save an empty table.
One rule of a SAP ALE input agent's IDOC-to-profile routing table: one entry of relations. An incoming IDOC is matched against every rule's idoc, cim and field/fieldValue; the most specific match (or, with useAndOperation, the profile matching the most rules) decides which profileName runs.
The type of this object, always core.SapAleRelation. Required where the member it is sent in accepts several types.
IDOC extension (CIM) type this rule additionally matches; left blank, any CIM for the given idoc matches.
Name of the IDOC segment field checked against fieldValue; only evaluated when fieldValue is set.
Value field must equal for this rule to match; left blank the rule matches on idoc/cim alone.
IDOC type this rule matches; * matches any IDOC not matched more specifically by another rule.
Name of the profile started for a matching IDOC; must already exist.
Name of the SAP connection to receive ALE IDOCs from; the profile's client must be allowed to use it.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Whether a profileName used by more than one row of relations is only chosen once every one of its rows also finds a distinct match in the same IDOC, instead of the single best matching row deciding alone.
Whether the message handed to the matching profileName is persistent (kept up to 96 hours, delivered once a consumer is available) instead of synchronous (waits up to 12 hours for the profile's answer).
The type of this object, always core.CronWebdavAgentSettings. Required where the member it is sent in accepts several types.
Id of the local certificate the HTTPS connection authenticates with; it must already exist on the instance. 0 uses the local certificate of the comChannelId channel, if it has one.
Id of an HTTP partner channel that supplies the password and whatever url, user and certId leave empty; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). Stored as sent without any check, so a wrong id only fails when the agent runs. 0 uses no channel. A trigger variable VAR_SYS_TRIGGER_CHANNEL_ID replaces it for that run.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
Directory to read from on the partner's server. SCP agent: the remote path the files are copied from; WebDAV agent: the path appended to url (a missing / between them is added). Date masks such as <yyyyMMdd>, %NAME% constants and @MSG_CALL_<name>@ variables are resolved.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
What happens to a fetched file on the server: NONE leaves it (so it is read again on the next run), RENAME renames or moves it as fileRename says. The WebDAV agent does this right after the download, before processing; the SCP agent after processing.
Names of the files to fetch. SCP agent: sent as part of the scp source path, so the remote shell's wildcards apply; a received file that then does not match the pattern (*, ?, |, regex:, ignoring case) is stored in 'unresolved' and skipped. WebDAV agent: the directory listing is filtered with that syntax, and files the server reports as zero bytes are skipped.
New name of a fetched file when fileHandling is RENAME: <file> is the original name, <file-prefix> the name without its extension, other <...> masks insert the current date and time. SCP agent: the file is moved with mv, so a relative name is relative to the login directory, not to dir. WebDAV agent: a value starting with / is appended to url, any other to url plus dir, and <file> is inserted URL-encoded. Empty leaves the file in place.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands every fetched file to a separate background job and continues with the next file at once, so several jobs of this profile run in parallel and their order is not guaranteed; false processes the files one after another within the run.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
Base URL of the WebDAV server; dir is appended to it. Empty uses the address of the comChannelId channel. Date masks, %NAME% constants and variables are resolved.
Login name at the WebDAV server. Empty uses the login of the comChannelId channel.
The type of this object, always core.RuleAgentSettings. Required where the member it is sent in accepts several types.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
The type of this object, always core.CronHttpAgentSettings. Required where the member it is sent in accepts several types.
Id of a client certificate for TLS client authentication at an https target; the certificate must already exist on the instance. A wrong id fails each run ("Defined certificate can not be found!"). 0 uses none, except a key store file etc/certs/<host> on the server if one exists.
The HTTP partner channel the request goes through, as {"id": <channelId>}; list channels with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP). Checked on write and read back resolved. A channel that was deleted reads as no channel; a copy references none.
The type of this object, always core.IntegrationPartnerChannelHTTP. Required where the member it is sent in accepts several types.
Whether the channel is in use. Only active channels take part at runtime: logins on the platform's servers and the matching of incoming data to a partner skip inactive ones. A partner whose status is INACTIVE makes all its channels read as false in the channel list.
Whether the transfers over this channel are written to the communication log. null or left out keeps the stored value; a channel that never stored the setting reads as true.
Number of days the communication log keeps this channel's entries; 0 and up are stored, -1 removes the setting so the communication log service's global retention applies. Only used while communicationLogEnabled is on. null or left out keeps the stored value; a channel that never stored one reads -1.
The channel's contact person, the one the channel editor's contact section shows. Every channel created here gets exactly one: left out, an empty one. Only one channel contact is exposed; a channel that stores more than one shows the first, and a write leaves the others as they are. null or left out keeps the stored contact. On create its id is ignored; on update an id must be the channel's own contact id.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
The way data flows over the channel: IN (the partner sends to the platform), OUT (the platform sends to the partner) or IN_AND_OUT. Left out or null on create it defaults to IN; it cannot be set to null afterwards. JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub, cloud storage and SMB channels are always IN_AND_OUT: that is their default, any other value is refused, and a patch sending null there changes nothing. A legacy channel of these types stored with neither flag set reads IN_AND_OUT and has both flags set by its next write. Any other channel stored before this member existed, with no direction, reads back without it until one is written.
Authentication realm of the partner's login: a login on the platform's HTTP server only finds this channel when the realm of the protected area being called matches.
Numeric id of the channel, assigned by the server on create; on the channel resource a value sent in the body is ignored. Profiles reference a channel by this id, looked up with GET /platform/api/partners/preview/{partnerId}/channels.
Whether the channel stays on the platform's own server and is not synchronized to a DMZ server (the editor's "Invisible to DMZ" switch). null or left out keeps the stored value; a new channel is visible to the DMZ, except a new SMB channel, which is stored invisible unless it sends false. A new JMS, AMQP 0-9-1, AMQP 1.0, Google Pub/Sub and cloud storage channel is stored invisible to the DMZ, as the editor does; there the member reads absent, a value sent is ignored and a stored channel keeps its flag.
Id of one of the platform's own certificates (with private key) that this channel uses. Must reference an existing certificate.
User name the platform authenticates with at the partner's HTTP server; its password is not settable through this API. null or left out keeps the stored value.
Display name of the channel. Must be unique among the partner's channels of the same type.
How the platform validates a bearer-token (JWT) login of the partner on its HTTP server: issuer, audience and the certificate or key endpoint the signature is checked against. Read back only when the stored settings are readable on this installation; otherwise null, and a write of null keeps them. null or left out keeps the stored settings; {} (every member empty) removes them. Writing settings drops the channel's OAuth2 tokens, as the editor does (the two are exclusive). While the channel issues JWT tokens itself, the settings hold its signing certificate: a change must keep a stored certificateId with a private key, must not set certificateDynamicFetch, and cannot remove the settings.
The type of this object, always core.OpenIdSettings. Required where the member it is sent in accepts several types.
Audience (aud claim) a partner's token must contain: the token's aud may be this one value or a list that includes it.
true fetches the signing keys from url instead of using the stored certificate certificateId; false, null or left out uses the stored certificate.
Id of the stored (partner) certificate whose public key verifies the token signature; used when certificateDynamicFetch is not true. Must reference an existing certificate.
Issuer (iss claim) a partner's token must carry; compared for an exact match.
JWKS endpoint of the issuer the signing keys are fetched from; used only when certificateDynamicFetch is true.
The partner that owns the channel, embedded on read. Set by the server from the {partnerId} in the request path; a value sent here is ignored, and a channel cannot move to another partner.
The type of this object, always core.IntegrationPartner. Required where the member it is sent in accepts several types.
Contacts of the partner (people, not logins). null or left out keeps the stored contacts; a list replaces them: contacts not in the list are deleted, entries with a known id are updated, entries without one are created. Not carried on the partner embedded in a channel body.
A contact person (a person to reach, not a login): a partner's contacts are held in the partner's contacts member, the contact of a single channel in that channel's contact member.
The type of this object, always core.IntegrationPartnerContact. Required where the member it is sent in accepts several types.
E-mail addresses of the contact, one entry per address; in the stored form (comma-separated, display names quoted) they must fit 250 characters.
Fax number of the contact.
Id of the contact, assigned by the server. Ignored on create. On a partner update an id must be one of this partner's stored contact ids and updates that contact, left out creates a new one; on a channel update it must be the id of the channel's own contact, left out updates that contact.
Language of the contact, as stored by the platform; left out or blank, none is set.
Name of the contact person.
Free-text note about the contact.
Phone number of the contact.
Numeric id of the partner, assigned by the server on create; it is the {partnerId} in the partner's URLs and its channels' URLs. A value sent in a body is ignored.
true when the partner is managed by the connected Trading Partner Manager (TPM). Such a partner and its channels cannot be deleted through this API. Set only by the TPM synchronisation; a value sent here is ignored.
Display name of the partner. Must be unique among all partners that are not deleted.
Name of the rate-limit policy for requests this partner sends to the platform's REST API and MCP endpoints through its HTTP channels; it applies when the HTTP channel itself names no policy. Global is built in; another name must reference an existing policy. Left out on create or blank, the partner has no policy; an explicit null keeps the stored value.
Whether the partner is in use. An explicit null keeps the stored value. DELETED cannot be written - delete the partner with DELETE instead.
Name of the rate-limit policy applied to requests the partner sends through this HTTP channel. Global is built in. null or left out keeps the stored value; a blank string clears it.
Id of the partner's certificate (public key) in the certificate store that this channel uses, the counterpart of localCertificateId. Must reference an existing certificate.
User name the partner logs in with on the platform's HTTP server (HTTP authentication); its password is not settable through this API. Must be unique among all HTTP channels. Left out, the server fills an AUTO_CREATE_... placeholder that nobody can log in with.
Base URL of the partner's server. An HTTP response unit that names this channel takes the host (and the port, if the unit sets none) from it when its own host is empty or <serverurl>, and replaces <serverurl> in its URL with this URL's path; an HTTP cron job replaces <serverurl> with the whole URL.
Role names the partner holds after logging in with this channel; which role a protected HTTP area requires is part of the platform's HTTP server configuration, not of the channel. Stored as given.
true keeps paging when the next page's URL equals the previous one; false stops paging at a repeated URL. Only used with selfTrigger.
When the agent runs: a list of crontab expressions with six space-separated fields second minute hour day-of-month month day-of-week. The agent runs whenever any entry matches, in the server's time zone, and only while the profile is active. A field takes *, a number, a list 0,30, a range 8-17 (hour ranges may wrap, 22-2), a stepped range 8-18/2 or a step */15 (not 0/15). Month is 1-12, day-of-week 1 = Sunday to 7 = Saturday, and day-of-month also accepts L for the last day; names such as MON and ? are not supported. Examples: 0 0 9 * * 2-6 weekdays at 09:00, 0 */15 * * * * every 15 minutes, 0 0 0 L * * at the end of each month. Put 0 in the second field. Not expressible: every second week, the n-th weekday of a month, holidays; 2-6 still runs on public holidays. Say so instead of approximating. An entry without exactly six fields, or one the scheduler itself could never load (an unparsable field such as MON, * * * * * *, a value out of range, ...), is refused - unless it is already stored exactly as sent, which an unrelated write of the profile must not start refusing. Omitted on create or sent empty, the agent runs every minute. A schedule made as an interval, time table or trigger reads back as an empty list and becomes a 1-minute interval on the next write of the profile.
true sends the request through the Lobster DMZ server, for targets only reachable from there.
true percent-encodes the resolved URL, e.g. spaces in the path or query, before sending. The URL from VAR_SYS_HTTP_PAGING_URL is not encoded.
Name of a profile to start when a run of this agent fails, for example because the data cannot be fetched, or because no data is found and missingIsError is true. It is not started when the run is stopped. Leave it empty to start no profile. null keeps the stored value.
Id (factory name) of the cluster node that runs the agent in a load-balanced installation; empty runs it on the active node. Leave it empty on a single-node installation. null keeps the stored value.
Fully qualified name of a Java file filter class that decides which of the fetched files are processed; empty uses none. null keeps the stored value.
Name of the configuration file of the fileFilterClassName class. null keeps the stored value.
The GraphQL query sent when graphQlRequest is true; %NAME% constants, date masks such as @yyyyMMdd@ and @NAME@ variables are resolved on each run before the query is wrapped in the JSON body.
true sends a GraphQL request: graphQlQuery is posted as a JSON body with method POST, multipart parts are dropped, and soapData is ignored. Takes precedence over webServiceRequest.
Content type of the request body soapData. The profile's encoding is added as charset unless the value contains ;raw, which is removed before sending.
The request to send: sslEnabled (https), host, port, uri and query are joined into one URL, httpMethod is the method (GETWITHCONTENT and DELETEWITHCONTENT send a body with GET and DELETE), headers are sent as request headers (a header named method overrides the method). In the URL, %NAME% constants, date masks such as @yyyyMMdd@ and @NAME@ variables are resolved on each run. Default method GET.
The type of this object, always core.HttpClientSettings. Required where the member it is sent in accepts several types.
map Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Host name or IP address of the server, without scheme, port or path. In a response unit @name@ placeholders (a target field or variable) are resolved at run time, and an empty host (or <serverurl>) is taken from the unit's channel.
HTTP method of the request. Left out, a response unit uses POST and a time-driven agent GET. A header named method in headers overrides it at run time. SOAP and multipart requests need a method with a body (POST, PUT, PATCH, GETWITHCONTENT, DELETEWITHCONTENT): a response unit fails with any other, a time-driven agent switches to POST.
Port as text, so it can hold a placeholder such as @VAR_PORT@. Empty uses 443 with sslEnabled, else 80; a response unit with a channel takes the channel's port first. In a response unit a value that does not resolve to a number fails the unit at run time.
Query string without the leading ?. In a response unit it is the URL query of a GET, HEAD or DELETE. With a body method it becomes the request body when the unit sends no content (contentType core.ResponseContentType_NONE) or when it contains <http-data> (replaced by the URL-encoded output data); otherwise it is the URL query and the content is the body. @name@ placeholders are URL-encoded unless noUrlEncoding or multiPart is set. A time-driven agent appends it to the URL after ?.
true (default) sends the request over HTTPS, false over plain HTTP. Also decides the port used when port is empty: 443 or 80.
Path of the request; a missing leading / is added. In a response unit anything after ? is dropped (use query), @name@ placeholders are URL-encoded unless noUrlEncoding is set, <http-data> is replaced by the URL-encoded output data, and <serverurl> by the path of the channel's address.
Seconds to wait for the target's answer before the request fails; a value below 1 also means 90. Seconds, not milliseconds: 30000 waits more than 8 hours.
User name for HTTP authentication at the target (Basic or Digest; a name with a backslash uses NTLM). The password is not settable through this API. Placeholders are resolved like in the URL. Empty: no user, unless a partner channel supplies one.
true processes a non-empty answer even when its status is not 2xx, e.g. to map an error document. false logs such an answer as an error and runs no job.
Minutes or seconds (intervalUseSeconds) between runs; applies only with scheduleType INTERVAL: absent on a read of another schedule type, and sent with one it is refused, so send both.
true makes interval seconds instead of minutes; like interval, only with scheduleType INTERVAL.
true sends the error mail when a run of the agent fails. null keeps the stored value.
Maximum number of requests per scheduled run, the first one included. Limits paging. 0 or less sends no request at all.
Maximum run time of a job of the agent in minutes, 0 for no limit; see maxTimeAbsolute. null keeps the stored value.
true reads the agent's maximum run time as an absolute time instead of a limit up to its next run. null keeps the stored value.
true fails the job when the agent finds no data to process. null keeps the stored value.
Elements named to match one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other element is unaffected.
One part of the multipart/form-data body a cron HTTP agent sends; one element of multiParts. As soon as one part is set, the request is sent as multipart (as POST unless PUT or PATCH is chosen) instead of soapData; parts are dropped for a SOAP request (webServiceRequest). A text part needs key, data and mimeType; a file part (file: true) also fileName.
The type of this object, always core.CronHttpMultiPart. Required where the member it is sent in accepts several types.
Content of the part. For a text part the value itself; for a file part either file: plus the path of a file on the Lobster server whose content is sent (the profile's client must be allowed to read it), or the literal file content. Placeholders are resolved on each run; empty after resolving fails the run.
Character encoding of a text part or of literal file content; empty means UTF-8.
true sends the part as a file (with fileName), false as a plain form field.
File name sent for a file part; placeholders are resolved. For a file: part an empty name takes the file's own name. Not used for text parts. Send it for every file part: a missing one fails the run.
Form field name of the part. Placeholders (%NAME%, @NAME@, date masks) are resolved on each run; a name that resolves to empty fails the run.
Content type of the part; for a file: part an empty value means application/octet-stream. Send it for every part: a missing one fails the run.
How the parts of a multipart request are encoded: STRICT (strict MIME headers), RFC6532 (UTF-8 in part headers, e.g. non-ASCII file names), COMPATIBLE (browser-like, minimal part headers) or SYSTEM (the instance's setting). Used by core.CronHttpAgentSettings when multipart parts are sent; other agent types store it unused. null keeps the stored value.
Name of a profile to start after a run of this agent. Leave it empty to start no profile. null keeps the stored value.
true hands each fetched answer to a separate background job, so the schedule does not wait for processing. Paging (selfTrigger) needs it false: the paging variable is only read from a job that ran in the foreground. A write that switches paging on and leaves this member as stored sets it to false; one that switches it on together with paging is refused.
How the agent decides when to run; decides which of interval/intervalUseSeconds, timeTables, triggerType/trigger*, cronSchedule applies. Absent on write keeps the stored schedule and every member below untouched, whatever it currently is - only a sent scheduleType (or a sent cronSchedule, which keeps its own legacy write behaviour) changes it. A schedule made in the editor as interval, time table or trigger is fully readable, unlike through cronSchedule alone.
true enables paging: after a job, if the mapping set the variable VAR_SYS_HTTP_PAGING_URL to a non-empty URL, the agent requests that URL next and runs the profile again, until the variable stays empty, the URL repeats (see continueHttpCronWithSameUrl) or maxPaging requests were made.
Request body sent with POST, PUT, PATCH, GETWITHCONTENT and DELETEWITHCONTENT (unless multipart parts are set), e.g. a JSON query or a SOAP envelope. %NAME% constants, date masks such as @yyyyMMdd@ and @NAME@ variables are resolved on each run.
Fixed run times; apply only with scheduleType TIMETABLE: absent on a read of another schedule type, and entries sent with one are refused. Sending the member replaces the whole list.
A fixed run time of a TIMETABLE cron agent. Omitting year (or sending it as 0 or less) makes it a weekly entry keyed on day as the day of week; sending a positive year makes it a one-off entry on that calendar date, day then the day of month.
The type of this object, always core.CronTimeTableEntry. Required where the member it is sent in accepts several types.
Day the agent runs on: with no positive year, the day of week (1 Sunday to 7 Saturday); with a positive year, the day of month (1-31). Required.
Hour of day (0-23) the agent runs at. Required.
Minute of the hour (0-59) the agent runs at. Required.
Calendar month (1-12) of a one-off entry. Only used together with a positive year; defaults to 1 when a one-off entry omits it.
Calendar year of a one-off entry. Absent, 0 or negative (default) makes this a weekly entry instead, run every week on day as the day of week.
Time zone the cronSchedule entries are read in, e.g. Europe/Berlin; empty uses the time zone of the server. null keeps the stored value.
Only for triggerType HTTP: authentication scheme required of the caller when triggerHttpChannelIds names channels (OAUTH2 without channels acts as SYSTEM).
Only for triggerType PROFILE: the message context another profile forwards under to reach this agent.
Only for triggerType HTTP: ids of the partner HTTP channels allowed to call the trigger (its remoteId as user plus the channel's password). Setting a different, non-empty list turns off a literal user/password credential pair; that pair is not settable through this API. Empty/absent requires no authentication unless such credentials are set. Get channel ids with GET /platform/api/partners/preview/{partnerId}/channels (type HTTP).
Only for triggerType HTTP: content type of the trigger's HTTP response.
Only for triggerType HTTP: true refuses calls reaching the instance through the Lobster DMZ server.
Only for triggerType HTTP: constant key/value pairs merged into the started job, like %name% constants. Sending the member replaces the whole list.
A key/value pair merged into every job a TRIGGER/CRONTAB_HTTP cron agent's HTTP call starts, resolvable in the mapping like a %name% constant. key is required.
The type of this object, always core.CronHttpTriggerParam. Required where the member it is sent in accepts several types.
The constant's name.
The constant's value.
Only for triggerType HTTP: URL suffix the trigger is reachable under. Required for HTTP.
Only for triggerType HTTP: whether the job's result is sent back as the HTTP response; only takes effect with triggerSynchron true.
Only for triggerType PROFILE: whether a load-balancing cluster may run the triggered job on any node instead of only the one that received the forward.
Only for triggerType PROFILE: the message queue another profile forwards under to reach this agent.
Only for triggerType HTTP: true waits for the job and answers the HTTP call with its result (see triggerHttpReturnData); false answers at once.
What starts the agent; only meaningful with scheduleType TRIGGER or CRONTAB_HTTP.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
true checks the target's TLS certificate chain against the trusted certificates and fails the request on an untrusted one; false accepts any server certificate.
true sends a SOAP request: soapData is posted (the method becomes POST unless PUT or PATCH is chosen), the SOAPAction header is derived from the envelope, multipart parts are dropped, and a non-2xx answer is checked for a SOAP fault.
The type of this object, always core.IoTAgentSettings. Required where the member it is sent in accepts several types.
Which of the two ways the agent connects to OPC UA.
Server model (agentType OPC_Function): IoT partner channels assigned to the profile, as numeric channel ids from GET /platform/api/partners/preview/{partnerId}/channels (type IoT). Not validated: a wrong id is stored as is.
Subscription model: when true, values read for subscriptionReadValueEntries go into the job even if the server reports a status other than Good; when false such a value makes the notification fail and no job starts.
Subscription model: when true, the first notification right after the subscription starts (OPC UA servers send the current values then) also starts a job; when false it is skipped.
Server model: when true, the OPC UA method has no output arguments and the caller only gets a generic success; when false it returns the fields of the target node IOT_Result as output arguments, so the target structure must have that node.
Subscription model: alias of the OPC UA client connection to the external server; it must exist on the instance.
Subscription model: OPC UA node ids to subscribe to; with subscriptionType DataChange a change of any of them starts a job. Must not be empty for either subscriptionType: without ids no subscription is created at all.
Subscription model: publishing and sampling interval of the subscription in milliseconds; values below 1 are raised to 1. With subscriptionType Direct it is the interval at which jobs start.
Subscription model: nodes read on every notification and written into the job's XML as a tree, each entry as an element named by its outputIdentifier holding the node's value, its children as child elements. Required for subscriptionType Direct.
One node of the tree in subscriptionReadValueEntries of an IoT subscription agent: an OPC UA node read on every notification and the XML element its value is written to in the job's input, with nested children as child elements.
The type of this object, always core.IoTReadValueEntry. Required where the member it is sent in accepts several types.
Nested entries, written as child elements of this entry's element.
Display name of the node; not written into the job's data.
OPC UA node id to read. Without it the entry only produces a grouping element for its children.
Name of the XML element the node's value is written to; the element also carries the attributes nodeid, valdate, statuscode and statustext.
Subscription model: how the subscription reports values.
Name of the input agent type, derived from class and assigned by the server, e.g. WEBSERVICE for core.HttpAgentSettings, CRON_HTTP for core.CronHttpAgentSettings, UPLOAD for core.ManualUploadAgentSettings. A value sent on write is ignored; choose the type with class.
How the raw input is received before parsing. null keeps every stored value.
The type of this object, always core.InputHandlingSettings. Required where the member it is sent in accepts several types.
The input arrives as an archive. null keeps every stored value.
The type of this object, always core.InputArchiveSettings. Required where the member it is sent in accepts several types.
Whether the input data arrives already compressed as an archive of the given format.
Password protection of a ZIP/SEVEN_ZIP archive. The archive password itself is not settable through this API; a write keeps it. A stored password counts as configured whatever encryption says; see passwordConfigured.
Archive format of the input, used only while compressed is true.
Whether an archive password is stored. The password itself is never read or written through this API; a write keeps it.
Character encoding the input is read with in phase 2, a Java charset name (send UTF-8 for JSON). Must be a known charset name. An ISO-... name is read back in its short form (8859_1).
Skips a file already treated by Comm-Log; only meaningful for data received over a partner channel with Comm-Log active.
The checks the parser runs on the parsed source tree. null keeps every stored value.
The type of this object, always core.InputValidationSettings. Required where the member it is sent in accepts several types.
Whether the parser checks that every source field has a value where the structure marks it mandatory, and that the value parses as the field's type.
Whether the parser checks a source field's value against its structure's minimum/maximum (for XML, length) constraints. Stored per document type: a value sent unchanged on a write that switches parsing.documentType leaves the new type's stored value alone. Not supported while an XML profile's parser is V4: switching it on there is rejected, and it is left out of the response.
Checks applied to EDIFACT input. null keeps every stored value.
The type of this object, always core.EdifactValidationSettings. Required where the member it is sent in accepts several types.
Whether the character set the interchange declares is checked.
Whether the interchange envelope (UNB/UNZ) is checked.
Whether the data is validated against the UNOA/UNOB character set.
Whether only top-level source nodes that carry a value are checked, the pre-3.3.4 back-compatibility behaviour.
Whether a fixed-length source field's padding is trimmed from its value before it is mapped.
Whether the parser runs the source structure's semantic (cross-field) checks.
The client (tenant) of the instance that owns the profile; assigned by the server from the signed-in session, a sent value is ignored.
Phase 5: the integration unit in unit that serialises the target tree after the mapping, e.g. core.JsonCreationIU or core.XMLCreationIU. A response unit sends that output when its contentType is core.ResponseContentType_IU; leave the unit out when no response unit sends it.
The type of this object, always core.ProfileIntegrationSettings. Required where the member it is sent in accepts several types.
Path of a configuration file on the Lobster server the integration unit reads, for a unit type that needs one (most do not). null keeps the stored value; send "" to clear it.
Character encoding the integration unit's own data is read in, as a Java charset name. null keeps the stored value.
Fully qualified Java class name of a post-executor that processes the integration unit's output file before the response units run; empty runs none. Must be one of the post-executors installed on the instance (listed in ./etc/admin/datawizard/post_executer.properties), unless it is already the stored value - a legally stored value that no longer resolves survives an unrelated edit. null keeps the stored value; send "" to switch it off. Runs only when an integration unit produced output. Its configuration file is not settable through this API. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=POST_EXECUTER.
Client id of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Function number of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Sub-function number of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Supplier id of the request the integration unit runs under; not shown in the profile editor. null keeps the stored value.
Name of a boolean target field or variable that gates whether the integration unit runs at all: empty always runs it, a non-empty name skips the unit for a record where that field or variable is not true. Ignored while unit is absent. null keeps the stored value; send "" to clear it.
The integration unit that writes the target structure as a document: core.JsonCreationIU, core.XMLCreationIU, core.EdifactCreationIU, or core.GenericIntegrationUnit for any other class installed on the instance. Left out or null, the stored unit is kept, so a new profile then has none. Writing the same unit class as the one stored keeps its other parameters; writing a different class (or creating the unit) starts that class's parameters from its own defaults.
The type of this object, always core.GenericIntegrationUnit. Required where the member it is sent in accepts several types.
Fully qualified Java class name of the integration unit. Must be one of the classes installed on this instance, and not com.ebd.hub.datawizard.iu.NoActionUnit. The valid values are listed by GET /platform/api/profiles/preview/class-registry?kind=INTEGRATION_UNIT.
The unit's free-form configuration, parameter name to string value; a unit created without it reads back with every one at its default. A key must be one the class declares. Omitting a key keeps the value already stored for it (or the class's own default, for a unit that is new or whose className just changed). Sending a key with an explicit null value removes it, and the unit then runs with it unset, which is not necessarily its default. A parameter whose name marks it as a credential (e.g. Excel password to open file) is a secret: a read returns it encrypted, a write accepts that encrypted value unchanged or the cleartext as "PLAIN:<text>". Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
The type of this object, always core.EdifactCreationIU. Required where the member it is sent in accepts several types.
Whether a mandatory EDIFACT segment or element with no mapped value is written empty rather than left out. Writing it empty produces an interchange the receiver's own mapper typically cannot handle (e.g. an empty segment group, a wrong UNT count); the underlying unit's own default is true, but a new unit defaults to false here instead. Left out on an already stored unit, the stored value survives; a stored unit that never set it reads back false, as it runs.
The unit's remaining settings, key to string value, e.g. {"Delimiters": ":+.? '"}. Keys: Add UNA-segment to result, Add value to segment counter, Cut line after 80 chars, Delimiters, Length to cut line, One EDI-document per record, Replace umlauts, Replace umlauts with checking case, Return EDIFACT in uppercase completely, Trim type (both,left,right), Trim values, Write message in one line. A key left out keeps its stored value (or its default, on a unit that is new or whose class just changed); a key sent as null is removed, and the unit then runs with it unset, which is not necessarily its default. Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
The type of this object, always core.XMLCreationIU. Required where the member it is sent in accepts several types.
This unit's remaining configuration (everything but rootName), parameter name to string value, e.g. {"Without XML-Header": "true"} (the class is com.ebd.hub.datawizard.iu.XMLNoTemplateUnit); a unit created without it reads back with every one at its default. A key must be one this class declares. Omitting a key keeps the value already stored for it (or the class's own default, for a unit that is new or whose class just changed). Sending a key with an explicit null value removes it, and the unit then runs with it unset, which is not necessarily its default. Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of the target node that becomes the root element of the document; everything below it is written. Always set it: changing it must name a node of the target structure; a legally stored value survives an edit that does not touch it, even where it no longer resolves at run time.
The type of this object, always core.JsonCreationIU. Required where the member it is sent in accepts several types.
This unit's remaining configuration (everything but startAtNode), parameter name to string value, e.g. {"Pretty print": "true"} (the class is com.ebd.hub.datawizard.iu.ExtendedJsonCreationUnit); a unit created without it reads back with every one at its default. A key must be one this class declares. Omitting a key keeps the value already stored for it (or the class's own default, for a unit that is new or whose class just changed). Sending a key with an explicit null value removes it, and the unit then runs with it unset, which is not necessarily its default: an unset Write values type safe is false, its default true. Entries whose key matches one of authorization, proxy-authorization, cookie, set-cookie, password, passwd, pwd, passphrase, secret, credential, token, apikey, api.key, api-key hold a secret: a read returns those encrypted, and a write accepts either that encrypted form or the cleartext behind a "PLAIN:" prefix, and rejects anything else. Every other entry is unaffected.
Name of the target node the JSON starts at; the output is wrapped in that node's name (lines gives {"lines": [...]}). Empty or root writes the whole target structure, wrapped in the top node's name ({"PurchaseOrder": {...}}); give the start node xmlJsonMode TRANSPARENT to drop the wrapper. Changing it must name a node of the target structure; a legally stored value survives an edit that does not touch it, even where it no longer resolves at run time.
How and how long a job runs. null keeps every stored value.
The type of this object, always core.JobExecutionSettings. Required where the member it is sent in accepts several types.
Limits on the input a run accepts. null keeps every stored value.
The type of this object, always core.JobExecutionLimits. Required where the member it is sent in accepts several types.
Maximum size in KB the input may have; 0 is unlimited. Must be at least 0.
Maximum number of records a run processes. Must be at least 1; 2147483647 is unlimited.
Alias of the log pool the profile's run history is written to; must name a log pool that exists on the instance when changed.
Minutes a run may take before a notification mail is sent; 0 is unlimited. Must be at least 0.
Thread-pool priority the profile's jobs run at. Forced to NORMAL while singleInstance is true.
Strict serial processing: only one job of the profile runs at a time. Forces priority to NORMAL and responseSettings.asThread to false.
When the profile was last stored, by the Lobster UI or this API; assigned by the server.
Phase 3 behaviour of the mapping (the trees themselves stay in mappingSettings). null keeps every stored value.
The type of this object, always core.MappingBehaviourSettings. Required where the member it is sent in accepts several types.
How empty values are mapped. null keeps every stored value.
The type of this object, always core.EmptyValueSettings. Required where the member it is sent in accepts several types.
Treats an empty field value as "not existing" rather than as an empty string.
Skips an empty field to save memory instead of mapping it as empty.
Ignores an empty source field to save memory.
Runs the filler again after a template operation.
FixRecord output. null keeps every stored value.
The type of this object, always core.FixRecordOutputSettings. Required where the member it is sent in accepts several types.
Fills a numeric FixRecord output field with 0 instead of blanks.
The data mapper the mapping runs with. A V4 XML parser forces this to EXTENDED regardless of what is sent.
How the mapping holds its data. null keeps every stored value.
The type of this object, always core.MappingMemorySettings. Required where the member it is sent in accepts several types.
Memory-use percentage at which swapToDisk kicks in, 0 to 95.
Writes mapped data to disk temporarily instead of holding it all in memory.
Starts a new output record as soon as a single one of the fields configured in the mapping changes, instead of requiring all of them to change; only meaningful for a CSV, FIX, EXCEL, BWA, DB or SAP_ALE parsing.documentType.
Whether resetOnNewRecord on a core.Variable resets it to initialValue re-created from its declared type, instead of to an empty string regardless of type.
Uses matchcode values for functions in the mapping.
Allows field values to be Base64-encoded.
Phase 3, the mapping: the source structure (the parsed input), the target structure (what the profile builds) and the links between their fields. Function chains, conditions and database settings live on the target nodes and fields.
The type of this object, always core.MappingSettings. Required where the member it is sent in accepts several types.
The profile's constants: fixed name/value pairs a mapping function or filter can read like a variable, but which never change while the profile runs. A PATCH that sends this list replaces the whole set; a null list keeps the stored one.
One entry of mappingSettings.constants: a fixed name/value pair a mapping function or filter can read like a variable, but which a profile can never change while it runs (unlike a variable).
The type of this object, always core.ConstantDefinition. Required where the member it is sent in accepts several types.
The constant's name, unique within the list; a second entry with the same name overwrites the first one when the list is parsed back. Must not contain a tab or a newline.
The constant's value, read as plain text wherever a mapping names the constant. Must not contain a tab or a newline.
The field links: each core.MappingLink copies a source field's value into a target field, both named by field name. One source field may feed several target fields; a target field takes one link. "For every source X produce a target Y" is not a link but the target node's path. A PATCH replaces the whole list, so send the existing links along with the new ones. Must name fields present in their structure.
A field link, one element of mappingSettings.mappings: the target field named in destination takes the value of the source field named in source, e.g. {"class": "core.MappingLink", "source": "qty", "destination": "quantity"}. The value is read from the source node instance the enclosing target node currently iterates (see path on core.DestinationNode), and a link may cross levels, e.g. a field of a nested source node into a field of the parent target node. A function chain on the target field sees the linked value as its LINK parameters, so a field whose chain reads LINK needs a link too.
The type of this object, always core.MappingLink. Required where the member it is sent in accepts several types.
Name of the target field that receives the value, exactly as in mappingSettings.targetStructure (case-sensitive). Must reference an existing target field. If the field also has functions, the last function's result becomes its value; a fixValue overrides both.
Name of the source field whose value the link copies, exactly as in mappingSettings.sourceStructure (case-sensitive). Must reference an existing source field.
The path the platform computes from the two trees on every write, relative to the source node being iterated, e.g. qty or supplier/name; read-only, a sent value is ignored.
The tree the parser fills from the input: core.SourceNode and core.SourceField items. For JSON input the top-level JSON object is the top-level source node, and object keys match items by name. A PATCH that sends its nodes replaces the whole tree, so send it complete.
The type of this object, always core.SourceDataStructure. Required where the member it is sent in accepts several types.
XML namespaces declared for this side of the tree: prefix is usable in core.DestinationNode.xmlNameSpace and matches an XML input's namespaced element names. A PATCH that sends this list replaces the whole set.
One XML namespace declared for a structure: prefix names it in core.DestinationNode.xmlNameSpace (prefix=uri or a bare prefix) and in an XML input's node/field names.
The type of this object, always core.NamespaceDefinition. Required where the member it is sent in accepts several types.
The namespace prefix; unique within the list, a second entry with the same prefix overwrites the first.
The namespace URI the prefix stands for.
The top-level items of the tree, in order; each nests its own items in children. Use one top-level node (minimum 1, maximum 1); a node named root, which the platform reserves, is stored as Root; a node name must be unique within the tree, after names are corrected (unless it is already stored that way and this write leaves names alone). A PATCH that sends this list replaces the whole tree.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.DestinationField. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
Makes the field a helper that computes a value without writing it to the output, e.g. to fill a list, sum into a map or drop a record; its chain runs as usual.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.DestinationNode. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.SourceField. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
The only values the field accepts, e.g. ["EUR", "USD"]: for JSON and XML input a value not in the list fails the job. * accepts anything, and a first entry regex:<pattern> makes the check a regular expression. Empty or left out, any value is accepted.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The type of this object, always core.SourceNode. Required where the member it is sent in accepts several types.
Documentation text the AI assistant reads and writes for this item, describing what the item holds or how its value is built; it is not used when the profile runs.
The items below this one, in order: fields and child nodes of the same side (source items in the source structure, target items in the target structure). Only nodes have children; a field cannot have children. On the target side the order is the order of execution and of the output, so an item that fills a list or map must come before the item that reads it. A PATCH that sends this list replaces it.
One item of a source or target tree: a node (core.SourceNode, core.DestinationNode), which holds children, or a field (core.SourceField, core.DestinationField), which holds a value. Items are matched and linked by name, so keep names unique within a tree.
Send one of these types, named in class:
core.DestinationField: A field of the target structure: a leaf in thechildrenof acore.DestinationNode.core.DestinationNode: A node of the target structure: groups target fields and child nodes, and becomes an object or array (JSON) or an element (XML) in the output.core.SourceField: A field of the source structure: one value of the input, a leaf in thechildrenof acore.SourceNode.core.SourceNode: A node of the source structure: a group of input fields and child nodes that the parser fills from the input.
The request could not be understood. BAD_REQUEST for a body that does not decode — its message names the property at fault — and VALIDATION_FAILED with one details entry per offending parameter for a malformed request target (an unknown query parameter or sort key). Also BAD_REQUEST for a response unit naming a channel this client cannot reference.
{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.
Authentication is required or the supplied credentials are invalid.
{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.
The caller lacks the permission for this operation on this resource (FORBIDDEN).
{
"error": {
"code": "FORBIDDEN",
"message": "Access to this resource is denied."
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.
The requested resource does not exist. The code is resource-specific, e.g. PARTNER_NOT_FOUND, PROFILE_NOT_FOUND or CHANNEL_NOT_FOUND.
{
"error": {
"code": "PARTNER_NOT_FOUND",
"message": "Partner not found: 42"
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.
The request collides with the current state of the resource: a name already taken by another record, a lastModified that no longer matches because the record changed since it was read, or a delete the record's state refuses (it is open in the Lobster UI, still referenced by other objects, or managed by the Transport Manager). A field-level collision carries one details entry naming it.
{
"error": {
"code": "CONFLICT",
"message": "The request conflicts with the current state of the resource.",
"details": [
{
"code": "FIELD_INVALID",
"message": "A partner with the name 'ACME' already exists.",
"target": "name"
}
]
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.
The body decoded but breaks a rule of the resource: a required member is missing, a value is not one of the accepted values or violates its pattern, length or range, a referenced id (partner, certificate, profile) does not exist, or two members contradict each other. One details entry per violation: FIELD_REQUIRED or FIELD_INVALID, with target naming the member path and message the rule, including the accepted values where there is a fixed set.
{
"error": {
"code": "VALIDATION_FAILED",
"message": "Request validation failed",
"details": [
{
"code": "FIELD_REQUIRED",
"message": "Field 'name' must not be empty.",
"target": "name"
}
]
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.
An unexpected server error occurred.
{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred."
}
}Standard Platform API error envelope: every failed request carries a single error object. Every response carries exactly one of data (success) or error (failure) at top level.
What went wrong: branch on its code, show its message, and read details for one entry per failed member.
Stable machine-readable UPPER_SNAKE error code for programmatic handling, e.g. PARTNER_NOT_FOUND, VALIDATION_FAILED or FORBIDDEN. New codes may be added over time; treat an unknown code according to the HTTP status class. The HTTP status itself is carried by the status line only, never duplicated here.
Human-readable, non-localized explanation. Branch on code, never on this text.
Individual failures within the request, e.g. one entry per violated field.
A single failure within the request.
Stable machine-readable UPPER_SNAKE code of this individual failure, e.g. FIELD_REQUIRED, FIELD_INVALID or VALUE_OUT_OF_RANGE.
Human-readable, non-localized explanation of this individual failure.
What this failure refers to, e.g. the violated field.