Commit graph

130 commits

Author SHA1 Message Date
Sipke Schoorstra dd92fa097c
Add migration files for database schema V3.4
This commit introduces migration files for multiple database providers (MySQL, SQL Server, PostgreSQL, SQLite, and Oracle) to support schema changes for version 3.4. The migrations primarily involve mapping entity schemas, indexes, and table structures for consistency across all supported database systems.
2025-02-22 20:48:56 +01:00
Sipke Schoorstra 3beedb9ec0
Refactor activity execution state tracking
Introduce `IsExecuting` flag to explicitly track activity execution state, improving clarity and control over workflow activity handling. Adjust scheduling intervals and add concurrency handling for database updates to enhance reliability and performance in interrupted workflows.
2025-02-22 19:45:44 +01:00
Sipke Schoorstra 037b82dc49
Update inactivity threshold and adjust related timings
Renamed 'WorkflowLivenessThreshold' to 'InactivityThreshold' for clarity and updated its usage across affected files. Adjusted timings for workflow restarts and delays to improve consistency, including increasing task delay and updating scheduler intervals. These changes enhance readability and align with revised task execution timelines.
2025-02-22 16:22:33 +01:00
Sipke Schoorstra 3bbb057378
Set WorkflowHeartbeatMiddleware logging level to Debug
This change updates the logging configuration to include Debug-level logs for WorkflowHeartbeatMiddleware. It helps in better monitoring and debugging of workflow heartbeat operations.
2025-02-22 16:15:12 +01:00
Sipke Schoorstra 0a21b5201a
Add workflow restart functionality for handling interruptions
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.
2025-02-22 15:10:52 +01:00
Sipke Schoorstra 6bb83c538a
Merge pull request #6413 from CODEdire/main
Add IBusRegistrationContext to Transport Configuration Actions
2025-02-19 15:25:54 +01:00
Sipke Schoorstra 5dc9d4f40f
Disable multitenancy in Elsa.Server.Web
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.
2025-02-18 19:44:31 +01:00
Thomas Yates c12982dd88 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. 2025-02-15 13:04:45 -06:00
Sipke Schoorstra 58f0c48f66 Refactor workflow management to utilize mediator requests.
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.
2025-02-12 22:08:09 +01:00
Sipke Schoorstra d83bb3b834 Add customizable tenant header support for HTTP routing
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.
2025-02-09 08:24:55 +01:00
Matthew Knibbs f7c5c83493 Resolves Directory.Packages.props formatting error. 2025-02-07 02:55:29 +00:00
Matt 1029580712
Merge branch 'main' into main 2025-02-06 21:20:12 +00:00
Sipke Schoorstra aa09708268
Merge pull request #6343 from elsa-workflows/feature/4835
Controlled Commit States Feature Implementation
2025-02-06 16:44:48 +01:00
Sipke Schoorstra 6c0d1ea66c Refactor database setup and EFCore provider configurations.
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.
2025-01-31 19:51:24 +01:00
Sipke Schoorstra 006e0bbbb4 Ignore EF Core pending model changes warnings and update Oracle DSN.
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.
2025-01-31 00:52:49 +01:00
Sipke Schoorstra 26e2b1fb56 Add Oracle database support to the project
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.
2025-01-31 00:31:09 +01:00
Sipke Schoorstra 01a41f6d62 Refactor commit strategies to use AddStandardStrategies method
Extracted commit strategies setup into a reusable AddStandardStrategies method for better code clarity and modularity. Simplified PeriodicWorkflowStrategy by replacing the factory method with a constructor-based interval initialization. These changes improve maintainability and reduce redundancy across the codebase.
2025-01-30 18:10:38 +01:00
Sipke Schoorstra ef97ef415f Update strategy registration methods to use 'Add'
Replaced 'RegisterStrategy' with 'Add' in strategy registration methods for both workflows and activities. This simplifies the naming, enhances consistency, and aligns with modern API design principles.
2025-01-30 15:20:51 +01:00
Sipke Schoorstra e151810600 Refactor commit strategy architecture for flexibility.
Replaces direct strategy registration with metadata-based registrations, introducing `ObjectRegistration`, `CommitStrategyMetadata`, and associated helpers. Updates existing strategies and APIs to use the new metadata-driven approach, improving extensibility and maintainability.
2025-01-30 15:14:58 +01:00
Sipke Schoorstra 4b308cc94a Refactor commit strategy naming and implementation
Renamed `CommitStateStrategy` to `CommitStrategy` for consistency and clarity. Updated method names, property names, and logic to reflect the new naming convention. Improved null handling when setting commit strategy properties.
2025-01-30 14:29:04 +01:00
Sipke Schoorstra ce859efc4a Refactor commit state handling with a strategy-based approach
Replaced the legacy commit state behavior enums and options with a flexible, strategy-based system for activities and workflows. Introduced new interfaces, models, and strategies to enable fine-grained control of commit state logic. Updated related code to integrate the new commit strategies, ensuring modular and extensible commit handling.
2025-01-30 11:59:47 +01:00
Sipke Schoorstra d93d67cada
Merge branch 'main' into feature/4835 2025-01-30 09:17:38 +01:00
Sipke Schoorstra d500817468 Simplify DbContext creation with ActivatorUtilities.
Replaced Activator.CreateInstance with ActivatorUtilities.CreateInstance to streamline the DbContext instantiation. This improves dependency injection support and ensures better compatibility with service provider configurations.
2025-01-29 19:03:59 +01:00
Sipke Schoorstra 7dc6220175
Merge branch 'main' into feature/4835 2025-01-28 13:53:58 +01:00
Sipke Schoorstra 9437ab3a3d Refactor initialization of ObsoleteWorkflowRuntime.
Replaced direct instantiation of `ObsoleteWorkflowRuntime` with `Lazy<ObsoleteWorkflowRuntime>` across multiple runtime services to avoid circular dependency resolution.
2025-01-28 13:53:22 +01:00
Sipke Schoorstra 6b288e1990
Update SetCommitStateBehavior method for fluent convenience 2025-01-27 21:13:49 +01:00
Sipke Schoorstra 3262e7493f Enable variable copying in Elsa.Server.Web configuration
Updated the `disableVariableCopying` flag to `false` in `Program.cs`. This change allows variables to be copied, potentially addressing scenarios where variable duplication is needed. Ensure to test for any side effects this might introduce.
2025-01-21 19:29:56 +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 9842a0dd7b Remove unused SetVariableWorkflow class
The SetVariableWorkflow.cs file was deleted as it was no longer needed. This simplifies the codebase by removing unused workflows and reduces maintenance overhead.
2025-01-14 23:17:32 +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
Sipke Schoorstra 60db7cb964 Disable multitenancy and streamline NuGet publishing workflow.
Multitenancy is now disabled by default in `Program.cs` to simplify configuration. Additionally, removed the `publish_preview_nuget` step and refined conditions for `publish_nuget` to improve the workflow and align with the release process.
2025-01-11 19:55:06 +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 03344bdc20 Adjust caching options and disable secrets usage
Enabled CachingOptions configuration and set a 1-day cache duration while disabling the use of secrets. These changes improve caching behavior and streamline application setup by avoiding secret dependencies.
2025-01-10 10:09:35 +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 506a36574b Update target framework to .NET 9 and improve null handling
Updated the target framework from .NET 8 to .NET 9 for future compatibility and language improvements. Adjusted null handling in `WorkflowDefinitionImporter` for better readability and correctness. Added a cancellation token to `ReadToEndAsync` for improved async operation control.
2025-01-06 15:35:06 +01:00
Sipke Schoorstra 5e2644f751 Refactor workflow runtime structure and update handlers.
Moved `CancelWorkflowsCommandHandler` to the shared runtime module. Updated related project references, features, and configurations accordingly. Improved `WorkflowInstance` actor to save state using `IWorkflowInstanceManager`.
2025-01-02 11:43:21 +01:00
Sipke Schoorstra 6c0f7a48e7 Refactor recurring tasks scheduling logic.
Removed `ConfigureRecurringTasksScheduleStartupTask` and moved its functionality into `RecurringTaskScheduleManager`. Simplified recurring task configuration and streamlined dependencies, improving maintainability. Added retention policies to `Elsa.Server.Web`.
2025-01-02 11:11:42 +01:00
Matthew Knibbs c4e04c4434 Adds SQL Activities. Includes implimentations for MS SQL Server, PostgreSql, MySql and Sqlite. 2025-01-01 23:14:09 +00:00
Sipke Schoorstra e07ece5875 Regenerate EF Core migrations for Runtime 2024-12-31 13:54:19 +01:00
Sipke Schoorstra c5bf6fd0e3 Switch database provider to SQLite
Updated the `DatabaseProvider` setting in `appsettings.json` from MySQL to SQLite. This change likely simplifies development or testing by using a lightweight, file-based database.
2024-12-28 20:07:50 +01:00
Sipke Schoorstra 4ed58c67e6 Enable primitive collections and refactor MySQL EF options.
Added support for primitive collections and parameterized collection translation in MySQL EF configurations. Removed redundant `EnablePrimitiveCollectionsSupport` calls in program configuration to centralize the behavior.
2024-12-28 20:06:33 +01:00
Sipke Schoorstra 021795f53a Enable MySQL primitive collections support and update configs
Add support for EF Core primitive collections in MySQL by specifying `EnablePrimitiveCollectionsSupport()` in the DbContext configuration. Updated the Docker Compose file to rename the MySQL volume and adjusted appsettings.json to include a MySQL connection string and set MySQL as the default database provider.
2024-12-28 18:56:29 +01:00
Sipke Schoorstra 406975f64e Refactor BaseUrl and ApiUrl configuration handling.
Updated to use `Http:BaseUrl` for backward compatibility with `Hosting:BaseUrl`. Simplified ApiUrl construction by removing redundant configuration keys and standardizing the behavior using `ApiPrefix`.
2024-12-28 11:15:50 +01:00
Sipke Schoorstra 07c46ae5a7 Refactor configuration to use distinct ApiUrl and BaseUrl
Updated to separate ApiUrl from BaseUrl in appsettings for clarity. Modified references in _Host.cshtml and Program.cs accordingly to streamline configuration and reduce potential for errors.
2024-12-28 11:04:38 +01:00
Sipke Schoorstra 59e131f1a3 Set DatabaseProvider to SQLite in appsettings.json
Switched the default database provider from PostgreSQL to SQLite in the appsettings.json configuration file. This change enables the application to use SQLite for its database operations.
2024-12-26 12:02:54 +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 c3e5624321 Regenerate 3.3 EF Core migrations for backwards compat with 3.2 2024-12-12 22:24:39 +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 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