Introduce `WorkflowExecutionState` to encapsulate execution state changes for workflows. This ensures proper handling of execution flags during the lifetime of the state object and resets them upon disposal.
Introduce `EnterExecution` method to manage activity execution state using a `using` block for cleaner and safer resource handling. Removed manual flags for tracking execution state, streamlining workflow logic and improving maintainability.
Updated variable constructors across the codebase to use explicit names and initial values where applicable. Deprecated old constructor overloads and added new methods and overloads for better flexibility and readability. Minor cleanup includes replacing `default` keywords with `null` and streamlining code syntax.
Replaced `default` with `null` to improve readability and clarify initialization. Added a `WithId` method to allow assigning an ID to `Variable` instances for enhanced configurability. These changes improve usability and maintain consistency in the codebase.
Replaced LINQ-based logic with a dictionary approach to merge variables. This ensures that variables are consistently merged by either name or ID when name is absent. It improves code clarity and handles edge cases more robustly.
The DeleteAsync method was terminating prematurely because the presence of query parameters was checked before filters were applied. As a result, the deletion queries never executed since the query parameters were always empty before applying the filters.
Fixes that composite activities' Root property (by means of the `JsonIgnoreCompositeRootConverterFactory`) does not get serialized, just like the `WorkflowDefinitionActivity`.
Composite activities added to a workflow should not include their children when being serialized.
Introduce the ability to pass variables into workflow invocations. Updates include adding variables to workflow execution options, requests, and scheduling logic. This enhancement allows dynamic variable management during workflow execution and instance creation.
This new method enables adding dynamic variables to the appropriate variable container if no predefined variable exists. It ensures flexibility in handling variables within the activity execution context while maintaining logical consistency. Minor formatting adjustments were also applied to improve code readability.
Refactor the bulk delete endpoint to include a new primary route while deprecating the old one. Expand the request model to support workflow definition filters and adjust response instantiation for clarity. Update obsolete API route prefix guidance for consistency across modules.
Removed outer timeout since it was not working in the current set-up
Reduced maximum retry attempts to reduce the maximum amount of time spent on the request
HttpContextAccessor is now included in the service container to enable dependency injection for accessing HTTP context. This improves support for features that require context details during runtime.
Replaced specific transient status code check for HttpRequestException with a more generalized handling approach. This ensures all HTTP exceptions are retried, improving robustness and simplifying the logic.
Updated comments to correct total delay and grace period calculations for clarity and accuracy. This ensures consistency in expected retry behavior and improves maintainability.
Added a link to the Polly retry strategy documentation for clarity and future reference within the resiliency pipeline builder code. This improves code maintainability and helps developers quickly access relevant information.
Lowered MaxRetryAttempts from 6 to 4 and reduced the outer timeout to 60 seconds to align with the updated exponential backoff total of 32 seconds. These changes aim to improve efficiency and reduce unnecessary waiting time during transient failures.
Updated the retry logic by increasing the max retry attempts from 4 to 6 and reducing the delay per attempt to 1 second. Adjusted the outer timeout to accommodate the new backoff configuration, allowing for a longer retry grace period.
Increased max retry attempts to 4, removed jitter, and adjusted delay and backoff settings for clearer and more predictable behavior. Extended outer timeout to align with retry duration and added 409 Conflict to transient errors. Simplified logic for identifying transient network failures.
This update introduces a `Name` property to workflow execution requests, allowing workflows to be named when started. The changes ensure the `Name` is propagated through the relevant services and endpoints, improving tracking and identification of workflow instances.
Introduces a new property, `WorkflowInstanceName`, to access and modify the name of the current workflow instance. Also simplifies object initialization by using target-typed new expressions. Annotates the `Globals` class with `[UsedImplicitly]` to improve code analysis.
Introduce `getWorkflowInstanceName` and `setWorkflowInstanceName` functions to the scripting engine. This enables retrieving and updating the workflow instance name dynamically during script execution. Additionally, the related function definitions have been added to the provider.
Introduced the ability to set and persist custom names for workflow instances. Updated relevant classes, services, and tests to ensure proper handling of the `Name` property.