Commit graph

5575 commits

Author SHA1 Message Date
sergergood 311b792f9b Call async methods when in an async method 2024-12-16 22:57:11 +03:00
Sipke Schoorstra cb6a7dfc11 Update RabbitMQ image to version 4-management
Upgraded RabbitMQ from version 3-management to 4-management across tests and the Docker setup. This ensures compatibility with the latest features and improvements in RabbitMQ while maintaining consistency across environments.
2024-12-14 11:44:52 +01:00
Sipke Schoorstra 4793c6eac5 Refactor ProtoActor and workflow testing logic
Reorganized ProtoActor configuration to be conditionally applied based on runtime settings. Updated test workflows to simplify signal handling and improved test structure by introducing scoped dependencies and removing unused event subscriptions.
2024-12-14 09:59:29 +01:00
Sipke Schoorstra 08f7c2bf78
Merge pull request #6208 from Sverre-W/retention-sweep-interval
Retention: Add sweep interval to feature configuration
2024-12-13 15:18:48 +01:00
Sipke Schoorstra 99d48a8c42
Merge pull request #6210 from elsa-workflows/bug/object-vaiable-parsing
Refactor variable handling in storage driver logic
2024-12-13 15:17:13 +01:00
Sipke Schoorstra b9bde79638 Refactor variable handling in storage driver logic
Refactored `StorageDriverContext` to include `Variable` and updated its usage across relevant methods to ensure context accuracy. Enhanced `ObjectConverter` to support conditional deserialization of JSON objects. Adjusted `WorkflowInstanceStorageDriver` to utilize improved variable resolution with new conversion options.
2024-12-13 12:09:04 +01:00
Sipke Schoorstra ddfac5135f
Merge pull request #6209 from elsa-workflows/feature/delay
Fixed issues where the outputs of a background activity will not be mapped
2024-12-13 11:21:25 +01:00
Marius Vasile Vușcan 49715bb2a7
Fixed issues that the outputs of a background actiity to not be mapped 2024-12-13 12:18:15 +02:00
Sverre Winkelmans 7049872fa9
Add sweep interval to feature configuration
Allow users to define their own sweep interval of the cleanup job in the
Retention module
2024-12-13 10:08:25 +08:00
Sipke Schoorstra cc75bb65ea
Merge pull request #6207 from elsa-workflows/bug/6193
Improve variable parsing with error handling and logging
2024-12-12 23:10:30 +01:00
Sipke Schoorstra 2cd90ad011 Fix logging to display full variable type on parse failure
Updated the log message to use the full variable type name instead of the base type. This provides more detailed context for debugging failed variable parsing issues.
2024-12-12 23:08:48 +01:00
Sipke Schoorstra 9aed23278e Improve error message for invalid variable type cast
Updated the exception message to use the full type name of the variable, providing clearer details for debugging type compatibility issues during variable value parsing.
2024-12-12 23:06:50 +01:00
Sipke Schoorstra b1f839a517 Improve variable parsing with error handling and logging
Added `TryParseValue` method to handle parse errors gracefully and prevent crashes. Updated `VariablePersistenceManager` to log warnings when variable parsing fails, providing better debugging support and resilience during workflow execution.
2024-12-12 23:03:20 +01:00
Sipke Schoorstra ba1a381165
Merge pull request #6206 from elsa-workflows/chore/ef-migrations-update
Regenerate EF Core migrations for 3.2 compat
2024-12-12 22:28:50 +01:00
Sipke Schoorstra c3e5624321 Regenerate 3.3 EF Core migrations for backwards compat with 3.2 2024-12-12 22:24:39 +01:00
Sipke Schoorstra af3b3a0d16 Reset migrations and restore WorkflowInboxMessages DB set for backwards compatibility
Remove unused using directive in migration file

Deleted an unnecessary using statement for improved code clarity and maintainability. This cleanup has no functional impact on the migration.
2024-12-12 19:42:18 +01:00
Sipke Schoorstra 9eeed44fc2
Merge pull request #6205 from elsa-workflows/enh/thread-safe-tenant-service
Add concurrency locks to DefaultTenantService operations
2024-12-12 11:42:34 +01:00
Sipke Schoorstra 2656e83109 Use 'null' instead of 'default' for optional delegate parameter
Replaced 'default' with 'null' to improve clarity and better align with common C# practices for optional parameters. This change makes the code more explicit and easier to understand.
2024-12-12 11:38:22 +01:00
MariusVuscanNx ad4eb74f87
Merge pull request #6204 from elsa-workflows/feature/fix-variable
Fixed variable value retrieval
2024-12-12 12:23:28 +02:00
Sipke Schoorstra a9c8ad64f1 Add concurrency locks to DefaultTenantService operations
Introduced SemaphoreSlim for initialization and refresh methods to ensure thread safety in DefaultTenantService. Improved tenant unregistration to handle scope cleanup only when mappings exist. These changes enhance reliability and prevent race conditions during tenant operations.
2024-12-12 11:20:45 +01:00
Marius Vasile Vușcan 687c9d616e
Fixed variable value retrieval 2024-12-12 12:18:32 +02:00
raymonddenhaan 0efff2bfc6
Merge pull request #6202 from elsa-workflows/enh/disable-log-sanitazion
Disable activity state filtering temporarily.
2024-12-12 10:31:25 +01:00
Sipke Schoorstra fa9f83f11f Disable activity state filtering temporarily.
Commented out state filtering logic to address issues with log sanitization. The raw value is now directly stored in the activity state until a redesigned solution is implemented.
2024-12-11 18:11:36 +01:00
Sipke Schoorstra 2af951f6c3 Update display name in WorkflowStorageDriver
Remove the "Deprecated" label from the display name for clarity while keeping the `Obsolete` attribute to indicate planned deprecation. This ensures better alignment between the display name and actual usage guidance.
2024-12-11 16:01:57 +01:00
Sipke Schoorstra cddd06fedb
Merge pull request #6201 from elsa-workflows/feature/variable
Introduce the possibility to exclude variable value retrieval for certain storage drivers
2024-12-11 15:49:04 +01:00
Marius Vasile Vușcan 95e3b15106
Updated to allow string tags 2024-12-11 16:45:23 +02:00
Marius Vasile Vușcan 16122182e2
Introduce the possibility to exclude variable value retrieval for certain storage drivers 2024-12-11 16:45:18 +02:00
Sipke Schoorstra c50a53f776
Merge pull request #6200 from elsa-workflows/bug/quartz-scheduled-once
Fix Quartz scheduler implementation
2024-12-11 15:42:33 +01:00
Sipke Schoorstra 96bf791668 Introduce JobKeyProvider for managing Quartz job keys
Added JobKeyProvider to centralize job key and group name handling, simplifying Quartz job scheduling. Refactored QuartzWorkflowScheduler to use the new provider, improving maintainability. Updated QuartzSchedulerFeature to register the new provider and a startup task for job registration.
2024-12-11 14:35:49 +01:00
Sipke Schoorstra 9725be0e0f Fix HTML encoding for ampersand in XML documentation
Replaced '&' with '&' in the XML documentation comment to ensure proper HTML encoding. This change improves compatibility and prevents potential rendering issues in documentation tools.
2024-12-11 14:35:19 +01:00
Sipke Schoorstra 1534d5f29a Merge remote-tracking branch 'origin/main' 2024-12-11 10:59:07 +01:00
Sipke Schoorstra 46793825ec Refactor workflow stores to support ordering by creation date.
Added support for ordering workflow definitions and instances by their creation date when querying. This change replaces manual pagination and filtering logic with streamlined methods that utilize the new `WorkflowDefinitionOrder` and `WorkflowInstanceOrder` objects, improving code clarity and maintainability.
2024-12-11 10:58:50 +01:00
Sipke Schoorstra 04796a0471 Increase default TTL for bookmark queue items to 1 minute.
Updated the default Time-to-Live (TTL) from 10 seconds to 1 minute to allow bookmark queue items to persist longer. This change provides more flexibility and reduces the likelihood of premature purging in workflows.
2024-12-11 10:56:59 +01:00
Sipke Schoorstra 17fd9797e0 Add ActivityTypeName to BookmarkQueueItem mapping
This update includes the ActivityTypeName property in the mapping process for BookmarkQueueItem. It ensures more detailed information is carried during the mapping operation, enhancing traceability and debugging.
2024-12-11 10:56:43 +01:00
Sipke Schoorstra 06b7ba43e5
Merge pull request #6083 from jdevillard/enh/tenants/otel-props
[Feat: OTEL + Tenants] : Add TenantId Property to Span
2024-12-11 10:42:40 +01:00
Sipke Schoorstra 9d00466ef3
Merge pull request #6157 from Suchiman/fixPrimitiveSerialization
Fix Primitive Collection serialization
2024-12-11 08:59:02 +01:00
Sipke Schoorstra 5c86e5aefb
Merge pull request #6192 from Suchiman/fixRaceCondition
Fix C# Script<T> race conditino
2024-12-11 08:51:40 +01:00
Sipke Schoorstra 946b3b95e2
Merge pull request #6186 from Suchiman/net9
* Add .NET 9.0 target

* Add .NET 9 to actions

* Upgrade Nuke to remove BinaryFormatter dependency

* Add Oracle EFC9 Provider
2024-12-11 08:50:23 +01:00
Robin Sue 7697b35f47 Add Oracle EFC9 Provider 2024-12-10 21:17:00 +01:00
Robin Sue 17382b981e Upgrade Nuke to remove BinaryFormatter dependency 2024-12-10 21:06:42 +01:00
Robin Sue dae77709d4 Add .NET 9 to actions 2024-12-10 21:06:42 +01:00
Robin Sue 4d6b7a17fb Add .NET 9.0 target 2024-12-10 21:06:42 +01:00
Sipke Schoorstra 60f88e4704 Disable SignalR in Server And Studio project 2024-12-10 20:21:08 +01:00
Sipke Schoorstra d1ee5c77d0
Persist workflow variables during background execution. (#6195)
Added a call to save workflow variables in the BackgroundActivityInvoker to ensure that any changes are persisted during background activity execution. This helps maintain consistency and state integrity across workflow invocations.
2024-12-09 20:36:20 +01:00
Robin Sue 7f5355a9ed Fix C# Script<T> race conditino
Compilation of the Script wasn't entirely thread safe, specifically, if the same script was being evaluated twice at the same time on an empty cache:
Thread 1: Puts Script<T> into cache, then starts compiling it
Thread 2: Finds not yet compiled Script<T> in cache, starts compiling it as well
Thread 1: Done compiling, Assembly.Load it for running
Thread 2: Done compiling, Assembly.Load it <--- Exception: Assembly with name XYZ already loaded

The Solution is to use CreateDelegate which compiles the script the moment it is being put into the cache and the cache then only serves precompiled delegates that are immediately runnable.
2024-12-08 23:24:46 +01:00
Sipke Schoorstra 4a19a77568 Update WebhooksCore package to stable version 0.0.1
Change WebhooksCore package version from 0.0.1-preview.17 to 0.0.1 to ensure use of the stable release. This update is intended to improve stability and readiness for production environments. Other package versions remain unchanged in this commit.
2024-12-07 21:14:59 +01:00
Sipke Schoorstra d164de42f6
Add TenantId to RunTaskWebhookPayload (#6191)
Incorporated the TenantId field into the RunTaskWebhookPayload model and updated the RunTaskHandler to pass this information. This change enables multi-tenant support by including the tenant identifier in webhook payloads.
2024-12-07 20:52:51 +01:00
Sipke Schoorstra 4651b7a46d
Add schema registry support to Kafka module (#6190)
This commit introduces a schema registry functionality by adding interfaces and classes to manage schema registry definitions in the Elsa.Kafka module. It updates KafkaOptions to include schema registries and modifies classes to support schema registry configurations for producers and consumers. Additionally, it updates package references to include necessary dependencies for schema registry support.
2024-12-07 20:07:30 +01:00
Sipke Schoorstra a2448523a9
Fix race condition and add rate limiting to bookmark queue processing (#6187)
* Fix race condition and add rate limiting to bookmark queue processing

Introduce rate-limited function invocation for bookmark queue processing using ThrottleDebounce library to optimize performance. Update related classes and interfaces to support asynchronous and cancellation-aware operations, improving system responsiveness. Adjust logging to provide more detailed information during bookmark queue handling.

* Enable workflows on bug branches

This change updates the GitHub Actions workflow configuration to trigger on branches with the 'bug/*' pattern. This allows for automated actions on bug fix branches alongside the main branch, improving development and testing processes.
2024-12-07 17:34:10 +01:00
Sipke Schoorstra 17a692c058 Update log message + level in RemoveOrphanedSubscriptions to remove unnecessary noise from exception 2024-12-06 18:10:59 +01:00