* Publish/Subscribe events added to WorkflowSettings and WorkflowRegistry
* Workflow Registry re-indexed and cache refreshed on workflow disable/enable
* IsDisabled property added to WorkflowBlueprintSummary to display disabled status in the UI
* MySql, PostgreSql and SqlServer persistence added to Workflow Settings
* Validation for disabled workflow in Workflow Resumer
* WorkflowSettings configuration added to the appsettings.json
* Workflow Settings added to Elsa.Server.Host startup collection
* IWorkflowSettingsProvider implemented
* Update README.md
* Elsa-Workflow-Settings and Elsa-Webhooks separate modules added and decoupled from Elsa Web
* Delete unused Client projects
* LoadWorkflowSettingsDisabledHandler changes
* FeatureProvider removed, Webhooks plugin merged to Webhooks Feature Plugin
* Update Webhooks and Settings plugin
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
This fixes a race condition between initial workflow execution that e.g. sends a message to a topic, which is then handled by the same workflow later on.
But if that message is delivered too soon (before the workflow got persisted & indexed), then the message consumer won't be able to find the workflow.
Acquiring a lock on the correlation ID fixes this by synchronizing access to that resource
This replaces the `Then(string activityName)` method with `ThenNamed(string activityName)`.
A new method is added to allow connecting to activities by type name: `ThenTypeNamed(string activityTypeName)`.
The reason for this change and addition is to allow workflow builders to connect to activity types that do not have a corresponding type.
For example, the Telnyx project has an activity type provider that *dynamically* provides activity types based on Telnyx webhook callback types.
This extension method is quite complex and is frustrating
when a unit test passes-through it. That's because extension
methods can't be mocked in tests.
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.