* add a more generic UIHandler to customize how inputAttributes can be handle by the ui
* Add IPropertyUIHandlerResolver and update PropertyUIHandlerResolver
Introduced a new interface, IPropertyUIHandlerResolver, to resolve UI options for a property. Refactored PropertyUIHandlerResolver to implement this interface and removed the unnecessary partial class structure. Also, cleaned up some unnecessary usings in various files for better code organization.
* Refactor variable name and description in InputDescriptor
The 'uISpecifications' variable in the InputDescriptor model is renamed to 'uiSpecifications' for better readability. Additionally, the associated comment was revised to explain that the dictionary is used by the UI.
* "Refactor codebase for improved organization and cleaner architecture"
The codebase has been significantly refactored, moving several classes to more appropriate namespaces for improved organization and cleaner architecture. This includes shifting UI hint handlers, activities, and memory-related components, amongst others. The changes should improve code readability and maintainability, but as this is a broad refactoring effort, thorough regression testing is advised.
* Add CheckList UIHint with associated handler and provider
This update introduces a new UIHint called CheckList to the Elsa.Workflows.Core. This includes the necessary handler and provider classes. The handler is registered in the WorkflowsFeature.cs, and the CheckList UIHint key has been added to the InputUIHints.cs. Various associated files have been created in both the Elsa.Api.Client and Elsa.Workflows.Core project to support this new UIHint.
---------
Co-authored-by: Jérémie DEVILLARD <jdevillard@users.noreply.github.com>
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* Implement Changing DB Migration Schema At Runtime
* Add Schema Customization for SQL Server Provider
* Add Schema Customization for PostreSql Provider
* Add Schema Customization for MySql Provider
---------
Co-authored-by: Jérémie DEVILLARD <jdevillard@users.noreply.github.com>
* Create the extension to enable efcore for postgresql with workflow-runtime
* Create a efcore postgresql samples to check extensions
---------
Co-authored-by: Jean-Baptiste Dalle <jean-baptiste.dalle@stereograph.fr>
* Implement Alteration types and engine
* Implement Alteration APIs
* Refactor activity work item with support for activity input
* Serialize scheduled activities as part of workflow state
* Add signal to schedule child activity
* Implement stores for plans and jobs
* Add EF Core provider
* Add Retry endpoint
* Keep root context as always active. The root context is the workflow execution context and contains persistent variable state
* Regenerate EF Core migrations
* Handle orphaned activity execution contexts
* Refactor workflow execution factory
* Enable configuring Jint from Program
* Update ModifyVariable alteration with support for type deserialization
* Use ShortGuid for identity
* Cleanup WorkflowServer host
* Implement Incident Strategy interface and resolver
* Add ActivityIncident model
* Add IncidentCount and Incidents properties and update migrations
* Expose incident strategies API endpoint
* Update API client with Incident Strategy models
* Replace Fault with Incidents
* Register fault status when any children have faulted
* Map incident count
* Remove unnecessary AlreadyCompleted result
* Ensure next activities are scheduled only if activity completed normally
* Incident roundtrip and fix workflow instance realtime updates
* Remove unused variable
* Add integration tests
* Initial implementation of workflow inbox, submission and delivery
* Implement persistence providers
* Update EF Core migrations
* Rename Services to Stores in Dapper module
* Use default serializer for primitive arrays
* Update MongoDB provider to map BookmarkId to be primary key
* Implement MongoDB provider for activity execution logs
* Use EF Core by default
* Fix private JSON constructor logic
* Fixes the issue with httpendoint not being suspended #4143
* Simplify HttpEndpoint and bookmark processor
* Fix issue with null workflow state ID
* Remove implicit instalment of EF Core provider for Trigger and Bookmark store
---------
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* add ElsaDbContextOptions
* set Schema from elsaDbContextOptions
* file rename
* add options as arg to DbContextOptionsBuilderExtensions
* add options to module extensions in Elsa.EntityFrameworkCore.MySql
* add options to module extensions in Elsa.EntityFrameworkCore.PostgreSql
* add options to module extensions in Elsa.EntityFrameworkCore.Sqlite
* add options to module extensions in Elsa.EntityFrameworkCore.SqlServer
* add validations
* update doc strings
* Refactor HTTP route table population
* Update workflow definition EF store to use abstract IWorkflowInstanceStore
This decoupling is necessary, because the application might not be using EF Core, but e.g. Elasticsearch
* Move workflow state persistence to the default workflow runtime feature
* Update JS handler to provide access to variables during trigger indexing
* Configure Proto.Actor runtime with different workflow pipeline
* Add sample using Proto.Actor runtime
* Replace BookmarkGrain with DB based persistence
* Incremental work on WorkflowStateSerializer
* Update Flow HTTP Request activity to default to Done outcome
* Fix reference handling
* Fix polymorphic object converter
* Add comments
* Add support for registering type alias during DI setup via options
* Fix trigger and bookmark payload persistence
* Update sample model
* Add support for custom dictionary types
* Split general serializer options provider into focused serializer services
* Formatting
* Update migrations
* Incremental work
* Enable control over when to include full compositie root
* Cleanup
* Update WorkflowDefinitionActivity
* Implement input as variables
* Delete unused class
* Remove less common types
* Rename ExpandoObject to JSON
* Implement variable scoping
* Remove parent/child relationship from MemoryRegister
* Add support for sending input to "trigger event" endpoint
* Add support for configuring input storage driver
* Remove unused namespace imports
* Auto-register activity types when running a workflow
* Fix missing variables from containers
* 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