Introduced a mechanism to identify and restart interrupted workflows. This includes a new `IWorkflowRestarter` contract, its default implementation, and a recurring task for handling restarts. Additionally, updated configurations and added extensions to improve workflow instance filtering and liveness tracking.
Multitenancy has been turned off by setting `useMultitenancy` to `false`. This change might simplify the current configuration and reduce complexity for single-tenant use cases.
Replaced mediator requests and commands with direct store interactions in the workflow management module. Simplified service dependencies, eliminating unnecessary handlers and requests, and streamlined workflow-related operations for better maintainability and performance.
Introduced a new AddManyAsync method across multiple activity execution stores to add collections of log records. This enhancement ensures consistency in handling bulk additions and aligns with existing store interfaces.
Introduced a new `WorkflowExecutionLogStore` to handle workflow execution log persistence. Added necessary extensions, indexes, migrations, and updated the startup configuration to register the new store and index provider. This enables querying, saving, and managing workflow execution logs in the OrchardCore project.
Reorganized data migrations and introduced new stores for triggers and bookmarks. Added index providers and migrations for improved queryability of triggers and bookmarks. Updated WorkflowInstance handling with additional configurations and dependency injections.
Added minor changes to MassTransitFeature to start using MassTransitOptions as the source for the prefetch count as the new source for this information is in the base MassTransitOptions. Created a new ConfigureTransportBus in both RabbitMQ and Azure Service Bus to support the context in the configuration action. Marked the old ConfigureServiceBus to persuade migration over to the contextual action. Currently, it will run the legacy action first and then the new contextual action second. The Elsa.Server.Web was also updated to use the new ConfigureTransportBus.
Introduced `ElsaWorkflowInstanceStore` for managing workflow instances, including querying, saving, updating, and deleting. Added associated index provider and schema changes for indexing workflow instances, enabling efficient data retrieval. Updated startup and manifest files to register these new functionalities.
Refactored multiple classes to align with modern C# coding practices such as object initializers and nullable type handling. Added a new base class for checklist dropdown providers to enhance UI configuration extensibility. Simplified constructors for feature classes by adopting record-like syntax, improving readability and maintainability.
Implemented `NewAsync` method in `IWorkflowDefinitionPublisher` for asynchronous workflow creation. Added content item-based workflow definition management, including publishing, retracting, and draft management. Updated workflows API and integrated serialization improvements for better content handling.
Introduced a `ContentItemWorkflowDefinitionStore` and related mappers, extensions, and index updates to manage workflow definitions as content items. Refactored the system to replace existing handlers with a store-based approach and optimized querying and mapping workflows.
Replaced individual parameters with WorkflowDefinitionHandle in workflow-related methods and requests to centralize and simplify logic. Updated related services, models, and handlers to align with this new structure, improving code maintainability and consistency.
Replaced direct store interactions in workflow management with mediator-based requests using `IMediator`, improving consistency and modularity. Added new handlers and requests for workflow definition operations, and updated existing services to align with mediator patterns.
The record class was renamed to better reflect its purpose as representing workflow input. Additionally, parameters with a default value of 'default' were updated to 'null' for increased clarity and consistency. These changes improve code readability and maintainability.
Introduced `MultitenancyHttpOptions` to configure the tenant header name used for HTTP routing. Updated `HeaderTenantResolver` to utilize this option and modified the server setup to allow overriding the default header name. This enables more flexible multitenancy configurations.
Added support for `Properties` and `ParentId` when creating workflow instances. This fixes an issue where the Properties were not propagated to the workflow instance being created.
Introduce `[Obsolete]` ExecuteAsync overloads in job classes to support legacy calls while encouraging migration to preferred methods. `[UsedImplicitly]` annotations ensure these methods are retained for compatibility.
Updated the base_version to 3.4.0 to align with the latest release. Adjusted the branch matching logic to use 'origin/main' instead of the specific 'origin/patch/3.3.2' to improve maintainability and adaptability.
Updated null checks for job types in Hangfire extensions to prevent potential runtime errors. Added Hangfire's `AutomaticRetry` attribute to RunWorkflowJob and ResumeWorkflowJob to configure retry behavior. Simplified object initialization in WorkflowDefinitions List endpoint.
Replaces the hardcoded branch reference `patch/3.3.2-rc2` with `patch/3.3.2` to align with the proper naming convention. This ensures the workflow correctly identifies the intended branch during release events.
Replaced 'origin/main' with 'origin/patch/3.3.2-rc2' in the workflow's branch filter. This ensures the release process targets the correct branch during specific GitHub events.
Included 'patch/*' as a trigger for the GitHub Actions workflow to ensure automated processes cover patch branches. This aligns with the existing structure for branch-specific workflows.
This change updates job scheduling and execution methods to include a taskName parameter. It ensures a unique identifier is passed for each job, improving tracking and consistency in job handling. Additionally, documentation comments were updated to reflect this new parameter.