Sipke Schoorstra
5816cdf399
Refactor workflow execution log API
...
Fixes #1529
2021-09-17 08:16:19 +02:00
Sipke Schoorstra
cea453cb4f
Fix unit tests
2021-09-16 20:34:32 +02:00
Sipke Schoorstra
37d687d526
Update names according to convention
2021-09-16 20:26:18 +02:00
Sipke Schoorstra
142b574481
Update packages
2021-09-16 20:25:38 +02:00
Sipke Schoorstra
8255861842
Fix package downgrade error
2021-09-14 15:33:24 +02:00
Sipke Schoorstra
3c4a10d650
Implement infinite loop detection and handling
2021-09-01 19:06:07 +02:00
Sipke Schoorstra
f7a63b80c5
Reduce number of DB commits during workflow execution
2021-08-23 11:57:50 +02:00
Sipke Schoorstra
68ffd91ccc
Fix warnings
2021-08-10 12:06:21 +02:00
Joseph Stewart
dafd763097
Refactor common activity and fix bug in Liquid handler
2021-08-07 18:56:13 +02:00
Joseph Stewart
e51395ff21
Add test for javascript
2021-08-07 18:56:13 +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
b506421ba5
Merge branch 'master' into webhook/url-management
...
# Conflicts:
# src/activities/Elsa.Activities.Webhooks/Elsa.Activities.Webhooks.csproj
# src/designer/elsa-workflows-studio/package-lock.json
# src/designer/elsa-workflows-studio/src/components/editors/elsa-multi-expression-editor/elsa-multi-expression-editor.tsx
# src/designer/elsa-workflows-studio/src/services/elsa-client.ts
# src/samples/server/Elsa.Samples.Server.Host/Startup.cs
2021-06-19 10:20:24 +02:00
axeleron007
eb388caed1
Setup Elsa Server project with Features #1032
...
Setup Elsa Server project with Features.
2021-06-18 16:22:57 +03:00
Sipke Schoorstra
f67140f7e2
Cleanup
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
0c79bac321
Updated some namespaces
2021-06-14 14:10:03 +02:00
Sipke Schoorstra
bb4ff3b714
Update packages
2021-05-25 09:57:17 +02:00
Sipke Schoorstra
400a862f96
Cleanup: remove unused namespaces
2021-05-13 11:31:38 +02:00
Sipke Schoorstra
cb94f4dde5
Update packages
2021-05-10 22:19:29 +02:00
Sipke Schoorstra
173ded683f
Provide Id value to mocked ActivityBlueprint
2021-05-05 13:14:28 +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
ae46e0e143
Update packages and accommodate for breaking changes
2021-04-07 14:48:30 +02:00
Sipke Schoorstra
ce957b95e7
Cleanup
2021-04-07 13:13:13 +02:00
Sipke Schoorstra
df6ad74eec
Replace custom distributed locking implementation with DistributedLock
...
https://github.com/madelson/DistributedLock
2021-04-07 13:13:13 +02:00
Craig Fowler
da88ee1b95
Trivial: Make running tests less noisy
2021-04-02 13:46:47 +01:00
Craig Fowler
2e3aef2740
Merge remote-tracking branch 'elsa-core/feature/elsa-2.0' into 751-postgres-yessql-exception
2021-04-02 13:46:13 +01:00
Craig Fowler
282c90f80f
Further fixup & refactoring of Autofixture attribs
...
This now also includes reworking the attribute which activates
Autofixture-style resolution upon an IServiceProvider.
This has now been renamed to WithAutofixtureResolutionAttribute.
The new/reworked attribute is composable with other Autofixture
attributes.
2021-04-02 13:28:27 +01:00
Craig Fowler
f2b27480fc
Trivial - remove redundant types
2021-04-02 12:08:05 +01:00
Sipke Schoorstra
38be994e31
Break up WorkflowRunner into smaller types and extracted reusable trigger logic
2021-04-02 12:43:14 +02:00
Craig Fowler
088cf7fdf6
Merge remote-tracking branch 'elsa-core/feature/elsa-2.0' into 751-postgres-yessql-exception
2021-04-02 11:14:16 +01:00
Craig Fowler
d285b8b505
WIP composing customize attributes
...
This isn't really related to #751 - it's a refactor of some of
our test logic, to avoid bloat of semi-repeated autofixture
customization attributes.
By switching to a behaviour-driven model, it's possible to
compose them, which means that there's no need to part-duplicate
between them. It should also reduce the overall number of them,
as combinations can be put together on-demand, rather than needing
a new attribute of their own.
2021-04-02 11:12:21 +01:00
Craig Fowler
0eaa11e69d
Trivial - correct a typo in class naming
2021-04-01 20:25:09 +02:00
Craig Fowler
8e16f5f269
Related to #761 - Refactor complex conversion
...
This removes all of the (now actually non-trivial) conversion logic from
the class which is actually responsible for executing the Jint engine.
This moves it all to a new service which uses chain of responsibility to
convert the result, using one of a few different mechanisms.
Of note is the handling of ExpandoObject when no specific type
information has been provided, and also the handling of enumerables,
with the exception of strings.
2021-04-01 20:25:09 +02:00
Craig Fowler
dd9c1f5cdc
WIP #761 - Unit test indicates location of problem
...
This unit test narrows the problem down to the class
JavaScriptService.
2021-04-01 20:25:09 +02:00
Craig Fowler
ef117eced7
Trivial - correct a typo in class naming
...
This is a cherry-pick to get the same fix into this branch.
2021-04-01 19:04:28 +01:00
Craig Fowler
ee7a8cdb1b
Merge pull request #775 from craigfowler/feature/738-Composite-Activities-may-be-triggers
...
Refactor for comprehension & add test coverage
2021-03-20 11:29:28 +00:00
Craig Fowler
1dee17b904
WIP #738 - Add test coverage for new service
...
This test passes, but as you can see it's
massive because of the complexity of what the
class has to do.
2021-03-18 18:54:23 +00:00
Sipke Schoorstra
0434b4825a
Update packages
2021-03-18 11:24:04 +01: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
4873aac316
Resolve #748 - Test coverage for EF Db Contexts
...
As well as providing a unit test which matches other persistence
provider tests (round-tripping a workflow instance), two other tests
are included here:
* When using the default DI registration extension method, this sets
up pooling of DB contexts and so a resolved context will come from
the pool.
* When using the non-pooled DI registration extension method, this
sets up EF without pooling, which is more useful in a multi-tenanted
environment.
There are also some other changes in this commit corresponding to
improving the tests. Mainly de-duplicating logic & improving names.
2021-03-13 15:21:44 +00:00
Craig Fowler
cbc7c2d461
WIP #552 - Refactor test logic (reusability)
...
This refactor of integration test logic is to boost its
reusability. Moving some functionality to attributes &
customization classes means I can reuse elsewhere without
duplication.
2021-03-06 13:55:19 +00:00
Craig Fowler
f34409696d
Should resolve #653 - Reinstate tests in CI process for v2 branch ( #658 )
...
* WIP #653 - Delete two tests
These two couldn't easily be fixed, in both cases they were
integration tests which involved passing through many classes.
It wasn't immediately clear what needed to be done to fix them.
As noted in the issue description, removing them was an
acceptable fix.
* WIP #653 - Fix a failing test
I split this test into two. Per the discussion at:
https://github.com/xunit/xunit/issues/350
XUnit seems quite opinonated about not having assertion messages.
Thus, without changing assertion library (which deserves discussion
before I just do it), the logical next best thing is to split into two
single-assert tests, so it's clear which assertion failed on a test
failure.
Also, I moved the AutoMoqData attribute to the shared test lib, so
that it can be used anywhere. That allowed me to eliminate the
constructor for this test class, except for initialising the base class.
* Provisionally resolve #653 - reinstate tests in CI
This should complete the issue although we need to see a
passing CI build with this code change before we can say
it's done.
* Provisionally resolves #653 - Add test script
2021-02-25 09:24:00 +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
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
fa13aadd37
Serialization improvements and cleanup
2020-12-26 14:37:05 +01:00
Sipke Schoorstra
310cab9032
Elsa Activity + Workflow registration refactorings ( #543 )
...
* Elsa options and activity/workflow registration improvements
* Add convenience extensions for Quartz and Hangfire timer activity registration
* Fix solution and warnings
2020-12-26 12:21:08 +01:00
Sipke Schoorstra
c047d66942
Update packages
2020-12-19 15:35:11 +01:00
Sipke Schoorstra
c7b21d294b
Fix version (for AppVeyor) and apply common.props to shared test package
2020-12-17 16:05:37 +01:00
Sipke Schoorstra
f2aae986f4
Use in-memory persistence by default
2020-12-12 14:07:17 +01:00