Releases: elsa-workflows/elsa-core
3.5.0
What's Changed
- Refactor trigger indexing and update base version to 3.5.0. by @sfmskywalker in #6516
- Fix incorrect Id assignment in Variable constructor by @Green7 in #6514
- Support for Writing Custom Trigger Activities Using Existing Trigger Infrastructure by @sfmskywalker in #6527
- Enhanced Delete of variable persistence manager to allow drivers filt… by @MariusVuscanNx in #6559
- Extended the incidents data to include the activityNodeId (#6570) by @MariusVuscanNx in #6572
- Refactor Fault Propagation and Simplify Bookmark Management by @sfmskywalker in #6545
- Add support for connection vertices in flowcharts by @sfmskywalker in #6585
- Refactor OpenTelemetry error handling implementation by @sfmskywalker in #6621
- Update package versions by @sfmskywalker in #6635
- Add IResilienceStrategy Abstraction with Category Matching and Expression-Based Configuration by @sfmskywalker in #6637
- Enhances workflow runtime resilience and signaling by @sfmskywalker in #6643
- Fix async callback awaiting in HTTP endpoint by @sfmskywalker in #6660
- Implement retry attempt capturing by @sfmskywalker in #6674
- Adds activity execution metadata support by @sfmskywalker in #6699
- Update SqlEvaluator expression keyword resolver for using variables. … by @KnibbsyMan in #6705
- Supports 'Variables.' Within SqlEvaluator by @KnibbsyMan in #6710
- Update package versions by @sfmskywalker in #6722
- Fix order of Order and Pagination by @sfmskywalker in #6727
- Commits workflow state during alteration by @sfmskywalker in #6736
- Enhances Mediator with Tenant Context Propagation by @sfmskywalker in #6738
- Fix Ancestor Faulting by @sfmskywalker in #6741
- Feat/6732 zip archive activities by @lukhipolito-nexxbiz in #6751
- Register
FlowScope
class map in MongoDB feature to handle serialization and ignore extra elements. by @sfmskywalker in #6766 - Add backward compatibility for
WorkflowInstance.Name
mapping inWorkflowStateMapper
by @sfmskywalker in #6767 - Fix MongoDB serialization issues by @sfmskywalker in #6762
- Fixing wrong strategy selection for some string content by @lukhipolito in #6777
- Implementing better base64 evaluation + appropriate zip entry naming by @lukhipolito in #6783
- Fixing Stream variable saved in instance issue by @lukhipolito in #6785
- Update Jint to 4.3.0 by @sfmskywalker in #6794
- Implemented custom js functions: streamToBytes and streamToBase64 by @lukhipolito in #6797
- Introduce activity execution record capturing and serialization improvements by @sfmskywalker in #6800
- Fixed wrong naming in resulting entries when file is inputted from http by @lukhipolito-nexxbiz in #6806
- Refactor activity execution record serialization with snapshots by @sfmskywalker in #6807
- Add cancellation handling for executing scheduled tasks by @sfmskywalker in #6819
- Update
ActivityExecutionContextRecordExtensions
to preserve and update serialized snapshots by @sfmskywalker in #6823 - Update BackgroundStimulusDispatcher.cs by @n84ck in #6789
- Add support for flow authorization activities and bookmark trigger URL generation by @sfmskywalker in #6828
- Fix activity execution record capturing by @sfmskywalker in #6836
- Fix RunMigrations Propagation Issue by @sfmskywalker in #6838
- Refactors notification system for context by @sfmskywalker in #6821
- Introduce
TenantDeleted
event to handle tenant cleanup by @sfmskywalker in #6843 - Send
ActivityCompleted
notification from middleware and remove redundant notification logic in activity execution context. by @sfmskywalker in #6842 - Refine variable type registration by excluding
object
and optimizing collection processing. by @sfmskywalker in #6849 - Refactor
ObjectConverter
to improve readability and add backward-compatible default value handling in non-strict mode. by @sfmskywalker in #6852
New Contributors
Full Changelog: 3.4.0...3.5.0
3.5.0 RC4
What's Changed
- Add cancellation handling for executing scheduled tasks by @sfmskywalker in #6819
- Update
ActivityExecutionContextRecordExtensions
to preserve and update serialized snapshots by @sfmskywalker in #6823 - Update BackgroundStimulusDispatcher.cs by @n84ck in #6789
- Add support for flow authorization activities and bookmark trigger URL generation by @sfmskywalker in #6828
- Fix activity execution record capturing by @sfmskywalker in #6836
- Fix RunMigrations Propagation Issue by @sfmskywalker in #6838
- Refactors notification system for context by @sfmskywalker in #6821
- Introduce
TenantDeleted
event to handle tenant cleanup by @sfmskywalker in #6843 - Send
ActivityCompleted
notification from middleware and remove redundant notification logic in activity execution context. by @sfmskywalker in #6842 - Refine variable type registration by excluding
object
and optimizing collection processing. by @sfmskywalker in #6849
New Contributors
Full Changelog: 3.5.0-rc3...3.5.0-rc4
3.4.3
Maintenance Release
- Updated package versions.
UpdatedDirectory.Packages.props
to increment several minor revisions of packages, includingAzure.Identity
,BenchmarkDotNet
, andMassTransit
.
Full Changelog: 3.4.2...3.4.3
3.5.0 RC3
What's Changed
- Fixing wrong strategy selection for some string content by @lukhipolito in #6777
- Implementing better base64 evaluation + appropriate zip entry naming by @lukhipolito in #6783
- Fixing Stream variable saved in instance issue by @lukhipolito in #6785
- Update Jint to 4.3.0 by @sfmskywalker in #6794
- Implemented custom js functions: streamToBytes and streamToBase64 by @lukhipolito in #6797
- Introduce activity execution record capturing and serialization improvements by @sfmskywalker in #6800
- Fixed wrong naming in resulting entries when file is inputted from http by @lukhipolito-nexxbiz in #6806
- Refactor activity execution record serialization with snapshots by @sfmskywalker in #6807
New Contributors
- @lukhipolito made their first contribution in #6777
Full Changelog: 3.5.0-rc2...3.5.0-rc3
3.5.0 RC2
What's Changed
- Update SqlEvaluator expression keyword resolver for using variables. … by @KnibbsyMan in #6705
- Supports 'Variables.' Within SqlEvaluator by @KnibbsyMan in #6710
- Update package versions by @sfmskywalker in #6722
- Fix order of Order and Pagination by @sfmskywalker in #6727
- Commits workflow state during alteration by @sfmskywalker in #6736
- Enhances Mediator with Tenant Context Propagation by @sfmskywalker in #6738
- Fix Ancestor Faulting by @sfmskywalker in #6741
- Feat/6732 zip archive activities by @lukhipolito-nexxbiz in #6751
- Register
FlowScope
class map in MongoDB feature to handle serialization and ignore extra elements. by @sfmskywalker in #6766 - Add backward compatibility for
WorkflowInstance.Name
mapping inWorkflowStateMapper
by @sfmskywalker in #6767 - Fix MongoDB serialization issues by @sfmskywalker in #6762
New Contributors
- @lukhipolito-nexxbiz made their first contribution in #6751
Full Changelog: 3.5.0-rc1...3.5.0-rc2
3.4.2
What's Changed
- Register
FlowScope
class map in MongoDB feature to handle serialization and ignore extra elements. by @sfmskywalker in #6766 - Add backward compatibility for
WorkflowInstance.Name
mapping inWorkflowStateMapper
by @sfmskywalker in #6767
Full Changelog: 3.4.1...3.4.2
2.15.2
What's Changed
- 2.x Fix array enumeration in JsonFilter by @Slettan in #6564
- 2.x: Fix deprecated NuGet versioning issue and removal of IFormFile attribute by @slnkykrn in #6631
New Contributors
Full Changelog: 2.15.1...2.15.2
3.4.1
What's Changed
- Update SqlEvaluator expression keyword resolver for using variables. … by @KnibbsyMan in #6705
- Supports 'Variables.' Within SqlEvaluator by @KnibbsyMan in #6710
- Fix order of Order and Pagination by @sfmskywalker in #6727
- Enhances Mediator with Tenant Context Propagation by @sfmskywalker in #6738
Full Changelog: 3.4.0...3.4.1
3.5.0 RC1
What's Changed
- Refactor trigger indexing and update base version to 3.5.0. by @sfmskywalker in #6516
- Fix incorrect Id assignment in Variable constructor by @Green7 in #6514
- Support for Writing Custom Trigger Activities Using Existing Trigger Infrastructure by @sfmskywalker in #6527
- Enhanced Delete of variable persistence manager to allow drivers filt… by @MariusVuscanNx in #6559
- Extended the incidents data to include the activityNodeId (#6570) by @MariusVuscanNx in #6572
- Refactor Fault Propagation and Simplify Bookmark Management by @sfmskywalker in #6545
- Add support for connection vertices in flowcharts by @sfmskywalker in #6585
- Refactor OpenTelemetry error handling implementation by @sfmskywalker in #6621
- Update package versions by @sfmskywalker in #6635
- Add IResilienceStrategy Abstraction with Category Matching and Expression-Based Configuration by @sfmskywalker in #6637
- Enhances workflow runtime resilience and signaling by @sfmskywalker in #6643
- Fix async callback awaiting in HTTP endpoint by @sfmskywalker in #6660
- Implement retry attempt capturing by @sfmskywalker in #6674
- Adds activity execution metadata support by @sfmskywalker in #6699
Full Changelog: 3.4.0...3.5.0-rc1
3.4.0
This release introduces major enhancements to workflow orchestration, resiliency, and developer experience. It brings support for executing and awaiting nested workflows, improved serialization and variable handling, expanded SQL activity capabilities, and comprehensive OpenTelemetry integration. With improved join behavior, controlled commit states, and auto-resume of interrupted workflows, this version provides even greater robustness for long-running and distributed scenarios. Several optional modules have been extracted to streamline the core, and many APIs were enhanced for better extensibility. Numerous bug fixes and usability improvements round out this feature-packed release.
Highlights
Controlled Commit States
Gain precise control over workflow persistence. Workflows can now define when to persist their state—before, after, or both before and after executing an activity. Custom strategies are also supported, such as committing every N seconds, allowing for powerful tuning of reliability and performance characteristics.
Auto Resume Interrupted Workflows
Workflows interrupted due to e.g. pod shutdowns are now automatically resumed on application restart. Combined with Controlled Commit States, this ensures minimal re-execution and smooth recovery from failures, supporting highly reliable long-running workflows.
Resilient Activities
The SendHttpRequest activity now features built-in retry logic using Polly. A simple checkbox enables resilience for your HTTP calls, with a more advanced configuration UI coming in 3.5.0, allowing full control over retry strategies.
Improved Join Behavior
Flowchart activities now intelligently track which paths were activated. This enables more accurate joining behavior, especially when using WaitAll
in combination with dynamic branching via Switch or Decision activities. Advanced looping scenarios will be further enhanced in 3.6.0.
Trimming the Core
Several optional modules have been extracted to the elsa-extensions repository, helping streamline the core and reduce dependencies. These include:
- Telnyx
- OrchardCore
- SQL Activities
- Agents
- Azure Service Bus
What's Changed
- Add functionality to execute nested workflows by @sfmskywalker in #6137
- Fix/32953 by @raymonddenhaan in #6147
- Add output serialization and deserialization support by @sfmskywalker in #6152
- Add support for waiting for child workflows in ExecuteWorkflow by @sfmskywalker in #6226
- Added DeleteVariablesAsync method for the workflow context by @MariusVuscanNx in #6290
- Back-port PolymorphicObjectConverter from 3.3 by @sfmskywalker in #6353
- Exposed incidents in the Elsa.Api.Client by @MariusVuscanNx in #6377
- Exposed incidents in the Elsa.Api.Client by @MariusVuscanNx in #6375
- Updated deprecated artifact by @MariusVuscanNx in #6378
- Updated deprecated artifacts by @MariusVuscanNx in #6379
- Controlled Commit States Feature Implementation by @sfmskywalker in #6343
- Added Alterations API to Client API library and updated server API co… by @yinzara in #6370
- FEAT: Implements SQL Activities by @KnibbsyMan in #6257
- ISSUE: Resolves Directory.Packages.props - Prevents Building by @KnibbsyMan in #6386
- Add customizable tenant header support for HTTP routing by @sfmskywalker in #6395
- Add missing request properties when starting workflow by @sfmskywalker in #6394
- Removes Built In SQL Editor Configuration by @KnibbsyMan in #6393
- Implement bulk cancellation using alterations and filters by @sfmskywalker in #6392
- Add toggle for WorkflowInboxCleanupJob in WorkflowRuntimeFeature by @sfmskywalker in #6418
- Add AddManyAsync method to activity execution stores by @sfmskywalker in #6416
- Improve APIs for extensibility and replaceability by @sfmskywalker in #6420
- Add AddManyAsync method to activity execution stores by @sfmskywalker in #6415
- ActivityExecutionContext Children property not populated by @bobhauser in #6423
- Add IBusRegistrationContext to Transport Configuration Actions by @CODEdire in #6413
- Add CorrelationId to NewBookmarkQueueItem by @pkaaz in #6412
- Enable configurable toggle for workflow inbox cleanup job by @sfmskywalker in #6429
- Update flowchart activity scheduling, implicit join (and FlowJoin/WaitAll) now only waits for followed connections by @bobhauser in #6406
- FEAT : Connection/Secret provider/handler to define generic configuration for Activities by @jdevillard in #6291
- Remove Telnyx module from the codebase by @sfmskywalker in #6437
- Remove Elsa.OrchardCore module. by @sfmskywalker in #6438
- Refactor WebhooksFeature to streamline configuration. by @sfmskywalker in #6440
- Remove Azure Service Bus integration and related tests by @sfmskywalker in #6443
- Add Resiliency to HTTP Request Activity by @sfmskywalker in #6447
- Add OpenTelemetry error span handling infrastructure by @sfmskywalker in #6427
- Stop DefaultBookmarkQueuePurger log spamming by @bobhauser in #6452
- Add workflow restart functionality for handling interruptions by @sfmskywalker in #6435
- Remove Agents by @sfmskywalker in #6461
- Revise retry policy by @sfmskywalker in #6465
- Simplify HttpRequestException handling in retry logic. by @sfmskywalker in #6466
- Update retry configuration to retry up to 4 minutes by @raymonddenhaan in #6470
- Harmonized launchSettings to be inline with appSettings by @MatthijsKrempel in #6467
- Patch ObjectConverter by @sfmskywalker in #6474
- Add support for passing initial variables by @sfmskywalker in #6476
- Fix serialization of composite activities by @sfmskywalker in #6478
- Fixes issue with FlowJoin(WaitAny) where activities can be executed multiple times by @bobhauser in #6480
- Bug - Update Scripting Activities To Resolve Auto Complete Issues by @KnibbsyMan in #6481
- Merge blueberry into master by @MariusVuscanNx in #6483
- Added missing functionalities from main as part of the blueberry merge by @MariusVuscanNx in #6487
- Refactor variable merging logic in ActivityExecutionContext by @sfmskywalker in #6493
- DateTimePicker UI Hint Missing by @KnibbsyMan in #6494
- Improved support for named workflow instances by @sfmskywalker in #6460
- Enhancement - Additional SQL Activity Features by @KnibbsyMan in #6475
- Refactor variable initialization for clarity and consistency by @sfmskywalker in #6495
- #6400 Add ClearProvider again to ActivityRegistry by @truthz03 in #6497
- Correct the issue with DeleteAsync not executing due to a premature p… by @Green7 in #6491
- Refactor activity execution state handling with IDisposable by @sfmskywalker in #6501
- Allow to configure JobRunner worker count by @truthz03 in #6498
- FEAT - Automatic SQL Expression Parameterization by @KnibbsyMan in #6503
- Remove message retry configuration in DispatchWorkflowRequestConsumer by @sfmskywalker in #6506
- Improve OTEL Spans and Tags for Workflow and Activity Execution by @sfmskywalker in #6502
- Handle conversion of enumerables to arrays in ObjectConverter by @sfmskywalke...