Commit graph

153 commits

Author SHA1 Message Date
Sipke Schoorstra 64f5a9b38c Fix version mismatch between Workflow activity and derived composite descriptor 2023-03-08 15:51:55 +01:00
gurkanguran 355cf2a3de
Validate JsonElement value to prevent exception during json serialization (#3777) 2023-03-08 11:48:24 +01:00
Sipke Schoorstra 7ba4dc5039 Add support for controlling when to serialize properties of type IActivity 2023-03-08 01:03:01 +01:00
Sipke Schoorstra e6ce1cebb3 Stash 2023-03-08 00:31:51 +01:00
Sipke Schoorstra 21f8980adb Improve workflow versioning logic 2023-03-07 23:31:09 +01:00
Sipke Schoorstra 83fb433ffc Add alias for dictionary type 2023-03-07 22:02:46 +01:00
Sipke Schoorstra 1ac64b8197
Store & display evaluated activity state in workflow instance viewer (#3776)
* Implement activity state persistence

* Add sort API

* Implement activity state view

* Update EF Core migrations
2023-03-07 21:40:53 +01:00
Sipke Schoorstra 1a713b4619
Rename "services" to "contracts" and "implementations" to "services" (#3758) 2023-03-03 22:47:23 +01:00
Sipke Schoorstra bb1c6e91dc Update completion signaling 2023-03-03 15:22:49 +01:00
Sipke Schoorstra 00bd3228f6 Restructure contracts vs services namespace 2023-03-03 14:48:05 +01:00
Sipke Schoorstra 0832bc95f6 Implement outcomes for composite activities from workflow definitions 2023-03-03 14:47:34 +01:00
Ifran Laloe 280b905092
Fix Version Constraint error when saving workflows (#3752)
* Fix Version Constraint error when saving workflows

* Moved publishing event to the start of PublishAsync()

---------

Co-authored-by: Ifran Laloe <i.laloe@betabit.nl>
2023-03-02 10:31:24 +01:00
Sipke Schoorstra 431db1c353
Refactor store APIs (#3740)
* Add array support for input/output arguments

* Add alias support for nullable types

* Refactor workflow definition store API

* Fix array and ui hint setting of input/output definition

* Refactor workflow instance store API

* Add XML comments

* Refactor trigger and bookmark store API
2023-02-27 14:14:50 +01:00
Sipke Schoorstra 4e4e647395 Fix issue in workflow definition activity provider 2023-02-23 12:11:44 +01:00
Sipke Schoorstra 5b1a5cba7f
Enable composite activity version control (#3732)
* Update activity to store settings about which version to use

* Break up big function

* Implement activity version control UI
2023-02-23 11:46:03 +01:00
Sipke Schoorstra b21477b98f Fix composite activity completion 2023-02-22 15:56:50 +01:00
Sipke Schoorstra 1e0fdf937d
Add output picker for SetWorkflowOutput activity (#3728)
* Add output picker for SetWorkflowOutput activity

* Update designer version
2023-02-21 21:15:09 +01:00
Sipke Schoorstra 0bdec81491 Fix output binding 2023-02-21 15:18:23 +01:00
Sipke Schoorstra 1d1808af89
Workflow input/output (#3726)
* Improve activity JSON converter

Handles wrapped and unwrapped input

* Add SetWorkflowOutput activity

* Implement handling of child workflow output
2023-02-21 11:47:20 +01:00
Sipke Schoorstra 6e8c4f9404
Dispatch Workflow activity (#3710)
* Implement DispatchWorkflow activity

* Implement workflow definition picker control
2023-02-16 11:00:06 +01:00
Sipke Schoorstra e74133c52b
Add dictionary support (#3704) 2023-02-15 12:09:45 +01:00
Sipke Schoorstra 50912a2762 Fix journal 2023-02-13 15:26:04 +01:00
Sipke Schoorstra 5f6454b59c
Workflow as Activity - input/output (#3699)
* Restructure component folders

* Restructure JavaScript module folders

* Remove ActivityType field from descriptor 

No longer necessary.

* Incremental work on synthetic properties

* Implement synthetic property persistence

* Add JS functions to return input from composed activity

* Cleanup

* Take into account versioning

* Fix versioning

* Add Output management

* Implement output handling
2023-02-13 12:15:20 +01:00
Sipke Schoorstra 0dd3e2bad8
Tweaks and fixes (#3672)
* Various additions and tweaks

* Fix WriteHttpResponse when no content type provided

* Bump designer version

* Return when sending response

* Remove faulty validation
2023-02-03 14:29:44 +01:00
Sipke Schoorstra 11b684274c Add variable types to Type Definition output 2023-01-31 11:01:39 +01:00
Sipke Schoorstra 5292d71aef Fix workflow definition activity version availability 2023-01-30 17:30:32 +01:00
Sipke Schoorstra d17f2af87a Move WorkflowDefinitionActivity to Activities folder 2023-01-30 17:30:13 +01:00
Sipke Schoorstra 41b356a02b Refactor draft version selection 2023-01-30 17:29:54 +01:00
gurkanguran 407bfa6913
Use workflow definition as activity (#3654)
* Implemented usage of workflow definitions as activities

* Updated designer

* Removed activity definitions module

* Allow user to mark workflow to be used as activity

* Refactor

* Refactor

* Cleanup csproj

* Cleanup WorkflowDefinitionActivity

* Pascalize typename

* Fix JS intellisense initial load issue

* Add XML comments

* Add Jobs dependency

* Hide Composite root port from designer

* Move finding workflow activities logic to lower level

* Generate unique identities across hierarchy

* Refactor

* Revert "Generate unique identities across hierarchy"

This reverts commit 74f5e7830309ee76af6ab3a000a5e1ec41f1e90c.

* Implement unique node IDs

* Introduce new VersionOptions option

* Remove unused namespaces

---------

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2023-01-28 00:36:03 +01:00
Gürkan Güran 3426cd28b7 Merge branch 'v3' into activity-definitions 2023-01-25 18:08:20 +01:00
Sipke Schoorstra fe845e65e7 Fix JsonObject type handling 2023-01-25 11:46:07 +01:00
Gürkan Güran c1b67fc9be Merge branch 'v3' into activity-definitions 2023-01-25 01:44:43 +01:00
Sipke Schoorstra 2697f512e9 Implement XML content writer 2023-01-24 22:39:31 +01:00
Gürkan Güran 080da3b04e Implemented activity definition version history 2023-01-24 17:36:03 +01:00
Sipke Schoorstra 98d0920cfc Add support for array variables and fix serialization issue with proto 2023-01-23 23:30:00 +01:00
Sipke Schoorstra 28e9922060
JavaScript intellisense (#3639)
* Incremental work

* Incremental work

* Incremental work

* Initial support for intellisense

* Implement variable type definition provider
2023-01-19 14:09:58 +01:00
Sipke Schoorstra 0e1922621e
HTTP activity body parsing (#3631)
* Implement content parsers and update SendHttpRequest

* Fix parsers

* Fix parser ordering

* Implement content parsing for HTTP Endpoint activity

* Cleanup

* Remove unused models

* Update file name to match class name
2023-01-16 19:42:45 +01:00
Sipke Schoorstra c6ceb247e1 Fix dependency issues 2023-01-13 20:10:05 +01:00
Sipke Schoorstra 096206d392
Elastic updates (#3623)
* Incremental work

* Incremental work

* Incremental work

* Merge remote-tracking branch 'origin/v3' into v3-elasticsearch-updates

* Incremental work

* Incremental work

* Fix listing with no query

* Restore missing class

* Remove rollover hosted service and expose index configurations

* Rename hosted service
2023-01-13 19:10:20 +01:00
Gürkan Güran dad33e665a Refactor 2023-01-12 19:26:30 +01:00
Sipke Schoorstra 006479c2b7
Finish Azure Service Bus activities (#3617)
* Incremental work on Azure Service Bus

* Update Azure Service Bus activities
2023-01-12 11:59:31 +01:00
Gürkan Güran fcfd092003 Implemented Elasticsearch for workflow instance and log record persistence 2023-01-05 15:10:55 +01:00
Sipke Schoorstra 750c2094cc
RunTask activity (#3594)
* Implement RunTask activity
2023-01-04 20:36:38 +01:00
Sipke Schoorstra cbbac57e6f
Implement variables panel on workflow instance viewer (#3589)
* Small visual improvement for embedded ports

* Implement variables view for workflow instance viewer
2023-01-03 19:15:05 +01:00
Sipke Schoorstra 06e62b3bcc
Restore workflow journal (#3582)
* Refactor identity options

* Delete templates

Will be created as part of a separate repo.

* Little cleanup

* Increase token lifetime for reference server app

* Cleanup workflow definition editor plugin

* Fix workflow instance viewer component

* Update identity generator to use hyphen format

* Improve workflow and activity execution pipeline registration API

* Fix workflow journal

* Update backend

* Prevent unnecessary re-render

* Restore autolayout function
2023-01-02 22:24:05 +01:00
Sipke Schoorstra 7a98cdf60d
Normalize extensions namespaces (#3577) 2022-12-31 16:16:43 +01:00
Sipke Schoorstra e6536636d7
Additional samples + fixes and improvements (#3574)
* Incremental work on samples

* Rename HTTP middleware and update samples

* Rename HTTP Activities to Workflows

* Automatically register core activities when adding Elsa

* Fix feature registration bug

* Add default auth feature

* Make activity serializer more flexible

* Bump designer version

* Add workflow server + designer samples

* Simplify EntityFrameworkCore projects

* Update solution

* Add Sqlite package references to ensure the correct version is used

* Update sample project with EF Core

* Update EF extensions

* Add server + designer sample project

* Cleanup AllInOne project and add some XML comments

* Rename ci.yml and add CI for Docker file
2022-12-30 13:11:29 +01:00
Sipke Schoorstra 65e7009e56 Implement Fault model 2022-12-26 18:37:29 +01:00
Sipke Schoorstra 8ac225520b
Improve variable vs non-variable persistence (#3568)
* Incremental fixes

* Fix base assignment of async delegate block reference

* Reuse existing memory blocks

* Remove PlaybackStarted child activity

The PlaybackStarted property is unnecessary, since the PlayAudio activity already completes right after playback has started.

* Add GetCallStatus API method

* Prevent variables on composite activities to be overwritten during deserialization

* Remove unnecessary variable declarations

Activity variables will be declared automatically during activity invocation.

* Add XML comments

* Remove unused references arg

* Streamline variable identity assignment

* Fix composite early exit completion

* Move identity assignment to workflow definition service
2022-12-25 22:02:28 +01:00
Sipke Schoorstra 24692586a5
Persistent variables (#3563)
* Stash

* Incremental work on persistent variables

* Move variable management to central service

* Implement variable cleanup upon composite activity completion
2022-12-23 16:05:37 +01:00
Sipke Schoorstra bbe8ee34c0 Update packages 2022-12-22 15:55:20 +01:00
Sipke Schoorstra 2dcd9bcd73 Add .NET 7 as a target 2022-12-22 15:40:31 +01:00
Sipke Schoorstra 97b4966233
Workflow activation strategies (#3559)
* Implement workflow activation strategies

* Rename activation strategy API

* Rename workflow activation strategy API and implement dynamic description display

* Fix trigger workflow correlation

* Expose correlation ID from liquid

* Update workflow runtimes to invoke activation strategies

* Update workflow definition builder API with support for activation strategies
2022-12-21 19:36:40 +01:00
Sipke Schoorstra b6247824b3 Remove required memory block reference ID 2022-12-14 20:35:48 +01:00
Sipke Schoorstra a4011278cc Implement implicit FastEndpoint assembly collection for discovery 2022-12-09 12:25:39 +01:00
Sipke Schoorstra 026430fd2d
Composite Activity fixes and improvements (#3512)
* Implement consistent input/output/variable memory block identifiers

* Telnyx fixes and improvements

* Fix bookmark burning

* Refactor AnswerCall

* Incremental work on source + line registration

* Handle missing bookmarks

* Fix bookmark persisted callback mechanism

* Implement distributed locking for default workflow runtime

* Fix recording bookmark

* Increase source file and line coverage
2022-12-07 20:47:36 +01:00
Sipke Schoorstra 7d5eb198b5 Fix enum options not being displayed 2022-12-05 11:40:43 +01:00
Sipke Schoorstra c70247e133 Fix memory referencing and some other stuff 2022-12-02 22:57:26 +01:00
Sipke Schoorstra dbbe9d080b Add SelectList model 2022-11-28 22:06:27 +01:00
Sipke Schoorstra 414b730501 Fix ActivityRegistry Find method 2022-11-28 21:34:27 +01:00
Sipke Schoorstra bc573386b9 Add Guid as variable type 2022-11-28 14:24:54 +01:00
Sipke Schoorstra b5a2e95ed3
Implement types API endpoint (#3479) 2022-11-26 22:27:33 +01:00
Sipke Schoorstra 2ed1e14578 Fix variable mapper & converter 2022-11-26 20:00:22 +01:00
Sipke Schoorstra 2567eb6535 Implement variable picker 2022-11-23 22:36:43 +01:00
Sipke Schoorstra c3a3d85f47 Only register browsable, concrete activity types 2022-11-23 11:21:15 +01:00
Sipke Schoorstra 03eba3f6ad Incremental work on composite activity completion 2022-11-21 22:49:11 +01:00
Sipke Schoorstra 9dcae97a0e Add support for lazy initialization of output 2022-11-20 20:37:56 +01:00
Sipke Schoorstra 8cc8d1bcbf
Telnyx integration (#3453)
* Incremental work on Telnyx integration

* Incremental port of Telnyx activities

* Fix polymorphic JSON serialization for webhook data

* Fix IsFirstPass logic

* Fix trigger base to prevent activity auto completion

* Temporarily disable persistent snapshotting provider for testing

* Fix namespaces

* Add method to register activities in bulk using marker type

* Fix Telnyx refit client setup

* Register all Telnyx activities by default

* Incremental work on webhook driven resumption and correlation

* Incremental work on post-bookmark signaling

* Fix bookmark resolution

* Include correlation ID with bookmark

* Fix Telnyx resumption input

* Replace bookmark persisted signal with handler

* Fix SpeakText completion

* Add flow outcomes to SpeakText activity

* Update GatherUsingSpeak and GatherUsingaudio

* Refactor "is first pass" concept

* Fix WebhookEvent activity

* Add HTTP absolute URL provider

* Formatting and small changes

* Various API enhancements
2022-11-19 22:30:43 +01:00
Sipke Schoorstra 5e180accc7 Incremental work on workflow instance viewer 2022-11-13 13:32:23 +01:00
Sipke Schoorstra 6947f45693 Remove unused namespaces 2022-11-13 12:45:34 +01:00
Sipke Schoorstra 3bed8b970b Fix package tags 2022-11-11 21:25:14 +01:00
Sipke Schoorstra e9d4c9b6d5 Prepare projects for packaging 2022-11-03 21:40:23 +01:00
Sipke Schoorstra c6bfd1f574
Asynchronous Activities (#3386)
* Update job activities handler

Looks like somehow implicit global usings have been removed or disabled 🤔

* Implement background activity execution

* Checkbox UI improvements

* Implement Task configuration for asynchronous execution

* Make job queue hosted service process jobs in parallel

* Make job worker count configurable
2022-10-27 12:05:30 +02:00
Sipke Schoorstra 9a772af3c8
Implicit fork & join (#3331)
* Initial experiment with implicit fork and join construct

* Implement flow execution counters

* Incremental work on FlowJoin

* Implement bookmark removal behavior

* Set icon for FlowJoin
2022-10-10 15:08:30 +02:00
Sipke Schoorstra 31942ae96f
Implement async workflow state exporter for DB workflow instance (#3291)
* Incremental work on in-process message consumers

* Implement asynchronous workflow state DB exporter

* Fixes
2022-09-07 17:28:36 +02:00
Sipke Schoorstra b3bae39bfe
Default Runtime & Persistence (#3287)
* Delete DefaultWorkflowInvoker.cs

* Incremental work

* Refactor runtime

* Implement workflow state store + bookmark store

* Cleanup

* Update migrations

* Move store abstractions to management and runtime projects

* Consolidate persistence providers into single package

* Generate migrations

* Regenerate migrations

* Fix DI of memory stores

* Update migrations

* Refactor definition reference due to unserializable record

* Update web server bundle to use EF core by default

* Update Bookmark.cs

Fixes System Text Json deserialization
2022-09-04 17:04:14 +02:00
Sipke Schoorstra e2ffafc736
Refactor proto actor runtime with snapshot support (#3283)
* Initial working grain

* Incremental work on actor bookmark management & resuming wokflows

* Upgrade Proto Actor package references

* Fix lifetime of actors

* Implement bookmark and resumption

* Update Program.cs

* Update bookmark event publishing

* Refactor proto actor features API

* Implement snapshotting

* Update snapshotting

* Add in-memory provider and use it by default

* Update server bundle to use proto actor sqlite persistence by default
2022-09-02 13:18:53 +02:00
Gürkan Güran d614a0dbe6 Implemented version history 2022-08-29 18:22:58 +02:00
Sipke Schoorstra 078f21cf61 Incremental work 2022-08-26 21:59:17 +02:00
Sipke Schoorstra a983457076 Rename builder service 2022-08-25 13:45:35 +02:00
Sipke Schoorstra 7870012254 Implement versioned activities 2022-08-11 19:29:32 +02:00
Sipke Schoorstra e942f799ec Add default implementations for job queue and scheduler 2022-08-11 12:45:07 +02:00
Sipke Schoorstra 3174399517 Initial work on job activities 2022-07-26 23:30:42 +02:00
Sipke Schoorstra 1a30ae5277 Implement delete endpoints for activity definitions 2022-07-26 15:37:24 +02:00
Sipke Schoorstra 4ed7f4b5da
Designer Activity Definitions (#3221)
* Incremental work on custom activities

* Incremental work on refactoring versioned entities

* Add ActivityDefinition infrastructure

* Incremental work on activity definition manager

* Incremental work on API endpoints

* Refactored flowchart component to include hierarchical nav

* Incremental work on modularization of designer component

* Restructuring into modules

* Rename CustomActivities module

* Apply security

* Fix activity definition GET endpoint

* Incremental work on activity definition provider

* Incremental work on activity definition execution

* Update ActivityDefinitionMaterializer.cs

* Update ActivityDefinitionActivityProvider.cs

* Add activity definition referenced version update handler

* Maintain position of not found activity

* Fix prefix naming
2022-07-21 16:18:42 +02:00
Sipke Schoorstra dfa1068012 Remove unused namespaces 2022-07-07 22:30:44 +02:00
Sipke Schoorstra 20002e2454 Introduce ActivityBase 2022-06-29 15:36:27 +02:00
Sipke Schoorstra ae1748cee3 Implement flow nodes 2022-06-29 12:57:01 +02:00
Sipke Schoorstra 41dadaaf71 Incremental work on flowchart activity editing 2022-06-27 21:12:41 +02:00
Sipke Schoorstra 47843c8bf0 Fix duplicate output props 2022-06-27 15:50:31 +02:00
Sipke Schoorstra 8600dc5fcd Incremental work on embedding activities 2022-06-17 13:54:36 +02:00
Sipke Schoorstra 4ac74864cd Incremental work on transposition 2022-06-14 15:56:41 +02:00
Sipke Schoorstra 8d3aaea1e4 Incremental work on transposition 2022-06-11 20:04:16 +02:00
Sipke Schoorstra fec0f74c51 Fix Output converter 2022-06-08 11:33:25 +02:00
Sipke Schoorstra 8c4219929a Implement activity output variable binding 2022-06-07 13:37:34 +02:00
Sipke Schoorstra b7177f944f Streamline output API 2022-06-06 20:14:51 +02:00
Sipke Schoorstra 951149b5d4 Improve memory API 2022-06-04 20:01:20 +02:00
Sipke Schoorstra 2563406a7d Renaming register API and introduce hierarchical memory register 2022-06-04 18:52:58 +02:00
Sipke Schoorstra a28d2eb63a
Features API (#3081)
* Rename module and features

* Move Mediator, AspNetCore and Expressions to modules folder

* Update labels-widget.tsx
2022-05-27 12:36:39 +02:00
Sipke Schoorstra cce2a8731f Implement cascading workflow labels deletion 2022-05-27 10:53:22 +02:00