Skip to main content

Supported Elements & Fields

This page lists every BPMN element, connection, and data construct Stateway recognizes, which fields it reads, and whether each is supported. It is generated and always reflects the engine's actual behavior.

Format is whether a field can be set in BPMN XML, JSON, or both (BPMN·JSON / BPMN / JSON). Status meanings: Supported — fully implemented; Planned, not yet supported — recognized but not yet executed; Recognized, not executed — parsed but intentionally not executed.

Elements​

ElementStatusFieldFormatField statusVariable roleDescription
startEventSupportedtimerTypeBPMN·JSONSupportedLiteralTimer kind: date, duration, or cycle.
timerExpressionBPMN·JSONSupportedLiteralISO 8601 timer expression.
ioMappingBPMN·JSONSupportedoutputs[].source: Expression (variables, instance, session, now); outputs[].target: Variable nameoutputs only (inputs is rejected at publish). On the process start event, the outputs are the instance input contract: sources read the start variables, session, instance and now, and only the mapped targets are written to the instance; other start variables are discarded. On a subProcess start event, outputs are added to the instance variables.
endEventSupportedsignalRefBPMN·JSONSupportedLiteralName of the signal this element throws. On arrival it is broadcast to every waiting signal catch/boundary event of the tenant with the same name, exactly as POST /events/signal/:signal_name does (no payload).
eventNameBPMN·JSONSupportedLiteralName of the named event this end event throws to its own instance. On arrival the event is recorded and delivered to the waiting named-event catch and boundary events of the same instance, exactly like POST /v1/instances/:id/events; other instances are not affected. In BPMN it comes from the stateway:eventCorrelation extension or, when that is absent, from the name of the message referenced by a native message event definition (messageRef). The payload is the variables listed in variableFilter, and a notification carrying the eventName is published.
variableFilterBPMN·JSONSupportedVariable nameNames of variables to include in the payload of the named event this end event throws (only used together with eventName).
terminateBPMN·JSONSupportedLiteralMarks a terminate end event. When reached, every other active path of the same scope is cancelled (open user tasks included). At the top level the instance ends as completed; inside a subprocess only that subprocess ends, and the parent flow continues. Cannot be combined with a signal or a named event.
taskSupportedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
userTaskSupportedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
assignmentDefinitionBPMN·JSONSupportedassignee: Expression (variables, instance, session, now); candidateUsers: Expression (variables, instance, session, now); candidateGroups: Expression (variables, instance, session, now)Human-task assignment (assignee, candidate users, candidate groups).
formSchemaBPMN·JSONSupportedLiteralJSON Schema of the human task's form.
ioMappingBPMN·JSONSupportedinputs[].source: Expression (variables, instance, session, now); inputs[].target: Variable name; outputs[].source: Expression (result, instance, session, now); outputs[].target: Variable nameinputs are resolved when the task is created and become the task's variables (alongside any typed inputs). outputs are applied when the task is completed: sources read the submitted variables (as result.* or by name), instance, session and now, and only the mapped targets are written to the instance. Without outputs, every submitted variable is written, as before. session is the user who started the instance, not the one completing the task.
serviceTaskSupportedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
taskDefinitionBPMN·JSONSupportedLiteralThe worker type that executes the task (e.g. "http").
taskHeadersBPMN·JSONSupportedurl: Expression (variables, instance, session, now); headers: Expression (variables, instance, session, now, credentials); authorization: Expression (variables, instance, session, now, credentials); method: Literal; timeout: Literal; executionMode: Literal; callbackEvent: LiteralKey/value configuration passed to the worker (method, URL, timeout).
ioMappingBPMN·JSONSupportedinputs[].source: Expression (variables, instance, session, now); inputs[].target: Variable name; outputs[].source: Expression (response, instance, now); outputs[].target: Variable nameMaps process variables into and out of the task.
scriptTaskRecognized, not executedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
businessRuleTaskSupportedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
taskHeadersBPMN·JSONSupporteddecisionKey: Literal; decisionVersion: Literal; executionMode: Literal; timeout: LiteralKey/value configuration for the DMN evaluation: decisionKey (required) and optionally decisionVersion. The stateway:decisionRef / stateway:decisionVersion attributes on the task are an equivalent shorthand and take precedence. DMN evaluation is always synchronous — setting executionMode to async errors the instance. timeout does not abort a running evaluation; it only bounds how long a job can sit orphaned after an engine crash before startup recovery marks it as timed out.
ioMappingBPMN·JSONSupportedinputs[].source: Expression (variables, instance, session, now); inputs[].target: Variable name; outputs[].source: Expression (result, instance, session, now); outputs[].target: Variable nameMaps process variables into and out of the task.
sendTaskSupportedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
taskHeadersBPMN·JSONSupportedurl: Expression (variables, instance, session, now); headers: Expression (variables, instance, session, now, credentials); authorization: Expression (variables, instance, session, now, credentials); method: Literal; timeout: Literal; executionMode: Literal; callbackEvent: LiteralKey/value configuration passed to the worker (method, URL, timeout).
ioMappingBPMN·JSONSupportedinputs[].source: Expression (variables, instance, session, now); inputs[].target: Variable name; outputs[].source: Expression (response, instance, now); outputs[].target: Variable nameMaps process variables into and out of the task.
receiveTaskRecognized, not executedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
exclusiveGatewaySupporteddefaultBPMNSupportedLiteralID of the default sequence flow, taken when no condition matches.
parallelGatewaySupported————Parallel (AND) split and synchronized join.
inclusiveGatewaySupporteddefaultBPMNSupportedLiteralID of the default sequence flow, taken when no condition matches.
eventBasedGatewayRecognized, not executed————Event-based routing.
subProcessSupportedactivityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
callActivitySupportedcalledElementBPMN·JSONSupportedLiteralKey of the called process definition. It must resolve to a published definition of your tenant when the calling definition is published; the version in force at that moment is the one the parent calls from then on.
callConfigBPMN·JSONSupportedonChildFailure: LiteralExecution options for the call activity. onChildFailure decides what the caller does when the called instance ends in error or is terminated: "propagate" (default) routes to the call activity's error boundary event, or fails the calling instance when there is none; "continue" completes the call activity anyway and publishes the outcome as <elementId>__childOutcome.
activityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
dataInputsBPMNSupportedLiteralNames of the declared data inputs.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
boundaryEventSupportedtimerTypeBPMN·JSONSupportedLiteralTimer kind: date, duration, or cycle. A boundary timer arms when the host activity enters waiting and fires on schedule. A timeDate/timeDuration boundary fires once; a non-interrupting timeCycle (R<n>/...) boundary re-arms itself after each occurrence, with the count decremented, until it runs out (R/... never stops on its own) — an interrupting boundary never re-arms, since firing it kills the host.
timerExpressionBPMN·JSONSupportedLiteralISO 8601 timer expression. A boundary timer arms when the host activity enters waiting and fires on schedule. A timeDate/timeDuration boundary fires once; a non-interrupting timeCycle (R<n>/...) boundary re-arms itself after each occurrence, with the count decremented, until it runs out (R/... never stops on its own) — an interrupting boundary never re-arms, since firing it kills the host.
attachedToRefBPMN·JSONSupportedLiteralID of the host activity the boundary event is attached to.
cancelActivityBPMN·JSONSupportedLiteraltrue interrupts the host activity (default); false is non-interrupting.
errorCodeBPMN·JSONSupportedLiteralMatched error code; empty matches any error.
eventNameBPMN·JSONSupportedLiteralName of the named event this message boundary waits for. In BPMN it comes from the stateway:eventCorrelation extension or, when that is absent, from the name of the message referenced by a native message event definition (messageRef); the extension takes precedence. A boundary event arms this catch when the host activity enters waiting (or re-arms after a non-interrupting fire) and fires when a matching event is posted after that point — an event recorded earlier does not retroactively fire it. Interrupting (default) never re-arms; non-interrupting re-arms unconditionally after each fire, reacting to every further occurrence while the host stays active.
signalRefBPMN·JSONSupportedLiteralName of the signal this boundary waits for, matched against POST /events/signal/:signal_name. Arms when the host activity enters waiting. Interrupting (default) never re-arms, since firing it kills the host; non-interrupting re-arms unconditionally after each fire, reacting to every further broadcast of the same signal name while the host stays active. A signal broadcast before the boundary (re-)armed does not retroactively fire it.
ioMappingBPMN·JSONSupportedinputs[].source: Expression (variables, instance, session, now); inputs[].target: Variable name; outputs[].source: Expression (event, instance, now); outputs[].target: Variable nameMaps the delivered event payload into process variables via outputs. inputs is accepted for schema consistency with other task types but has no effect here.
intermediateThrowEventSupportedsignalRefBPMN·JSONSupportedLiteralName of the signal this element throws. On arrival it is broadcast to every waiting signal catch/boundary event of the tenant with the same name, exactly as POST /events/signal/:signal_name does (payload: the variables listed in variableFilter).
eventNameBPMN·JSONSupportedLiteralName of the named event this element throws to its own instance. On arrival the event is recorded and delivered to the waiting named-event catch and boundary events of the same instance, exactly like POST /v1/instances/:id/events; other instances are not affected. In BPMN it comes from the stateway:eventCorrelation extension or, when that is absent, from the name of the message referenced by a native message event definition (messageRef). The payload is the variables listed in variableFilter, and the published notification carries the eventName.
variableFilterBPMN·JSONSupportedVariable nameNames of variables to include in the event payload.
dataInputAssociationBPMNSupportedLiteralResolved names/IDs of the element's data input associations.
activityContractBPMNSupportedLiteralTyped input/output specification (data inputs/outputs and input/output sets).
intermediateCatchEventSupportedtimerTypeBPMN·JSONSupportedLiteralTimer kind: date, duration, or cycle.
timerExpressionBPMN·JSONSupportedLiteralISO 8601 timer expression.
eventNameBPMN·JSONSupportedLiteralName of the named event this catch event waits for. In BPMN it comes from the stateway:eventCorrelation extension or, when that is absent, from the name of the message referenced by a native message event definition (messageRef); the extension takes precedence.
signalRefBPMN·JSONSupportedLiteralName of the signal this catch event waits for, matched against POST /events/signal/:signal_name.
ioMappingBPMN·JSONSupportedinputs[].source: Expression (variables, instance, session, now); inputs[].target: Variable name; outputs[].source: Expression (event, instance, now); outputs[].target: Variable nameMaps the delivered event payload into process variables via outputs. inputs is accepted for schema consistency with other task types but has no effect here.

Connections​

ConnectionStatusFieldFormatField statusVariable roleDescription
sequenceFlowSupportedconditionExpressionBPMN·JSONSupportedExpression (variables, instance, session, now)Boolean expression controlling whether the flow is taken.

Data constructs​

ConstructStatusFieldFormatField statusVariable roleDescription
itemDefinitionSupportedschemaBPMNSupportedLiteralJSON Schema typing for the item definition.
dataObjectSupported————In-process data object referenced within the process scope.
dataStoreSupportedstoreConfigBPMNSupportedLiteralBacking-store configuration for the data store.
dataStoreReferenceSupportedstoreAccessBPMNSupportedkeyExpression: Expression (variables, instance, now); stateFilter: Expression (variables, instance, now)Access mode for the referenced data store.

Type references​

structureRefStatusKindDescription
xsd:stringSupportedprimitiveText value.
xsd:decimalSupportedprimitiveDecimal number.
xsd:intSupportedprimitiveInteger number.
xsd:integerSupportedprimitiveInteger number.
xsd:booleanSupportedprimitiveTrue/false value.
xsd:dateTimeSupportedprimitiveDate and time value.
xsd:dateSupportedprimitiveDate value.
xsd:timeSupportedprimitiveTime value.
xsd:base64BinarySupportedprimitiveBase64-encoded binary data stored inline in the variable.
stateway:fileSupportedfileManaged reference to an uploaded file (via the Files API).
stateway:inlineSupported—Custom JSON Schema defined inline in the model.
stateway:catalog/*Recognized, not executedreferenceShared type catalogs — declaring one is rejected when the definition is deployed.