Commit graph

45 commits

Author SHA1 Message Date
lukhipolito-nexxbiz e273239fd0
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-10-03 09:57:03 +02:00
lukhipolito-nexxbiz 544f9d5221
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-10-03 09:56:52 +02:00
lukhipolito-nexxbiz e6c8e9835f
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-10-03 09:56:43 +02:00
lukhipolito-nexxbiz 62c7ed44bc
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-10-03 09:56:34 +02:00
lukhipolito-nexxbiz 24390e0adc
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-10-03 09:56:24 +02:00
lucas.hipolito 407868b9a1 Improving readability 2025-10-02 12:08:44 +02:00
lucas.hipolito fba5f2a5a5 Removing irrelevant info of collaborators guideline, improving sections 2025-10-02 11:50:13 +02:00
lucas.hipolito ca8c26c20b Expanding docs, better structure and goals 2025-10-01 15:45:11 +02:00
lucas.hipolito 43af680b50 Merge remote-tracking branch 'origin/feat/test-guidelines' into feat/test-guidelines 2025-09-30 09:02:49 +02:00
lucas.hipolito 4d78197c80 Moving integrators instructions to another doc 2025-09-30 08:59:44 +02:00
lukhipolito-nexxbiz a201d99f7c
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-09-29 20:18:47 +02:00
lukhipolito-nexxbiz 0041d13f3c
Update doc/qa/test-guidelines-collaborators.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-09-29 20:08:19 +02:00
lucas.hipolito 816cc5d489 Merge remote-tracking branch 'origin/feat/test-guidelines' into feat/test-guidelines 2025-09-29 19:55:34 +02:00
lucas.hipolito 260680f3a2 Renaming test guideline 2025-09-29 19:55:30 +02:00
lukhipolito-nexxbiz 1ad461f602
Update doc/qa/test-guidelines.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-09-29 19:54:18 +02:00
lukhipolito-nexxbiz 40a6d59a44
Update doc/qa/test-guidelines.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-09-29 19:54:08 +02:00
lukhipolito-nexxbiz f9b5ab7789
Update doc/qa/test-guidelines.md
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2025-09-29 19:53:54 +02:00
lucas.hipolito f483dbe14a Merge branch 'develop/3.6.0' into feat/test-guidelines 2025-09-29 09:11:36 +02:00
lucas.hipolito 96f2d1d23a Removing bogus information from test-guidelines.md 2025-09-26 15:17:03 +02:00
lucas.hipolito 57459da885 Improving the test guidelines document 2025-09-26 15:16:08 +02:00
lucas.hipolito e41ed0cbf2 Updating initial document 2025-09-26 11:38:38 +02:00
lucas.hipolito 32f6a393a2 WIP: initial docs dump 2025-09-25 12:58:31 +02:00
Sipke Schoorstra bc3543fcb6
Merge 3.5.0 2025-08-06 20:40:27 +02:00
Sipke Schoorstra 133e8dfc63
Introduce TenantDeleted event to handle tenant cleanup (#6843)
* Introduce `TenantDeleted` event to handle tenant cleanup

Added a `TenantDeleted` event to differentiate between tenant deactivation and deletion. Updated event handlers and services to support unregistering resources only during tenant deletion, ensuring clearer separation of responsibilities. Included ADR documentation for the new event.

* Remove unnecessary blank line in tenant deactivation logic
2025-08-06 08:43:39 +02:00
Sipke Schoorstra dd8a6f5866
Merge remote-tracking branch 'origin/develop/3.5.0' into develop/3.6.0 2025-08-04 15:44:17 +02:00
Sipke Schoorstra aab80dd30b Add Activity Execution Snapshots ADR
Document architecture decision to capture `ActivityExecutionContext` snapshots at execution time. Updated TOC and dependency graph to reference the new ADR.
2025-08-04 15:42:46 +02:00
Sipke Schoorstra 3a1ddb650f
Introduce token-centric Flowchart execution model with configurable MergeMode (#6632)
* Switch Flowchart to partial class and implement token-based logic

Refactored Flowchart to use a partial class structure for better modularity. Introduced a token-based execution option alongside the existing counter-based logic, enabling flexible activity scheduling strategies within the flowchart.

* Add token-based execution logic to Flowchart activities

Introduced token-based workflow execution for Flowcharts, enabling more granular control over activity scheduling. Refactored Start activity resolution and optimized connection handling within FlowGraph. Added extensions for improved activity query and execution management.

* Refactor token-based flowchart logic and add loopback detection

Replaced the legacy token-based flowchart logic with a cleaner, modular implementation. Introduced `LoopbackDetector` for identifying back-edges in workflows, enabling explicit handling of loopback connections for improved execution flow. Minor adjustments were also made for code consistency and clarity.

* Introduce token-centric execution model for Flowchart activity

Replaced the execution-count heuristic in Flowchart with a robust token-centric model, improving handling of loops, joins, and forks. Added join semantics via `JoinKind` and `IJoinHintProvider` to enable flexible configuration. Updated documentation and dependencies to reflect the new model.

* Refactor activity property handling and enhance JSON serialization.

Standardize key names in activity property management for consistency and improve error handling in `GetJoinKind` methods. Add support for enum serialization with `JsonStringEnumConverter` in JSON utilities.

* Refactor flowchart token handling for clarity and efficiency

Revised the flowchart token management logic to improve readability and maintainability. Simplified token creation, consumption, and scheduling while removing redundant code. Updated token structure and streamlined the flow execution process to handle dynamic and static connections effectively.

* Refactor Flowchart activity scheduling logic

Consolidated child activity scheduling into a single method, reducing duplication across token-based and counter-based workflows. Removed unused fields, redundant imports, and legacy logic to improve maintainability and clarity of the codebase.

* Update .gitignore to track Azurite data folder

Added `docker/azurite-data` to the ignore list to exclude local Azurite data files from being included in the repository. Ensures proper handling of temporary files related to Azure storage emulation.

* Refactor flowchart logic and extract activity context utilities

Reorganized flowchart logic by introducing reusable extension methods for activity context operations. Moved "HasPendingWork" and "HasFaultedChildren" methods into extensions to improve readability and maintainability. Updated related flowchart logic to utilize these methods for cleaner and more modular code.

* Refactor join logic and clean up Flowchart activities

Removed obsolete `JoinKind` enum and `IJoinHintProvider` interface, replacing them with the new `JoinMode` concept. Simplified flowchart logic by consolidating flow graph handling and refining activity execution extensions. Updated `FlowJoin` to recommend property-based configuration over explicit usage.

* Avoid invalid test execution when token flow is enabled.

The added check prevents the test from running when `Flowchart.UseTokenFlow` is enabled, as this scenario is incompatible. This ensures test reliability and avoids unnecessary execution.

* Refactor token-based logic in Flowchart activity.

Simplified token handling and introduced clearer logic for WaitAny and WaitAll joins. Improved efficiency by reducing redundant checks and streamlining activity scheduling. This ensures better maintainability and functionality in complex workflows.

* Refactor Token logic into its own model class

Moved the Token logic out of the Flowchart partial class to a standalone `Token` model for better modularity and clarity. Adjusted token consumption behavior to mutate the token in place rather than replacing it.

* Fix ancestor cancellation logic in Flowchart activities

Pass the correct activity to CancelInboundAncestorsAsync to ensure accurate ancestor determination and cancellation. Added validation to confirm the activity context is a flowchart to prevent invalid operations. These changes improve the reliability of flow control in workflows.

* Refactor Token model to add scheduling functionality

Replaced the `consumed` parameter with a `Scheduled` property and added a `Schedule` method for mark scheduling. This enhances the token model's flexibility, improving flowchart activity management.

* WIP on (no branch)

* Remove unused WaitAny guard logic from Flowchart activity.

The WaitAny guard logic and associated key have been commented out and effectively disabled. This cleanup simplifies the code, removing unnecessary operations that were no longer in use. The change ensures better maintainability and focuses on the core functionality.

* Add `MergeMode` enum and refactor flowchart merging logic

Introduced a `MergeMode` enum to define strategies for handling multiple inbound execution paths. Updated flowchart logic to replace the previous `FlowJoinMode` with `MergeMode`, and refactored related extensions to accommodate the new enum. This enhances clarity and flexibility in workflow merging behaviors.

* Mark `FlowJoin` obsolete and enhance merge mode handling

Added the `[Obsolete]` attribute to the `FlowJoin` activity and deprecated properties to encourage using `MergeMode`. Replaced synchronous `GetMergeMode` with an asynchronous `GetMergeModeAsync` to handle legacy `FlowJoin` mappings dynamically. Other minor changes include simplifying variable initialization in `WorkflowExecutionContext`.

* Mark FlowJoin activity as obsolete

The FlowJoin activity is now marked obsolete since all activities support the MergeMode property, eliminating the need for explicit join steps. This change includes an annotation update to clearly communicate its deprecated status.

* Refactor `OnActivityCanceledAsync` method location

Moved the `OnActivityCanceledAsync` method from the `Flowchart.Counters` file to the main `Flowchart` file for improved organization and readability. This ensures the method aligns better with its primary logic and related functionality.

* Refactor flowchart logic to improve cancellation handling

Refactored `OnActivityCanceledAsync` to handle token-based flow and legacy flow separately for better clarity and maintainability. Moved `CompleteIfNoPendingWorkAsync` to a single shared location and updated pending work checks to include unconsumed tokens and faulted activities. Simplified redundant logic and ensured consistency across methods.

* Remove consumed tokens after activity completion

This update ensures that consumed tokens pointing to the completed activity are purged from the token list. This helps maintain a clean state and prevents unnecessary token accumulation during workflow processing.

* Add support for blocking tokens in flowchart activities.

Introduced a `Blocked` property to the `Token` model to prevent scheduling activities prematurely in certain merge modes. Updated token processing logic to handle blocked tokens effectively and ensure proper scheduling or consumption. Simplified token management by removing redundant methods and cleaning up consumed tokens appropriately.

* Refactor Flowchart activity cancellation logic.

Streamlined cancellation logic by separating token and counter flow handling into dedicated methods. Removed redundant properties and logic, improving readability and maintainability. Simplified `OnChildCompletedAsync` and related methods for consistency.

* Refactor token-centric flowchart execution model.

Updated the flowchart ADR to clarify the token-centric approach, including `MergeMode` rules and scheduling logic. Enhanced the model to handle loops, forks, and resumable activities more robustly while improving state management and supporting cancellation. Updated sequence diagram for clarity.

* Remove JoinMode-related methods from ActivityExtensions

The GetJoinMode and SetJoinMode methods were removed as they are no longer needed. This cleanup reduces unused code and improves maintainability of the ActivityExtensions class.

* Remove unused JoinMode enum

The JoinMode enum was determined to be unnecessary and has been deleted to clean up the codebase. This helps reduce redundancy and improve maintainability.

* Remove unused LoopbackDetector class from Flowchart module

The LoopbackDetector class was removed because it is no longer used in the codebase. Its functionality appears to be obsolete or unnecessary for the current requirements of the Flowchart module.

* Update `UseTokenFlow` to be configurable

Made `UseTokenFlow` a static field to allow external configuration. This enables users to switch between the token flow and the old counter-based model as needed. Updated documentation accordingly.
2025-05-09 20:07:49 +02:00
Sipke Schoorstra 4266421a4c
Refactor Fault Propagation and Simplify Bookmark Management (#6545)
* Refactor bookmark management and add new features

Streamlined bookmark handling by eliminating temporary storage in `ActivityExecutionContext` and directly managing bookmarks in `WorkflowExecutionContext`. Documented architectural decisions using ADRs.

* Regenerate EF Core migrations

* Refactor fault tracking to use AggregatedFaultCount property.

Replaces FaultCount with AggregatedFaultCount across the codebase to improve clarity and consistency in fault tracking. Updates related methods, properties, and data mappings to align with the new terminology. Fixes initialization issue with nullable inputs in Fault class.

* Add migration to track fault counts in runtime (V3.5)

This migration adds a new column, "AggregatedFaultCount," to the "ActivityExecutionRecords" table. The column is an integer, non-nullable, with a default value of 0, and enables tracking aggregated fault occurrences. The migration also includes a rollback to remove this column if needed.

* Fix typo in ADR 0004 regarding bookmark management convention

Corrected a spelling mistake in the ADR documentation by changing "determins" to "determines." This ensures clarity and maintains the professionalism of the document. No functional changes were made.

* Refine fault propagation logic for child-parent activities

Replace automatic fault transitions of parent activities with an aggregate fault count for descendant activities. This avoids premature state changes while still indicating child activity faults, improving workflow resilience and accuracy.

* Remove signal-driven fault propagation ADR and renumber bookmarks ADR

The ADR for signal-driven fault propagation was deleted, and the direct bookmark management ADR was renamed and renumbered accordingly. Related references in the table of contents, graph, and solution file were updated to reflect these changes.

* Refactor DeleteBookmarks to improve readability.

Reformatted the BookmarkFilter initialization for better clarity and maintainability. This change ensures the code is more aligned with modern C# conventions and improves overall readability. No behavior or functionality has been altered.

* Refactor naming for "AggregatedFaultCount" to "AggregateFaultCount"

Standardized the terminology across the codebase and migrations by renaming all references of "AggregatedFaultCount" to "AggregateFaultCount" for improved consistency and readability. Updated relevant logic, models, migrations, and database contexts accordingly.
2025-04-10 15:01:49 +02:00
Sipke Schoorstra 42ce946d64 Reset 2022-01-04 09:38:11 +01:00
Sipke Schoorstra 9c09266620 Update readme.md 2021-09-13 08:30:23 +02:00
Sipke Schoorstra 9fb96738db Update sponsors 2021-09-12 12:44:13 +02:00
Sipke Schoorstra 3ef24e6e35 Update project home animation 2021-05-12 10:53:50 +02:00
Sipke Schoorstra 1294c8d9cb Add Elsa 2 Dashboard animation 2021-05-04 12:04:54 +02:00
Sipke Schoorstra 6567f59fd4
Add Interfirst sponsore (#754)
* Add Interfirst sponsor logo
2021-03-12 17:29:25 +01:00
Sipke Schoorstra 30c8b7d1c6 Add preview banner 2021-02-26 17:16:17 +01:00
Sipke Schoorstra d2d402f167 Update readme with new banner
# Conflicts:
#	README.md
#	design/github-social-preview-banner-for-elsa.psd
2021-02-26 17:14:16 +01:00
Sipke Schoorstra 479435297f Add logo 2020-11-15 22:25:58 +01:00
Sipke Schoorstra 4831ea7218 Update logo size 2020-11-13 20:54:44 +01:00
Sipke Schoorstra ef9b584020 Add Elsa logo 2020-11-13 20:53:54 +01:00
Sipke Schoorstra b156a1f25e
Feature/mvc area dashboard (#65) 2019-09-11 20:26:21 +02:00
Sipke Schoorstra 9824ce5e94 Misc UI updates 2019-02-17 21:37:45 +01:00
Sipke Schoorstra 9c3a6e7af7 Updated icons 2019-02-17 21:32:02 +01:00
Sipke Schoorstra caba29d449 Added screenshot and updated Readme.md 2019-02-17 15:31:25 +01:00
Sipke Schoorstra 009bceff6f
HTTP Response Activity (#16)
* Updated Readme with a few more bits
* Implemented basic version of HTTP Response activity
2019-01-20 18:16:57 +01:00
Sipke Schoorstra 0c01c31243 Updated README 2019-01-02 01:10:45 +01:00