integrations / integrations-xml-17Markdown ↓

Diagnostics and XML reference

The XML document and its resulting definition are each limited to 2 MiB. Unknown elements or attributes, duplicate logical ids, malformed JSON Schema, undeclared references, unsafe XML and excessive input/output are hard errors. XML external entities, processing instructions and namespace escapes are forbidden.

Diagnostics identify the affected fields and locations in your original XML. Offsets are UTF-8 bytes; line and column numbers are one-based, with UTF-16 editor columns. End positions are exclusive. Nested Workflow, EdgeApp and script errors map into the outer document, including escaped inline text and split CDATA.

The source editor uses this catalog for XML completion, hover descriptions and syntax help. Validation markers use the original XML ranges. Select a diagnostic to move the cursor to its source location. Editing clears diagnostics from the previous document; validate the new buffer to refresh them. Published definitions remain read only.

Use the vocabulary below to look up supported elements, attributes and limits. For embedded Edge Apps and Workflows, also consult their authoring manuals.

Integration XML v1 vocabulary

The XML describes a reusable definition. Its instances supply configuration, secrets and resource bindings.

<integration> in document

XML v1 definition of Integration behavior and required configuration.

Field path: ``

  • id → integrationId (required): ^[a-z0-9][a-z0-9-](.[a-z0-9][a-z0-9-])+$.

  • sdk-version → sdkVersion (required): ^[0-9]+.[0-9]+$.

  • timeout-ms → timeoutMs: Integer 1...60000; runtime default 5000.

  • version → version (required): ^[0-9]+.[0-9]+.[0-9]+(-[a-zA-Z0-9.]+)?$.

Children: <actor>, <api-clients>, <configuration-schema>, <custom-apps>, <data-container-schemas>, <description>, <edge-apps>, <policy>, <protobuf>, <resources>, <workflows>

<api-clients> in integration

Package-owned API clients; credentials are runtime inputs.

Field path: /apiClients

Children: <api-client>

<api-client> in api-clients

A pinned API contract and original Swagger/OpenAPI source.

Field path: /apiClients/{index}

  • name → name (required): ^[a-z_][a-z0-9_]*$.

Children: <definition>, <schema>

<schema> in api-client

Original Swagger 2 or OpenAPI 3.0/3.1 JSON source as text.

Field path: /apiClients/{index}/schema

Text or CDATA.

<definition> in api-client

DataXML API definition as escaped text or CDATA; no credential values.

Field path: /apiClients/{index}/definition

Text or CDATA.

<protobuf> in integration

Up to 256 named inline declarations. Imports may reference other inline proto declarations by name.proto only.

Field path: /protobuf

Children: <declaration>

<declaration> in protobuf

Inline protobuf source (256 KiB) or a whitespace-tolerant base64 FileDescriptorSet (256 KiB decoded). External imports are unavailable.

Field path: /protobuf/{index}

  • name → name (required): Unique logical identifier.

  • type → type (required): proto or b64.

Text or CDATA.

<custom-apps> in integration

Up to 256 inline v3 definition assets; no installations or supporting files.

Field path: /customApps

Children: <custom-app>

<custom-app> in custom-apps

One complete App.vue component, without separate supporting files.

Field path: /customApps/{index}

  • handle → handle (required): Unique lowercase identifier.

  • icon → icon: Optional icon.

  • kind → kind (required): PAGE, DASHBOARD, KIOSK, JOB_VIEW.

  • name → name (required): Logical identifier.

Children: <server-api>, <source>

<source> in custom-app

Complete exact decoded App.vue; nonempty, at most 512 KiB. No files container.

Field path: /customApps/{index}/source

Text or CDATA.

<server-api> in custom-app

Optional CustomApp Lua exports API; at most 256 KiB.

Field path: /customApps/{index}/serverAPI

Text or CDATA.

<edge-apps> in integration

Complete child edge-app definitions using the Edge Apps XML vocabulary; unique handles, at most 256.

Field path: /edgeApps

Children: <edge-app>

<description> in integration, resource requirement, Action, or container schema

Definition description; exact decoded text.

Field path: /description, /resources/{index}/description, /actor/actions/{index}/description, or /dataContainerSchemas/{index}/description

Text or CDATA.

<configuration-schema> in integration

Inline JSON Schema draft 2020-12 object; 256 KiB and 50 levels; local references within one schema resource only (no nested $id). Advertises installation configuration, never supplies it.

Field path: /configurationSchema

Prefer a schema root in urn:cococo:json-schema:1. Legacy JSON text or CDATA remains accepted. See the XML schemas manual.

<resources> in integration

Up to 256 abstract binding requirements.

Field path: /resources

Children: <resource>

<resource> in resources

Logical requirement; installations supply concrete entities.

Field path: /resources/{index}

  • id → id (required): ^[a-z_][a-z0-9_]*$.

  • optional → optional: true or false.

  • type → type (required): ^((template|script|apiclient)(/[A-Z0-9_]+)?|[a-z]+/[a-z]+)$.

Children: <description>

<policy> in integration

Typed IAM document, 1...256 statements.

Field path: /policy

  • version → version: 2026-01-01.

Children: <allow>, <deny>

<allow> in policy

ALLOW statement, 1...256 actions and resources.

Field path: /policy/statements/{index}

Children: <action>, <resource>

<deny> in policy

DENY statement, 1...256 actions and resources.

Field path: /policy/statements/{index}

Children: <action>, <resource>

<action> in allow or deny

IAM action pattern, e.g. job:read or *; accepts the dotted contract spelling too.

Field path: /policy/statements/{index}/actions/{index}

Text or CDATA.

<resource> in allow or deny

  • or a declared logical resource identifier; concrete installation IDs are forbidden.

Field path: /policy/statements/{index}/resources/{index}

Text or CDATA.

<data-container-schemas> in integration

Up to 256 named integration-owned container contracts.

Field path: /dataContainerSchemas

Children: <schema>

<schema> in data-container-schemas

Schema for installation-owned data. No container values are defined here. Omitted taggable types prohibit attachments.

Field path: /dataContainerSchemas/{index}

  • max-per-instance → maxPerInstance: Integer 1...1000000; omitted means no count limit.

  • name → name (required): Logical identifier.

Children: <description>, <json-schema>, <taggable-type>

<json-schema> in schema

Required JSON Schema draft 2020-12 object, maximum 256 KiB; local references only.

Field path: /dataContainerSchemas/{index}/schema

Prefer a schema root in urn:cococo:json-schema:1. Legacy JSON text or CDATA remains accepted. See the XML schemas manual.

<taggable-type> in schema

Permitted attachment entity type: job or customer; unique within the container schema.

Field path: /dataContainerSchemas/{index}/taggableTypes/{index}

Text or CDATA.

<workflows> in integration

Up to 256 named embedded Workflow XML documents.

Field path: /workflows

Children: <workflow>

<workflow> in workflows

Complete Workflow XML as inline text or CDATA, maximum 256 KiB. Use the Workflow XML vocabulary; YAML is unavailable.

Field path: /workflows/{index}

  • name → name (required): Logical identifier.

Text or CDATA.

<actor> in integration

Script actor behaviour; no entry script or exports convention.

Field path: /actor

Children: <actions>, <init>, <libraries>, <shutdown>, <subscriptions>, <timers>, <upgrade>

<init> in actor

Optional Lua startup chunk; varargs (config).

Field path: /actor/initSource

Text or CDATA.

<shutdown> in actor

Optional Lua shutdown chunk; varargs (config).

Field path: /actor/shutdownSource

Text or CDATA.

<upgrade> in actor

Optional Lua explicit upgrade chunk; varargs (oldVersion, newVersion, oldConfig).

Field path: /actor/upgradeSource

Text or CDATA.

<libraries> in actor

Up to 256 named inline Lua modules.

Field path: /actor/libraries

Children: <library>

<library> in libraries

Module loaded by ctx.script.load(name).

Field path: /actor/libraries/{index}

  • name → name (required): Logical identifier.

Text or CDATA.

<subscriptions> in actor

Up to 256 topic subscriptions. Filters are deferred and rejected.

Field path: /actor/subscriptions

Children: <subscription>

<subscription> in subscriptions

Inline Lua event chunk; varargs (event, config).

Field path: /actor/subscriptions/{index}

  • topic → topic (required): resource.verb event topic.

Text or CDATA.

<timers> in actor

Up to 256 named timers.

Field path: /actor/timers

Children: <timer>

<timer> in timers

Inline Lua timer chunk; varargs (timerName, config); exactly one of every/cron. Cron uses UTC.

Field path: /actor/timers/{index}

  • cron → schedule/cron: Standard five-field cron schedule.

  • every → schedule/every: Integer seconds or s/m/h duration, 1...86400 seconds.

  • jitter → jitter: s/m/h duration, 0...3600 seconds; at most the interval for every timers.

  • name → name (required): Logical identifier.

Text or CDATA.

<actions> in actor

Up to 256 callable Actions, shared by direct calls and Workflow nodes.

Field path: /actor/actions

Children: <action>

<action> in actions

Named Action; inline source receives (input, actionConfig); instance config is available through ctx.config.get().

Field path: /actor/actions/{index}

  • icon → icon: Optional icon name.

  • label → label (required): Display label.

  • name → name (required): Logical identifier.

Children: <config-schema>, <description>, <input-schema>, <output-schema>, <source>

<source> in action

Required Lua implementation, maximum 256 KiB.

Field path: /actor/actions/{index}/source

Text or CDATA.

<input-schema> in action

Optional inline JSON Schema for callable input.

Field path: /actor/actions/{index}/inputSchema

Prefer a schema root in urn:cococo:json-schema:1. Legacy JSON text or CDATA remains accepted. See the XML schemas manual.

<config-schema> in action

Optional inline JSON Schema for Action settings.

Field path: /actor/actions/{index}/configSchema

Prefer a schema root in urn:cococo:json-schema:1. Legacy JSON text or CDATA remains accepted. See the XML schemas manual.

<output-schema> in action

Optional inline JSON Schema for the return value; inferred when absent.

Field path: /actor/actions/{index}/outputSchema

Prefer a schema root in urn:cococo:json-schema:1. Legacy JSON text or CDATA remains accepted. See the XML schemas manual.

Published platform manual · revision 1829a63b038c