Releases: elsa-workflows/elsa-core
3.1.0
What's Changed
- Merge scope change into main by @sfmskywalker in #4738
- Fix scoping issues by @sfmskywalker in #4753
- New options to control retry logic for transient failures by @NightWuYo in #4750
- fix EvaluatingCSharp class file name typo by @leeveney in #4783
- Use NET 8 SDK artifacts output by @lahma in #4779
- Use correct dialect for SqlServerDbConnectionProvider by @NightWuYo in #4766
- Fix InvalidOperation Exception for SaveVariablesAsync and DeleteVariablesAsync functions by @NightWuYo in #4808
- Bump System.Data.SqlClient from 4.8.5 to 4.8.6 in /src/modules/Elsa.Dapper by @dependabot in #4805
- Allow multiple value processing for Form and QueryString values. by @mohdali in #4736
- Add NUKE build support by @lahma in #4815
- Workflow cancellation by @raymonddenhaan in #4813
- Disabled tests that had an unreliable result by @raymonddenhaan in #4827
- Bulk Dispatch Workflows Enhancements by @sfmskywalker in #4842
- Drop LinqKit dependency by @Suchiman in #4853
- Use Directory.Build.props by @lahma in #4828
- Fix schema for Quartz Postgres Store by @mohdali in #4864
- Remove Persistence of Completed Activity Execution Contexts by @sfmskywalker in #4869
- Move samples to repository root by @lahma in #4868
- Refactor logging to exclude activity state by @sfmskywalker in #4874
- Add GZip compression for WorkflowInstance Data field on EF Core by @sfmskywalker in #4876
- Convert to use Central Package Management by @lahma in #4877
- update sqlserver Extensions support UseCompatibilityLevel cofnig by @Nokecy in #4844
- Make workflow runtime methods accept nullable options by @sfmskywalker in #4881
- Update InputJsonConverter to deserialize complex value types into their original type by @sfmskywalker in #4878
- issues(4885) by @bbenameur in #4886
- Fix serialization of delegate expressions by @sfmskywalker in #4888
- issues(4893): try register serializer or skip when already registred … by @bbenameur in #4894
- Update both published and draft consuming workflows upon child workflow definition update by @sfmskywalker in #4897
- Fix memory leak when using EF Core by @sfmskywalker in #4900
- Update script source path in _Host.cshtml by @sfmskywalker in #4910
- Fix consumption of event payload by @sfmskywalker in #4909
- Fix #4907 by @platschlena in #4917
- Fix WorkflowExecutionContext bug by @sfmskywalker in #4919
- Update AppAny package version and fix MySql and SqlServer Quartz persistence by @mohdali in #4921
- Fix serialization of Boolean activity input by @sfmskywalker in #4922
- issues(4918): fix resolve scoped service for Elsa.MongoDb.Modules by @bbenameur in #4924
- Improve Elsa workflow expression serialization by @sfmskywalker in #4930
- Implement dispatch channels by @sfmskywalker in #4949
- Fixed setting updated and finished date on workflow instance by @raymonddenhaan in #4943
- Updated client to include inputs as part of workflow instance by @MariusVuscanNx in #4955
- Set the Timer Interval default value to match DefaultValue by @mohdali in #4926
- feature: Add created date time to filter by @bbenameur in #4932
- Removed references to packages that are not used by @Inx51 in #4952
- Add PR workflow by @lahma in #4956
- Enhanced Workflow Instance Filters by @sfmskywalker in #4957
- #4963 - elastic store workflowinstance search fix by @ayalros in #4964
- Introduced messaging to running instances by @raymonddenhaan in #4941
- Implement distributed lock for registry population by @sfmskywalker in #4983
- Added workflow instance and bulk cancellation to the UI by @raymonddenhaan in #4965
- Example: added MassTransit triggered workflow example-project (#4968) by @ckeller81 in #4981
- Fix Dapper Provider by @sfmskywalker in #4998
- Update BulkUpsertAsync extension method with EFCore.BulkExtensions package by @sfmskywalker in #5005
- Respond with 500 in case of Incidents by @sfmskywalker in #5004
- Fix Security Bug: No permissions applied to version endpoints by @IsaacHayes1995 in #5008
- Fix incorrect comment information in EFCoreWorkflowInboxMessageStore by @faith0831 in #4979
- Added logging to pinpoint issue #5033 by @raymonddenhaan in #5034
- Add SearchTerm to Workflow Definitions List API client by @sfmskywalker in #5035
- fix missing metadata when persisting bookmark by @carbonhe in #5026
- Update VersionOptions.LatestAndPublished to set correct property by @pramsperger in #5036
- Improved search to not require exact match by @MariusVuscanNx in #5037
- Added Properties field to ActivityExecutionRecord by @sfmskywalker in #5039
- Reverted bulk implementation by @raymonddenhaan in #5047
- Add Unicode encoding support to serializers by @sfmskywalker in #5049
- Added check preventing duplicate workflow to update by @raymonddenhaan in #5060
- Enhance: Add isStart property to determine if current node is a start… by @zergmk2 in #5040
- Add Unicode string serialization tests by @sfmskywalker in #5064
- Added missing text parser for HTTP responses by @raymonddenhaan in #5066
- Prevented overwriting of existing workflows by @raymonddenhaan in #5067
- Refactor workflow instance listing and enum parsing by @sfmskywalker in #5069
- Alterations with Queries by @sfmskywalker in #5032
- Made loading workflows more robust by @raymonddenhaan in #5074
- Update MongoDb collection service retrieval by @daveelbro in #5083
- Update VersionOptions.cs by @pietervoorschot in #5053
- Add configuration value accessor in JintJavaScriptEvaluator by @nuvotex-tk in #5024
- Fix ID assignment logic in Scheduler by @sfmskywalker in #5094
- Test workflows housekeeping by @MariusVuscanNx in #5092
- Add alteration notifications and management by @sfmskywalker in #5097
- Add log message sanitization for PostgreSQL by @sfmskywalker in #5104
- Add DryRun endpoint and workflow instance finder by @sfmskywalker in #5110
- Add logging to ScheduledCronTask constructor and setup by @sfmskywalker in #5122
- Implemented distributed cache refresh for workflow definitions by @raymonddenhaan in #5095
- Feature/cancel dispatc...
3.0.6
2.14.1
3.0.5
What's Changed
- Add support for list/array conversion in JavaScript evaluator by @sfmskywalker in #4850
- Remove StringObjectDictionaryConverter and update JintJavaScriptEvaluator by @sfmskywalker in #4856
- Refactor JavaScript list and array test cases by @sfmskywalker in #4857
Full Changelog: 3.0.4...3.0.5
3.0.4
What's Changed
- Add input application to workflow state extractor by @sfmskywalker in #4829
Full Changelog: 3.0.3...3.0.4
2.14.0
What's Changed
- Bump postcss from 8.4.8 to 8.4.31 in /src/designer/elsa-workflows-studio by @dependabot in #4503
- Missing WorkflowPassCompleted enum element in WorkflowPersistenceBehavior.cs by @NightinGale997 in #4480
- lenguages (es-ES and pt-PT) for elsa dashbaord by @JuanSZ77 in #4536
- 3537 Switch to DefaultContractResolver by @4lexKislitsyn in #4521
- [Kafka] Added possibility to add DefaultConnectionString by @Snotax in #4522
- Update deprecated Storage.Net to FluentStorage by @dammitjanet in #4540
- Feature/encrypt secret properties by @tanelkuhi in #4347
- Kafka: Added Serialized Headers to WorkflowInput by @Snotax in #4572
- Update WorkflowInstance state before resuming by @dakuchar in #4573
- Adding amqps support to rabbit activities by @stuartmcgillivray in #4612
- Hangfire job names by @johnwc in #4428
- Bump axios from 0.26.1 to 1.6.0 in /src/designer/elsa-workflows-studio by @dependabot in #4615
- Adding dialog to Multi Expression Editor by @Dioltas95 in #4602
- Overload UseAzureBlobLockProvider with connection string/container name by @LPFOXX in #4648
- Make the timeout configurable for acquiring the DistributedLock in ContinueRunningWorkflows by @gersti07 in #4678
- Custom Db Schema for SqlServer, PostgreSql and Oracle by @gersti07 in #4677
- substitute MQTTnet.MqttApplicationMessage problem of serialization by @mircotamburini in #4675
- Include transient variables in merged variables for JavaScriptEngine Access by @JoostVanVelthoven in #4769
- Elsa 2 .NET 8 Support by @swimmesberger in #4794
- 2.x .NET 8 Build fix by @swimmesberger in #4820
- Upgraded samples and dashboard to .NET 8 by @swimmesberger in #4826
New Contributors
- @NightinGale997 made their first contribution in #4480
- @JuanSZ77 made their first contribution in #4536
- @4lexKislitsyn made their first contribution in #4521
- @dammitjanet made their first contribution in #4540
- @dakuchar made their first contribution in #4573
- @LPFOXX made their first contribution in #4648
- @gersti07 made their first contribution in #4678
- @JoostVanVelthoven made their first contribution in #4769
- @swimmesberger made their first contribution in #4794
Full Changelog: 2.13.0...2.14.0
3.0.3
What's Changed
- Refactor MassTransitActivityTypeProvider by @sfmskywalker in #4792
- Allow creation of variables dynamically via
setVariable
by @sfmskywalker in #4800
Full Changelog: 3.0.2...3.0.3
3.0.2
What's Changed
- Http Request run Asynchronously but the workflow got suspended and never return the result #4763
- Update FastEndpoints* nuget packages to 5.21.2 version by @NightWuYo in #4764
Full Changelog: 3.0.1...3.0.2
3.0.1
What's Fixed
This is a patch release that fixes some issues that were missed before te 3.0.0 release and other issues that were discovered thereafter.
- Http Request run Asynchronously but the workflow got suspended and never return the result #4737
- PolymorphicObjectConverter throws InvalidOperationException for decimals #4714
- Dapper DeleteAsync #4676
- Update FastEndpoints nuget package version #4747
- IEventPublisher.PublishAsync is not executing synchronously #4754
Full Changelog: 3.0.0...3.0.1
3.0.0
Elsa 3.0 🚨
This is the official Elsa 3.0 release and is a complete departure from Elsa 2.
What's new
- Redesigned workflow execution engine for increased flexibility.
- Redesigned activity model with intrinsic support for composition.
- Parallel activity execution.
- Parallel For Each activity with support for long-running processes.
- Implicit forking and joining for a simplified flowchart modelling.
- Actor model implementation of the workflow runtime for lock-free workflow execution.
- Support for C# and Python expressions.
- A new designer with support for drag & drop, multi-selection, undo/redo, copy & paste, pane & zoom.
- Use the designer to create workflows that can be invoked as reusable activities
- Elsa Studio, a modular, extensible Blazor application to create and manage workflows.
- Alterations API to modify existing workflow instances.
See also the Elsa 3.0 Release blog post.
Known Issues & Limitations
- Documentation is still a work in progress.
- The designer is not yet fully embeddable in other applications; this feature is planned for a future release.
- C# and Python expressions are not yet fully tested.
- Bulk Dispatch Workflows is a new activity and not yet fully tested.
- Input/Output is not yet implemented in the Workflow Instance Viewer.
- Starting workflows from the designer is currently supported only for workflows that do not require input and do not start with a trigger; this is planned for a future release.
- The designer currently only supports Flowchart activities. Support for Sequence and StateMachine activities is planned for a future release.
- UI input validation is not yet implemented.
Migrating from Elsa 2
Elsa 3 is a complete rewrite and not backwards compatible with Elsa 2.
As a consequence, migrating to Elsa 3 means manually porting over your workflow definitions, instances and custom activities.
Guidance will be provided in written form to highlight some of the more common differences between Elsa 2 and 3 to help understand how certain scenarios done in Elsa 2 should be handled in Elsa 3.
Change History
- Upgrade all projects to .NET6.0 by @yopichy in #2616
- implemented delete for single workflow definitions and workflow instance by @cristinamudura in #2855
- implemented sub actions : new, unpublish, retract by @cristinamudura in #2933
- V3 finish activity by @sfmskywalker in #2963
- V3 StartAt Activity by @sfmskywalker in #2969
- Implement Default Workflow Invoker by @sfmskywalker in #2979
- Implement V3 stores by @sfmskywalker in #2980
- Provide tag support for workflows by @gurkanguran in #2990
- Revert "Provide tag support for workflows" by @sfmskywalker in #2991
- fixed property panel published status update by @im-ihrynevytskyi in #2993
- V3 import export by @sfmskywalker in #3030
- Activity display name by @sfmskywalker in #3034
- Auto name activity by @sfmskywalker in #3035
- Labels by @sfmskywalker in #3037
- Query workflows by labels API by @sfmskywalker in #3041
- activity description tooltip added by @im-ihrynevytskyi in #3036
- Copy Text Tool by @im-ihrynevytskyi in #3043
- V3 label management UI by @sfmskywalker in #3055
- Assign labels to workflows by @sfmskywalker in #3060
- V3 Bulk Actions API Endpoints by @sfmskywalker in #3064
- workflow definition pagination and bulk actions by @im-ihrynevytskyi in #3069
- V3 modular configuration by @sfmskywalker in #3070
- V3 labels UI module by @sfmskywalker in #3071
- Features API by @sfmskywalker in #3081
- tooltip minor fixes by @im-ihrynevytskyi in #3083
- added ability to resize panels by @im-ihrynevytskyi in #3092
- V3 workflow instance viewer by @sfmskywalker in #3098
- added label filter to workflow definition modal by @im-ihrynevytskyi in #3106
- added visual feedback for copying by @im-ihrynevytskyi in #3109
- added toolbar layouts by @im-ihrynevytskyi in #3113
- fixed incorrect positioning on zoom or graph move by @im-ihrynevytskyi in #3129
- added zoom-to-fit functionality by @im-ihrynevytskyi in #3130
- added bottom panel with resize functionality by @im-ihrynevytskyi in #3149
- added bottom panel for activity editor by @im-ihrynevytskyi in #3167
- added bottom panel on instance viewer, fixed issue with activity size by @im-ihrynevytskyi in #3176
- added simple notifications by @im-ihrynevytskyi in #3184
- Designer Activity Definitions by @sfmskywalker in #3221
- Added proto actor implementation for kubernetes and refactored releva… by @cristinamudura in #3256
- Refactor proto actor runtime with snapshot support by @sfmskywalker in #3283
- V3 default runtime by @sfmskywalker in #3285
- Default Runtime & Persistence by @sfmskywalker in #3287
- Implement async workflow state exporter for DB workflow instance by @sfmskywalker in #3291
- Exportable & importable workflow state + execution by @sfmskywalker in #3317
- Implicit fork & join by @sfmskywalker in #3331
- Queue-based activity scheduler by @sfmskywalker in #3344
- Feature/send http request by @cristinamudura in #3355
- Asynchronous Activities by @sfmskywalker in #3386
- Telnyx integration by @sfmskywalker in #3453
- Implemented delete of workflow definitions on Delete button click by @cristinamudura in #3462
- Add email module by @sfmskywalker in #3469
- Update import / export by @sfmskywalker in #3471
- Ensure unique friendly activity ID after copy paste by @sfmskywalker in #3474
- Implement types API endpoint by @sfmskywalker in #3479
- Auto rotating by @gurkanguran in #3482
- Add support for accessing workflow variables from liquid expressions by @sfmskywalker in #3491
- Add JS functions by @sfmskywalker in #3492
- V3 bugfix by @LevVadim in #3503
- Composite Activity fixes and improvements by @sfmskywalker in #3512
- V3 bugfix by @LevVadim in #3521
- Added correlation activity by @cristinamudura in #3530
- Fix workflow navigation by @sfmskywalker in #3541
- Workflow activation strategies by @sfmskywalker in #3559
- Persistent variables by @sfmskywalker in #3563
- Improve variable vs non-variable persistence by @sfmskywalker in #3568
- Add support for workflows as a function by @sfmskywalker in #3569
- Connect to to Azure DevOps feed by @sfmskywalker in #3570
- Additional samples + fixes and improvements by @sfmskywalker in #3574
- Normalize extensions namespaces by @sfmskywalker in #3577
- Implemented workflow sink module by @gurkanguran in #3571
- Implemented PostgreSql provider for data persistence by @gurkanguran in #3581
- Restore workflow journal by ...