Releases: elsa-workflows/elsa-core
2.9.1
What's Changed
- Unexpected } by @huhaixiao in #3325
- reuse createHttpClient by @huhaixiao in #3326
- fixed test on non windows machine by @andreabalducci in #3338
- Change dependence ElsaMongoDbContext to IElsaMongoDbContext by @Cricle in #3333
- adding UseTenantSignaler to ElsaOptionsBuilder by @bweltin in #3337
- Upgrade to EFCore 7.0.0-rc.2.22472.11 by @Chryssie in #3339
- elsa-core/issues/3340: pass tenantId to DatabaseWorkflowProvider by @JoschaMetze in #3342
- Improve SQL character replacement by
ISqlGenerationHelper
by @akunzai in #3343 - MySql - Set schemaName to Empty to allow using GetSchemaQualifiedTableName() by @jdevillard in #3345
New Contributors
- @huhaixiao made their first contribution in #3325
- @Cricle made their first contribution in #3333
- @bweltin made their first contribution in #3337
- @Chryssie made their first contribution in #3339
- @JoschaMetze made their first contribution in #3342
Full Changelog: 2.9.0...2.9.1
Elsa 2.9.0
Known Issues
- Deleting entities throws an Entity Framework exception. This will be fixed in 2.9.1 and a fix is already available on MyGet in the preview packages.
What's Changed
- Liquid is liquid by @mohdali in #3107
- Add Persian language localization by @VahidNaderi in #3117
- Remove triggers that have a malformed path by @AdamJohnSwan in #3121
- Add XML Code Comments For The HTTP Activities by @AdamJohnSwan in #3127
- Workflow Definitions Search by @andreabalducci in #3131
- Inject the Authentication handler to override the anonymous handler t⦠by @r-ulak in #3139
- Persist blob metadata changes by @stuartmcgillivray in #3116
- Define inputs in reusable objects by @stuartmcgillivray in #3148
- Generic cascading drop down by @jdevillard in #3063
- Mongo db can't write to read only properties by @stuartmcgillivray in #3150
- [RabbitMQ] Add Javascript Syntax to Headers definition by @borjaferv in #3151
- Add "EagerJoin" option to joins by @martinhjulstrom in #3152
- Check if attachments object is empty string by @johnwc in #3164
- Mongo serializer registration by @stuartmcgillivray in #3170
- Publish symbol packages by @holidayfun in #3181
- If eager join is set, clear scheduled activities on join by @martinhjulstrom in #3177
- Jint options configuration by @stuartmcgillivray in #3178
- don't lowercase the Path Parameters in the URI (#3187) by @jdevillard in #3189
- add support spanish language. add i18n translate in menu Items by @Juandavi1 in #3190
- Fault array, fix retry, new parameter in Join activity by @smartwaystudio in #3182
- Restore Fault property and mark it as obsolete. Patched it for less impact (ref PR 3182) by @smartwaystudio in #3194
- Hotfix/docker image base platform by @milkyware in #3204
- Feature/i18n de by @SebastianWachsmuth in #3212
- Fix Server Sample Swagger Gen by @mohdali in #3215
- Adding Statements to Catch if expression has no value. by @Dioltas95 in #3219
- Workflow Instance UI Display Fix by @Dioltas95 in #3220
- Add extensions for eager join option by @martinhjulstrom in #3233
- Prepend HttpEndpoint's path with BasePath in swagger by @akunzai in #3236
- Rename file to match the
RedisCacheSignal
class by @akunzai in #3241 - PR: SignalR Hub Connection Events by @Nico-VanHaaster in #3242
- #2857 attempt to reapply fix for dropdown by @mohdali in #3216
- Bump moment from 2.29.2 to 2.29.4 in /src/designer/elsa-workflows-studio by @dependabot in #3243
- HTTP Endpoint activity Xml support by @tomy2105 in #3246
- Cleaning up and adding simple support for XML response in HTTP Send Request Activity by @tomy2105 in #3245
- Credential manager by @andrewkorol in #2897
- revert port number by @mohdali in #3259
- Added Tenant Signaler Implementation and Options by @jruckert in #3250
- Fixing faulted activity display in Journal as well as workflow that remain in running state after fault. by @tomy2105 in #3251
- Prevent rescheduling of looping/scoped activities if faulted by @tomy2105 in #3252
- Ability to hide output properties with other misc fixes by @tomy2105 in #3249
- #3257 Move to CreateAsyncScope by @Sverre-W in #3271
- RPA Activities Enhancements by @lucapisano in #3301
- Fix StateMachine by @tchivs in #3313
- fix error when TargetType not configured #3308 by @jxnkwlp in #3309
- Retention module improvement v2 #3253 by @jdevillard in #3286
- Update
WorkflowDefinition
model to mappingCreatedAt
property from API by @akunzai in #3279 - Feature/extend elsa client by @DSPLX in #3316
New Contributors
- @VahidNaderi made their first contribution in #3117
- @AdamJohnSwan made their first contribution in #3121
- @r-ulak made their first contribution in #3139
- @stuartmcgillivray made their first contribution in #3116
- @johnwc made their first contribution in #3164
- @holidayfun made their first contribution in #3181
- @Juandavi1 made their first contribution in #3190
- @smartwaystudio made their first contribution in #3182
- @SebastianWachsmuth made their first contribution in #3212
- @Dioltas95 made their first contribution in #3219
- @Nico-VanHaaster made their first contribution in #3242
- @Sverre-W made their first contribution in #3271
- @tchivs made their first contribution in #3313
- @jxnkwlp made their first contribution in #3309
- @DSPLX made their first contribution in #3316
Full Changelog: 2.8.2...2.9.0
Elsa 2.8 π
What's Changed
- Various ITenantAccessor/Multitenancy fixes by @tomy2105 in #2992
- Fix build issue on case sensitive file systems by @petedavis in #3004
- Metadata included in WorkflowInstanceSummaryModel by @tomy2105 in #3007
- Manage & revert workflow definitions versions through UI by @sfmskywalker in #3026
- Refactor System.ComponentModel.Annotations dependencies. by @rynkadink in #3076
- Sql Editor by @mohdali in #3051
- Attempt fix #2907 by @mohdali in #3084
- Add YesSQL mapping for the trigger indexes by @matt4446 in #3088
- Add PurgeAzureSubscription Startup Task by @jdevillard in #3086
- Fix cleanup job by @sfmskywalker in #3090
New Contributors
- @rynkadink made their first contribution in #3076
Full Changelog: 2.7.0...2.8.0
Elsa 2.7.0 βοΈ
What's New
- New activities: ExecuteSqlQuery, ExecuteSqlCommand
- HttpEndpoint route params (#2914)
- Compensation (#2940)
- Swagger integration for HTTP Endpoint activities (#2927)
- Cron UI (#2909)
What's Improved
- Support to execute/dispatch UserTask activities. (#2970)
- Supports execute single UserTasks or a group by correlationId/action (#2970)
- Update DatabaseRegister.cs (#2955)
- Update Telnyx activities (removed non-functioning outcomes) (bd20e60)
- Handle JSON serialization exception for HTTP Endpoint middleware (7f59a63)
- Sort workflow definition list alphabetically (bd9f5b9)
- Add CustomAttributes to SaveWorkflowDefinitionRequest and WorkflowDefinitionSummaryModel (#2901)
- Add QueueName property to SendRebusMessage activity (5b91ffd)
What's Fixed
- Fix Composite Activity Timing/Occurrence and measurement in UI Journal (#2882)
- Some fix and improvement in Mqtt Activity (#2860)
- Bugfix: Adding the content headers to ResponseModel as well. (#2936)
- Problem in Trigger table for Postgres (#2879)
- Fix eager Join (3b3c77e)
- Fix subscription input (Azure Service Bus worker) (#2921)
- Fix EnumerateFiles output type (e4350c7)
And a lot more π For a full list, please see the full commit history.
Elsa 2.6.0 πΌ
What's New
- Programmatically add workflow blueprints to workflow registry. Before this, you were required to implement an
IWorkflowProvider
. d02899b - Add
getRemoteIPAddress
JS function (5f73fd2) - New SQL Server activities that let you execute SQL statements against.
- Enable custom HTTP response in case of workflow fault (83924bb)
- Data masking (#2780)
- BulkRetry + Retry UI (#2825)
What's Changed
- Enable native deadlettering for Azure Service Bus (ad989f5)
- Update Mailkit (#2791)
- Retention policy improvements (#2807)
- Native JSON variable handling (#2824)
- Update Automapper to Version 11 (#2816)
- Add option to specify signal send-mode (#2851)
What's Fixed
- Fix MySql does not support the EF Core concept of schemas (1e469b0)
- Update object converter to handle list conversions (Fixes #2754)
- Fix eager clearing of blocking activities between Join and Fork (2cfadd3)
- Fix Join eager descoping issue (#2797)
- Ensure the HttpClient is only created once (#2789)
- Improve scheduling of timer bookmarks (87c44e1)
- WF testing - added confirmation modal to stop current and start new instance (#2819)
- Set dropdown value to the first item if undefined (#2857)
- Many issues with Azure Service Bus have been resolved.
- Many other small issues have been fixed.
Elsa 2.5.0 π¦
What's Changed
Trigger Indexing
A major change was introduced that changes the way how workflow triggers are indexed.
Originally, ALL workflow blueprints would be loaded into memory during application startup, after which the triggers were being indexed.
This however poses a serious startup performance issue when the system contains more than a few hundred workflow definitions. Some users reported a startup time of around 15 seconds when testing with a set of around 1500 workflow definitions.
Elsa needs to be able to handle any number of workflow definitions, so loading these into memory is not a good idea.
To fix this, a change was necessary.
Instead of indexing triggers from workflow definitions (typically stored in the database) during startup, you can now configure Elsa to skip this step and instead rely on indexing of triggers as workflow definitions get published:
services
.AddElsa(elsa => elsa
// Optionally opt-out of indexing workflows stored in the database.
// These will be indexed when published/unpublished/deleted, so no need to do it during startup.
// Unless you have existing workflow definitions in the DB for which no triggers have yet been created.
.ExcludeWorkflowProviderFromStartupIndexing<DatabaseWorkflowProvider>()
)
In addition, workflow triggers are no longer stored in memory. Instead, they are stored in the database.
If you are using the EF Core persistence provider and are maintaining your own migrations, then please take a look at the changed schema (see new migrations in the repo).
What's New
** UserTask **
A new service called IUserTaskService
was added to the user task module that simplifies querying the system for available user actions for a given workflow instance or all available user tasks.
This is helpful when you e.g. need to render a list of workflow instances with available actions.
What's Improved
- Designer updated to use Tailwind CSS 3
- Workflow Registry HTTP endpoint no longer returns child activities of composite activities, improving performance in the designer (e1d42e8)
- Persist workflow after status change and before executing. This prevents an issue where the app or container might crash and the workflow is still in e.g. the Suspended state, which are never resumed automatically (7c1da5b)
- Adding convenience Extension Methods for setting properties on Rebus Activities, following the 'with*' naming convention (#2712) (Adding convenience Extension Methods for setting properties on Rebus Activities, following the 'with*' naming convention (#2712))
What's Fixed
Elsa 2.4.2 π§
What's Fixed
This releases fixes a bug that was introduced with the 2.4.1 release that is wreaking havoc in the designer as soon as you save, publish or unpublish a workflow.
Elsa 2.4.1 π₯
What's New
- .NET 6 Support is finally here! The core libraries target .NET Core 3.1, .NET 5.0 and .NET 6.0.
- Designer activities are a little bit more compact, allowing for more activities to fit on the screen.
What's Improved
- Azure Service Bus Send activity received a new option to have it send the message after the workflow gets suspended. This allows you to send a message, and listen for a response immediately after.
- JSON serialization + JavaScript + Liquid roundtripping should work much better.
What's Fixed
Elsa 2.4.0 π
BREAKING CHANGES β οΈ
The WorkflowInstances table received a new column: DefinitionVersionId
.
This is a required field, which means that running the updated DB migrations will fail when run while the table has existing records.
If you do not wish to first delete the contents of this table, make sure to create a backup first (which you should do at all times before applying an updated migration).
The value of the DefinitionVersionId
needs to be taken from the WorkflowDefinitions table's Id
field.
New Features β¨
- Retention settings (auto-delete completed workflow instances)
- Run workflow from designer (Requires new
Elsa.WorkflowTesting.Api
package and update Startup withservices.AddWorkflowTestingServices()
andapp.MapWorkflowTestHub
- seeElsa.Samples.Workflow
for an example) - Configure automatic layout direction. Default is top to bottom, but can now be configured from the UI to left to right, right to left and bottom to top (#2619)
- FileSystemWatcher activities
- Configure HTTP Endpoint activity with authentication settings (require authenticated requests and ASP.NET Core policy requirements)
- Configure Send HTTP Request activity with desired response content formatter (plus the ability to add your own by implementing
IHttpResponseContentReader
) - Added RabbitMQ activities (#2547)
Improvements π
- Added designer legend with quick hints about certain designer operations such as how to delete connections and change connection between activities.
- Performance improvement (noticeable when there are many workflow definitions in the system)
- Trim Azure Service Bus queue name at 50 characters (ASB returns error when queue name limit of 50 characters is exceeded)
- Ability to select multiple workflow instances from multiple pages.
- Add variables tab to instance view (#2442)
- Add base64 encoding JS functions
- Add
getActivityId
JS function - Increase dashboard extensibility. All menu items and routes are now customizable by plugins
- Disable buggy copy & paste. To be re-implemented (possibly as part of Elsa 3 designer back-port)
- Add support for bitflag list items (#1654)
- Add intellisense support for dynamic HttpEndpoint output (#2526)
- Update appveyor to push debug symbols
- Use strongly-typed arrays for typescript definitions (#2584)
Fixes π οΈ
- Publish correct event (WorkflowInstanceCancelled) (#1560)
- Fix YesSQL provider for bookmarks (#1604)
- Fix for oracle persistence provider - in order to use data more than 2000 char we have to use NCLOB ,in oracle we have to explicitly say the column is NCLOB otherwise it would be considered Nvarchar(2000) (#2450)
- Dynamic Activity Outcomes from activity property descriptor (#2473)
- fixed semaphore locking for azureservicebus activities (#2494)
- Fix ClearTimer activity (#2429)
- Replace Dictionary with ConcurrentDictionary (#2503)
- Update workflow launchpad to prevent duplicate correlated workflow instances
- Prevent activities with [Browsable(false)] from being included (#2411)
- Accessing Output via Liquid (#2509)
- Various JSON serialization fixes and improvements
- Many other bug fixes
This release was made possible thanks to generous contributions from members from the community.
A Big Thank You to everyone who raised issues and contributed amazing features & fixes! This release is awesome because of all of youππ»
Elsa 2.3 β¨
Here's what's new!
- Extensible Workflow Execution Log: activities can now include custom data that becomes visible in the Workflow Journal.
- File Activities: activities that deal with reading & writing files from the local disk.
- Send HTTP Request activity improvements: you can now select what content parser to use to parse the response of the request. Also, the set of parsers is extensible, which means you can write your own.
- RPA Web activities: a set of activities to automate UI testing in the browser.
- Significantly reduced number of DB commits during workflow execution: before this improvement, activity executing log entries were persisted as they were created. This was changed such that workflow execution log entries are collected and flushed to the database when the workflow instance is saved as well.
- Fixed that the workflow designer would sometimes not render properly and a full refresh was required.
- Infinite Loop detection & handling: To prevent server CPUs from melting down when you (accidentally) implement a workflow with an infinite "tight" loop (a loop with no suspension points), the workflow engine will introduce a "cool down" of a configurable amount of time for a configurable amount of loop detection events.
- Workflow instances can now be cancelled from the dashboard.
- You can now publish/unpublish workflow definitions from the Workflow Definitions overview page. Before, you had to go into a workflow definiton and handle publish/unpublish from there.
- Many issues, ranging from small to large, have been fixed.
A Big Thank You to everyone who contributed to this new release candidate!