Modules¶
FlowDrop is composed of focused, loosely-coupled Drupal modules. Each module handles a distinct responsibility — from defining workflow structures to executing them, managing interactive sessions, and integrating with external platforms.
This section provides per-module documentation covering configuration, practical tips, and developer API reference.
Which Modules Do I Need?¶
Use this table to decide which optional modules to enable based on what you want to do. The core modules (flowdrop, flowdrop_workflow, flowdrop_node_processor, flowdrop_runtime) are always required.
| I want to... | Enable these modules | Install command |
|---|---|---|
| Run workflows on entity create/update/delete | flowdrop_trigger |
drush en flowdrop_trigger |
| Run workflows on a cron schedule | flowdrop_trigger |
drush en flowdrop_trigger |
| Pause workflows for user confirmation or input | flowdrop_interrupt, flowdrop_stategraph |
drush en flowdrop_interrupt flowdrop_stategraph |
| Build workflows with loops | flowdrop_stategraph |
drush en flowdrop_stategraph |
| Test workflows interactively (chat UI) | flowdrop_playground |
drush en flowdrop_playground |
| Call one workflow from another | flowdrop_workflow_executor |
drush en flowdrop_workflow_executor |
| Expose workflows to external platforms | flowdrop_orchestration_connector |
drush en flowdrop_orchestration_connector |
| Use AI-powered nodes | ai, flowdrop_ai_provider |
See Installation |
Tip
Dependencies are handled automatically — enabling flowdrop_playground will also enable flowdrop_stategraph and its dependencies.
Module Overview¶
| Module | Description | Status |
|---|---|---|
| flowdrop | Core module providing the NodeProcessor plugin system, entity serializer, and admin dashboard | Stable |
| flowdrop_node_category | Config entity for organizing workflow nodes into categories | Stable |
| flowdrop_node_type | Configurable node type definitions with plugin integration | Stable |
| flowdrop_node_processor | Node processor implementations, data mapping, and JSON schema validation | Stable |
| flowdrop_workflow | Workflow entity management and visual editor integration | Stable |
| flowdrop_job | Content entity for individual workflow node execution records | Stable |
| flowdrop_pipeline | Execution pipeline orchestration and job generation | Stable |
| flowdrop_orchestration | Orchestrator plugin system and contracts | Stable |
| flowdrop_runtime | Execution engine with sync/async modes, real-time monitoring, and snapshots | Stable |
| flowdrop_stategraph | Stateful graph execution with checkpointing, reducers, and loops | Stable |
| flowdrop_session | Session and message management for interactive workflow execution | Stable |
| flowdrop_interrupt | Human-in-loop interrupt system for workflow pauses and user input | Stable |
| flowdrop_playground | Interactive chat-based playground for testing workflows | Stable |
| flowdrop_trigger | Event-driven workflow triggering (entity CRUD, user events, cron) | Stable |
| flowdrop_orchestration_connector | Exposes workflows to external automation platforms | Stable |
| flowdrop_workflow_executor | Execute workflows from within other workflows | Stable |
| flowdrop_ui_components | Reusable Single Directory Components for the FlowDrop admin UI | Stable |
Dependency Graph¶
The arrows indicate dependency direction: A --> B means "B depends on A". Only direct dependencies are shown.
graph TD
%% Base modules (no flowdrop dependencies)
FD_UI_COMP[flowdrop_ui_components]
FD_JOB[flowdrop_job]
%% Main module
FD_UI_COMP --> FD[flowdrop]
%% Core modules
FD --> FD_ORCH[flowdrop_orchestration]
FD --> FD_NODE_CAT[flowdrop_node_category]
FD_NODE_CAT --> FD_NODE_TYPE[flowdrop_node_type]
%% Entity modules
FD_NODE_TYPE --> FD_WORKFLOW[flowdrop_workflow]
%% Pipeline module
FD_JOB --> FD_PIPELINE[flowdrop_pipeline]
FD_NODE_TYPE --> FD_PIPELINE
FD_WORKFLOW --> FD_PIPELINE
%% Execution foundation
FD_ORCH --> FD_SESSION[flowdrop_session]
FD_PIPELINE --> FD_SESSION
FD_ORCH --> FD_RUNTIME[flowdrop_runtime]
FD_PIPELINE --> FD_RUNTIME
%% Execution layer
FD_SESSION --> FD_INTERRUPT[flowdrop_interrupt]
FD_RUNTIME --> FD_INTERRUPT
%% Feature modules
FD_ORCH --> FD_TRIGGER[flowdrop_trigger]
FD_RUNTIME --> FD_TRIGGER
FD_ORCH --> FD_STATEGRAPH[flowdrop_stategraph]
FD_RUNTIME --> FD_STATEGRAPH
FD_STATEGRAPH --> FD_PLAYGROUND[flowdrop_playground]
FD_SESSION --> FD_WF_EXEC[flowdrop_workflow_executor]
%% Integration modules
FD_ORCH --> FD_ORCH_CONN[flowdrop_orchestration_connector]
FD_TRIGGER --> FD_ORCH_CONN
%% Styling
classDef baseModule fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
classDef coreModule fill:#e1f5fe,stroke:#01579b,stroke-width:2px
classDef uiModule fill:#e8f577,stroke:#1b5e20,stroke-width:2px
classDef executionModule fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef featureModule fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef integrationModule fill:#efefef,stroke:#2e2e2e,stroke-width:2px
class FD,FD_NODE_CAT,FD_WORKFLOW baseModule
class FD_NODE_TYPE,FD_ORCH coreModule
class FD_UI_COMP uiModule
class FD_PIPELINE,FD_JOB,FD_RUNTIME,FD_INTERRUPT,FD_SESSION executionModule
class FD_ORCH_CONN integrationModule
class FD_TRIGGER,FD_STATEGRAPH,FD_PLAYGROUND,FD_WF_EXEC featureModule
Legend¶
| Color | Category | Description |
|---|---|---|
| Green | Base | Foundation modules with minimal dependencies |
| Light blue | Core | Central modules defining key abstractions |
| Yellow-green | UI | User interface modules |
| Orange | Execution | Workflow execution and runtime modules |
| Gray | Integration | External platform connectors |
| Blue | Feature | Optional feature modules |