Commit graph

658 commits

Author SHA1 Message Date
Sipke Schoorstra 93a09e9b7d Prevent server startup failure when there are broken workflow definitions 2021-05-13 11:25:05 +02:00
Sipke Schoorstra 09f11c026e Signaling fixes and enhancements 2021-05-11 22:12:21 +02:00
Sipke Schoorstra 999189c1dc Fix mapping of composite activity property definition onto blueprint 2021-05-11 20:45:55 +02:00
Sipke Schoorstra 0aafb558a0 Publish correct event again
Fixes #968
2021-05-11 20:21:10 +02:00
Sipke Schoorstra e8f0449c02 Add more events related to workflow definition management
Fixes #959
2021-05-11 10:37:03 +02:00
Sipke Schoorstra 26dfe813d0 Update EF core migrations table to use the same schema as Elsa tables 2021-05-11 10:36:09 +02:00
Sipke Schoorstra cb94f4dde5 Update packages 2021-05-10 22:19:29 +02:00
Sipke Schoorstra 6889b0cf38 Remove broken stopwatch logic
Fixes #956
2021-05-10 17:06:44 +02:00
Sipke Schoorstra e6171ecaa0 Fix TriggerWorkflows to start new workflows with correlation ID if no existing instances found 2021-05-10 15:54:51 +02:00
Sipke Schoorstra 5761ad7145 Fix signaler and TriggerWorkflows handler 2021-05-08 20:44:09 +02:00
Sipke Schoorstra 1febb9a211 Handle DateTime parsing for UTC strings 2021-05-05 13:13:05 +02:00
Sipke Schoorstra c6b998d00b Fix assignment 2021-05-05 13:12:27 +02:00
Sipke Schoorstra dd772a3c74 Make CurrentScope nullable 2021-05-05 13:12:11 +02:00
Sipke Schoorstra 805d234df4 Cleanup 2021-05-04 10:59:52 +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 08f639b9e0 Implement activity stats 2021-05-03 13:07:21 +02:00
Sipke Schoorstra 9b5bad71c8 Update workflow builder to enable developer to specify latest & published state 2021-05-03 13:07:21 +02:00
Sipke Schoorstra d71d89cda0 Incremental work on enhancements 2021-05-02 19:34:09 +02:00
Julian Quiroga 13014976eb Fix. Case of a "Fault" Outcome using a single message string without "Exception". This serializer fails when a null value is received breakin the Designer. Now it's fixed. 2021-05-02 19:33:57 +02:00
Sipke Schoorstra 2f6ce896c6 Implement runtime list items provider 2021-04-29 22:43:41 +02:00
Sipke Schoorstra b7202d2de2 Add ListActive method to workflow registry that returns workflows that are published or have at least 1 non-finished workflow instance 2021-04-29 16:02:43 +02:00
Sipke Schoorstra de66514f66 Undo this premature optimization, because it causes finished workflow instances to not find their blueprint in the workflow instances overview list 2021-04-28 22:45:00 +02:00
Sipke Schoorstra 7a73d071cf Fix that options provider resolves enums before usng explicitly defined options 2021-04-28 22:22:15 +02:00
Sipke Schoorstra 4a5df3c816 Add activity selection 2021-04-28 13:02:03 +02:00
Craig Fowler 39485970cf Resolve #777 - Handle 'target type object'
Turns out that this is a quick & cheap fix.
2021-04-26 21:13:14 +02:00
Sipke Schoorstra 26aefe1dde Persist workflow when activity is configured as such 2021-04-26 15:21:04 +02:00
Sipke Schoorstra 7739a65189 Prevent RunWorkflow from executing the workflow it is itself part of 2021-04-26 12:30:44 +02:00
Sipke Schoorstra 27b008fd05 Update WorkflowBlueprint with Tag 2021-04-26 12:30:15 +02:00
Sipke Schoorstra 576a0e50e8 Add Tag property 2021-04-26 10:09:46 +02:00
Sipke Schoorstra 6c5e3b10cc Store activity input, output & outcome as part of execution log and make this visible in UI 2021-04-22 21:20:16 +02:00
Sipke Schoorstra 489750432a Remove Email and UserTask projects from Elsa project 2021-04-21 14:46:17 +02:00
Sipke Schoorstra dff94a057a Fix missing display name and description on activity blueprint model 2021-04-21 14:45:34 +02:00
Sipke Schoorstra ea00bd536a Ensure each startup runner executed in its own scope 2021-04-20 19:43:18 +02:00
Sipke Schoorstra f4e2d4dd5b Add overloads 2021-04-20 19:43:00 +02:00
Sipke Schoorstra 61ccbceb5f Add API endpoint for querying workflow execution log records 2021-04-20 14:19:50 +02:00
Sipke Schoorstra 91bda57411 Rename All specification to Identity 2021-04-20 14:19:25 +02:00
Sipke Schoorstra 33250c9bbd Add EventName property to ActivityExecutionLogRecord (replacing Message property) 2021-04-20 10:31:35 +02:00
Sipke Schoorstra 347c188ab1 Ensure that StartupRunner hosted service is registered before Elsa Options get evaluated
This prevents an issue when the user invokes StartWorkflow<T>, which would register the StartWorkflow<T> hosted service before the StartupRunner hosted service is registered.
The problem with that is that the migrations runner for EF Core executes *after* the StartWorkflow hosted service, which would then fail because the DB isn't prepared at that point.
2021-04-19 13:55:33 +02:00
Sipke Schoorstra 6fc7e2031d Revert 5ed136a41f
Fixes #876
2021-04-19 13:55:33 +02:00
Sipke Schoorstra d9094575fd Remove unused namespaces 2021-04-16 12:48:06 +02:00
Sipke Schoorstra 9ec6f40c90 Add events for activity execution result 2021-04-16 12:47:43 +02:00
Sipke Schoorstra ced11df305 Move activity type provider abstractions to services 2021-04-16 12:46:54 +02:00
Sipke Schoorstra 5ed136a41f Extract auto-Done scheduling to a handler 2021-04-15 21:38:44 +02:00
Sipke Schoorstra 937b861359 Optimize workflow registry loading by only considering older versions for which there are non-finished workflow instances pending 2021-04-15 21:38:10 +02:00
Sipke Schoorstra 18f45fe241 Fix workflow context type nullability 2021-04-15 15:48:04 +02:00
Sipke Schoorstra c1f827cfee Add string to Type converter 2021-04-15 14:39:59 +02:00
Sipke Schoorstra 0dae77db95 Restore Done outcome for If activity 2021-04-14 22:46:32 +02:00
Sipke Schoorstra 5dd2c0be34 Add workflowContext global JS variable 2021-04-13 23:01:49 +02:00
Sipke Schoorstra 2b0565ae66 Move re-indexing of triggers and re-creation of Azure Service Bus workers to an async background task (implemented as Rebus consumers) 2021-04-13 22:05:17 +02:00
Sipke Schoorstra 094eccd572 Implement Switch expression evaluation 2021-04-12 22:29:58 +02:00