All notable changes to this project will be documented in this file. See versionize for commit guidelines.
1.2.3 (2025-09-15)
- Fork step no longer crashes when visualizing a broken graph (e431667)
- Graphs are included when building a Workflow (ec904b9)
- Missing foreach step visualization (cf2641c)
1.2.2 (2025-09-10)
- Fix FFlow.Steps.Http version (f184b93)
1.2.1 (2025-09-10)
- Fix CLI version (69a2b7e)
1.2.0 (2025-09-10)
- Add a way to set where to continue from in the graph (431a1ab)
- Add base http request step (83ed3ca)
- Add basic graph building (f9419b4)
- Add basic visualization graph structure (a4495a5)
- Add ConfigureAwait(false) to all await statements in library code (b24a592)
- Add ContentType configuration support (d7f887b)
- Add ContinueFromLabel to set a custom label for the exiting edge (0af17fa)
- Add custom graph for foreach step (da49b3e)
- Add custom graph for Fork step (fd11a3a)
- Add custom graph for If node (990b565)
- Add describable steps support so steps can generate their own graphs (97c7e75)
- Add Describe() to base WorkflowDefinition to support describing definitions (71f1599)
- Add DOT Graph support for visualization (6bbaed5)
- Add extension methods for sending http requests with all methods (12eef3e)
- Add File Exists Step (bd1f3c8)
- Add IWorkflowDefinition.CreateBuilder to create configured builders for that definition (26d70f3)
- Add new ForEachStep implementation (60f5287)
- Add step metadata registry to get and store metadata for certain steps (49b00bf)
- Add switch case graph builder (6d858b5)
- Add workflow definition name to continuation node (08904dd)
- Create new base workflow builder (96011fe)
- cli: Add missing packages into the cli (463ff7d)
- fileio: Add Copy File step (f522457)
- fileio: Add Create Directory Step (a1904a8)
- fileio: Add Delete Directory Step (5c153b6)
- fileio: Add Delete File Step (8f53861)
- fileio: Add File Checksum step with support for comparing checksums (4206061)
- fileio: Add File Read All Bytes (38db7bf)
- fileio: Add File Read All Text Step (7964982)
- fileio: Add File Write Text Step with append support (d1ca713)
- fileio: Add File Write/Append Bytes Step (bf3ea6e)
- fileio: Add Move File Step (03c0b4c)
- fileio: Add Rename File Step (dcb8030)
- fileio: Add Touch File Step (93bde14)
- http: Add HttpMethod(string Url) extension methods (b96a6ca)
- http: Add query parameters support (7bb458d)
- Acceptable Status Codes filter correctly apply on http request step (855e3de)
- Fix mergeIntoId not actually merging connected into the target node (9555fbc)
- fix package namespaces (257eb5f)
- Input setters now work with multiple Input calls (89ac27b)
- Use generic type definition for generic steps (467b272)
- sftp: Added missing metadata to sftp steps (closes #31) (356e919)
1.1.2 (2025-07-21)
1.1.1 (2025-07-21)
1.1.0 (2025-07-19)
- Add --root option to set the root directory for the container (acc6f68)
- Add a Create File via SFTP step to create an empty file (ddd8cd6)
- Add Create Directory via FSTP step to create an empty directory (48e28bb)
- Add Delete Directory via SFTP to delete all the contents inside the directory (a1ea068)
- Add Delete File via SFTP (820ebad)
- Add Disconnect from SFTP Step (c7e769d)
- Add doctor command (5986bd9)
- Add Download Directory via Sftp step (8dda4a4)
- Add Download File via FSTP step (5e018cd)
- Add dynamic status when setting up docker and executing pipeline (6c340b9)
- Add extension method to add a step to log into console (3c96564)
- Add help and short option name support (8763673)
- Add help options for commands (34bf7ca)
- Add help to run (7cfe36e)
- Add initialization command to create a file-based pipeline (c34ca44)
- Add live logging support to fflow run command (d0ee94f)
- Add note about docker image to doctor command (0566afb)
- Add Rename File via SFTP (7635f43)
- Add run command to run the workflow isolated in a docker container (2c8264c)
- Add single file upload via sftp logic (caea3d6)
- Add source generators for dotnet step extensions and add IFlowContext.GetDotnet__Output extension methods (b5ebbaf)
- Add support for stopping the workflow execution without throwing (6a83d72)
- Add Upload Directory Via Sftp step (fc068e0)
- Check for docker image for .NET 10 SDK (e6bfb4c)
- Separate docker version and image checks in doctor command (551a950)
- dotnet: Add Dotnet Clean step (2db2302)
- Dotnet Test step now correctly counts test results when multiple test projects are present (5e3313e)
- UploadDirectoryViaSftp now uploads recursively (0191591)
1.0.0 (2025-07-02)
- Add attributes to attaching metadata to steps (a0b1b2f)
- Add basic single time flow scheduling (6310369)
- Add Cron support (18ab007)
- Add default pipeline logger for easy logging in cicd scripts (03d3092)
- Add file based schedule store (9190a05)
- Add generic Flow Step Builder for less verbose step configuration (43a69ff)
- Add recurring job support (cc6d9cf)
- Add reference to executing workflow in flow context using SetSingleValue (1594d08)
- Add Scheduler Options (898d162)
- Add SilentStep attribute (0549799)
- Add step skipping support (1669987)
- Add step templating through a Template Registry (fa5a552)
- Add StepTags attribute (853881c)
- Add workflow schedule building extension (1fcc2e1)
- Make input parameter optional for IWorkflow.RunAsync (aaa3f93)
- Remove context id from metric listener to prevent spam (0d0e9e5)
- Require store registration instead of automatically registering the store. (dc5413d)
- Schedule Runner no longer waits polling time when the next workflow is due sooner (e1562d5)
- Schedule Runner options are now correctly injected (41cb90a)
- Use correct factory signature for If and ForEach overloads (6ca9d73)
1.0.0-alpha.3 (2025-06-24)
- Add compensation support (2f39877)
- Add compensation support for conditional step (2167409)
- Add compensation support for ContinueWith (aka subworkflow) step (97f5865)
- Add compensation support for switch cases (dcf945c)
- Add ConsoleFlowEventListener (63da69e)
- Add context injection to commands using {context:Key} syntax (160791f)
- Add Dotnet CLI Extension methods for more convenient use (dd0e23e)
- Add Dotnet Nuget Push step (72889f7)
- Add extensions for getting and setting the context id (56126b3)
- Add Gauges to IMetricsSink (3ae2581)
- Add GetLastInput/Output methods (b731ba0)
- Add IFlowContext extensions for getting metrics sinks and event listeners (795112c)
- Add IMetricSink with in memory implementation (4e44fc2)
- Add IWorkflow.CompensateAsync() (bd46af1)
- Add IWorkflowMetadata to attach metadata properties in workflows (dae9c37)
- Add IWorkflowMetadataStore to store workflow metadata rather than adding properties. (1f85849)
- Add MetricsSnapshot and IMetricsSink.Flush (6ff313e)
- Add MetricTrackingListener (f0da764)
- Add new base WorkflowDefinition class to introduce default behaviours for workflow definitions (eb5f7ed)
- Add NoOpMemorySink (193e43e)
- Add Run Command step (709851e)
- Add RunScriptFile extension method (f0fc4c1)
- Add RunScriptRaw step (2620c39)
- Add Timeline Recorder (1125f08)
- Add UseMetrics extension to attach an IMetricSink to a FFlowBuilder (a836136)
- Refactor IFlowContext to be more convenient when getting values from the workflow (487b879)
- Shell executions now set the exit code as output rather than logging to output (3dc808c)
- Dotnet Nuget Push source now defaults to nuget.org (8ebbc24)
- Log exit code for shell related step (cc6cc8b)
- Register workflow definition types as well (b8d38eb)
- Shell steps no longer log empty lines to output handler (0bc04f1)
- Use temp file for scripts instead of raw strings to properly support env variables (c8e53c5)
- Workflow no longer stops compensation when the last step isnt compensable (075d08b)
1.0.0-alpha.2 (2025-06-20)
- Add automatic assembly discovery for registering services (3e486e4)
- Add base FlowStep class for providing a base for common implementations (920abc2)
- Add CheckForKey to validate if a key is present (b1f24fb)
- Add CheckForRegexPattern to validate strings using regex (c50488c)
- Add IConfigurableStepBuilder to allow more specific configuration for individual steps (2dd9087)
- Add IFlowContext.LoadEnvironmentVariables extension (b61740f)
- Add input overloads for easier configuration (fcab480)
- Add Input() for allowing setting properties inside steps (19c19d7)
- Add not empty step (5d5340b)
- Add output setter steps (9ea605f)
- Add RequireKey attribute (97ed9e0)
- Add RequireKeys to check multiple keys at once (0f9f7e2)
- Add RequireNotNull attribute (ced717c)
- Add RequireNotNull checks to validate if keys have a not null value (397f664)
- Add RequireRegex attribute (cbe4de5)
- Add Retry Policies support (dee6fd5)
- Add validation attribute discovery and decorators (a42b755)
- Allow delegate steps to be configured (ee3fd4f)
- Dotnet steps are now configured via properties rather than context (7a2fa59)
- Finally sets step as a finalizer to run regardless of workflow success or failure (a19e1dd)
- Register input and outputs into the context (f5aa540)
- Throw a custom validation exception rather than general purpose ones (f6752f7)
- Fix incorrect relative source code path (1278975)
1.0.0-alpha.1 (2025-06-14)
- Add Forking for parallel processing (0172fc3)
- Add IWorkflowBuilder.Delay (6c7c5cd)
- Add Observer Pattern support with IFlowEventListeners (7c32747)
- Add Options container (0c15760)
- Add steps for throwing exceptions with and without condition (170ccf0)
- Add support for a sync error handler (30aa189)
- Add syncronous overloads to IWorkflowBuilder by wrapping the actions in a Task (3024363)
- Improve exception message for when a step can't be created due to not being registered in DI or having a parameterless constructor (4b31735)
- Throw StepCreationException when creating steps fails (e561668)
- FireAndForget fork strategy no longer causes subthreads to be killed when the main one is done. It now waits for all to finish before finishing the workflow (88caaa0)
- Register base IWorkflowDefinition and IFlowStep interfaces as well in DI container (be81217)
- Register step types by themselves as well as by the interface (c421861)
- Throw all task exceptions when awaiting forked steps rather than only the first one that throws. (0ece32e)
1.0.0-alpha.0 (2025-06-10)
- Add Builder Step for using builders to generate step sequences in branching workflows (d6fba91)
- Add CancellationToken support for cancelling execution (75c2064)
- Add Configuration object (563780b)
- Add ContinueWith to continue the steps with a workflow definition instead of a single step (74c5788)
- Add DI support using IServiceProvider (09b53db)
- Add Dotnet Build Step (7924c92)
- Add Dotnet Pack Step (b178442)
- Add Dotnet Publish command (01c23d9)
- Add Dotnet Run Step (03bbf6b)
- Add Dotnet Test Step (19e5348)
- Add DotnetRestore step (e75c492)
- Add ForEach processor (4554fd1)
- Add functions to change a workflows context (d7c871b)
- Add global error handling (22838aa)
- Add If builder method (668f1a7)
- Add If builder methods with generic steps (1ce9cda)
- Add individual configurations for the steps rather than a global one (b3423a7)
- Add Microsoft Dependency Injection registration extension (511ca9b)
- Add step results to dotnet package (32b8122)
- Add Switch case step (043083c)
- Builder Step now forwards the context instead of generating a new one altogether (4e6a2f8)