meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
releases:2026-05-23 [2026/05/23 10:10] – Add 23 May 2026 release notes claudereleases:2026-05-23 [2026/05/23 12:10] (current) – Add Workflow Timer Node (K93) claude
Line 67: Line 67:
  
 SP-01: Signup attempts are now rate-limited per IP address. More than 10 signup attempts from the same IP within a 60-minute window are blocked. Disposable email domains (30 known providers) are blocked at signup. Follows the same pattern as the existing login rate limiter. No friction added for legitimate users. SP-01: Signup attempts are now rate-limited per IP address. More than 10 signup attempts from the same IP within a 60-minute window are blocked. Disposable email domains (30 known providers) are blocked at signup. Follows the same pattern as the existing login rate limiter. No friction added for legitimate users.
 +===== BPMN 2.0 Interoperability =====
 +
 +The Workflow Designer gains four new capabilities for working with the BPMN 2.0 standard (K92).
 +
 +**Phase A - BPMN Export**
 +
 +Any workflow template can be downloaded as a valid BPMN 2.0 XML file (''.bpmn'') directly from the template list row or the canvas editor toolbar. The exported file includes BPMN Diagram Interchange (DI) position data so diagrams render correctly in Camunda, Bizagi, draw.io, and other BPMN tools.
 +
 +Node type mapping: Start ? ''startEvent'', End ? ''endEvent'', Step/Assign/Checklist ? ''userTask'', Service ? ''serviceTask'', Decision ? ''exclusiveGateway'', Fork ? ''parallelGateway'' (Diverging), Join ? ''parallelGateway'' (Converging). Assign node lanes are emitted as a BPMN ''laneSet''.
 +
 +**Phase B - BPMN Import**
 +
 +Upload any ''.bpmn'' or ''.xml'' from a BPMN 2.0 tool via the Import BPMN form on the designer list page. The importer uses a namespace-aware DOMXPath parser with XXE protection (external entity loading disabled, LIBXML_NONET, 2 MB cap). Unsupported elements are skipped with warnings. DI position data is applied to the LEAST canvas. The original BPMN source is stored on the template for round-trip fidelity. Every import is audited in the new ''BPMNImportLog'' table.
 +
 +**Phase C - Workflow Simulation**
 +
 +A "Simulate" button on the canvas editor toolbar enters a read-only step-through mode without a server round-trip. Active node is highlighted; visited nodes are marked as a trail. At Decision or Fork nodes a prompt asks which branch to follow. Simulation ends at the End node with a "Simulation complete" message. Canvas editing is restored on exit.
 +
 +**Phase D - AI Workflow Generator**
 +
 +Plain-English prompt ? ready-to-edit workflow canvas. Admin describes a process in the AI Workflow Generator form on the designer list page. The platform calls Claude Sonnet (''claude-sonnet-4-6''), which returns a JSON workflow definition (nodes, edges, name). A new Draft WorkflowTemplate is created and the admin is redirected to the canvas editor. Falls back gracefully if the AI key is not configured.
 +
 +Schema: ''txtWT_BPMN_Source'' (MEDIUMTEXT) added to ''WorkflowTemplate''; ''BPMNImportLog'' audit table created.
 +
 +===== Workflow Timer Node =====
 +
 +New **Timer** node type in the Workflow Designer (K93). A Timer node pauses a workflow instance for a configured number of minutes and then advances it automatically - no human action required.
 +
 +**Configuration:** set the duration in minutes (minimum 1) and optionally an escalation node to route to when the timer fires instead of following the normal outgoing edge.
 +
 +**Runtime behaviour:**
 +
 +  - Engine arrives at a Timer node ? inserts a ''WorkflowInstanceEvent'' row (status ''Pending'', trigger datetime = now + N minutes)
 +  - Instance waits
 +  - ''workflow_engine'' cron tick ? ''wfe_ProcessTimerEvents()'' marks due events as ''Fired''
 +  - Next engine tick ? instance detects ''Fired'' status and advances (via escalation path if set)
 +
 +No new cron job - timer firing is integrated into the existing ''workflow_engine'' job (runs every minute).
 +
 +**Use cases:** follow-up reminders after a step, automatic escalation if no action is taken within a time limit, cooling-off periods between steps.
 +
 +Schema: ''WorkflowInstanceEvent'' table with ''strWIE_Status'' (Pending / Fired), ''dteWIE_Trigger_DateTime'', and ''dteWIE_Fired_DateTime''.