Commit graph

148 commits

Author SHA1 Message Date
Sipke Schoorstra c841b3511f Handle attempts to serialize unserializable values 2023-11-22 20:46:40 +01:00
Sipke Schoorstra f033631b30 Fix FlowSendHttpRequest Done outcome
This fixes an issue where Done is not always triggered
2023-11-22 20:46:12 +01:00
Sipke Schoorstra 225a99f39d
Bulk Import + Export of Workflow Definitions and Instances (#4643)
* Implement bulk export of workflow definitions

* Update Import endpoint with support for file uploads

* Update Import endpoint to return imported workflow count

* Implement workflow instance (bulk) export

* Implement workflow state, bookmark, workflow + activity execution export

* Remove globally imported usings
2023-11-22 14:31:48 +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 12b57a9abe Add support for single-value headers 2023-11-09 14:28:06 +01:00
jdevillard 1b48305418
Enhancement/runtime options provider#4491 (#4614)
* add Endpoint to fetch data from options provider

* add Api Client Contract

* add context object in Endpoint

* Update Api Client Contract for Context

---------

Co-authored-by: Jérémie DEVILLARD <jdevillard@users.noreply.github.com>
2023-11-09 13:01:51 +01:00
Sipke Schoorstra bf11f947fd Handle JSON parser error in case of bad input 2023-11-01 10:39:01 +01:00
Sipke Schoorstra 3aec7924b1
Storage module (#4588)
* Add File Storage module
2023-10-30 21:48:36 +01:00
Sipke Schoorstra d27470468c Fix non-completing HTTP Response when there is no content 2023-10-23 14:23:55 +02:00
Sipke Schoorstra 366ce2fabd Normalize routes
This fixes an issue where routes are stored in an inconsistent format, potentially breaking workflow HTTP resumption due to bookmark hash mismatches.
2023-10-20 09:51:56 +02:00
Sipke Schoorstra c63369b567 Add system namespaces
For some reason my tooling no longer sees the global usings.
2023-10-20 09:50:57 +02:00
Sipke Schoorstra cdf5f9f614 Rename Port Resolver to Activity Resolver
In the scenario where this resolver is used, it's not about discovering ports, but about constructing a graph from the workflow by going through each activity or activities property.
2023-10-15 11:31:24 +02:00
Sipke Schoorstra 01bfc15df9 Exclude activity instance ID from HTTP Endpoint bookmarks 2023-10-15 00:24:00 +02:00
Sipke Schoorstra 413d330f01 Merge branch 'v3-740-hotfix-1' into v3 2023-10-13 09:27:12 +02:00
Sipke Schoorstra b19b197484 Add Soap+XML content type support 2023-10-12 14:20:15 +02:00
Sipke Schoorstra bddf522e55
Activity Preconditions (#4507)
* Add CanExecuteAsync precondition method

* Rename GetInput to GetWorkflowInput to disambiguate between input sent to workflow and input sent to indiviudal activities.
2023-10-07 14:22:51 +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 98e424faa2 Return Bad Request when receiving invalid header values 2023-10-03 10:25:57 +02:00
Sipke Schoorstra e75e600910 Fix resumable download issue 2023-09-25 13:58:05 +02:00
Sipke Schoorstra b5cdb8d770 Incremental fixes 2023-09-25 00:55:29 +02:00
Sipke Schoorstra 2f69176463
Implement SAS tokens (#4476)
Issue #4475
2023-09-25 00:38:06 +02:00
Sipke Schoorstra a5d13e4e9b
Enhance HTTP Endpoint + Flowchart fix (#4469)
* Fix flowchart next activity scheduling bug

This fixes a bug where the Flowchart activity would schedule connected activities regardless of the outcome of the completed activity.

* Cancel activity execution when cancellation token is triggered.

* Enable user to handle HTTP endpoint validation failures as outcomes

* Don't respond with full details in case of HTTP Endpoint faults for security
2023-09-22 18:45:18 +02:00
Sipke Schoorstra a201672584 FlowSendHttpRequest improvements 2023-09-22 11:13:23 +02:00
Sipke Schoorstra e7ca310eac
HTTP File Response Improvements (#4465)
* Make local temp path configurable

* Generate entity tag based on file content hash instead of modified date
2023-09-21 19:42:41 +02:00
Sipke Schoorstra fc14cfb7b0
Exclude Activity from being serialized in instance and execution log (#4464) 2023-09-21 18:09:48 +02:00
Sipke Schoorstra a4750883f5 Fix HTTP Endpoint activity 2023-09-20 22:02:37 +02:00
Sipke Schoorstra a0ef307ff6 Revert FlowSendHttpRequest outcome UI hint
It breaks the Stencil designer. Additionally, we might need more advanced control over the available outcomes in the future.
2023-09-20 10:29:35 +02:00
Sipke Schoorstra 89f94a2261
File Uploads (#4457)
* Initial support for receiving files via HTTP Endpoint activity

* Implement HTTP endpoint request timeout

* Implement request time out handling

* Implement request size validation

* Formatting

* Implement application and system level cancellation tokens

* Create CancellationTokens struct

* Cleanup HttpEndpoint

* Implement file size validation

* Implement file extension validation

* Implement mime type validation

* Update usages of cancellation tokens
2023-09-19 22:42:53 +02:00
Sipke Schoorstra cb4637fe19 Add timeout outcome to SendHttpRequest activities
Issue #4456
2023-09-18 15:56:38 +02:00
Sipke Schoorstra 13cdd43502 Rename download correlation ID header 2023-09-17 22:35:56 +02:00
Sipke Schoorstra cb87d2ed82
Implement resumable downloads (#4448)
* Incremental work on persistent file cache

* Rename providers to handlers

* Implement zip file caching for resumable downloads

* Implement partial download for zipped files

* Allow executing workflows using GET verb

* Implement custom header for correlating downloads

* Rename FileName to Filename for consistency

* Update interface XML comment

* Cleanup

* Fix that source Downloadables were executed even when cached zip exists

* Make download correlation ID optional
2023-09-17 22:35:13 +02:00
Sipke Schoorstra 66a8ad084f
WriteFileHttpResponse updates (#4446)
* Incremental work on buffered download

* Save zip file to a temp file to prevent OOM and support resumption
2023-09-16 19:02:07 +02:00
Sipke Schoorstra f153a104bb Formatting Elsa.Http.csproj file 2023-09-16 12:02:51 +02:00
Sipke Schoorstra eb88e40efa Use ContentDisposition class to parse and create content disposition 2023-09-16 11:43:34 +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 03b608410b
Incidents (#4436)
* Implement Incident Strategy interface and resolver

* Add ActivityIncident model

* Add IncidentCount and Incidents properties and update migrations

* Expose incident strategies API endpoint

* Update API client with Incident Strategy models

* Replace Fault with Incidents

* Register fault status when any children have faulted

* Map incident count

* Remove unnecessary AlreadyCompleted result

* Ensure next activities are scheduled only if activity completed normally

* Incident roundtrip and fix workflow instance realtime updates

* Remove unused variable

* Add integration tests
2023-09-14 10:50:02 +02:00
Sipke Schoorstra a8b3cbab74 Add request exception handling to SendHttpRequest activity 2023-09-10 21:31:57 +02:00
Sipke Schoorstra 76720103b4 Handle erroneous routes
Fixes #4415
2023-09-09 14:40:48 +02:00
Sipke Schoorstra 30d48351e2 Update namespace of notification 2023-09-07 22:27:27 +02:00
Sipke Schoorstra 6d9c21c7a5
Dynamic Outcomes + JavaScript Outcomes (#4410)
* Implement dynamic outcomes UI hint

* Implement JavaScript outcomes
2023-09-07 20:34:53 +02:00
Sipke Schoorstra d26df84c3c Update HTTP bookmark processor to persist its changes 2023-09-06 19:25:07 +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 ca25b78457
Fix Break behavior (#4365)
* Fix Break behavior

* Ensure removal of completion callbacks
2023-08-26 01:11:10 +02:00
MariusVuscanNx 06f92d8d7e
Enrich trigger validation to take into consideration path and method uniquness (#4363) 2023-08-25 09:11:22 +02:00
Sipke Schoorstra 1e7f954311
Implement HTTP correlation ID selectors (#4349) 2023-08-23 10:48:12 +02:00
Sipke Schoorstra 9416461f78 Fix SendHttpRequestActivity response handling logic
This fixes a bug where the "unmatched status code" activity would be scheduled even if the returned status code was defined as an expected outcome.
2023-08-22 13:42:23 +02:00
Sipke Schoorstra 0413cbebf6 Fix duplicate workflow inbox message effect 2023-08-21 21:17:40 +02:00
Sipke Schoorstra 7ad3da2c2a Minor cleanup 2023-08-14 14:47:35 +02:00
Sipke Schoorstra 6430d9beec Serialize missing Fault details 2023-08-14 14:34:11 +02:00
Sipke Schoorstra 0b8d97c422
Fix WriteHttpResponse when NoContent (#4322) 2023-08-12 11:47:07 +02:00