Commit graph

6248 commits

Author SHA1 Message Date
Sipke Schoorstra a6a491cde7
Refactor Program.cs to simplify options and remove unused constants. Clean up solution file and update namespace for ConfigureEngineWithVariableTypes. 2025-07-05 18:54:45 +02:00
Sipke Schoorstra dec9c121f4
Merge remote-tracking branch 'origin/develop/3.6.0' into develop/3.6.0 2025-07-04 20:36:46 +02:00
Sipke Schoorstra ed49f21895
Merge remote-tracking branch 'origin/develop/3.5.0' into develop/3.6.0 2025-07-04 20:35:53 +02:00
Sipke Schoorstra 0115379594
Create ConfigureEngineWithVariableTypes.cs 2025-07-04 20:25:21 +02:00
Sipke Schoorstra 876c76e443
Merge remote-tracking branch 'origin/patch/3.4.2' into develop/3.5.0
# Conflicts:
#	.github/workflows/packages.yml
#	src/modules/Elsa.MongoDb/Features/MongoDbFeature.cs
2025-07-04 10:03:35 +02:00
Sipke Schoorstra 45bfcc9eeb
Update release workflow for 3.4.2 patch tracking
Adjusted branch filtering logic in `packages.yml` to track `3.4.2` patch release.
2025-07-04 09:58:09 +02:00
Sipke Schoorstra 1a554e7e06
Fix MongoDB serialization issues (#6762)
* Ongoing MongoDB work

* Refactor MongoDB serializer configuration and improve type handling

- Added `BsonSerializerHelpers` for streamlined serializer registration with error handling.
- Introduced `ConfigureMongoDbSerializers` hosted service to centralize serializer setup.
- Enhanced `FlowScopeSerializer` to handle additional BSON types.
- Cleaned up and reorganized MongoDB feature implementations, removing redundant code and improving consistency.

* Remove `BsonSerializerHelpers` and update MongoDB serializer registration

- Deleted `BsonSerializerHelpers` as it was redundant.
- Updated `ConfigureMongoDbSerializers` to directly register serializers using `BsonSerializer`.
- Simplified `FlowScopeSerializer` null handling for improved readability.

* Switch persistence provider to Entity Framework Core in `Program.cs`.

* Update src/modules/Elsa.MongoDb/Serializers/FlowScopeSerializer.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Configures MongoDB services and options.

Configures MongoDB services, including client and database creation.

Registers default naming strategy and collection naming strategy.

Adds BsonClassMap configuration for KeyValuePair.

* Simplify null check in `FlowScopeSerializer`.

* Allow `FlowScopeSerializer` to handle nullable `FlowScope`.

* Registers FlowScope BSON class map

Registers the `FlowScope` class with BSON to enable proper serialization and deserialization of workflow scopes within MongoDB.

This ensures that workflow scopes, which are used to manage variables within a workflow, are correctly stored and retrieved from the database.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-04 09:46:20 +02:00
Sipke Schoorstra 9a82b8b66b
Add backward compatibility for WorkflowInstance.Name mapping in WorkflowStateMapper (#6767)
* Add backward compatibility for `WorkflowInstance.Name` mapping in `WorkflowStateMapper`

- Introduced constant `WorkflowInstanceNameKey` to handle legacy workflow instance name properties.
- Updated `MapWorkflowStateToWorkflowInstance` method to set `Name` property for older instances.

* Remove unused `Elsa.Workflows.Activities` import from `WorkflowStateMapper`

* Update src/modules/Elsa.Workflows.Management/Mappers/WorkflowStateMapper.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-04 09:34:00 +02:00
Sipke Schoorstra ea9c94de7e
Add missing import for Flowchart.Models in MongoDbFeature 2025-07-03 22:24:37 +02:00
Sipke Schoorstra b8a04b11d1
Register FlowScope class map in MongoDB feature to handle serialization and ignore extra elements. (#6766) 2025-07-03 22:21:40 +02:00
lukhipolito-nexxbiz c4451c4f40
Feat/6732 zip archive activities (#6751)
* Io module and content strategies

* Restructuring the folders and projects

* Create zip activity + shared content resolver

* Fixing build on github.com

* Update src/modules/Elsa.IO/Services/ContentResolver.cs

explicit nullable field

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>

* QoL improvements

* More QoL improvements + removing some logic duplications

* Update src/modules/Elsa.IO.Compression/Activities/CreateZipArchive.cs

avoiding duplicate extensions

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Assigning file path correctly to the variable

* More QoL changes, new Elsa.IO.Http module, more modular content strategy

* Addresing QoL review comments + Correct extension handling

---------

Co-authored-by: lucas.hipolito <lukhipolito@yahoo.com.br>
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-30 16:56:51 +02:00
Sipke Schoorstra 8ce841df9a
Merge remote-tracking branch 'origin/develop/3.5.0' into develop/3.6.0 2025-06-26 10:47:14 +02:00
Matt 2dbd050e64 Revert ChecklistItem back from Record to Class and remove left over RadioListActivity. Update Nuget packages. 2025-06-26 01:32:05 +01:00
Matt 4530dfd1f7 Refactor checklists and radio lists to use records
Converted `CheckList` and `CheckListItem` to records,
adding XML documentation for clarity. Updated properties
in `CheckListProps`, `RadioList`, and `RadioListItem`
with similar changes. Enhanced documentation in
`DropDownOptionsProviderBase` and modified
`RadioListOptionsProviderBase` to reflect new
functionality. Overall improvements for readability
and maintainability.
2025-06-26 01:30:39 +01:00
Matt b4fd26d523 Add radio list support and related UI components
- Renamed `CheckList` to `RadioList` in `RadioListProps`.
- Updated `WorkflowsFeature` to include `RadioListUIHintHandler` and `StaticRadioListOptionsProvider`.
- Introduced `TestRadioList` class for executing radio list functionality.
- Created `RadioList` and `RadioListItem` classes for managing radio list items.
- Added `RadioListOptionsProviderBase` for custom radio list data logic.
- Implemented `StaticRadioListOptionsProvider` for static radio list options.
2025-06-26 01:30:39 +01:00
Matt 776630a556 Create Api Client Models for upcoming RadioList UIHint. 2025-06-26 01:30:38 +01:00
Sipke Schoorstra dc7432839c
Merge branch 'feat/test-run-activity' into develop/3.6.0 2025-06-23 12:44:48 +02:00
Sipke Schoorstra 1361138443
Update README and enhance ScheduleActivityExecutionContextTests with cancellation token 2025-06-23 11:26:34 +02:00
Sipke Schoorstra e8cd3cded5
Implement Activity Testing API (#6719)
* Adds activity test-run endpoint

Adds an API endpoint to facilitate testing of individual activities within a workflow.

The endpoint allows developers to execute a specific activity within a given workflow definition.

Also ensures latest workflow definition is marked when publishing.

* Enables activity test run to return results

Updates the activity test run endpoint to return activity execution results such as outputs, outcomes, exceptions, and status.

This allows users to inspect the results of test runs for activities, providing valuable insights into their behavior.

* Add activity testing API integration and activity test UI support

Introduced `ITestsApi` and supporting models for activity testing in workflows. Updated the UI to support triggering and displaying activity test results, including handling outcomes, outputs, exceptions, and status. Additionally, updated dependency injection for the new API and adjusted the project references.

* Refactor workflow test endpoints and update method parameters

Updated the namespace and route for activity test endpoints from `TestRun` to `Tests/Activities`. Adjusted default parameter values in `WorkflowDefinitionHandle` method for improved consistency.

* Introduce `ActivityTestRunner` to streamline activity testing

Adds a new `IActivityTestRunner` interface and its implementation, simplifying the execution of individual workflow activities for testing purposes. Updates dependencies and refactors activity test endpoints to use the new service.

* Update `ActivityTestRunner` to support variable test values

Enhanced the `ActivityTestRunner` to include functionality for injecting test-specific variable values when executing workflow activities. Added a helper method `GetVariableTestValues` to retrieve and deserialize test variable data from custom properties.

* Update `Tests/Activities` endpoint to include `ActivityState`

Refactored the response model to replace `Outcomes` with `ActivityState` and `Payload`, ensuring more detailed activity execution results.

* Add draft saving and saved notifications for workflow definitions

* Add draft saving notification handling in cache evictions

Integrates handling for `WorkflowDefinitionDraftSaving` and `WorkflowDefinitionDraftSaved` events within the workflow cache eviction service, ensuring definitions are properly evicted.

* Refactor `ConfigureLiquidEngine` to simplify variable enumeration logic

* Remove redundant `<returns>` tag from `ByDefinitionVersionId` method XML documentation

* Refactor `Tests/Activities` endpoint documentation and constructor

Updated XML documentation to clarify endpoint responsibilities and adjusted constructor by removing an unused dependency (`IIdentityGenerator`).
2025-06-23 10:03:10 +02:00
raymonddenhaan e36b4976b4
Merge pull request #6741 from elsa-workflows/feat/6740
Fix Ancestor Faulting
2025-06-18 09:29:00 +02:00
Sipke Schoorstra ab6bb23df9
Update src/modules/Elsa.Workflows.Core/Extensions/WorkflowExecutionContextExtensions.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-14 13:00:45 +02:00
Sipke Schoorstra 54fcd9305b
Simplify exception handling logic in ExceptionHandlingMiddleware
- Removed `LogExceptionAndTransition` and `FaultAncestors` methods.
- Integrated exception fault handling with `ActivityExecutionContext.Fault()`.
2025-06-14 12:15:46 +02:00
Sipke Schoorstra 2cbcefee83
Remove HealActivity alteration and handler
- Deleted `HealActivity` alteration type and associated `HealActivityHandler`.
- Unregistered `HealActivity` from alteration services.
2025-06-14 12:15:34 +02:00
Sipke Schoorstra ce3a0b9ce0
Refactors alteration job dispatcher.
Refactors the background alteration job dispatcher to use a service scope
to resolve the alteration job runner. This ensures that the runner
is resolved within a scope, allowing it to utilize scoped services.
2025-06-14 11:38:25 +02:00
Sipke Schoorstra b860370d9d
Add HealActivity alteration and handler with workflow fault recovery support
- Introduced `HealActivity` alteration type for resolving faulted activity states.
- Added `HealActivityHandler` to manage execution of `HealActivity`.
- Enhanced `WorkflowExecutionContextExtensions` with `FindActivityExecutionContexts` method for locating activity execution contexts based on provided handles.
- Updated `AlterationHandlerContext` to enable custom commit actions during `Succeed` calls.
- Registered `HealActivity` and its handler in alteration services.
- Upgraded `ElsaStudioVersion` to `3.5.0-preview.1092`.
2025-06-13 20:35:19 +02:00
Sipke Schoorstra 607dc73e67
Fix ordering and pagination logic in FindManyAsync method for WorkflowExecutionLogStore
Reordered query operations to ensure consistent execution of `OrderBy` before `Paginate`, improving clarity and maintaining the expected query behavior.
2025-06-13 19:44:10 +02:00
Sipke Schoorstra 99370502dc
Refactor query composition to ensure proper ordering before pagination in WorkflowExecutionLogStore. 2025-06-13 19:43:46 +02:00
Sipke Schoorstra 2bf9ecc709
Merge remote-tracking branch 'origin/develop/3.5.0' into develop/3.6.0 2025-06-13 19:09:08 +02:00
Sipke Schoorstra 0811a4042d
Merge remote-tracking branch 'origin/patch/3.4.1' into develop/3.5.0 2025-06-13 19:04:29 +02:00
Sipke Schoorstra 38fb4cefff
Update package version properties for Microsoft and Resilience dependencies
Standardize package version references by renaming `Microsoft` to `MicrosoftVersion` and introducing `ResilienceVersion`. Adjust all relevant package declarations to use the updated property names.
2025-06-13 19:02:24 +02:00
Sipke Schoorstra 84e63f1f9e
Refactor package versioning to use shared properties for ElsaStudio and Microsoft packages. 2025-06-13 18:31:34 +02:00
Sipke Schoorstra c694a18c13
Enhances Mediator with Tenant Context Propagation (#6738)
* Update package versions in Directory.Packages.props

Upgraded multiple package dependencies to latest versions, ensuring compatibility, security, and access to the newest features.

* Refactor mediator pipeline to support tenant context propagation

- Introduced `TenantPropagatingMiddleware` to handle tenant context propagation during command execution.
- Added `SetupMediatorPipelines` hosted service for configuring mediator pipelines.
- Enhanced `CommandPipeline` and builder to allow middleware insertion, removal, and reordering.
- Updated `CommandContext` and related components to support headers for tenant context handling.
- Improved logging and refactored `BackgroundWorkflowDispatcher` to include tenant headers during command dispatch.

* Fix typos in XML documentation and improve middleware extension clarity

- Corrected duplicated slashes in XML doc comments in `ICommandSender.cs`.
- Refined phrasing in `MiddlewareExtensions.cs` to clarify method parameters and improve readability.

* Update src/common/Elsa.Mediator/Middleware/Command/Components/CommandLoggingMiddleware.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-13 14:26:51 +02:00
Sipke Schoorstra 935d6987d5
Commits workflow state during alteration (#6736)
* Reduce default logging verbosity in appsettings.json

* Commit workflow state during alteration execution

Added `ICommitStateHandler` dependency and implemented workflow state commitment in `DefaultAlterationRunner` to ensure state persistence during alteration execution.
2025-06-13 08:30:02 +02:00
Sipke Schoorstra 623b75ed2c
Fix order of Order and Pagination (#6727)
* Refactor query composition to ensure consistent ordering and pagination logic.

Reordered method calls for `OrderBy` and `Paginate` across multiple stores to enhance readability and maintain consistent execution. Simplified redundant query operations for improved clarity and performance.

* Updates Elsa Studio version to 3.4.0

Updates the Elsa Studio version to the stable release.

Removes the preview tag from the version number.

* Move `ElsaStudioVersion` property to `Directory.Packages.props` for centralized management.
2025-06-12 09:25:43 +02:00
Sipke Schoorstra 6eccb3540a
Update package versions (#6722)
* Update package versions

Updated multiple package versions to their latest release, including `Polly`, `Elastic.Clients.Elasticsearch`, `System.Text.Json`, and others.

* Remove duplicate package entry

* Fix case mismatch in package name for SQL Server migration dependency.

* Add `Proto.Cluster.AzureContainerApps` package version to dependencies

* Update Directory.Packages.props

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 09:48:00 +02:00
Sipke Schoorstra 9e9cd91816
Add support for clearing test values of variables
Introduced a "Clear Test Value" button in the EditVariableTestValueDialog to allow clearing variable test values. Extended the WorkflowDefinition logic to handle clearing variable test values and updated related UI elements for consistency.
2025-06-09 14:36:42 +02:00
Sipke Schoorstra 8ce30480a0
Refactor test run logic and enhance activity response handling
Introduced new properties in `TestActivityResponse` to better manage activity state and payload. Updated the test run UI to display detailed status, state, outcomes, and outputs using separate data panels. Refactored backend logic to improve data organization and ensure a clear separation of responsibility within the `UpdateDataModels` method.
2025-06-09 13:50:42 +02:00
Sipke Schoorstra 9b69c91535
Add test value editing functionality for workflow variables
Introduced a dialog to edit test values for workflow variables. Enhanced the workflow definition to support storing and retrieving variable test values. Updated the UI to display and manage test values with clear visual cues.
2025-06-09 11:57:01 +02:00
Sipke Schoorstra 3a902b20b4
Set default nullable values for DefinitionId, MaterializerName, and Root in WorkflowDefinition 2025-06-09 10:55:47 +02:00
Sipke Schoorstra 451554aa83
Add activity testing API integration and activity test UI support
Introduced `ITestsApi` and supporting models for activity testing in workflows. Updated the UI to support triggering and displaying activity test results, including handling outcomes, outputs, exceptions, and status. Additionally, updated dependency injection for the new API and adjusted the project references.
2025-06-09 10:01:43 +02:00
Sipke Schoorstra 2db059da3d
Enables activity test run to return results
Updates the activity test run endpoint to return activity execution results such as outputs, outcomes, exceptions, and status.

This allows users to inspect the results of test runs for activities, providing valuable insights into their behavior.
2025-06-08 22:05:46 +02:00
Sipke Schoorstra e7fcf94b66
Adds activity test-run endpoint
Adds an API endpoint to facilitate testing of individual activities within a workflow.

The endpoint allows developers to execute a specific activity within a given workflow definition.

Also ensures latest workflow definition is marked when publishing.
2025-06-08 20:11:58 +02:00
Sipke Schoorstra 33fecf4a0e
Update Docker image tags to v3-5-0-preview in GitHub workflows 2025-06-06 18:51:08 +02:00
Sipke Schoorstra a18dbdcb80
Update Docker image tags to version 3.6.0-preview in workflow configurations 2025-06-06 18:50:23 +02:00
Matt d71e37c4e1
Merge pull request #6714 from elsa-workflows/feat/add-ui-hint-radio-list 2025-06-06 00:50:16 +01:00
Matt 2ea755a50f Revert ChecklistItem back from Record to Class and remove left over RadioListActivity. Update Nuget packages. 2025-06-06 00:44:10 +01:00
Matt 0a7593f339
Merge pull request #6713 from elsa-workflows/feat/add-ui-hint-radio-list
Refactor checklists and radio lists to use records.
2025-06-06 00:24:01 +01:00
Matt fb4d39f3b6 Refactor checklists and radio lists to use records
Converted `CheckList` and `CheckListItem` to records,
adding XML documentation for clarity. Updated properties
in `CheckListProps`, `RadioList`, and `RadioListItem`
with similar changes. Enhanced documentation in
`DropDownOptionsProviderBase` and modified
`RadioListOptionsProviderBase` to reflect new
functionality. Overall improvements for readability
and maintainability.
2025-06-06 00:13:35 +01:00
Sipke Schoorstra ad49a29017
Merge remote-tracking branch 'origin/develop/3.5.0' 2025-06-05 20:11:44 +02:00
Sipke Schoorstra c0bc5302cf
Configures SQLite as default database provider
Configures the application to use SQLite as the default database provider.
Removes the logger dependency from the EFCoreActivityExecutionStore, simplifying the constructor.
2025-06-05 20:11:02 +02:00