Commit graph

112 commits

Author SHA1 Message Date
Sipke Schoorstra 065765307b Refactor MassTransit & AzureServiceBus configuration and delete unnecessary options
AzureServiceBusOption.cs and RabbitMqOptions.cs files were removed as they're no longer needed. The system now defers the configuration of MassTransit and AzureServiceBus to the application layer (Program.cs). The configuration for PrefetchCount is also allowed at the transport-level. A new abstraction, ConsumerTypeDefinition, collects all the consumer types with their respective definitions if provided. Adjustments have been made in related extension methods and classes to reflect these changes.
2023-12-11 19:59:13 +01:00
Sipke Schoorstra faf8fd1df6
Enhanced ObjectConverter to Return JsonObject Instead of JsonElement (#4686)
* Incremental work

* Refactor code for JSON object handling and workflow context

This commit includes a significant rework of JSON object handling by ensuring produced JsonObject remains as JsonObject. Previously unimplemented customer and order workflow context providers have been removed. The test cases have been renamed and updated to confirm the new behavior is working as expected.
2023-12-08 20:57:07 +01:00
Sipke Schoorstra e03439515f Enable conditional MassTransit usage in Elsa.WorkflowServer
An if condition has been introduced to control the usage of MassTransit in the Elsa.WorkflowServer.Web.
2023-12-08 09:07:57 +01:00
Sipke Schoorstra 683f0ee6d8
Add Bulk Dispatch Workflow activity (#4683)
* Initial version of BulkDispatchWorkflow

* Update comments

* Refactor options models for running workflows and add Properties

* Fix resumption

* Add ability to provide arguments when evaluating expressions

* Update args syntax for JS

* Fix ProtoActor Runtime Properties mapping

* Use default constructor

* Provide completed workflow instance ID as input to BulkDispatchWorkflows

* Implement ChildFaulted port

* Switch to Publish to make Memory service bus work

* Update input evaluation and activity output retrieval

Refined the input evaluation process to only consider inputs with AutoEvaluate set to true. Added a comment to clarify the purpose of the GetActivitiesWithOutputs method. Removed the unnecessary check for AutoEvaluate from the EvaluateInputPropertyAsync method.
2023-12-06 22:32:08 +01:00
Sipke Schoorstra bec8cbc322
Target .NET 8 (#4660) 2023-11-27 11:26:16 +01:00
Sipke Schoorstra 0c8fa75a47 Replace IronPython implementation with Python.NET
#4164
2023-11-19 21:13:19 +01:00
Sipke Schoorstra 21e438bdd1
Add Azure Service Bus for MassTransit (#4624)
* Split RabbitMQ from MassTransit and add Azure Service Bus package

* Use Send topology for commands
2023-11-15 20:47:11 +01:00
Sipke Schoorstra e4d6ad22c4
Decouple Expression Types (#4622)
* Refactor Expressions model

* Enable expression type filtering

* Implement dynamic enablement of satelite dependencies
2023-11-14 20:44:42 +01:00
Sipke Schoorstra f8e0f20296
Add Python Expression support (#4600)
* Scaffold Python project

* Add Workflow Variable accessor

* Add RunPython activity

* Add option to register scripts via options
2023-11-04 18:15:56 +01:00
Sipke Schoorstra 5d1a1aaf86
Add C# expression support (#4594)
* Initial version of c# expressions

* Add support for strongly-typed workflow variable accessors

* Fix type casting

* Rename c# to C# in XML comments

* Rename Globals.Context to ExecutionContext and Variables to Context

* Move RunJavaScript activity to Elsa.JavaScript

* Add RunCSharp activity

* Add CSharpOptions

* Add common workflow properties and methods
2023-11-03 20:28:10 +01:00
Sipke Schoorstra 3aec7924b1
Storage module (#4588)
* Add File Storage module
2023-10-30 21:48:36 +01:00
Sipke Schoorstra 02f042187f
Add Quartz.NET Migrations (#4586)
* Add migrations for SQLite, SQL Server, MySQL and PostgreSQL
2023-10-29 16:17:38 +01:00
Sipke Schoorstra 67c16a3c4c
Add WorkflowContext client API (#4585) 2023-10-29 11:36:01 +01:00
Sipke Schoorstra 903486ed5a
MassTransit Alterations Dispatcher (#4547)
* Add MassTransit dispatcher for alteration jobs
2023-10-17 08:51:45 +02:00
solutionmania fd4af35aa4
Adds Swagger documentation generation and UI. (#4525) 2023-10-15 12:24:45 +02:00
Sipke Schoorstra 523f301bf7
Feature: Alterations (#4501)
* Implement Alteration types and engine

* Implement Alteration APIs

* Refactor activity work item with support for activity input

* Serialize scheduled activities as part of workflow state

* Add signal to schedule child activity

* Implement stores for plans and jobs

* Add EF Core provider

* Add Retry endpoint

* Keep root context as always active. The root context is the workflow execution context and contains persistent variable state

* Regenerate EF Core migrations

* Handle orphaned activity execution contexts

* Refactor workflow execution factory

* Enable configuring Jint from Program

* Update ModifyVariable alteration with support for type deserialization

* Use ShortGuid for identity

* Cleanup WorkflowServer host
2023-10-07 12:47:36 +02:00
Sipke Schoorstra 5dd6c85045 Make SasTokens implicit dependency of Workflows API
SAS tokens are used by the Events/Trigger API endpoint.
2023-09-26 15:11:46 +02:00
Sipke Schoorstra 2f69176463
Implement SAS tokens (#4476)
Issue #4475
2023-09-25 00:38:06 +02:00
Sipke Schoorstra da34e23c2b
Add DropIn support (#4471)
* Implemented dynamic loading of activities at runtime

* Add support for loading NuGet packages
2023-09-23 19:41:37 +02:00
Sipke Schoorstra a201672584 FlowSendHttpRequest improvements 2023-09-22 11:13:23 +02:00
Sipke Schoorstra bb2fa55d0e
WriteHttpFileResponse Activity (#4445)
* Incremental work on WriteFileHttpResponse activity

* BREAKING Schema change - Increase bookmark flexibility

* Implement zipped file response
2023-09-16 11:06:56 +02:00
Sipke Schoorstra 6fddd5223d Add execution context affinity and prevent duplicate scheduling for Join
This fixes the issue where the Join activity executes twice and potentially one instance never completes.
2023-09-12 20:27:36 +02:00
Sipke Schoorstra 7485c5dfcb Cleanup 2023-09-06 22:04:58 +02:00
Sipke Schoorstra fe02011c8b
Fix Dapper persistence provider (#4381) 2023-08-30 22:01:25 +02:00
Sipke Schoorstra 9d4add767b
Make Liquid TextEncoder configurable (#4380) 2023-08-30 19:09:05 +02:00
Sipke Schoorstra 45d194125d
Remove WorkflowStateStore (#4374)
* Remove WorkflowStateStore and use WorkflowInstanceStore instead

* Delete RunningWorkflows actor

* Cleanup
2023-08-30 15:42:16 +02:00
Sipke Schoorstra e2c3ab0efd
Refactor proto files and fix snapshot loading of running workflows grain (#4371) 2023-08-29 23:29:31 +02:00
Sipke Schoorstra 6430d9beec Serialize missing Fault details 2023-08-14 14:34:11 +02:00
Sipke Schoorstra ebd6375f7f Implement workflow inbox cleanup service 2023-08-13 12:31:58 +02:00
Sipke Schoorstra af34276d60
Delete ActivityExecutionRecords when deleting workflow instances (#4324)
* Delete ActivityExecutionRecords when deleting workflow instances

* Enable Hangfire for testing, code formatting
2023-08-12 22:22:40 +02:00
Sipke Schoorstra 166e11c416
Fix loss of source file + line number (#4293)
Fixes #4287
2023-08-06 20:55:24 +02:00
Sipke Schoorstra c9ca4a121d
Workflow Inbox (#4292)
* Initial implementation of workflow inbox, submission and delivery

* Implement persistence providers

* Update EF Core migrations

* Rename Services to Stores in Dapper module

* Use default serializer for primitive arrays

* Update MongoDB provider to map BookmarkId to be primary key

* Implement MongoDB provider for activity execution logs

* Use EF Core by default

* Fix private JSON constructor logic
2023-08-06 17:03:36 +02:00
Sipke Schoorstra 3134a65242 Update reference app with feature flags for proto.actor and mongodb 2023-08-05 10:34:10 +02:00
Sipke Schoorstra a1aa1c2ea8 Expose headers to clients 2023-07-25 21:02:07 +02:00
Sipke Schoorstra 0c8bbb935c Implement real time workflow update broadcasting using SignalR 2023-07-25 15:12:27 +02:00
Sipke Schoorstra a2a2b60d05 Update ActivityExecutionRecord model 2023-07-23 21:05:31 +02:00
Sipke Schoorstra 77b1a97682 Cleanup unused code and blanks 2023-07-09 12:33:26 +02:00
Sipke Schoorstra b9defca7bd Remove MongoDB commented lines 2023-07-06 19:27:09 +02:00
Sipke Schoorstra ba6ffb32d5 Update Program 2023-06-28 22:46:58 +02:00
gurkanguran bc2b4e8fde
Mongodb implementation (#4127)
* Implemented MongoDb

* Use main entity models in mongodb

* Fixed object serialization issue

* Fixed issues caused by duplicate collection names

* Optimized count query

* Fixed the issues after merge

* Revert "Fixed the issues after merge"

This reverts commit 5568af60cfc107b8ee68fd4c89fbb02946f8a6a3.

* Use expression helper to solve mongodb query issue

* Handle null values during deserialization

* Moved MongoDb project to persistence folder

* Did some refactor and added type serializer for variable fix

* Modularize mongodb indices creation

* Fixed the build

* Implement variable serializer

* Update SQLite migrations

---------

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2023-06-28 22:44:51 +02:00
gurkanguran f0814f4f64
Fixes the issue with httpendoint not being suspended #4143 (#4171)
* Fixes the issue with httpendoint not being suspended #4143

* Simplify HttpEndpoint and bookmark processor

* Fix issue with null workflow state ID

* Remove implicit instalment of EF Core provider for Trigger and Bookmark store

---------

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2023-06-28 20:55:57 +02:00
Sipke Schoorstra 0bb2ddcfee
Support sub-workflow dependency handling of JSON workflows (#4098)
* Change "Usable as Activity" setting into checkbox

* Update client model

* Update query to use shadow property

* Update UsableAsActivity usages

* Implement staged provisioning of workflows

* Add tests

* Update migrations
2023-06-03 12:28:10 +02:00
Sipke Schoorstra 3a2b7f40bc Restructure API client 2023-05-16 20:03:12 +02:00
Sipke Schoorstra e1ec2c87d0 Incremental work on Environments module 2023-05-16 10:03:55 +02:00
Sipke Schoorstra 9b6c08bf38
Fix HTTP triggers not being updated (#3985)
* Fix triggers not being replaced

* XML comments and minor DI changes
2023-05-01 12:06:51 +02:00
Sipke Schoorstra 31d24034d1 Update Email module
Fixes #3711
2023-04-18 22:14:18 +02:00
Sipke Schoorstra 943df3d274 Cleanup and refactoring WorkflowContext APIs 2023-04-18 00:00:46 +02:00
Sipke Schoorstra c8d87cd763
Simplify Proto.Actor bookmarks and triggers (#3917)
* Refactor HTTP route table population

* Update workflow definition EF store to use abstract IWorkflowInstanceStore

This decoupling is necessary, because the application might not be using EF Core, but e.g. Elasticsearch

* Move workflow state persistence to the default workflow runtime feature

* Update JS handler to provide access to variables during trigger indexing

* Configure Proto.Actor runtime with different workflow pipeline

* Add sample using Proto.Actor runtime

* Replace BookmarkGrain with DB based persistence
2023-04-17 15:23:05 +02:00
Sipke Schoorstra c3ed7e7865
Improve JSON serializationfor workflow state (#3913)
* Incremental work on WorkflowStateSerializer

* Update Flow HTTP Request activity to default to Done outcome

* Fix reference handling

* Fix polymorphic object converter

* Add comments

* Add support for registering type alias during DI setup via options

* Fix trigger and bookmark payload persistence

* Update sample model

* Add support for custom dictionary types

* Split general serializer options provider into focused serializer services

* Formatting

* Update migrations
2023-04-17 00:11:58 +02:00
Sipke Schoorstra 7a09944732
Refactor scheduling and background activity execution (#3884)
* Refactor background activity execution

* Refactor scheduler

* Remove Jobs module

* Add XML comments
2023-04-09 23:35:32 +02:00