Install
Works with Drupal: ^11.2Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
6.68 MB
MD5: b5c1dff0da0d1340e77d2c58961e9374
SHA-1: ef1f2a35dd8be956cf9d8d3c9bbbf893fb287e10
SHA-256: f84a6a593bf4e8b8d0764c2a097beb5b66f3e00885738562ab06edc5517dbfa0
Download zip
7.39 MB
MD5: aebdfb7fb8fe75019f6d8da652e36303
SHA-1: 03f7fbcaa156ab73bd1f03653514bb21347c11f1
SHA-256: 64c6ebb25bcd4d7cdaae7d0f14ebd74595c7f445081b6bf734f3aa0e3d2a8f25
Release notes
[1.3.0] - 2026-04-28
Added
- New
flowdrop_chatmodule (lifecycle: experimental): Chat backend for conversational workflow orchestration, supporting two processing modes:- Built-in LLM mode with
ChatLlmClient(Ollama, Anthropic),ChatServiceorchestration, andSystemPromptBuilderthat injects slim workflow state and node type definitions into system prompts. - Workflow-based mode that delegates chat handling to a FlowDrop workflow, with
GetNodeTypesandBuildSystemPromptnode processors and default chat processor workflows shipped as recipe content. - Chat API controller and routing with configurable endpoint config.
- Admin settings form for provider and mode configuration.
SystemPromptBuilder::nodeTypesJson()API for retrieving slim node type definitions from a node.- Unit tests for
ChatServiceandSystemPromptBuilder. - Note:
flowdrop_chatrequiresdrupal/flowdrop_ai_provider(currentlydev-1.0.x), which is not pulled automatically bycomposer require drupal/flowdrop. Install it separately:composer require drupal/flowdrop_ai_provider:dev-1.0.x@devbefore enabling this submodule. hook_uninstall()deletes all chat history memory records when the module is uninstalled.
- Built-in LLM mode with
FlowDropNodeTypeManagerInterface: New public service interface for the node type manager. FQCN aliases are registered forFlowDropNodeTypeManagerInterfaceand all threeflowdrop_chatservices (ChatServiceInterface,SystemPromptBuilderInterface,ChatLlmClientInterface), enabling$container->get(ServiceInterface::class)lookups alongside the existing string-ID approach.TextProcessornode: New node type for common text utilities, with documentation in the Text & Output reference.HtmlToMarkdownnode processor: Converts HTML input to Markdown, with unit test coverage.MarkdownExtractornode processor: Extracts structured data from Markdown content.MarkdownToHtmlnode processor: Converts Markdown input to HTML.- Tolerant parse mode for
json_to_data: New mode that recovers from partial or malformed JSON, improving robustness in LLM output pipelines. visual_typeandsupported_visual_typesexposed in node type API data, enabling richer frontend rendering hints.- Dashboard-layout library (#3583166): Replaces
fullscreen-layouton admin pages with a dedicated dashboard layout, removing the unintended white background. - Plugin dependency declarations on
flowdrop_node_typeconfig entities (#3583422): Config entities now declare the module dependencies of their executor plugins, so exported configuration installs cleanly on a fresh site. - Plugin-driven select for
memory_backend: Replaces the freeform textfield with a validated select populated from registered memory backends; prompt templates are validated on save. - Workflow description length limit: Enforces a 1000-character maximum on the workflow description field.
Changed
- Drupal-side JavaScript modernized: Pipeline monitor drops jQuery in favor of
core/once, and the remaining Drupal-side JS uses arrow functions and tidied JSDoc. - Frontend library bumped to
@flowdrop/flowdrop1.8.1.
Fixed
- Fixed
ChatService::getHistory()andclearHistory()operating on the wrong memory store in workflow processing mode (they now return early whenprocessing_modeisworkflow). - Fixed
memory_backendconfig defaulting tonullinstead of'entity'when unset. - Fixed
flowdrop_ui_componentsclobbering the persisted theme preference on initialization, which caused light/dark mode to flicker back to default on page load. - Fixed
TranslatableMarkupnot cast to string before display in the pipeline form, causing render errors on some labels and descriptions. - Fixed workflow API controllers swallowing HTTP exceptions instead of re-throwing them, masking 4xx/5xx responses with generic 500s.
- Fixed chat API not returning
workflowIdasconversationIdin the response payload. - Fixed toolbar icons not rendering under the Drupal Navigation module (#3583239): adds Navigation-module CSS selectors (
.toolbar-link--*,.toolbar-button--icon--*) and ahook_page_attachmentsthat attaches the toolbar library on every page (gated onadminister flowdrop), since Navigation does not invokehook_toolbar(). - Removed developer
consolestatements from Drupal-side JS components.
Security
- Workflow API hardening: Added ID conflict check on import, complexity limits on submitted workflows, and random IDs to prevent enumeration.
- Workflow list builder: Sanitize the
sortquery parameter to prevent injection of unintended sort columns. - Chat API rate limiting and observability: Flood control on chat endpoints, payload size limit, and audit logging of chat requests.
- Chat prompt-injection hardening:
- Sanitize non-JSON
workflowStatepayloads before injecting into the system prompt. - XML-encode chat history before injection.
- Remove client-supplied history and enforce a per-message length limit.
- Sanitize non-JSON
- Reduced error-message disclosure: Avoid exposing the configured model ID in chat error responses.
- Chat API
workflowStatesize limit: Array-typedworkflowStatepayloads now enforce the same complexity limits as the workflow API (max 500 nodes, 1000 edges), closing a DoS vector where the string-only size check could be bypassed by sending an array. - Workflow export documentation: Warn users that exported workflow configuration may contain sensitive values.