eca_starterkit
This recipe provides a quick-start setup for ECA
(Events - Conditions - Actions) together with the new
Workflow Modeler — a modern,
React Flow-based visual editor for building ECA models by drag-and-drop.
Why use this recipe?
Setting up ECA manually means choosing which sub-modules to enable, installing
the modeler stack, and figuring out how the pieces fit together. The Starterkit
does all of that in a single command:
- Installs the recommended set of 20 modules covering the full ECA
ecosystem, so you can start building workflows right away without going back
to enable modules you missed. - Sets up the new Workflow Modeler (including the Modeler API), giving you
a visual canvas where you can drag, drop, and connect events, conditions, and
actions — no YAML editing required. - Ships a working demo model that customises the user registration form,
so you can open the modeler immediately and see a real ECA model in action
rather than staring at an empty screen.
What gets installed
ECA core sub-modules
Module Purpose eca_access Access control events and conditions eca_base Foundation actions (tokens, lists, scalars, logging, etc.) eca_cache Cache invalidation and rebuilding eca_config Configuration entity operations eca_content Content entity CRUD events and actions eca_endpoint Custom route / endpoint handling eca_file File and media operations eca_form Form build, alter, validate, and submit handling eca_log Logging actions eca_menu Menu link events and actions eca_misc Miscellaneous utilities eca_queue Queue processing eca_render Render and display operations eca_ui Makes ECA a model owner for the Modeler API eca_user User-related events and actions eca_views Views integrationExtension modules
Module Purpose eca_tamper Tamper plugins as ECA actions (explode, string length, find/replace, etc.) eca_tool Events and actions for the Drupal Tool APIModeler stack
Module Purpose modeler_api Framework that connects model owners (ECA) with visual modelers modeler The Workflow Modeler — a React Flow canvas with drag-and-drop, undo/redo, search, dark mode, execution replay, live testing, and export to recipes, archives, JSON, or SVGIn-place customization
One of the standout features enabled by this recipe is in-place
customization — the ability to customize any Drupal form directly on the
form page itself, without opening the modeler or writing code.
How it works
The eca_form module ships a set of form templates: reusable ECA patterns
with configurable placeholders. When an authorized user (with the
modeler api edit eca permission) visits a page containing a form, the template
system activates:
- Focus a form field — a lightning-bolt icon appears next to it.
- Click the icon — a popup lists all available customizations for that
field type (e.g., "Set label", "Set max length", "Hide this field"). - Configure and save — fill in the values, check "Apply this template",
and click Save. The system creates a fully functional ECA model behind the
scenes — no modeler interaction needed.
Returning to the same form later shows a checkmark on templates that were
already applied, with the previous values pre-populated so you can adjust them.
Available form templates
Template What it does Set label Change a field's label Set default value Pre-fill a field with a default Set max length Validate that a text field does not exceed a character limit Hide this field Completely hide a single field Hide fields when selected Make fields invisible when a checkbox is checked Show fields when selected Make fields visible when a checkbox is checked Disable this field Disable a single field Enable this field Enable a previously disabled field Require this field Make an optional field required Make field optional Make a required field optional Disable fields for certain value Disable fields when a select dropdown matches a value Set field value to selected index Copy a select dropdown's selection into another fieldThese templates work on any Drupal form, not just the forms you build
yourself. This makes in-place customization a powerful tool for tailoring
admin forms, contrib module forms, and user-facing forms alike.
Demo model: User Registration Form
The recipe ships a ready-to-use ECA model (form_user_register_form) that was
built entirely through in-place customization on the user registration form. It
demonstrates three common form-manipulation patterns:
- Relabelling fields — Changes the "Email address" label to "E-Mail" and
the "Username" label to "Name". - Conditionally hiding fields — Hides the notification, preferred language,
and timezone fields when the "Administrator" role checkbox is selected (using
a loop over a list of field names). - Custom validation — Rejects the name field if its length exceeds 10
characters.
Open this model in the Workflow Modeler after installation to see the resulting
ECA model, or visit /user/register and click into a form field to try
in-place customization yourself.
Requirements
- Drupal 11.3 or later
- ECA 3.1 or later
Installation
# Require the recipe and its dependencies composer require drupal/eca_starterkit # Apply the recipe with Drush (version 13 or later) drush recipe ../recipes/eca_starterkit # Or apply without Drush cd web && php core/scripts/drupal recipe ../recipes/eca_starterkitAfter applying the recipe, navigate to Administration > Configuration >
Workflow > ECA to see the installed model and open the Workflow Modeler.