diff --git a/ROADMAP.md b/ROADMAP.md index 6142d8798..f9e0d33a0 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # Elsa Roadmap -Last refreshed: 2026-08-12 +Last refreshed: 2026-08-19 This roadmap is a product direction document, not a fixed release calendar. Elsa is developed through a mix of core maintainer work, customer-funded work, and community contributions, so sequencing can change when real-world demand changes. The intent is stable: make Elsa the most productive, dependable, and extensible workflow platform for the .NET ecosystem. @@ -63,6 +63,7 @@ Legend: `[x]` shipped foundation, `[~]` partially shipped or needs productizatio - [~] Studio user and role administration (merged to `release/3.8.0`; release finalization and operational verification pending) - [~] Studio diagnostics pages for structured logs, console logs, and OpenTelemetry - [~] Studio alterations module +- [ ] User Tasks and human-workflow workbench - [ ] Designer reliability/regression hardening - [ ] Input validation and activity version visibility - [ ] Async dispatch/run UX @@ -91,14 +92,14 @@ Legend: `[x]` shipped foundation, `[~]` partially shipped or needs productizatio - [ ] Azure Functions / worker-service hosting guidance - [ ] WatchFileSystem and command-line automation activities - [ ] Data pipeline / ETL primitives -- [ ] BPMN interoperability +- [~] BPMN execution and interchange foundations (main-only; Studio authoring, conformance breadth, and release productization remain) ## Current Foundations These are already present in the codebase and should be treated as foundations for the next roadmap slices: - Multi-targeting for `net8.0`, `net9.0`, and `net10.0` in [`src/Directory.Build.props`](src/Directory.Build.props). -- The `3.7.0` release train shipped across [Core](https://github.com/elsa-workflows/elsa-core/releases/tag/3.7.0), [Studio](https://github.com/elsa-workflows/elsa-studio/releases/tag/3.7.0), and [Extensions](https://github.com/elsa-workflows/elsa-extensions/releases/tag/3.7.0) in May 2026, promoting shell integration, Studio authentication, workflow diagnostics, and extension package metadata into released foundations. The [Core](https://github.com/elsa-workflows/elsa-core/releases/tag/3.8.0-preview1) and [Studio](https://github.com/elsa-workflows/elsa-studio/releases/tag/3.8.0-preview1) `3.8.0-preview1` releases on June 1, 2026 then added the next preview slice of graceful shutdown, richer diagnostics, secrets, and newer designer surfaces. The `3.7.1` patch train then shipped across [Core](https://github.com/elsa-workflows/elsa-core/releases/tag/3.7.1), [Studio](https://github.com/elsa-workflows/elsa-studio/releases/tag/3.7.1), and [Extensions](https://github.com/elsa-workflows/elsa-extensions/releases/tag/3.7.1) on June 21, 2026, tightening Azure Service Bus startup reliability, aligning Studio with the released Core API client, and hardening Quartz durability and endpoint-name pressure in Extensions. +- The `3.7.0` release train shipped across [Core](https://github.com/elsa-workflows/elsa-core/releases/tag/3.7.0), [Studio](https://github.com/elsa-workflows/elsa-studio/releases/tag/3.7.0), and [Extensions](https://github.com/elsa-workflows/elsa-extensions/releases/tag/3.7.0) in May 2026, promoting shell integration, Studio authentication, workflow diagnostics, and extension package metadata into released foundations. The [Core](https://github.com/elsa-workflows/elsa-core/releases/tag/3.8.0-preview1) and [Studio](https://github.com/elsa-workflows/elsa-studio/releases/tag/3.8.0-preview1) `3.8.0-preview1` releases on June 1, 2026 then added the next preview slice of graceful shutdown, richer diagnostics, secrets, and newer designer surfaces. The `3.7.1` patch train then shipped across [Core](https://github.com/elsa-workflows/elsa-core/releases/tag/3.7.1), [Studio](https://github.com/elsa-workflows/elsa-studio/releases/tag/3.7.1), and [Extensions](https://github.com/elsa-workflows/elsa-extensions/releases/tag/3.7.1) on June 21, 2026, tightening Azure Service Bus startup reliability, aligning Studio with the released Core API client, and hardening Quartz durability and endpoint-name pressure in Extensions. Core [3.8.0-rc1](https://github.com/elsa-workflows/elsa-core/releases/tag/3.8.0-rc1) followed on August 17, consolidating the production-operability, security, secrets, SSO, observability, and Weaver foundation work ahead of the final 3.8 release. - Modular core packages under [`src/modules`](src/modules), with code-first features and CShells shell features documented in [`doc/wiki/module-system.md`](doc/wiki/module-system.md). - A modular server host using CShells and Nuplane package loading in [`src/apps/Elsa.ModularServer.Web`](src/apps/Elsa.ModularServer.Web). - Runtime admin, quiescence, drain, and interrupted recovery infrastructure in [`Elsa.Workflows.Runtime`](src/modules/Elsa.Workflows.Runtime) and runtime admin endpoints in [`Elsa.Workflows.Api`](src/modules/Elsa.Workflows.Api/Endpoints/RuntimeAdmin). @@ -111,12 +112,13 @@ These are already present in the codebase and should be treated as foundations f - State machine core activity support in [`Elsa.Workflows.Core/Activities/StateMachine`](src/modules/Elsa.Workflows.Core/Activities/StateMachine). - Core `main` now has extensible output-converter contracts, registration, definition/runtime validation, privacy-safe conversion faults, and an authorized descriptor API through [PR #7902](https://github.com/elsa-workflows/elsa-core/pull/7902). Studio `main` consumes that API with unavailable-state handling, converter selection, and schema-driven settings editing in [elsa-studio#922](https://github.com/elsa-workflows/elsa-studio/pull/922). Converters are opt-in at a variable or workflow-output binding, so the activity output and its diagnostics remain native. This is a partially shipped foundation: release packaging and a maintained extension converter catalog are still follow-up work ([#7770](https://github.com/elsa-workflows/elsa-core/issues/7770), [elsa-extensions#164](https://github.com/elsa-workflows/elsa-extensions/issues/164)). - ElsaScript DSL and blob storage integration in [`Elsa.Dsl.ElsaScript`](src/modules/Elsa.Dsl.ElsaScript) and [`Elsa.WorkflowProviders.BlobStorage.ElsaScript`](src/modules/Elsa.WorkflowProviders.BlobStorage.ElsaScript). +- Core `main` now contains `Elsa.Bpmn` and `Elsa.Bpmn.Interchange`: a BPMN process container, persisted execution state, activity bindings, message/signal/timer triggers, and analyze/import/export endpoints ([#7938](https://github.com/elsa-workflows/elsa-core/pull/7938), [#7945](https://github.com/elsa-workflows/elsa-core/pull/7945), [#7946](https://github.com/elsa-workflows/elsa-core/pull/7946), [#7954](https://github.com/elsa-workflows/elsa-core/pull/7954), [#7956](https://github.com/elsa-workflows/elsa-core/pull/7956)). This is a main-only foundation: publish-time validation, compensation/transaction conformance coverage, Studio rendering/authoring, and release packaging remain productization work ([#7958](https://github.com/elsa-workflows/elsa-core/pull/7958), [#7960](https://github.com/elsa-workflows/elsa-core/pull/7960), [#7909](https://github.com/elsa-workflows/elsa-core/issues/7909)). - Activity unit testing helpers and guidance in [`src/common/Elsa.Testing.Shared`](src/common/Elsa.Testing.Shared) and [`doc/qa/test-guidelines.md`](doc/qa/test-guidelines.md). - Label infrastructure now spans Core and Studio: [`Elsa.Labels`](src/modules/Elsa.Labels) exposes label and workflow-label endpoints, and [`Elsa.Studio.Labels`](https://github.com/elsa-workflows/elsa-studio/tree/main/src/modules/Elsa.Studio.Labels) adds label management pages plus workflow-definition label editing. Folder views, broader metadata search, and richer organization UX remain roadmap work. - Elsa Studio is already a modular Blazor product shell with workflow authoring, instance browsing, designer modules, diagnostics, authentication, localization, branding, custom elements, and early React wrapper work in [elsa-workflows/elsa-studio](https://github.com/elsa-workflows/elsa-studio). - Studio `3.7.0` shipped the modern authentication framework, Elsa Identity and OIDC modules, activity call-stack visualization, incident count badges, pending-instance filtering, and custom theme/DataPanel extensibility. - Studio `3.8.0-preview1` shipped the server logs module, console logs module, structured-log storage diagnostics, the OpenTelemetry diagnostics page from [elsa-studio#834](https://github.com/elsa-workflows/elsa-studio/pull/834), sequence and state-machine designer foundations, the secrets module, and the alterations designer. -- The unreleased `release/3.8.0` line now contains a protocol-neutral external-authentication broker with configuration- or database-backed OIDC connections, PKCE, secret handling, identity linking/JIT users, session management, persistence, and tests ([#7889](https://github.com/elsa-workflows/elsa-core/pull/7889)). Its Studio companions add Settings-based SSO connection management and a generic login-method UI ([elsa-studio#920](https://github.com/elsa-workflows/elsa-studio/pull/920)), configurable login themes ([elsa-studio#921](https://github.com/elsa-workflows/elsa-studio/pull/921)), and the all-host feature-stack integration ([elsa-studio#925](https://github.com/elsa-workflows/elsa-studio/pull/925) through [elsa-studio#931](https://github.com/elsa-workflows/elsa-studio/pull/931)). This is a partially shipped foundation: the release line still needs final solution-level verification, release packaging, and operational documentation. +- Core `3.8.0-rc1` contains a protocol-neutral external-authentication broker with configuration- or database-backed OIDC connections, PKCE, secret handling, identity linking/JIT users, session management, persistence, and tests ([#7889](https://github.com/elsa-workflows/elsa-core/pull/7889)). Its Studio companions add Settings-based SSO connection management and a generic login-method UI ([elsa-studio#920](https://github.com/elsa-workflows/elsa-studio/pull/920)), configurable login themes ([elsa-studio#921](https://github.com/elsa-workflows/elsa-studio/pull/921)), and the all-host feature-stack integration ([elsa-studio#925](https://github.com/elsa-workflows/elsa-studio/pull/925) through [elsa-studio#931](https://github.com/elsa-workflows/elsa-studio/pull/931)). This remains a partially shipped foundation until the final cross-repository release, operational verification, and documentation are complete. - The same unreleased Studio line now has permission-aware user and role list, create, edit, and delete flows; role assignments; permission-token editing; tenant-scope display; and Server/WASM API-client integration ([elsa-studio#936](https://github.com/elsa-workflows/elsa-studio/pull/936)). This is a partially shipped identity-administration foundation, not workflow-authoring governance: release validation and operational documentation remain, and tenant/role-based activity visibility is still roadmap work. - Elsa Extensions is an active modular integration repository with 70+ module projects in [elsa-workflows/elsa-extensions](https://github.com/elsa-workflows/elsa-extensions), targeting `net8.0`, `net9.0`, and `net10.0`. - Extensions already provide broad integration foundations: Connections, Secrets, Agents, OpenAPI, SQL/CSV/data tooling, messaging, schedulers, cloud storage, logging, webhooks, persistence providers, LDAP, and external system activities. @@ -159,6 +161,7 @@ High-value items: - Make workflow progress visible to application users: a current-state/step API, timeline model, and embeddable progress component. This responds to [discussion #6012](https://github.com/elsa-workflows/elsa-core/discussions/6012) and should reuse execution logs, activity records, call-stack tracking, and real-time workflow updates. - Finish the state machine product surface. The core activity exists, but [#5085](https://github.com/elsa-workflows/elsa-core/issues/5085) should be closed only when JSON serialization, Studio authoring, docs, and examples make state machines approachable. - Build first-class workflow testing and debugging: test runners for full workflows, breakpoint-like inspection, replay from execution logs where feasible, better failed-activity retry flows, child/descendant workflow instance navigation, and Studio affordances for fault investigation. The Studio `3.7.0` activity call-stack viewer is a useful foundation, but requests for child workflow visibility ([elsa-studio#152](https://github.com/elsa-workflows/elsa-studio/issues/152)) and breakpoint debugging ([elsa-studio discussion #662](https://github.com/elsa-workflows/elsa-studio/discussions/662)) still need a coherent debugging experience. +- Turn the paired User Tasks implementation into a released human-workflow feature. The open Core implementation covers durable, identity-neutral workflow tasks, invitations/guest sessions, authorization, persistence, audit, and delivery reliability ([#7955](https://github.com/elsa-workflows/elsa-core/pull/7955)); the open Studio companion supplies the queue, task/manager workbench, guest completion page, and polling fallback ([elsa-studio#941](https://github.com/elsa-workflows/elsa-studio/pull/941)). It remains a roadmap candidate until both reviews land and the cross-repository slice is released. - Improve Studio authoring fundamentals: input validation ([elsa-studio#15](https://github.com/elsa-workflows/elsa-studio/issues/15)), activity version indicators ([elsa-studio#284](https://github.com/elsa-workflows/elsa-studio/issues/284)), async `/dispatch` instead of blocking `/execute` where appropriate ([elsa-studio#811](https://github.com/elsa-workflows/elsa-studio/issues/811)), designer image export ([elsa-studio#585](https://github.com/elsa-workflows/elsa-studio/issues/585)), and expression evaluation controls ([elsa-studio#643](https://github.com/elsa-workflows/elsa-studio/issues/643)). - Productize activity output conversion across Core, Studio, and Extensions. Core now supplies opt-in, typed, server-discoverable converter contracts, while Studio `main` provides selection and schema-driven settings editing ([#7902](https://github.com/elsa-workflows/elsa-core/pull/7902), [elsa-studio#922](https://github.com/elsa-workflows/elsa-studio/pull/922)). Release the cross-repository slice and add a small, maintained extension converter catalog instead of workflow-specific wrapper activities ([#7770](https://github.com/elsa-workflows/elsa-core/issues/7770), [elsa-extensions#164](https://github.com/elsa-workflows/elsa-extensions/issues/164)). - Improve designer extensibility, embedding, and white-labeling: custom activity property editors, custom list actions, embeddable designer/viewer recipes, custom elements, React wrapper direction, auth modes, base-path hosting, branding/theme, and clear Blazor/WASM/Server guidance. Community demand appears in [#4743](https://github.com/elsa-workflows/elsa-core/issues/4743), [#6685](https://github.com/elsa-workflows/elsa-core/issues/6685), [discussion #7246](https://github.com/elsa-workflows/elsa-core/discussions/7246), [elsa-studio#137](https://github.com/elsa-workflows/elsa-studio/issues/137), and [elsa-studio discussion #665](https://github.com/elsa-workflows/elsa-studio/discussions/665). @@ -190,7 +193,7 @@ High-value items: - Resolve the MassTransit strategy after the v9 licensing change. [discussion #6583](https://github.com/elsa-workflows/elsa-core/discussions/6583) raises a practical ecosystem risk; Elsa should either provide a clean split or reduce dependency weight through a smaller messaging abstraction. - Clarify Azure Functions and worker-service hosting patterns. [discussion #4707](https://github.com/elsa-workflows/elsa-core/discussions/4707) and [discussion #7420](https://github.com/elsa-workflows/elsa-core/discussions/7420) show demand for non-traditional hosts, Windows services, and serverless-adjacent deployments. - Add data movement and streaming workflow primitives. [#4809](https://github.com/elsa-workflows/elsa-core/issues/4809) frames this as datasets, linked services, transforms, and stream-oriented processing inspired by Azure Data Factory and stream analytics. -- Treat BPMN as a strategic Elsa 4.0 candidate. A maintainer now says BPMN support is coming to Elsa 4.0 and has shared an early alpha screenshot ([#39 comment](https://github.com/elsa-workflows/elsa-core/issues/39#issuecomment-5085835900)). No public implementation branch or PR is available yet, so scope, interoperability commitments, and delivery sequencing remain roadmap work rather than a shipped promise. +- Productize the new BPMN foundation rather than treating BPMN as a distant, unimplemented candidate. Core `main` now executes and exchanges BPMN processes; the remaining work is publish-time validation, compensation/transaction and event-subprocess conformance, release packaging, and the Studio canvas/binding/inspection experience described in [#7909](https://github.com/elsa-workflows/elsa-core/issues/7909). Keep interoperability commitments explicit until the supported BPMN 2.0 subset has public conformance evidence. Recommended success measures: @@ -265,6 +268,7 @@ Near term: 3. Complete the diagnostics trilogy: release and operationalize the Core OpenTelemetry backend, connect it to the Studio OpenTelemetry page, document collector setup, and correlate traces/logs/metrics with workflow incidents. 4. Make workflow authoring easier to manage at scale: organization, search, progress/timeline APIs, testing docs, output-converter release/extension completion, and user preference/table-state persistence. 5. Reconcile shipped extension foundations with roadmap status: package manifests, Connections/Secrets, OpenAPI, Agents, schedulers, messaging, and integration maturity labels. +6. Productize the BPMN runtime/interchange foundation: complete validation and conformance work, define the supported subset, package it, and start the Studio rendering/authoring slice. Mid term: @@ -278,8 +282,7 @@ Longer term: 1. Native workflow-aware background execution and actor-runtime abstraction. 2. Data pipeline/stream processing primitives. -3. BPMN for Elsa 4.0, with public scope and implementation evidence still to be established. -4. AI-assisted authoring and workflow MCP tools. +3. AI-assisted authoring and workflow MCP tools. ## Maintainership Recommendations