Open
Conversation
Bumps Dapper from 2.1.66 to 2.1.72 Bumps dotnet-outdated-tool from 4.7.0 to 4.7.1 Bumps Elsa.Email from 3.5.3 to 3.6.0 Bumps Elsa.Http from 3.5.3 to 3.6.0 Bumps Elsa.Identity from 3.5.3 to 3.6.0 Bumps Elsa.Scheduling from 3.5.3 to 3.6.0 Bumps Elsa.Workflows.Api from 3.5.3 to 3.6.0 Bumps Elsa.Workflows.Core from 3.5.3 to 3.6.0 Bumps Elsa.Workflows.Management from 3.5.3 to 3.6.0 Bumps Elsa.Workflows.Runtime from 3.5.3 to 3.6.0 Bumps MailKit from 4.14.1 to 4.15.1 Bumps Meziantou.Analyzer from 2.0.187 to 3.0.19 Bumps Microsoft.CodeAnalysis.NetAnalyzers from 10.0.101 to 10.0.103 Bumps Microsoft.EntityFrameworkCore from 10.0.2 to 10.0.3 Bumps Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 Bumps Roslynator.Analyzers from 4.12.11 to 4.15.0 Bumps WolverineFx from 5.14.0 to 5.17.0 Bumps WolverineFx.FluentValidation from 5.14.0 to 5.17.0 Bumps WolverineFx.RabbitMQ from 5.14.0 to 5.17.0 --- updated-dependencies: - dependency-name: Dapper dependency-version: 2.1.72 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-nuget - dependency-name: dotnet-outdated-tool dependency-version: 4.7.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-nuget - dependency-name: Elsa.Email dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Workflows.Core dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Workflows.Management dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Http dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Workflows.Api dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Workflows.Runtime dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Identity dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Elsa.Scheduling dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: MailKit dependency-version: 4.15.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Meziantou.Analyzer dependency-version: 3.0.19 dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-nuget - dependency-name: Microsoft.CodeAnalysis.NetAnalyzers dependency-version: 10.0.103 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-nuget - dependency-name: Microsoft.EntityFrameworkCore dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-nuget - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: Roslynator.Analyzers dependency-version: 4.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: WolverineFx dependency-version: 5.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: WolverineFx.FluentValidation dependency-version: 5.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget - dependency-name: WolverineFx.RabbitMQ dependency-version: 5.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-nuget ... Signed-off-by: dependabot[bot] <support@github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Dapper from 2.1.66 to 2.1.72.
Release notes
Sourced from Dapper's releases.
2.1.72
What's Changed
New Contributors
Full Changelog: DapperLib/Dapper@2.1.66...2.1.72
Commits viewable in compare view.
Updated dotnet-outdated-tool from 4.7.0 to 4.7.1.
Release notes
Sourced from dotnet-outdated-tool's releases.
4.7.1
What's Changed
New Contributors
Full Changelog: dotnet-outdated/dotnet-outdated@v4.7.0...v4.7.1
Commits viewable in compare view.
Updated Elsa.Email from 3.5.3 to 3.6.0.
Release notes
Sourced from Elsa.Email's releases.
3.6.0
3.6.0 — Release Notes
Compare:
3.5.3...3.6.0Repository 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:EntityFrameworkCorenamespaces →EFCore(e.g.Elsa.EntityFrameworkCore→Elsa.EFCore).Elsa.ProtoActor.Core→Elsa.Actors.ProtoActor.Persistencein their namespaces.ServiceBusin their namespaces.Storagein their namespaces.Http.Scripting.Scheduling.Integrationssegment has been removed from all package/namespace names.(#40, #41, #42)
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:{{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)Elsa.Sqlactivities fromelsa-coreinto this repo, including a fix for the upstream variable-retrieval bug and improvements to the SQL evaluator. (#38)HTTP (
Elsa.Http.OpenApi)... (truncated)
3.6.0-rc5
Full Changelog: elsa-workflows/elsa-extensions@3.6.0-rc3...3.6.0-rc5
3.6.0-rc3
What's Changed
Full Changelog: elsa-workflows/elsa-extensions@3.6.0-rc2...3.6.0-rc3
3.6.0-rc2
Elsa Extensions
3.6.0-rc2(from3.6.0-rc1)Compare:
3.6.0-rc1...3.6.0-rc2🌟 Highlights
Elsa.Http.OpenApiproject to the solution for HTTP OpenAPI capabilities. (#108)release/*branches. (5cef7e53) (5cef7e53)EnableClusteringtoConfigureClusteringIdentity; update any usages accordingly. (#110)✨ New features
EnableClusteringAPI and fixed race conditions in Quartz.NET integration. (#110)QuartzFeaturewith default values when not explicitly set. (#110)Elsa.Http.OpenApiproject to solution. (#108)🔧 Improvements
QuartzFeatureXML docs to clarify clustering identity configuration and provide usage examples. (#110)release/*branches in package versioning logic inpackages.yml. (5cef7e53)release/*branch to workflow triggers inpackages.yml. (5cef7e53)🐛 Fixes
🔁 CI / Build
release/*branches in package versioning logic inpackages.yml. (5cef7e53)release/*branch to workflow triggers inpackages.yml. (5cef7e53)📦 Full changelog (short)
QuartzFeatureXML docs to clarify clustering identity configuration and provide usage examples (b0c5f45b)QuartzFeaturewith default values if not explicitly set. (19696d18)Elsa.Http.OpenApiproject to solution (f8d588c9)release/*branches in package versioning logic inpackages.yml(4d0e0bd0)release/*branch to workflow triggers inpackages.yml(5cef7e53)... (truncated)
3.6.0-rc1
Elsa Extensions — 3.6.0 RC1 Release Notes
Highlights
Elsa.DevOps.GitHub), SQL integration improvements, and a new CSV processing module.What’s Changed
New Integrations & Modules
UseAzureServiceBusfor enhanced configuration flexibility by @sfmskywalker in Add overloads toUseAzureServiceBusfor enhanced configuration flexibility. elsa-workflows/elsa-extensions#100Agents & AI
DevOps
Platform, Build & Repo Housekeeping
Persistence & Database
... (truncated)
Commits viewable in compare view.
Updated Elsa.Http from 3.5.3 to 3.6.0.
Release notes
Sourced from Elsa.Http's releases.
3.6.0
Elsa 3.6.0 — Release Notes
Compare:
3.5.3...3.6.0Database migrations (EF Core — all providers):
ActivityNodeIdcolumns inActivityExecutionRecordsandWorkflowExecutionLogRecordshave been widened to unlimited types (nvarchar(max)/longtext/NCLOB) to support deeply nested workflows. The corresponding B-tree indexes (IX_ActivityExecutionRecord_ActivityNodeId,IX_WorkflowExecutionLogRecord_ActivityNodeId) are dropped as part of the V3_6 migrations. You must apply the EF Core migrations before upgrading to 3.6.0 in any SQL Server, MySQL, or Oracle deployment. (d4b69be44b) (#7338)Multitenancy — tenant ID convention change: An empty string (
"") is now the canonical default tenant ID for all tenant-aware entities;nullnow means tenant-agnostic (visible to all tenants). EF Core query filters and theActivityRegistryhave been updated accordingly. If your database contains rows with anullTenantIdthat were intended to represent the default tenant, migrate those rows to""before upgrading. The newNormalizeTenantId()extension method onstringhandles the conversion in code. (#7217, #7226)Multitenancy — stored-trigger index updated: Database indexes on stored triggers now include
TenantId. The V3_6 migration adds this index; no manual action is required beyond running migrations. (#7217)DefaultRegistriesPopulatorconstructor change: The constructor now requires an additionalINotificationSenderdependency. If you manually instantiate or overrideDefaultRegistriesPopulatorin tests or custom DI registrations, add the new parameter. Standard DI consumers are unaffected. (#7293)Elsa.Commondependency trimmed: TheDistributedLockmeta-package (which pulled in all provider implementations) has been replaced withDistributedLock.Core. Applications that relied on the transitive provider packages (e.g.DistributedLock.SqlServer) being pulled in viaElsa.Commonmust add explicit package references. (53245cafbd) (#7169)✨ New features
Activity host registration
HostMethodActivity/ activity hosts: Introduces support for registering CLR types as activity hosts. Publicasyncmethods on a registered type are automatically discovered and exposed as individual activities in the workflow designer, enabling code-first activity generation without manual activity boilerplate. New types:HostMethodActivity,HostMethodActivityProvider,IHostMethodActivityDescriber,FromServicesAttribute. (fa04e1ebcd) (#7172)Workflow dispatch notifications
Dispatch lifecycle notifications:
BackgroundWorkflowDispatchernow emits four new notifications at dispatch time, allowing subscribers to react to durable dispatch scenarios without a custom dispatcher:WorkflowDefinitionDispatching/WorkflowDefinitionDispatchedWorkflowInstanceDispatching/WorkflowInstanceDispatched(411ca0a332) (#7157)
WorkflowDefinitionsReloadednotification:DefaultRegistriesPopulatornow dispatches aWorkflowDefinitionsReloadednotification after repopulating the workflow definition store, enabling subscriber nodes to synchronize their registries. (f5505d66c9) (#7293)Consumers API & recursive export
GET /workflow-definitions/{definitionId}/consumers: New endpoint returns all recursive consuming workflow definitions for a given definition. Built on a newIWorkflowReferenceGraphBuilder/WorkflowReferenceGraphmodel that replaces the previous ad-hoc recursive query approach. (0a2e99ad42) (#7309)Export with transitive consumers: The export endpoint and
BulkExportWorkflowDefinitionsRequestnow accept anIncludeConsumingWorkflowsflag (defaultfalse). When enabled, the ZIP export recursively resolves and includes all consuming workflows at their latest version. Exported filenames are now deterministic ({Name}-{DefinitionId}.json). (0a2e99ad42) (#7309)Default commit strategies
WithDefaultWorkflowCommitStrategy()andWithDefaultActivityCommitStrategy()extension methods on the workflows builder let you set application-wide fallback commit strategies. The resolution order for activities is: activity-specific → default activity → workflow-specific → default workflow → no commit. Default strategies are stored separately from the registry so they don't appear in the UI/tooling. (31eff52d24) (#7148)Multitenancy enhancements
TenantIdfor tenant-agnostic entities: Entities with anullTenantIdare now treated as visible across all tenants. EF Core query filters andActivityRegistryquery methods includenull-tenanted records in every tenant's scope. NewActivityDescriptor.TenantId(nullable) property added. (7bc9035f5e) (#7226)... (truncated)
3.6.0-rc5
What's Changed
Full Changelog: elsa-workflows/elsa-core@3.6.0-rc4...3.6.0-rc5
3.6.0-rc4
What's Changed
Resulthandling: by @sfmskywalker in Update multitenancy logic and improveResulthandling: elsa-workflows/elsa-core#7281Full Changelog: elsa-workflows/elsa-core@3.6.0-rc3...3.6.0-rc4
3.6.0-rc3
Compare:
3.6.0-rc2...3.6.0-rc3This release candidate includes significant multitenancy improvements, bug fixes, and enhanced test coverage.
Multitenancy Tenant ID Convention Changes
Affected users: Applications using multitenancy features, especially those with existing tenant data.
What changed:
"") instead ofnull(ADR-0008). (b09a56481) (#7217)"*") as the sentinel value instead ofnull(ADR-0009). (7bc9035f5) (#7226)Triggerstable now includeTenantIdin unique constraints across all EF Core providers. (b09a56481) (#7217)Migration required:
nullTenantIdvalues to empty strings for default tenant data inWorkflowDefinitions,WorkflowInstances, and runtime entities.doc/adr/for detailed rationale and migration guidance.Query filter changes: EF Core query filters have been updated to handle the new tenant ID conventions, ensuring tenant isolation is properly maintained. (7bc9035f5) (#7226)
✨ New features
Multitenancy enhancements
"*"as tenant ID) to make them accessible across all tenants. (7bc9035f5) (#7226)SelectiveMockLockProviderfor precise lock mocking in tests without affecting unrelated background operations. (b09a56481) (#7217)🔧 Improvements
Multitenancy
DefaultWorkflowDefinitionStorePopulatorto ensure workflows are only loaded for the current tenant. (b09a56481) (#7217)WorkflowDefinitionActivityProviderand included tenant ID in activity type names for better separation. (558902bb7)ActivityRegistry.Findto prefer tenant-specific descriptors over tenant-agnostic ones with single-pass iteration for better performance. (7bc9035f5) (#7226)BackgroundWorkflowCancellationDispatcherfor proper tenant context propagation during workflow cancellation. (bc70beff1) (#7040)API improvements
ElsaEndpointbase class with standardized permission configuration. (72569702f) (#7205)Error handling
... (truncated)
3.6.0-rc2
Compare:
3.6.0-rc1...3.6.0-rc2Bookmarkmoved from a positional record to a mutable class (serialization/back-compat oriented). (ca268c16ad) (#7161)Elsa.Commonnow referencesDistributedLock.Coreinstead ofDistributedLock. (#7169)✨ New features
Activity hosts / host-method activities
[FromServices]). (#7172)Penguin) and registered it inElsa.Server.Web. (#7172)Commit strategies (defaults)
Resilience / transient exception detection
Workflow dispatch notifications
Tenant task lifecycle & dependencies
TenantTaskManagerand dependency ordering support ([TaskDependency],TopologicalTaskSorter). (#7174)🔧 Improvements
correlationIdparameter non-optional inWorkflowExecutionContextconstructor. (fa798b0a47)ClearCompletionCallbacksfromWorkflowExecutionContext. (79a64e90fd)🐛 Fixes
ActivityExecutionContext.TryGet(...)correctly handlesLiteralreferences by returning the literal’s value directly. (#7075)🧩 Developer-facing changes
ActivityAttribute: now valid on classes, interfaces, and methods. (3778a14e54)InputAttribute: now valid on properties and parameters. (3778a14e54)OutputAttribute: now valid on properties, classes, methods, and return values. (3778a14e54)🧪 Tests
... (truncated)
3.6.0-rc1
Elsa Workflows 3.6.0 RC1
This release focuses on Flowchart execution improvements, stronger runtime correctness, major test coverage expansion, reliability fixes for scheduling/triggers and HTTP content handling, and a platform upgrade to .NET 10 while retaining support for .NET 8 and .NET 9.
Highlights
MergeMode. (PRs: #6632, #6937, #6993, #7141)ActivityCompletednotification. (PRs: #6675, #6800, #6807)Flowchart: token-based execution + per-activity
MergeMode(opt-in)Elsa 3.6.0 introduces an optional token-based execution algorithm for the Flowchart activity. Instead of relying on the previous counter-based scheduling model, the Flowchart can now track progress using tokens that represent a taken connection (from a source activity outcome to a target activity).
When an activity completes, the flowchart:
MergeMode.New:
MergeMode(configurable per activity)With token-based execution enabled, Flowchart supports a new
MergeModeconcept that determines how a node behaves when it has multiple inbound connections. You can now specify a merge mode per activity, allowing different “join” semantics within the same flowchart.In broad terms, merge modes enable behaviors like:
Merge): waits for tokens from all forward inbound connections (loop/back edges don’t block).Converge): waits for tokens from all inbound connections, including loop/back edges.Cascade/Race): schedules on the first arriving inbound token; inRacemode, other inbound ancestors are canceled so only the “winning” path continues.This improves predictability for joins, forks, and cyclic graphs, while giving you fine-grained control over how each activity merges incoming paths.
How to opt in (Program.cs)
Token-based Flowchart execution is opt-in. Enable it via the Flowchart feature configuration:
Breaking / Upgrading Notes
These are the changes most likely to affect upgrades from 3.5.x.
1) Multi-targeting: .NET 8, .NET 9, and .NET 10
Elsa 3.6.0 multi-targets .NET 8, .NET 9, and .NET 10.
... (truncated)
Commits viewable in compare view.
Updated Elsa.Identity from 3.5.3 to 3.6.0.
Release notes
Sourced from Elsa.Identity's releases.
3.6.0
Elsa 3.6.0 — Release Notes
Compare:
3.5.3...3.6.0Database migrations (EF Core — all providers):
ActivityNodeIdcolumns inActivityExecutionRecordsandWorkflowExecutionLogRecordshave been widened to unlimited types (nvarchar(max)/longtext/NCLOB) to support deeply nested workflows. The corresponding B-tree indexes (IX_ActivityExecutionRecord_ActivityNodeId,IX_WorkflowExecutionLogRecord_ActivityNodeId) are dropped as part of the V3_6 migrations. You must apply the EF Core migrations before upgrading to 3.6.0 in any SQL Server, MySQL, or Oracle deployment. (d4b69be44b) (#7338)Multitenancy — tenant ID convention change: An empty string (
"") is now the canonical default tenant ID for all tenant-aware entities;nullnow means tenant-agnostic (visible to all tenants). EF Core query filters and theActivityRegistryhave been updated accordingly. If your database contains rows with anullTenantIdthat were intended to represent the default tenant, migrate those rows to""before upgrading. The newNormalizeTenantId()extension method onstringhandles the conversion in code. (#7217, #7226)Multitenancy — stored-trigger index updated: Database indexes on stored triggers now include
TenantId. The V3_6 migration adds this index; no manual action is required beyond running migrations. (#7217)DefaultRegistriesPopulatorconstructor change: The constructor now requires an additionalINotificationSenderdependency. If you manually instantiate or overrideDefaultRegistriesPopulatorin tests or custom DI registrations, add the new parameter. Standard DI consumers are unaffected. (#7293)Elsa.Commondependency trimmed: TheDistributedLockmeta-package (which pulled in all provider implementations) has been replaced withDistributedLock.Core. Applications that relied on the transitive provider packages (e.g.DistributedLock.SqlServer) being pulled in viaElsa.Commonmust add explicit package references. (53245cafbd) (#7169)✨ New features
Activity host registration
HostMethodActivity/ activity hosts: Introduces support for registering CLR types as activity hosts. Publicasyncmethods on a registered type are automatically discovered and exposed as individual activities in the workflow designer, enabling code-first activity generation without manual activity boilerplate. New types:HostMethodActivity,HostMethodActivityProvider,IHostMethodActivityDescriber,FromServicesAttribute. (fa04e1ebcd) (#7172)Workflow dispatch notifications
Dispatch lifecycle notifications:
BackgroundWorkflowDispatchernow emits four new notifications at dispatch time, allowing subscribers to react to durable dispatch scenarios without a custom dispatcher:WorkflowDefinitionDispatching/WorkflowDefinitionDispatchedWorkflowInstanceDispatching/WorkflowInstanceDispatched(411ca0a332) (#7157)
WorkflowDefinitionsReloadednotification:DefaultRegistriesPopulatornow dispatches aWorkflowDefinitionsReloadednotification after repopulating the workflow definition store, enabling subscriber nodes to synchronize their registries. (f5505d66c9) (#7293)Consumers API & recursive export
GET /workflow-definitions/{definitionId}/consumers: New endpoint returns all recursive consuming workflow definitions for a given definition. Built on a newIWorkflowReferenceGraphBuilder/WorkflowReferenceGraphmodel that replaces the previous ad-hoc recursive query approach. (0a2e99ad42) (#7309)Export with transitive consumers: The export endpoint and
BulkExportWorkflowDefinitionsRequestnow accept anIncludeConsumingWorkflowsflag (defaultfalse). When enabled, the ZIP export recursively resolves and includes all consuming workflows at their latest version. Exported filenames are now deterministic ({Name}-{DefinitionId}.json). (0a2e99ad42) (#7309)Default commit strategies
WithDefaultWorkflowCommitStrategy()andWithDefaultActivityCommitStrategy()extension methods on the workflows builder let you set application-wide fallback commit strategies. The resolution order for activities is: activity-specific → default activity → workflow-specific → default workflow → no commit. Default strategies are stored separately from the registry so they don't appear in the UI/tooling. (31eff52d24) (#7148)Multitenancy enhancements
TenantIdfor tenant-agnostic entities: Entities with anullTenantIdare now treated as visible across all tenants. EF Core query filters andActivityRegistryquery methods includenull-tenanted records in every tenant's scope. NewActivityDescriptor.TenantId(nullable) property added. (7bc9035f5e) (#7226)... (truncated)
3.6.0-rc5
What's Changed
Full Changelog: elsa-workflows/elsa-core@3.6.0-rc4...3.6.0-rc5
3.6.0-rc4
What's Changed
Resulthandling: by @sfmskywalker in Update multitenancy logic and improveResulthandling: elsa-workflows/elsa-core#7281Full Changelog: elsa-workflows/elsa-core@3.6.0-rc3...3.6.0-rc4
3.6.0-rc3
Compare:
3.6.0-rc2...3.6.0-rc3This release candidate includes significant multitenancy improvements, bug fixes, and enhanced test coverage.
Multitenancy Tenant ID Convention Changes
Affected users: Applications using multitenancy features, especially those with existing tenant data.
What changed:
"") instead ofnull(ADR-0008). (b09a56481) (#7217)"*") as the sentinel value instead ofnull(ADR-0009). (7bc9035f5) (#7226)Triggerstable now includeTenantIdin unique constraints across all EF Core providers. (b09a56481) (#7217)Migration required:
nullTenantIdvalues to empty strings for default tenant data inWorkflowDefinitions,WorkflowInstances, and runtime entities.doc/adr/for detailed rationale and migration guidance.Query filter changes: EF Core query filters have been updated to handle the new tenant ID conventions, ensuring tenant isolation is properly maintained. (7bc9035f5) (#7226)
✨ New features
Multitenancy enhancements
"*"as tenant ID) to make them accessible across all tenants. (7bc9035f5) (#7226)SelectiveMockLockProviderfor precise lock mocking in tests without affecting unrelated background operations. (b09a56481) (#7217)🔧 Improvements
Multitenancy
DefaultWorkflowDefinitionStorePopulatorto ensure workflows are only loaded for the current tenant. (b09a56481) (#7217)WorkflowDefinitionActivityProviderand included tenant ID in activity type names for better separation. (558902bb7)ActivityRegistry.Findto prefer tenant-specific descriptors over tenant-agnostic ones with single-pass iteration for better performance. (7bc9035f5) (#7226)BackgroundWorkflowCancellationDispatcherfor proper tenant context propagation during workflow cancellation. (bc70beff1) (#7040)API improvements
ElsaEndpointbase class with standardized permission configuration. (72569702f) (#7205)Error handling
... (truncated)
3.6.0-rc2
Compare:
3.6.0-rc1...3.6.0-rc2Bookmarkmoved from a positional record to a mutable class (serialization/back-compat oriented). (ca268c16ad) (#7161)Elsa.Commonnow referencesDistributedLock.Coreinstead ofDistributedLock. (#7169)✨ New features
Activity hosts / host-method activities
[FromServices]). (#7172)Penguin) and registered it inElsa.Server.Web. (#7172)Commit strategies (defaults)
Resilience / transient exception detection
Workflow dispatch notifications
Tenant task lifecycle & dependencies
TenantTaskManagerand dependency ordering support ([TaskDependency],TopologicalTaskSorter). (#7174)🔧 Improvements
correlationIdparameter non-optional inWorkflowExecutionContextconstructor. (fa798b0a47)ClearCompletionCallbacksfromWorkflowExecutionContext. (79a64e90fd)🐛 Fixes
ActivityExecutionContext.TryGet(...)correctly handlesLiteralreferences by returning the literal’s value directly. (#7075)🧩 Developer-facing changes
ActivityAttribute: now valid on classes, interfaces, and methods. (3778a14e54)InputAttribute: now valid on properties and parameters. (3778a14e54)OutputAttribute: now valid on properties, classes, methods, and return values. (3778a14e54)🧪 Tests
... (truncated)
3.6.0-rc1
Elsa Workflows 3.6.0 RC1
This release focuses on Flowchart execution improvements, stronger runtime correctness, major test coverage expansion, reliability fixes for scheduling/triggers and HTTP content handling, and a platform upgrade to .NET 10 while retaining support for .NET 8 and .NET 9.
Highlights
MergeMode. (PRs: #6632, #6937, #6993, #7141)ActivityCompletednotification. (PRs: #6675, #6800, #6807)Flowchart: token-based execution + per-activity
MergeMode(opt-in)Elsa 3.6.0 introduces an optional token-based execution algorithm for the Flowchart activity. Instead of relying on the previous counter-based scheduling model, the Flowchart can now track progress using tokens that represent a taken connection (from a source activity outcome to a target activity).
When an activity completes, the flowchart:
MergeMode.New:
MergeMode(configurable per activity)With token-based execution enabled, Flowchart supports a new
MergeModeconcept that determines how a node behaves when it has multiple inbound connections. You can now specify a merge mode per activity, allowing different “join” semantics within the same flowchart.In broad terms, merge modes enable behaviors like:
Merge): waits for tokens from all forward inbound connections (loop/back edges don’t block).Converge): waits for tokens from all inbound connections, including loop/back edges.Cascade/Race): schedules on the first arriving inbound token; inRacemode, other inbound ancestors are canceled so only the “winning” path continues.This improves predictability for joins, forks, and cyclic graphs, while giving you fine-grained control over how each activity merges incoming paths.
How to opt in (Program.cs)
Token-based Flowchart execution is opt-in. Enable it via the Flowchart feature configuration:
Breaking / Upgrading Notes
These are the changes most likely to affect upgrades from 3.5.x.
1) Multi-targeting: .NET 8, .NET 9, and .NET 10
Elsa 3.6.0 multi-targets .NET 8, .NET 9, and .NET 10.
... (truncated)
Commits viewable in compare view.
Updated Elsa.Scheduling from 3.5.3 to 3.6.0.
Release notes
Sourced from Elsa.Scheduling's releases.
3.6.0
Elsa 3.6.0 — Release Notes
Compare:
3.5.3...3.6.0Database migrations (EF Core — all providers):
ActivityNodeIdcolumns inActivityExecutionRecordsandWorkflowExecutionLogRecordshave been widened to unlimited types (nvarchar(max)/longtext/NCLOB) to support deeply nested workflows. The corresponding B-tree indexes (IX_ActivityExecutionRecord_ActivityNodeId,IX_WorkflowExecutionLogRecord_ActivityNodeId) are dropped as part of the V3_6 migrations. You must apply the EF Core migrations before upgrading to 3.6.0 in any SQL Server, MySQL, or Oracle deployment. (d4b69be44b) (#7338)Multitenancy — tenant ID convention change: An empty string (
"") is now the canonical default tenant ID for all tenant-aware entities;nullnow means tenant-agnostic (visible to all tenants). EF Core query filters and theActivityRegistryhave been updated accordingly. If your database contains rows with anullTenantIdthat were intended to represent the default tenant, migrate those rows to""before upgrading. The newNormalizeTenantId()extension method onstringhandles the conversion in code. (#7217, #7226)Multitenancy — stored-trigger index updated: Database indexes on stored triggers now include
TenantId. The V3_6 migration adds this index; no manual action is required beyond running migrations. (#7217)DefaultRegistriesPopulatorconstructor change: The constructor now requires an additionalINotificationSenderdependency. If you manually instantiate or overrideDefaultRegistriesPopulatorin tests or custom DI registrations, add the new parameter. Standard DI consumers are unaffected. (#7293)Elsa.Commondependency trimmed: TheDistributedLockmeta-package (which pulled in all provider implementations) has been replaced withDistributedLock.Core. Applications that relied on the transitive provider packages (e.g.DistributedLock.SqlServer) being pulled in viaElsa.Commonmust add explicit package references. (53245cafbd) (#7169)✨ New features
Activity host registration
HostMethodActivity/ activity hosts: Introduces support for registering CLR types as activity hosts. Publicasyncmethods on a registered type are automatically discovered and exposed as individual activities in the workflow designer, enabling code-first activity generation without manual activity boilerplate. New types:HostMethodActivity,HostMethodActivityProvider,IHostMethodActivityDescriber,FromServicesAttribute. (fa04e1ebcd) (#7172)Workflow dispatch notifications
Dispatch lifecycle notifications:
BackgroundWorkflowDispatchernow emits four new notifications at dispatch time, allowing subscribers to react to durable dispatch scenarios without a custom dispatcher:WorkflowDefinitionDispatching/WorkflowDefinitionDispatchedWorkflowInstanceDispatching/WorkflowInstanceDispatched(411ca0a332) (#7157)
WorkflowDefinitionsReloadednotification:DefaultRegistriesPopulatornow dispatches aWorkflowDefinitionsReloadednotification after repopulating the workflow definition store, enabling subscriber nodes to synchronize their registries. (f5505d66c9) (#7293)Consumers API & recursive export
GET /workflow-definitions/{definitionId}/consumers: New endpoint returns all recursive consuming workflow definitions for a given definition. Built on a newIWorkflowReferenceGraphBuilder/WorkflowReferenceGraphmodel that replaces the previous ad-hoc recursive query approach. (0a2e99ad42) (#7309)Export with transitive consumers: The export endpoint and
BulkExportWorkflowDefinitionsRequestnow accept anIncludeConsumingWorkflowsflag (defaultfalse). When enabled, the ZIP export recursively resolves and includes all consuming workflows at their latest version. Exported filenames are now deterministic ({Name}-{DefinitionId}.json). (0a2e99ad42) (#7309)Default commit strategies
WithDefaultWorkflowCommitStrategy()andWithDefaultActivityCommitStrategy()extension methods on the workflows builder let you set application-wide fallback commit strategies. The resolution order for activities is: activity-specific → default activity → workflow-specific → default workflow → no commit. Default strategies are stored separately from the registry so they don't appear in the UI/tooling. (31eff52d24) (#7148)Multitenancy enhancements
TenantIdfor tenant-agnostic entities: Entities with anullTenantIdare now treated as visible across all tenants. EF Core query filters andActivityRegistryquery methods includenull-tenanted records in every tenant's scope. NewActivityDescriptor.TenantId(nullable) property added. (7bc9035f5e) (#7226)... (truncated)
3.6.0-rc5
What's Changed
Full Changelog: elsa-workflows/elsa-core@3.6.0-rc4...3.6.0-rc5
3.6.0-rc4
What's Changed
Resulthandling: by @sfmskywalker in Update multitenancy logic and improveResulthandling: elsa-workflows/elsa-core#7281Full Changelog: elsa-workflows/elsa-core@3.6.0-rc3...3.6.0-rc4
3.6.0-rc3
Compare:
3.6.0-rc2...3.6.0-rc3This release candidate includes significant multitenancy improvements, bug fixes, and enhanced test coverage.
Multitenancy Tenant ID Convention Changes
Affected users: Applications using multitenancy features, especially those with existing tenant data.
What changed:
"") instead ofnull(ADR-0008). (b09a56481) (#7217)"*") as the sentinel value instead ofnull(ADR-0009). (7bc9035f5) (#7226)Triggerstable now includeTenantIdin unique constraints across all EF Core providers. (b09a56481) (#7217)Migration required:
nullTenantIdvalues to empty strings for default tenant data inWorkflowDefinitions,WorkflowInstances, and runtime entities.doc/adr/for detailed rationale and migration guidance.Query filter changes: EF Core query filters have been updated to handle the new tenant ID conventions, ensuring tenant isolation is properly maintained. (7bc9035f5) (#7226)
✨ New features
Multitenancy enhancements
"*"as tenant ID) to make them accessible across all tenants. (7bc9035f5) (#7226)SelectiveMockLockProviderfor precise lock mocking in tests without affecting unrelated background operations. (b09a56481) (#7217)🔧 Improvements
Multitenancy
DefaultWorkflowDefinitionStorePopulatorto ensure workflows are only loaded for the current tenant. (b09a56481) (#7217)WorkflowDefinitionActivityProviderand included tenant ID in activity type names for better separation. (558902bb7)ActivityRegistry.Findto prefer tenant-specific descriptors over tenant-agnostic ones with single-pass iteration for better performance. (7bc9035f5) (#7226)BackgroundWorkflowCancellationDispatcherfor proper tenant context propagation during workflow cancellation. (bc70beff1) (#7040)API improvements
ElsaEndpointbase class with standardized permission configuration. (72569702f) (#7205)Error handling
... (truncated)
3.6.0-rc2
Compare:
3.6.0-rc1...3.6.0-rc2Bookmarkmoved from a positional record to a mutable class (serialization/back-compat oriented). (ca268c16ad) (#7161)Elsa.Commonnow referencesDistributedLock.Coreinstead ofDistributedLock. (#7169)✨ New features
Activity hosts / host-method activities
[FromServices]). (#7172)Penguin) and registered it inElsa.Server.Web. (#7172)Commit strategies (defaults)
Resilience / transient exception detection
Workflow dispatch notifications
Tenant task lifecycle & dependencies
TenantTaskManagerand dependency ordering support ([TaskDependency],TopologicalTaskSorter). (#7174)🔧 Improvements
correlationIdparameter non-optional inWorkflowExecutionContextconstructor. (fa798b0a47)ClearCompletionCallbacksfromWorkflowExecutionContext. (79a64e90fd)🐛 Fixes
ActivityExecutionContext.TryGet(...)correctly handlesLiteralreferences by returning the literal’s value directly. (#7075)🧩 Developer-facing changes
ActivityAttribute: now valid on classes, interfaces, and methods. (3778a14e54)InputAttribute: now valid on properties and parameters. (3778a14e54)OutputAttribute: now valid on properties, classes, methods, and return values. (3778a14e54)🧪 Tests
... (truncated)
3.6.0-rc1
Elsa Workflows 3.6.0 RC1
This release focuses on Flowchart execution improvements, stronger runtime correctness, major test coverage expansion, reliability fixes for scheduling/triggers and HTTP content handling, and a platform upgrade to .NET 10 while retaining support for .NET 8 and .NET 9.
Highlights
MergeMode. (PRs: #6632, #6937, #6993..._Description ha...
Description has been truncated