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.
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 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.
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.
Refactored Hangfire-related services and jobs to include tenant context management using ITenantAccessor and ITenantFinder. Updated job constructors and method signatures to support tenant-specific execution. Improved exception-throwing syntax for better readability in BackgroundActivityInvoker.
Introduced logic to handle type aliases more accurately for arrays and collections. Enhanced the final type alias determination by accommodating cases where type aliases are present. Cleaned up unnecessary whitespace for better code readability.
Enhanced type handling by distinguishing arrays, collections, and single types. Added support for "isCollection" metadata and adjusted serialization/deserialization logic to ensure accurate mapping of element types and aliases. This improves clarity and flexibility in JSON representation.
The migration files `20250131185451_V3_3_2` and related metadata were removed from the project configuration. This cleanup ensures the project references only necessary and relevant resources.
Revised database initialization scripts to better handle Postgres and Oracle environments, introduced schema-specific configurations for Oracle EFCore, and cleaned up obsolete or redundant entity model setup. Streamlined project structure by relocating and renaming files for SQLite and Oracle EFCore setups, improving maintainability and readability.
Added configuration to suppress EF Core PendingModelChangesWarning for better compatibility with newer .NET versions. Updated Oracle connection string to use "localhost" for consistency and clarity in appsettings.json.
This commit introduces Oracle database integration by adding necessary configurations, entity mappings, and Docker Compose setup. Oracle-specific mappings ensure compatibility with NCLOB for large data handling. The changes also include updates to appsettings, enum for SqlDatabaseProvider, and project references to support Oracle.
Replaced `ActivityCommitStateBehavior` with a more flexible commit strategy approach utilizing `CommitStrategyDescriptor`. Updated relevant APIs, services, and UI components to support the new model, enhancing configurability and maintainability.
Standardized commit strategy descriptors across workflows and activities by introducing a shared `CommitStrategyDescriptor` model. Updated API endpoints and conversion logic to adopt this unified approach, improving consistency and reusability. Implemented new interfaces in the client API for listing commit strategies.
Eliminated `WorkflowCommitStateStrategyJsonConverter` and its usage in the `IWorkflowCommitStrategy` interface. This simplifies serialization logic and reduces unnecessary complexity in the codebase.