Sipke Schoorstra
f7a63b80c5
Reduce number of DB commits during workflow execution
2021-08-23 11:57:50 +02:00
Sipke Schoorstra
42e95033cf
BREAKING: Persistable input ( #1302 )
...
* Implement resuming Idle workflows + persistable input
* Refactor workflow input model
* Re-enable tests
2021-07-22 22:13:33 +02:00
Sipke Schoorstra
e890c685e1
Improve Finish activity for sending output back to parent
...
This update automatically resolves the output reference (if any) and passes that to the parent instead of the output reference
2021-07-11 12:10:16 +02:00
Sipke Schoorstra
c00585241e
Fix workflow resumption when using ActivityExecuted and WorkflowPassCompleted strategies
...
Fixes #1182
2021-07-03 22:01:33 +02:00
Sipke Schoorstra
a3fd1a31af
Implement workflow priority channels
2021-06-28 22:38:05 +02:00
Sipke Schoorstra
6050c99c23
Resolve warnings
2021-06-19 11:41:02 +02:00
Sipke Schoorstra
f67140f7e2
Cleanup
2021-06-14 14:10:03 +02:00
Sipke Schoorstra
9ec82d9293
Refactor Output handling
2021-06-14 14:10:03 +02:00
Sipke Schoorstra
1db05d3b0b
Update models and UI to support configurable activity output storage
2021-06-14 14:10:03 +02:00
Sipke Schoorstra
332741d54f
Implement pluggable storage for activity input and output properties
2021-06-14 14:10:03 +02:00
Sipke Schoorstra
6a49f7a991
Stash input output storage
2021-06-14 14:10:03 +02:00
Sipke Schoorstra
757a2f566f
Refactor activity state serialization to support property types typed as object
2021-06-07 22:04:36 +02:00
Sipke Schoorstra
ea40ad1121
More correlation fixes
2021-06-07 15:21:36 +02:00
Sipke Schoorstra
58af0c7ca0
Rename ActivityPropertyAttribute to ActivityInputAttribute
2021-05-30 12:51:58 +02:00
Sipke Schoorstra
68e5be0159
Fix issue with SwitchHandler and Switch display on workflow blueprint viewer when using expressions that cannot be evaluated
2021-05-28 20:21:45 +02:00
Sipke Schoorstra
3f4bbed7b6
Update XML comments on VersionOptions
2021-05-25 13:34:53 +02:00
Sipke Schoorstra
e724d6030a
Incremental work on workflow journal UI
2021-05-20 11:05:52 +02:00
Sipke Schoorstra
e95e43bf36
Improve workflow signaling
2021-05-15 21:21:47 +02:00
Sipke Schoorstra
2ec915dabe
Merge branch 'feature/elsa-2.0'
...
# Conflicts:
# .gitignore
# Dockerfile
# Nuget.Config
# README.md
# Samples.sln
# appveyor.yml
# docker-compose.yaml
# src/activities/Elsa.Activities.ControlFlow/Activities/ForEach.cs
# src/activities/Elsa.Activities.ControlFlow/Activities/IfElse.cs
# src/activities/Elsa.Activities.ControlFlow/Activities/Join.cs
# src/activities/Elsa.Activities.ControlFlow/Activities/Switch.cs
# src/activities/Elsa.Activities.ControlFlow/Activities/While.cs
# src/activities/Elsa.Activities.ControlFlow/icon.png
# src/activities/Elsa.Activities.Dropbox/Extensions/ServiceCollectionExtensions.cs
# src/activities/Elsa.Activities.Dropbox/icon.png
# src/activities/Elsa.Activities.Email/Activities/SendEmail.cs
# src/activities/Elsa.Activities.Email/icon.png
# src/activities/Elsa.Activities.Http/Activities/ReceiveHttpRequest.cs
# src/activities/Elsa.Activities.Http/Activities/Redirect.cs
# src/activities/Elsa.Activities.Http/Activities/SendHttpRequest.cs
# src/activities/Elsa.Activities.Http/Activities/WriteHttpResponse.cs
# src/activities/Elsa.Activities.Http/RequestHandlers/Handlers/TriggerRequestHandler.cs
# src/activities/Elsa.Activities.Http/icon.png
# src/activities/Elsa.Activities.MassTransit/Activities/CancelScheduledSendMassTransitMessage.cs
# src/activities/Elsa.Activities.MassTransit/Activities/MassTransitBusActivity.cs
# src/activities/Elsa.Activities.MassTransit/Activities/ReceiveMassTransitMessage.cs
# src/activities/Elsa.Activities.MassTransit/Extensions/ServiceCollectionExtensions.cs
# src/activities/Elsa.Activities.MassTransit/icon.png
# src/activities/Elsa.Activities.Reflection/Activities/ExecuteFunction.cs
# src/activities/Elsa.Activities.Reflection/icon.png
# src/activities/Elsa.Activities.Timers/Activities/CronEvent.cs
# src/activities/Elsa.Activities.Timers/Activities/TimerEvent.cs
# src/activities/Elsa.Activities.Timers/Elsa.Activities.Timers.csproj
# src/activities/Elsa.Activities.Timers/icon.png
# src/activities/Elsa.Activities.UserTask/Activities/UserTask.cs
# src/activities/Elsa.Activities.UserTask/icon.png
# src/activities/Elsa.Activities.Workflows/Activities/Finish.cs
# src/activities/Elsa.Activities.Workflows/Activities/TriggerWorkflow.cs
# src/activities/Elsa.Activities.Workflows/icon.png
# src/core/Elsa.Abstractions/Converters/TypeNameHandlingConverter.cs
# src/core/Elsa.Abstractions/Exceptions/WorkflowException.cs
# src/core/Elsa.Abstractions/Models/ActivityDefinition.cs
# src/core/Elsa.Abstractions/Models/BlockingActivity.cs
# src/core/Elsa.Abstractions/Models/Variables.cs
# src/core/Elsa.Abstractions/Models/WorkflowFault.cs
# src/core/Elsa.Abstractions/Models/WorkflowInstance.cs
# src/core/Elsa.Abstractions/Services/ActivityBase.cs
# src/core/Elsa.Abstractions/Services/IWorkflowEventHandler.cs
# src/core/Elsa.Abstractions/Services/Models/Workflow.cs
# src/core/Elsa.Abstractions/Services/Models/WorkflowExecutionContext.cs
# src/core/Elsa.Abstractions/Services/Models/WorkflowFault.cs
# src/core/Elsa.Abstractions/Services/WorkflowEventHandlerBase.cs
# src/core/Elsa.Abstractions/icon.png
# src/core/Elsa.Core/Expressions/WorkflowExpressionEvaluator.cs
# src/core/Elsa.Core/Extensions/AutoMapperServiceCollectionExtensions.cs
# src/core/Elsa.Core/Extensions/ElsaServiceCollectionExtensions.cs
# src/core/Elsa.Core/Mapping/WorkflowDefinitionProfile.cs
# src/core/Elsa.Core/Persistence/Memory/MemoryWorkflowInstanceStore.cs
# src/core/Elsa.Core/Results/FaultWorkflowResult.cs
# src/core/Elsa.Core/Runtime/StartupRunnerHostedService.cs
# src/core/Elsa.Core/Services/WorkflowInvoker.cs
# src/core/Elsa.Core/Services/WorkflowPublisher.cs
# src/core/Elsa.Core/WorkflowBuilders/ActivityBuilder.cs
# src/core/Elsa.Core/icon.png
# src/core/Elsa/icon.png
# src/dashboard/Elsa.Dashboard.Web/Elsa.Dashboard.Web.csproj
# src/dashboard/Elsa.Dashboard.Web/Startup.cs
# src/dashboard/Elsa.Dashboard.Web/icon.png
# src/dashboard/Elsa.Dashboard/ActionFilters/NotifierFilter.cs
# src/dashboard/Elsa.Dashboard/Areas/Elsa/Views/Shared/UserMenuItems.cshtml
# src/dashboard/Elsa.Dashboard/Areas/Elsa/Views/Shared/WorkflowDefinitionEditor.cshtml
# src/dashboard/Elsa.Dashboard/Areas/Elsa/Views/_ViewImports.cshtml
# src/dashboard/Elsa.Dashboard/Conventions/ElsaConvention.cs
# src/dashboard/Elsa.Dashboard/Elsa.Dashboard.csproj
# src/dashboard/Elsa.Dashboard/Extensions/DashboardServiceCollectionExtensions.cs
# src/dashboard/Elsa.Dashboard/icon.png
# src/dashboard/Elsa.WorkflowDesigner/Elsa.WorkflowDesigner.csproj
# src/dashboard/Elsa.WorkflowDesigner/ViewComponents/WorkflowDesignerViewComponent.cs
# src/dashboard/Elsa.WorkflowDesigner/icon.png
# src/persistence/Elsa.Persistence.DocumentDb/DocumentDbStorage.cs
# src/persistence/Elsa.Persistence.DocumentDb/DocumentDbStorageOptions.cs
# src/persistence/Elsa.Persistence.DocumentDb/Documents/WorkflowDefinitionVersionDocument.cs
# src/persistence/Elsa.Persistence.DocumentDb/Documents/WorkflowInstanceDocument.cs
# src/persistence/Elsa.Persistence.DocumentDb/Elsa.Persistence.DocumentDb.csproj
# src/persistence/Elsa.Persistence.DocumentDb/Extensions/DateTimeExtensions.cs
# src/persistence/Elsa.Persistence.DocumentDb/Extensions/DocumentClientExtensions.cs
# src/persistence/Elsa.Persistence.DocumentDb/Extensions/QueryableExtensions.cs
# src/persistence/Elsa.Persistence.DocumentDb/Extensions/ServiceConfigurationExtensions.cs
# src/persistence/Elsa.Persistence.DocumentDb/Mapping/DocumentProfile.cs
# src/persistence/Elsa.Persistence.DocumentDb/Services/CosmosDbWorkflowDefinitionStore.cs
# src/persistence/Elsa.Persistence.DocumentDb/Services/CosmosDbWorkflowInstanceStore.cs
# src/persistence/Elsa.Persistence.DocumentDb/icon.png
# src/persistence/Elsa.Persistence.EntityFrameworkCore/CustomSchema/CustomSchemaOptionsExtensionInfo.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/ElsaContext.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/MySqlContext.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/MySqlContextFactory.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/PostgreSqlContext.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/SqlServerContext.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/DbContexts/SqliteContext.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Elsa.Persistence.EntityFrameworkCore.csproj
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Entities/WorkflowInstanceEntity.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Extensions/EFCoreServiceCollectionExtensions.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Mapping/EntitiesProfile.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/MySql/MySqlContextModelSnapshot.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/PostgreSql/20201027192219_Update02.Designer.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/SqlServer/SqlServerContextModelSnapshot.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/20201029094740_Create.Designer.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/20201029094740_Create.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Migrations/Sqlite/SqliteContextModelSnapshot.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Services/EntityFrameworkCoreWorkflowDefinitionStore.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/Services/EntityFrameworkCoreWorkflowInstanceStore.cs
# src/persistence/Elsa.Persistence.EntityFrameworkCore/icon.png
# src/persistence/Elsa.Persistence.MongoDb/Extensions/ServiceCollectionExtensions.cs
# src/persistence/Elsa.Persistence.MongoDb/icon.png
# src/persistence/Elsa.Persistence.YesSql/Documents/WorkflowInstanceDocument.cs
# src/persistence/Elsa.Persistence.YesSql/Extensions/YesSqlServiceCollectionExtensions.cs
# src/persistence/Elsa.Persistence.YesSql/Mapping/DocumentProfile.cs
# src/persistence/Elsa.Persistence.YesSql/Services/YesSqlWorkflowDefinitionStore.cs
# src/persistence/Elsa.Persistence.YesSql/Services/YesSqlWorkflowInstanceStore.cs
# src/persistence/Elsa.Persistence.YesSql/StartupTasks/InitializeStoreTask.cs
# src/persistence/Elsa.Persistence.YesSql/icon.png
# src/samples/README.md
# src/samples/Sample04/Activities/ArithmeticOperation.cs
# src/samples/Sample04/Activities/Divide.cs
# src/samples/Sample04/Activities/Multiply.cs
# src/samples/Sample04/Activities/Subtract.cs
# src/samples/Sample04/Activities/Sum.cs
# src/samples/Sample04/Program.cs
# src/samples/Sample05/Sample05.csproj
# src/samples/Sample07/Startup.cs
# src/samples/Sample08/Sample08.csproj
# src/samples/Sample08/Startup.cs
# src/samples/Sample12/Program.cs
# src/samples/Sample14/ElsaContextFactory.cs
# src/samples/Sample14/Program.cs
# src/samples/Sample14/Sample14.csproj
# src/samples/Sample18/Program.cs
# src/samples/Sample18/Sample18.csproj
# src/samples/Sample19/Sample19.csproj
# src/samples/Sample20/Workflows/SplitObjectWorkflow.cs
# src/samples/Sample21/Sample21.csproj
# src/samples/Sample21/Startup.cs
# src/samples/Sample21/Workflows/CartTrackingWorkflow.cs
# src/samples/Sample21/appsettings.json
# src/samples/Sample22/Program.cs
# src/samples/Sample22/Sample22.csproj
# src/samples/Sample23/ElsaContextFactory.cs
# src/samples/Sample23/HelloWorldWorkflow.cs
# src/samples/Sample23/Migrations/Sqlite/20201027194619_Create.Designer.cs
# src/samples/Sample23/Migrations/Sqlite/20201027194619_Create.cs
# src/samples/Sample23/Migrations/Sqlite/ElsaContextModelSnapshot.cs
# src/samples/Sample23/Program.cs
# src/samples/Sample23/Sample23.csproj
# src/samples/Sample24/Sample24.csproj
# src/scripting/Elsa.Scripting.JavaScript/Converters/TruncatingNumberJsonConverter.cs
# src/scripting/Elsa.Scripting.JavaScript/Handlers/CommonJavaScriptEngineHandler.cs
# src/scripting/Elsa.Scripting.JavaScript/Services/JavaScriptExpressionEvaluator.cs
# src/scripting/Elsa.Scripting.JavaScript/icon.png
# src/scripting/Elsa.Scripting.Liquid/Handlers/CommonLiquidContextHandler.cs
# src/scripting/Elsa.Scripting.Liquid/Services/LiquidExpressionEvaluator.cs
# src/scripting/Elsa.Scripting.Liquid/icon.png
2021-05-04 10:53:55 +02:00
Sipke Schoorstra
576a0e50e8
Add Tag property
2021-04-26 10:09:46 +02:00
Sipke Schoorstra
33250c9bbd
Add EventName property to ActivityExecutionLogRecord (replacing Message property)
2021-04-20 10:31:35 +02:00
Sipke Schoorstra
4fcfaf61f9
Update Workflow ctor to read variables from definition
2021-04-12 10:19:26 +02:00
Sipke Schoorstra
35248ef43f
Require explicit syntax for getting expression
2021-04-04 15:37:28 +02:00
Sipke Schoorstra
6996d41376
Incremental work on property editor modes
2021-04-04 15:37:28 +02:00
Sipke Schoorstra
0c15c94ea7
Telnyx Activities ( #768 )
...
* Fix liquid syntax for accessing activity output
* Initial scaffolding of Telnyx module + API changes
* Make Telnyx Notification activity blocking
* Implement Telnyx correlation
* Post workflow suspension tasks improvements
* Add Telnyx activities
* Add HangupCall and TransferCall activities
* Call activity improvements
2021-03-17 13:07:14 +01:00
Craig Fowler
5c927501d0
PR rework #728 - Default persistence behavior
...
This reworks the way that the default behavior is selected, in line
with comments. The changes to the enum are reverted, and the
three places which create a workflow definition are now altered to
explicitly choose WorkflowBurst
This includes a change to the TS enum definition - update to match
its C# counterpart.
2021-03-10 20:08:53 +00:00
Craig Fowler
8751bead5a
WIP #728 - Make WorkflowBurst default behaviour
...
In the comments to #728 it was suggested that
WorkflowBurst persistence behaviour was a more
sane default.
2021-03-09 19:57:45 +00:00
Sipke Schoorstra
62352e27ac
Remove IsEnabled flag
2021-03-08 15:14:02 +01:00
Sipke Schoorstra
dc95276abb
Update SendEmail activity property UI hints
2021-03-06 09:40:49 +01:00
Sipke Schoorstra
6eadac5736
Improve javascript engine
2021-03-04 17:45:59 +01:00
Sipke Schoorstra
a14f7cc267
Expressions editor ( #695 )
...
* A functioning monaco editor
* Incremental work on intellisense
* Add Workflow Context Options settings to designer
* Rudimentary work on variables
2021-03-02 09:00:51 +01:00
Sipke Schoorstra
046cf53b06
Add WorkflowExecutionBurstStarting event to allow for persisting status changes before executing activities that potentially take a long time to finish ( #666 )
...
* Add WorkflowExecutionBurstStarting event to allow for persisting status changes before executing activities that potentially take a long time to finish
* Also persist workflow instance when burst is starting and behavior set to WorkflowPassCompleted
2021-02-25 15:43:12 +01:00
Craig Fowler
b583c7f1a9
Resolves #485 - Add PurgeVariables functionality ( #654 )
...
* Trivial - Add VS Code workspace
* Trivial - Add VSCode build task & extra ignore
On GNU/Linux, auto-generated .directory
files should be ignored.
* WIP #485 - Boilerplate for unit test project
* WIP #485 - Add test coverage (Remove/RemoveAll)
* WIP #485 - Implement RemoveAll
* Remove redundant logic, covered by IDictionary
Per the following, the contract for a generic IDictionary,
the Remove method already deals with non-existent keys.
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.idictionary-2.remove?view=net-5.0#System_Collections_Generic_IDictionary_2_Remove__0_
* Resolve #485 - Add PurgeVariables methods
These are convenience methods upon ActivityExecutionContext
and WorkflowExecutionContext, consistent with their current APIs.
Also in this commit are tests for those simple methods.
There's a bit of test-scaffold as well included, such as:
* Autofixture Xunit2 integration
* New project for unit tests
* Customize attribute for avoiding crashes on Autofixture recursion
* Reusable specimen builder for creating IServiceProvider which
resolves services from Autofixture
* Custonize attribute for a parameter to use that ^^ specimen builder
2021-02-24 14:29:03 +01:00
Sipke Schoorstra
15f1411838
Add support for scoped variables ( #647 )
2021-02-20 12:45:16 +01:00
Sipke Schoorstra
86980a752e
Designer web component ( #636 )
...
* Activity picker dialog
* Activity picker
* Activity editor
* Activity property fields
* Blazor bindings for Elsa designer
* Only index triggers from published & enabled workflow definitions
* Handle case of null workflow blueprint not found
* Add check for zero duration and general scheduler exceptions
* Don't rethrow expression evaluation failure
* Workflow definition settings editor modal
* Integration between stencil and blazor 🎉
* Fix expression type conversion
* Add publish button and restructure components
* Fix up workflow definition ID vs workflow definition version ID
* Update EF Core migrations
* Fix Workflow Publisher
* Fix version display
* Add Import menu item
2021-02-16 09:55:13 +01:00
Sipke Schoorstra
663dc47c89
Stash ( #629 )
2021-02-13 10:31:34 +01:00
Sipke Schoorstra
d0113605f3
Retry faulted workflow from dashboard ( #607 )
...
* Cleanup ClientApp assets
* Update favicons
* Implement Retry from dashboard option
2021-02-02 12:15:09 +01:00
Sipke Schoorstra
59cdcdad6c
Log inner exceptions
2021-02-01 16:14:45 +01:00
Sipke Schoorstra
2c7b20846a
Fix Stack serialization
2021-01-31 12:49:06 +01:00
Sipke Schoorstra
7cfe24ba94
Implement revival of faulted workflow ( #595 )
...
* Initial version of workflow reviver
* Fix DI things
* Rename workflow builder parameter to `builder`
* Update EF Core stores to use short-lived db contexts
* Update serializer to use new settings to reset ID seed
* Write fault details
* Add faulty workflows sample project
* Switch to free & open source Z.EntityFramework.Plus.EFCore
* Add content type header
* Fix call to virtual OnSaving/OnLoading
* Fix retry
2021-01-30 12:47:50 +01:00
Sipke Schoorstra
59189bd330
Revise trigger API ( #593 )
...
* Update triggers
* Fix service registrations
* Add support for startup task ordering
* Add missing Rebus Activities project
* Handle indexing of many workflow instances
* Update sample
* Separate bookmarks from start triggers
* Add trigger API
* Fix queue worker
* Delete sqlite temp files
2021-01-29 16:16:45 +01:00
Sipke Schoorstra
2a64cc1473
Add continue running workflow startup task
2021-01-19 20:17:14 +01:00
Sipke Schoorstra
89dfba8269
Add source file + line number to execution log. ( #571 )
...
* Add source and activity type to WorkflowExecutionLogRecord
* Update builder extensions
2021-01-14 21:45:28 +01:00
Sipke Schoorstra
974b3c2df2
Elsa 2.0/faults ( #570 )
...
* Update fault API and add stack trace.
2021-01-14 17:15:02 +01:00
Sipke Schoorstra
8613133add
Refactor back-paddling of branching activities
2021-01-12 13:22:40 +01:00
Sipke Schoorstra
e3e0257455
Make activity output persistence opt-in
2021-01-08 17:59:43 +01:00
Sipke Schoorstra
3cfc2ad665
Remove unused namespaces
2021-01-08 17:40:32 +01:00
Sipke Schoorstra
83242ddecd
EF Core Persistence Provider ( #557 )
...
* Add EF Core persistence provider
* Add EF Core migration runner
* Fix potential duplicate queue registrations
* Update EF Core projects
2021-01-07 13:01:19 +01:00
Sipke Schoorstra
9b76904099
Optimize activity data storage
2021-01-05 12:17:00 +01:00
Sipke Schoorstra
f14c22d5d4
Improve interaction between Finish and composite activities
...
This update enabled activities within composite activity containers to control the outcome of the container
2021-01-02 15:39:38 +01:00