Releases: elsa-workflows/elsa-extensions
3.6.0
3.6.0 — Release Notes
Compare: 3.5.3...3.6.0
⚠️ Breaking Changes / Upgrade Notes
-
Repository rebranding & pervasive namespace changes: The repository has been rebranded from Elsa Integrations to Elsa Extensions. All packages shipped from this repo carry updated namespaces. Consumers must update their
usingstatements and package references accordingly:- All
EntityFrameworkCorenamespaces →EFCore(e.g.Elsa.EntityFrameworkCore→Elsa.EFCore). Elsa.ProtoActor.Core→Elsa.Actors.ProtoActor.- Persistence projects now include
Persistencein their namespaces. - ServiceBus projects now include
ServiceBusin their namespaces. - Storage projects now include
Storagein their namespaces. - Webhooks namespace now includes
Http. - Scripting namespace now includes
Scripting. - Scheduling namespace now includes
Scheduling. - The
Integrationssegment has been removed from all package/namespace names.
- All
-
Elsa.DevOps.GitHubpackage rename: The GitHub integration has been moved from theElsa.Integrations.GitHubnamespace/package toElsa.DevOps.GitHub. Update your package reference and allusingdirectives. (#51) -
Core EF Core projects removed from this repo: EF Core persistence projects (e.g. SQL Server, PostgreSQL, SQLite providers) previously housed here have been moved back to
elsa-core. Remove references to theelsa-extensionsbuilds of these packages and depend on the equivalent packages fromelsa-coreinstead. (#86) -
SQL Evaluator expression syntax changes (
Elsa.Sql): Hard-coded expression keys have been replaced with object-path navigation. Update any SQL expressions that use the old prefixes:Old expression New expression {{Variables.foo}}{{Variable.foo}}{{Workflow.Definition.Id}}{{Workflow.Identity.DefinitionId}}{{Workflow.Definition.Version.Id}}{{Workflow.Identity.Id}}{{Workflow.Definition.Version}}{{Workflow.Identity.Version}}{{Workflow.Instance.Id}}{{Activity.WorkflowExecutionContext.Id}}{{Correlation.Id}}{{Activity.WorkflowExecutionContext.CorrelationId}}New context prefixes
Activity.,Execution., andWorkflow.are now available for navigating nested properties, POCOs,ExpandoObject,IDictionary, arrays, lists, and JSON objects. (#87) -
Agents activity system refactored:
ConfiguredAgentActivityhas been renamed toAgentActivity;ConfigurationAgentActivityProviderhas been renamed toAgentActivityProvider. The code-first agent system and its related abstractions have been removed in favour of the new Microsoft Agent Framework–based approach. Update any direct references to these types. (#99, #107)
✨ New Features
SQL (Elsa.Sql)
- SQL Integration module: Ports the
Elsa.Sqlactivities fromelsa-coreinto this repo, including a fix for the upstream variable-retrieval bug and improvements to the SQL evaluator. (#38) - Object-property navigation in SQL expressions: Expressions can now dereference nested properties, array indices, and JSON fields directly using dot-path syntax. See the updated README for full examples. (#87)
HTTP (Elsa.Http.OpenApi)
-
OpenAPI documentation for HTTP workflow triggers: New
Elsa.Http.OpenApiextension auto-generates an OpenAPI 3.0 specification from published workflow HTTP trigger endpoints, with an interactive ReDoc UI served at/documentation.// Registration elsa.UseHttp(http => http.UseOpenApi()); // Middleware app.MapWorkflowOpenApi();
AI / Agents (Elsa.Agents)
- AI Copilot app-bar component: A new in-Studio AI Copilot panel lets users generate workflows from natural language prompts, with email integration and agent communication built in. (#70)
- Microsoft Agent Framework integration: Multi-agent workflows powered by the Microsoft Agent Framework; code-first agent definitions with strongly typed inputs/outputs. (#99)
- Service provider discovery endpoint: New
/ai/service-providersAPI endpoint exposes available AI service provider names; the Studio "edit service" panel now dynamically populates from this endpoint. (#60) - GitHub DevOps integration (
Elsa.DevOps.GitHub): GitHub workflow activities (create/delete/get comments, etc.) usingOctokit. (#47, #51)
Data Processing
- CSV module (
Elsa.Csv): NewReadCsvactivity reads and parses CSV data from strings, streams, or files. Supports configurable headers, delimiters, and strongly-typed record mapping. Registered viaCsvFeature. (#91) - IO module (
Elsa.IO): Ports the IO activity set fromelsa-core 3.5to this repo. (#74, #75, #76, #77)
Logging (Elsa.Logging)
- Modular logging framework: Introduces a
Logactivity for emitting structured log entries from within workflows, backed by pluggable sinks (console and Serilog included). Replaces the deprecatedWorkflowContextsmodule. (#83)
Scheduling (Elsa.Scheduling.Quartz)
- Clustering convenience API: New
QuartzFeature.ConfigureClusteringIdentity()method configures sensible defaults (instanceId = AUTO, scheduler nameElsaScheduler) for cluster-safe operation in multi-pod / Kubernetes deployments. (#110)
Azure Service Bus (Elsa.ServiceBus.AzureServiceBus)
- Custom client overloads for
UseAzureServiceBus: New overloads accept a pre-builtServiceBusClient, enabling token-credential–based auth (DefaultAzureCredential, managed identity, etc.) instead of being limited to connection strings. (#100)
Platform
.NET 10 (LTS)target framework: All library packages now multi-targetnet8.0,net9.0, andnet10.0.System.Linq.Asyncis conditionally excluded on .NET 10 where it is now part of the runtime. Existing .NET 8/9 consumers are unaffected. (#94)
🔧 Improvements
AI / Agents
IKernelFactoryextensibility: The Semantic KernelIKernelFactoryinterface is now public, allowing host applications to customise or replace theKernelinstance — useful for injecting MCP servers or other external tools. (#64)- Handlebars prompting in
AgentInvoker: Agent prompt rendering switched to Handlebars for richer template support and consistency with Elsa Studio. (#69) - External tool support via
ChatCompletion: The agent invocation path now callsChatCompletiondirectly (instead of an SK prompt function), enabling external tools such as MCP server plugins. (#64)
Scheduling / Quartz.NET
- Shared resilience module: Quartz job resilience migrated to the shared
Elsa.Resilience.Corepackage; database-specific transient exception detectors removed. (#104) - Idempotent job & trigger registration:
RegisterJobsTaskandQuartzWorkflowSchedulernow gracefully handleObjectAlreadyExistsException, preventing startup failures in concurrent multi-node deployments. (#110, #114) - SQLite clustering parameter:
UseEFCoreSQLite()extension now accepts auseClusteringparameter (defaults tofalse), consistent with the SqlServer/PostgreSQL/MySQL extensions. (#110)
Azure Service Bus
- Configuration validation:
UseAzureServiceBusnow throws a descriptive exception when the connection string or name is missing or unresolvable, rather than failing silently at runtime. (#114) - Factory delegate deduplication: Fixed an issue where calling
UseAzureServiceBusmore than once would concatenate factory delegates instead of replacing them, causing multipleServiceBusAdministrationClientinstances to be created. ([#114](https://github.com/elsa-workflows/elsa-extensi...
3.6.0 RC5
Full Changelog: 3.6.0-rc3...3.6.0-rc5
3.6.0 RC3
What's Changed
- Addresses Azure Service Bus and Quartz issues by @sfmskywalker in #114
Full Changelog: 3.6.0-rc2...3.6.0-rc3
3.6.0 RC2
Elsa Extensions 3.6.0-rc2 (from 3.6.0-rc1)
Compare: 3.6.0-rc1...3.6.0-rc2
🌟 Highlights
- Improved Quartz.NET clustering configuration with safer defaults and clearer APIs/documentation. (#110)
- Added
Elsa.Http.OpenApiproject to the solution for HTTP OpenAPI capabilities. (#108) - Expanded package workflow triggers/versioning logic to include
release/*branches. (5cef7e5) (5cef7e5)
⚠️ Breaking changes / upgrade notes
- Renamed
EnableClusteringtoConfigureClusteringIdentity; update any usages accordingly. (#110)
✨ New features
- Added
EnableClusteringAPI and fixed race conditions in Quartz.NET integration. (#110) - Auto-configured clustering identity in
QuartzFeaturewith default values when not explicitly set. (#110) - Added
Elsa.Http.OpenApiproject to solution. (#108)
🔧 Improvements
- Updated
QuartzFeatureXML docs to clarify clustering identity configuration and provide usage examples. (#110) - Added debug logging and clarified clustering documentation per review feedback. (#110)
- Addressed review feedback to improve documentation and clarity around clustering setup. (#110)
- Included
release/*branches in package versioning logic inpackages.yml. (5cef7e5) - Added
release/*branch to workflow triggers inpackages.yml. (5cef7e5) - Updated versions and refined package workflow logic in build and CI scripts. (d730f6e)
🐛 Fixes
- Fixed race conditions in Quartz.NET integration when enabling clustering. (#110)
🔁 CI / Build
- Included
release/*branches in package versioning logic inpackages.yml. (5cef7e5) - Added
release/*branch to workflow triggers inpackages.yml. (5cef7e5) - Updated versions and refined package workflow logic in build and CI scripts. (d730f6e)
📦 Full changelog (short)
- Adds release notes playbook for Elsa Extensions (1ff45c3)
- Update versions and refine package workflow logic in build and CI scripts (d730f6e)
- Merge pull request #110 from elsa-workflows/copilot/harden-quartz-net-clustering (fd3ae2f)
- Merge remote-tracking branch 'origin/main' into release/3.6.0 (292d95e)
- Merge pull request #104 from elsa-workflows/enh/102 (1e6f287)
- Update
QuartzFeatureXML docs to clarify clustering identity configuration and provide usage examples (b0c5f45) - Auto-configure clustering identity in
QuartzFeaturewith default values if not explicitly set. (19696d1) - Rename EnableClustering to ConfigureClusteringIdentity and add useClustering param to SQLite (c64f131)
- Add debug logging and clarify EnableClustering documentation per review feedback (3eee814)
- Address code review feedback - improve documentation and clarity (f4fee5b)
- Add EnableClustering API and fix race conditions in Quartz.NET integration (5c67fe0)
- Initial plan (3bdc6dd)
- Merge pull request #108 from elsa-workflows/task/inclide-http-openapi (a572181)
- Add
Elsa.Http.OpenApiproject to solution (f8d588c) - Include
release/*branches in package versioning logic inpackages.yml(4d0e0bd) - Add
release/*branch to workflow triggers inpackages.yml(5cef7e5) - Merge pull request #107 from elsa-workflows/feat/activity-host (9722da9)
3.6.0 RC1
Elsa Extensions — 3.6.0 RC1 Release Notes
Highlights
- New integrations: Slack, Telnyx (call handling), Azure Service Bus, Orchard Core, and industrial protocol modules expand what you can automate from workflows.
- Agents & AI: big step forward for agent-based workflows, including improvements, an AI Copilot experience, and a service-provider discovery endpoint.
- DevOps & data tooling: GitHub integration (refactored into
Elsa.DevOps.GitHub), SQL integration improvements, and a new CSV processing module. - Platform & runtime updates: .NET 10 (LTS) target framework support plus a broad set of refactors and dependency updates.
What’s Changed
New Integrations & Modules
- Slack Integration by @adamfisher in #30
- Add Telnyx integration with call handling activities by @sfmskywalker in #31
- Add Orchard Core integration module with activities and services by @sfmskywalker in #32
- Add Azure Service Bus integration feature by @sfmskywalker in #33
- Industrial Communication Protocols by @KnibbsyMan in #35
- Sql Integration, New Integration README-TEMPLATE and Solution Refinement by @KnibbsyMan in #38
- Add OpenAPI Documentation Extension for HTTP Workflow Triggers by @cristinamudura in #80
- Adds CSV data processing module by @sfmskywalker in #91
- Add overloads to
UseAzureServiceBusfor enhanced configuration flexibility by @sfmskywalker in #100
Agents & AI
- Add Agents by @sfmskywalker in #34
- Elsa Agents: Add service provider discovery endpoint by @mohdali in #60
- Implementing KernelFactory interface to allow custom factories + using SK function that supports external tools by @pugafran in #64
- Improves Agents module and updates dependencies by @sfmskywalker in #69
- Enhances Agents module with AI Copilot and more by @sfmskywalker in #70
- Add Microsoft Agent Framework integration with code-first agents and multi-agent workflows by @Copilot in #99
DevOps
- [WIP] Add Github Integration by @Copilot in #47
- Refactor GitHub integration to Elsa.DevOps.GitHub by @KnibbsyMan in #51
Platform, Build & Repo Housekeeping
- Rebrand To Extensions And Move Projects From Core by @KnibbsyMan in #40
- Realign Core and Extension Repos by @KnibbsyMan in #41
- Apply Code Changes Made To Old Project Files by @KnibbsyMan in #42
- Remove SasToken project by @KnibbsyMan in #45
- Adding 'IO' module from elsa-core by @lukhipolito-nexxbiz in #74
- Fixing package/project references for IO module by @lukhipolito-nexxbiz in #75
- Reverting disabled method and updating project references by @lukhipolito-nexxbiz in #76
- Fixing build for task activity attribute by @lukhipolito in #77
- Add Logging features from elsa-core 3.5.0 into elsa-extensions 3.6.0 by @sfmskywalker in #83
- Remove core EF Core projects by @sfmskywalker in #86
- Add .NET 10 (LTS) target framework support by @Copilot in #94
Persistence & Database
- Refactor database extensions and support migrations for V3.6 by @sfmskywalker in #71
- Fix AggregateFaultCount int column using system method NewGuid by @kremi151 in #97
- Update MongoDbStore.cs by @sfmskywalker in #65
- Update MongoDbFeature.cs by @sfmskywalker in #66
- Update ExpressionHelpers.cs by @sfmskywalker in #67
- Update WorkflowInstanceStore.cs by @sfmskywalker in #68
- try-catch for FindManyAsync by @mhichb in #81
Fixes
- Fix substring index for variable retrieval by @KnibbsyMan in #55
- Supports 'Variables.' within SqlEvaluator by @KnibbsyMan in #57
- Fix unhandled exceptions in drop-in monitor by @mohdali in #59
Breaking Changes
- BREAKING: Enhance Sql Evaluator to Support Object Properties by @KnibbsyMan in #87
- If you use the SQL evaluator with variable placeholders, double-check expressions that previously assumed simple scalar values; object property access is now supported and may change parsing/behavior.
New Contributors
- @adamfisher made their first contribution in #30
- @KnibbsyMan made their first contribution in #35
- @Copilot made their first contribution in #47
- @mohdali made their first contribution in #59
- @pugafran made their first contribution in #64
- @lukhipolito-nexxbiz made their first contribution in #74
- @lukhipolito made their first contribution in #77
- @mhichb made their first contribution in #81
- @cristinamudura made their first contribution in #80
- @kremi151 made their first contribution in #97
Full Changelog: https://github.com/elsa-workflows/elsa-extensions/commits/3.6.0-rc1
3.5.3
Full Changelog: 3.5.2...3.5.3
3.5.2
Full Changelog: 3.5.1...3.5.2
3.5.1
Full Changelog: 3.5.0...3.5.1
3.5.0
Full Changelog: 3.4.0...3.5.0
3.5.0 RC2
Full Changelog: 3.5.0-rc1...3.5.0-rc2