Commit graph

1834 commits

Author SHA1 Message Date
Sipke Schoorstra e27101032b Incremental work on central obsolete workflow runtime for reuse 2025-01-28 00:32:43 +01:00
Sipke Schoorstra 60323d0522 Refactor CanStartWorkflowResult to use compact constructor.
Simplified the object creation in `CanStartWorkflowResult` by using a concise constructor format. This improves code readability and reduces verbosity without altering functionality.
2025-01-28 00:22:20 +01:00
Sipke Schoorstra db1556fd0b Update ProtoActorWorkflowRuntime to implement backwards-compatible workflow runtime API 2025-01-28 00:21:49 +01:00
Sipke Schoorstra 8e88de546d Incremental work on restoring previous workflow runtime API surface for backward compatibility 2025-01-28 00:11:25 +01:00
Sipke Schoorstra 7a21f09ae9 Restore methods for traversing activity execution context hierarchy
Reintroduced `GetAncestors` method and added new methods: `GetDescendants`, `GetActiveChildren`, and `GetChildren`. These methods enhance navigation through activity execution contexts by providing easy access to hierarchical relationships like ancestors, descendants, and children.
2025-01-27 15:49:25 +01:00
Sipke Schoorstra c93b063106 Fix variable mapping and aliasing 2025-01-27 11:29:02 +01:00
Sipke Schoorstra 658630078b Add SMTP server configuration and refactor email activity for improved error handling and attachment processing 2025-01-24 23:06:29 +01:00
Sipke Schoorstra cd2d0efef5 Refactor MongoDbStore to use EmptyToNull for TenantId assignments and add StringExtensions for null handling 2025-01-24 19:50:02 +01:00
Sipke Schoorstra 327a49d8c0 Refactor VariableDefinitionMapper to improve type handling for collections and arrays 2025-01-24 19:16:15 +01:00
Sipke Schoorstra 3920d420a9 Update log message for variable conversion failure
Improved the log message to include specific details about the failed conversion, such as the default value, variable name, and type. This enhances debugging by providing more context about the error.
2025-01-24 18:57:40 +01:00
Sipke Schoorstra 868370d222 Refactor VariableDefinitionMapper to include logging
Refactored the `VariableDefinitionMapper` to utilize dependency injection for `IWellKnownTypeRegistry` and added `ILogger` for improved error handling. Updated value conversion logic to log warnings when conversion fails, ensuring better traceability. Simplified return statements and replaced redundant collections with modern syntax.
2025-01-24 18:54:25 +01:00
Sipke Schoorstra fa4a7ce031 Refactor to use target-typed new expressions.
Simplified object instantiations by replacing explicit type declarations with target-typed `new` expressions. This improves code readability and reduces redundancy in object initialization.
2025-01-24 18:40:59 +01:00
Sipke Schoorstra 3e9181bb9e Add 'constants' to NamespaceFoldersToSkip settings
This update modifies the .DotSettings file to include 'constants' as a NamespaceFoldersToSkip entry. This ensures that folders named 'constants' are excluded from namespace inspections, improving clarity and compliance with project preferences.
2025-01-24 18:40:45 +01:00
Sipke Schoorstra 95e04eac17 Refactor to remove redundant debug logs and clean up code.
Eliminated unnecessary debug log statements from `ResumeDispatchWorkflowActivity` and removed redundant whitespace across the affected files. These changes streamline the code for better readability and maintainability
2025-01-24 14:01:19 +01:00
Sipke Schoorstra 74a5c3cd87 Refactor workflow dispatching for clarity and efficiency
Refactored the handling of child workflow execution, ensuring better readability and streamlining logic for dispatch operations. Added explicit tracking of dispatched instances and improved comments to support maintainability.
2025-01-24 13:58:50 +01:00
Sipke Schoorstra fbd16f2d74 Refactor workflow execution handling to improve performance 2025-01-24 13:54:37 +01:00
Sipke Schoorstra 0bb183f1aa Fix spacing inconsistencies in ActivityOutputRegister.cs
Resolved unnecessary whitespace issues and adjusted spacing around conditional statements to improve code readability and maintain consistency. These changes do not alter functionality but enhance the code's clarity and professional formatting.
2025-01-21 22:57:19 +01:00
Sipke Schoorstra 1ca8f2a423 Fix null reference issue in ActivityOutputRegister.
Updated the method to safely access the `Value` property when retrieving the first record, preventing potential null reference exceptions. This ensures more robust and error-free behavior when querying output records.
2025-01-21 22:53:08 +01:00
Sipke Schoorstra dd39ca8d84 Refactor variable handling and activity output registration.
Replaced default value assignments with null for clarity and simplicity. Refactored ActivityOutputRegister to optimize record storage and retrieval using grouped dictionary entries instead of flat lists. Adjusted related methods to improve performance and maintain consistency.
2025-01-21 20:10:54 +01:00
Sipke Schoorstra 33a2fb7afe Optimize ActivityOutputRegister.
Enhanced `ActivityOutputRegister` with dictionary-based lookups for improved performance and added unique key generation methods to efficiently retrieve outputs.
2025-01-21 19:52:30 +01:00
Sipke Schoorstra a7360ed922 Add option to disable variable copying in Jint engine
Introduce a `DisableVariableCopying` option to improve performance by preventing workflow variables from being copied into the Jint engine or back into the workflow context. Updated related logic to honor this setting and ensure compatibility with existing behavior.
2025-01-21 19:11:31 +01:00
Sipke Schoorstra d31661926d Simplify activity context handling in workflows.
Replaced `GetActiveChildren` with a direct `Children` property in `Flowchart.cs` to streamline logic. Removed redundant `GetDescendents`, `GetActiveChildren`, and `GetChildren` methods from `ActivityExecutionContextExtensions.cs`. Also updated GitHub workflows to allow performance-related branches.
2025-01-20 18:29:13 +01:00
Sipke Schoorstra a49bf0c05f Refactor descendant context check in Flowchart activity.
Replaced usage of `GetDescendents` with `Children` property for better clarity and efficiency when checking running activity instances. This simplifies the logic and aligns with the existing structure of activity context handling.
2025-01-20 18:07:14 +01:00
Sipke Schoorstra 7e058ddf15 Refactor workflow context and execution handling.
Optimized activity execution context management by introducing parent-child relationships and improving immutability. Adjusted several APIs to enhance clarity, performance, and maintainability, including the use of `AsReadOnly` collections and removal of redundant code.
2025-01-20 17:44:31 +01:00
Sipke Schoorstra a980022351 Refactor exception handling and activity status logic
Refactored `ExceptionHandlingMiddleware` to improve readability and modularity by splitting responsibilities into smaller methods. Replaced `GetAggregateStatus` with direct use of `source.Status` for significant performance improvement when a large number of activity instances are involved. Updated null-checks for clarity and fixed inconsistent usage of default values.
2025-01-20 13:58:11 +01:00
Sipke Schoorstra ad8eeecdce Refactor workflow management for improved modularization
Reorganized workflow handling to enhance clarity and maintainability, including introducing dedicated request handlers, refactoring middleware, and improving definition publishing. Deprecated `ValidateWorkflowResponse` and updated relevant namespaces for notifications handlers.
2025-01-20 00:24:01 +01:00
Sipke Schoorstra 35d21a69ed Remove creation of WorkflowInboxMessages table.
This commit deletes the code responsible for creating the WorkflowInboxMessages table. The change simplifies the migration script by removing unused or unnecessary table definitions and ensures consistency in database schema evolution.
2025-01-17 08:57:22 +01:00
Sipke Schoorstra 93aa3a7835 Remove WorkflowInboxMessages table and associated logic.
This change eliminates the previously defined WorkflowInboxMessages table and its creation logic for all databases. Cleanup simplifies the database schema and maintains focus on essential entities.
2025-01-17 08:56:21 +01:00
Sipke Schoorstra 9043af1726 Regenerate 3_3 Runtime module migrations 2025-01-16 20:41:12 +01:00
Sipke Schoorstra 0b5f580b0d Reorder tenant services initialization for proper execution.
Ensure `RunStartupTasks` is added before background and recurring tasks as order is critical for correct startup and tenant activation behavior. This prevents potential misalignment in task execution during tenant lifecycle events.

Fixes #6269
2025-01-15 18:40:38 +01:00
Sipke Schoorstra 1ee8fbdb5a Refactor default parameter values to null for readability
Replaced `default` with `null` for optional parameters to improve code clarity and maintain consistency. This change ensures better readability and aligns with common coding practices, especially when null is the intended default value.
2025-01-15 14:27:53 +01:00
Sipke Schoorstra 96dd00838a Refine message handling in MessageReceived activity.
Ensure type validation for incoming messages and clean up workflow input to prevent unintended data propagation. Added a dedicated ResumeAsync method to handle bookmark resumption logic consistently.

Fixes #6294
2025-01-15 14:27:37 +01:00
Sipke Schoorstra 18765cc386 Refactor route normalization logic
Simplified route normalization logic by removing unnecessary lowercase conversion and adjusted usages accordingly. These changes improve code readability, maintain consistency and fixes that route values are stored lower-cased instead of original-cased.
2025-01-15 11:17:21 +01:00
Sipke Schoorstra 2c3843d5f5 Refactor variable mapping and improve type alias handling
Updated `VariableMapper` for null assignment consistency and streamlined `VariableModel` instantiation. Improved `TypeJsonConverter` to handle list type aliases more explicitly, replacing ambiguous syntax with clearer format.
2025-01-15 10:50:34 +01:00
Sipke Schoorstra aaab19509e Fix array type handling in ArgumentJsonConverter
Previously, the code incorrectly used `MakeCollectionType` for arrays. This has been corrected to use `MakeArrayType`, ensuring proper deserialization of array arguments.
2025-01-15 10:50:17 +01:00
Sipke Schoorstra 7a08dd70cb Refactor scheduling service registrations.
Removed unused and duplicate service registrations to simplify DI setup. Ensures cleaner and more maintainable code while preventing potential initialization conflicts.
2025-01-15 00:01:26 +01:00
Sipke Schoorstra 0adc3acd59 Remove unused code from CleanupJob
Deleted an unnecessary `using` directive and a debug `Console.WriteLine` call. These changes clean up the code, improve readability, and avoid potential clutter.
2025-01-14 23:38:38 +01:00
Sipke Schoorstra efd114944c Refactor and enhance JavaScript and object conversions.
Replaced InputProxy with alternative implementations, adding flexibility to handle inputs. Introduced a JsonElementConverter to deepen JavaScript and JSON element integration. Enhanced testing and object conversion logic, improving type handling and support for complex JSON scenarios.
2025-01-14 23:16:29 +01:00
Marius Vasile Vușcan 190d6c3bda
Improvements 2025-01-14 14:43:58 +02:00
Marius Vasile Vușcan e365d44637
Added DeleteVariablesAsync method for the workflow context 2025-01-14 14:41:49 +02:00
Sipke Schoorstra b2331f73db Handle collection and array serialization in TypeJsonConverter
Refactored TypeJsonConverter to distinguish and properly handle serialization of arrays and generic collections. Updated integration tests to include cases for round-tripping primitive arrays and collections for improved coverage.
2025-01-11 20:23:05 +01:00
Sipke Schoorstra 48c453d153 Enable customizable Hangfire job storage and deprecate obsolete APIs.
Added support for configuring Hangfire job storage per database provider, including PostgreSql, SQLite, and SQL Server. Introduced new methods for flexible Hangfire setup, while marking older APIs and storage configuration extensions as obsolete. Refactored related configurations for streamlined and centralized job scheduling logic.
2025-01-11 19:12:38 +01:00
Sipke Schoorstra 279d55c22c
Merge pull request #6276 from LarsNijholt/fix/no-ref/improve-workflow-instance-definition-filtering
Implemented name filter to workflow instance filter and added case insensitivity to searching definitions and instances by name
2025-01-10 18:39:58 +01:00
Sipke Schoorstra d759624321 Refactor array type handling in variable and JSON converters
Updated the logic to use `MakeArrayType` for array handling instead of generic collection types, ensuring consistency and better alignment with expected type structures. Adjustments were made in both the `VariableDefinitionMapper` and the `TypeJsonConverter`.
2025-01-10 11:40:54 +01:00
Sipke Schoorstra 41d5160c41 Update workflow creation to use async commit method
Replaced synchronous `CreateWorkflowInstance` with `CreateAndCommitWorkflowInstanceAsync` to ensure instance creation is properly committed. Included support for cancellation tokens to improve process control and reliability.
2025-01-10 10:29:03 +01:00
Sipke Schoorstra d6c0ba45df Use sliding expiration for cache entries.
Replaced absolute expiration with sliding expiration for cache entries to ensure the cache is kept active during frequent access. This change optimizes cache behavior and improves resource utilization.
2025-01-10 10:08:25 +01:00
Sipke Schoorstra 605a46fdf7 Refactor workflow graph retrieval logic.
Extract shared workflow graph retrieval logic into a new `GetWorkflowGraphAsync` method, reducing code duplication. Updated call sites to use the new method for better maintainability and readability.
2025-01-10 10:07:54 +01:00
Sipke Schoorstra ada9f3967e Use null instead of default for optional parameters
Replaced `default` with explicit `null` for optional parameters to improve clarity and readability. Additionally, simplified object initialization by leveraging newer C# features like target-typed `new`.
2025-01-09 21:20:02 +01:00
Sipke Schoorstra 288097d503 Simplify and optimize workflow instance creation.
Replaced asynchronous instance creation methods with streamlined synchronous alternatives where applicable. Introduced `CreateAndCommitWorkflowInstanceAsync` for combined instantiation and persistence, along with a separate `CreateWorkflowInstance` method for non-committal instantiation. Refactored related code to improve readability, maintainability, and runtime performance.
2025-01-09 19:34:53 +01:00
Sipke Schoorstra 67b950f86c Refactor to use target-typed object creation
Replaced explicit type initializations with concise target-typed `new()` expressions where applicable, improving code readability and aligning with updated C# conventions. Updated .editorconfig to enforce consistent use of `var` for type declarations.
2025-01-09 10:27:55 +01:00