Problem

ECA stores a condition on a successor: "go from A to B if C passes". A successor carries at most one condition, so `A -> C1 -> C2 -> B` has no direct representation. Today the converter rejects it on save: "Two conditions in a row are not allowed" (`src/WorkflowConverter.php:308`).

The Workflow Modeler (`drupal/modeler`) solves this by inserting a pass-through gateway between the two conditions (`ui/src/hooks/useQuickAdd.ts`). It does so for every model owner, not only ECA, and treats it as a hard invariant that no owner can turn off (`ui/src/utils/constraintValidation.ts`).

An attempt to do the same here (`b4afea8`, generated gateway `flowdrop_chain_`, hidden again on load) was reverted in `4f49052`: it puts ECA-specific graph rules into a modeler that serves any Modeler API owner.

Proposal

Keep rejecting conditions in a row for now, with a clear error. Ask Modeler API to let a model owner declare the policy (`forbid`, `allow`, or `bridge` with a named component) in `modelConstraints()`, and follow that declaration here once it exists.

Expected

- Until then: drawing C1 -> C2 shows the error above, nothing is saved.
- Afterwards: the converter reads the owner's policy instead of hardcoding it; ECA opts into `bridge`.

Notes

- Upstream issue in Modeler API: to be filed and linked here.

Comments

d34dman created an issue. See original summary.

d34dman’s picture

Issue summary: View changes
d34dman’s picture

Issue summary: View changes