Aurora.Workflows.UI.Host
0.4.1.14
dotnet add package Aurora.Workflows.UI.Host --version 0.4.1.14
NuGet\Install-Package Aurora.Workflows.UI.Host -Version 0.4.1.14
<PackageReference Include="Aurora.Workflows.UI.Host" Version="0.4.1.14" />
<PackageVersion Include="Aurora.Workflows.UI.Host" Version="0.4.1.14" />
<PackageReference Include="Aurora.Workflows.UI.Host" />
paket add Aurora.Workflows.UI.Host --version 0.4.1.14
#r "nuget: Aurora.Workflows.UI.Host, 0.4.1.14"
#:package Aurora.Workflows.UI.Host@0.4.1.14
#addin nuget:?package=Aurora.Workflows.UI.Host&version=0.4.1.14
#tool nuget:?package=Aurora.Workflows.UI.Host&version=0.4.1.14
Aurora Workflows - UI Editor Documentation
Overview
The Aurora Workflow Editor is a visual design tool for building modular, event-driven workflows using a drag-and-drop interface. It ships as a WPF host application (targeting .NET 8) and is distributed as a NuGet package (Aurora.Workflows.UI.Host). The editor lets you compose tasks into flowchart-style graphs, configure their properties, attach triggers, and run or debug workflows directly.
Project website: https://aurora.unex.me/
Solution Architecture
Aurora Workflows is split into multiple focused packages:
| Package | Description |
|---|---|
| Aurora.Workflows.Contracts | Interfaces, enums, and shared contracts (IWorkflow, IWorkflowTaskBase, etc.). |
| Aurora.Workflows | Core engine: Workflow, StartTask, WorkflowTaskBase, expression evaluation (Roslyn), serialization. |
| Aurora.Workflows.Tasks | Standard task library: file I/O, HTTP, mail, loops, conditions, collections, scripting, and more. |
| Aurora.Workflows.Tasks.Data | Database tasks: SQL queries, backup/restore, index maintenance (SQL Server). |
| Aurora.Workflows.Tasks.Selenium | Browser automation tasks powered by Selenium WebDriver (Edge). |
| Aurora.Workflows.Tasks.Media | Audio playback, ElevenLabs TTS, and voice trigger. |
| Aurora.Workflows.Tasks.ML | Machine-learning tasks: image prediction, Stable Diffusion interrogation, training image management. |
| Aurora.Workflows.Tasks.Hardware | System information tasks: CPU, GPU, memory, disks, network, BIOS, and more. |
| Aurora.Workflows.Tasks.Windows | Windows-specific tasks. |
| Aurora.Workflows.Tasks.Workflow | Meta tasks for invoking sub-workflows. |
| Aurora.Workflows.Tasks.ItOpsToolBox | IT operations utility tasks. |
| Aurora.Workflows.Fluent | Fluent API for building workflows programmatically (see Fluent API below). |
| Aurora.Workflows.Extensions | Runtime assembly loading and extension discovery. |
| Aurora.Workflows.UI.Core | Shared UI resources, themes, and controls. |
| Aurora.Workflows.UI.Contracts | UI-layer contracts and abstractions. |
| Aurora.Workflows.UI.Host | The main WPF workflow editor application. |
| Aurora.Workflows.UI.Avalonia | Cross-platform Avalonia UI (Desktop + Browser). |
| Aurora.Workflows.Cli | Command-line runner for headless workflow execution. |
| Aurora.Workflows.Cli.Compiler | AOT / compiled workflow support for the CLI. |
| Aurora.Workflows.Tests | Unit and integration tests (xUnit v3, Moq, FluentAssertions). |
Workflow Versioning
| Version | Name | Behavior |
|---|---|---|
| 1 | Legacy | Every string value is compiled as a C# expression. Plain text must be manually quoted. |
| 2 | ExpressionMarker (current) | Strings are plain text by default. Prefix with = to evaluate as C# (e.g. = DateTime.Now). Use == to escape a leading equals sign. |
New workflows are always created with the current version.
UI Structure
| Section | Description |
|---|---|
| Toolbar (Top) | Main controls: Load, Save, Start (F5), Stop (Shift+F5), Publish, Load Modules, Edit Packages, Reset Layout. |
| Working Space (Left) | Local file browser showing .AWF workflow files. |
| Editor Canvas (Center) | The primary visual workflow builder. Tasks are arranged and connected in a flowchart layout. |
| Properties Panel (Right) | Edits task-specific settings, categories, and parameters. |
| Prefab Manager (Bottom Left) | Save and reuse task groups (prefabs). |
| Output Panel (Bottom) | Runtime logs for output, debug information, errors, and events. |
Creating a Workflow
1. Start with a Trigger
Every workflow begins with a StartTask (added automatically) and at least one trigger:
| Trigger Type | Description |
|---|---|
| Time Trigger | Fires every X milliseconds. |
| Cron Trigger | Fires on a cron schedule. |
| One-Time Trigger | Executes once, then stops. |
2. Choose a Trigger Strategy
The StartTask exposes a Trigger Execution Strategy that controls concurrency:
| Strategy | Behavior |
|---|---|
| Immediate | Always executes without any concurrency check. |
| WaitForCompletion | Queues execution and waits for the current run to finish. |
| SkipWhenExecutionIsAlreadyRunning | Skips the trigger if a run is already in progress. |
3. Add and Connect Tasks
- Drag from an output port to an input port to create a connection.
- Drag from an output into empty space to open the contextual task menu.
- Context-relevant tasks appear highlighted in violet based on data-type compatibility.
Task Color Coding:
| Color | Meaning |
|---|---|
| Red | Core tasks (built-in) |
| Blue | Extension tasks (default library) |
| Yellow | Custom tasks (user-provided DLLs) |
4. Configure Task Properties
Select a task to edit its properties in the right panel. Properties are grouped into categories:
- Task Specific - Parameters unique to the task type.
- General - Name, custom variable names.
- Data - Input/output variable scope, global/parent scope toggles.
- Error Handling -
ContinueOnError, retry settings (RetryEnabled,MaxRetries,RetryInterval). - State Machine and Threading - Concurrency and trigger strategy.
- Debugging - Breakpoints (
BreakOnPreExecution,BreakOnPostExecution),IgnoreIfDebuggerIsAttached.
Built-in Task Categories
Below is a non-exhaustive selection of tasks shipped with the standard packages:
| Category | Examples |
|---|---|
| Control Flow | ForEachTask, LoopTask, ConditionalScope, TryCatchScopeTask, SplitTask, MergeTask, AsyncTask |
| Variables | SetVariableTask (requires an Expression), CreateCollectionTask, AddItemToCollectionTask |
| Strings | StringReplaceTask, ConcatStringsTask, StringSplitTask, ConvertStringToByteTask |
| File System | ReadFileTask, WriteFileTask, FileCopyTask, DeleteFileTask, FileExistsTask, GetFileListTask |
| Networking | HttpClientTask, CreateAuthenticationHeadersTask, SendMailTask, GoogleSearchTask |
| AI / LLM | ChatGptPromptTask, ElevenLabsTask, PredictImageTask |
| Database | ExecuteSqlQueryTask, TsqlBackupDatabaseTask, TsqlRestoreDatabaseTask, GetDatabaseNamesTask |
| Selenium | SeleniumNavigateToTask, SeleniumClickButtonTask, SeleniumSendTextTask, SeleniumSelectDropdownValueTask |
| Hardware | GetCpuInformationTask, GetMemoryUsageTask, PingHost, DnsResolverTask, TestTcpPortTask |
| Scripting | ExecuteScriptTask, ShellExecuteTask |
| Serialization | SerializeToJsonTask, DeserializeFromJsonTask, JsonTask |
Note: Scope-based tasks (e.g.
ForEachTask,ConditionalScope) execute their child tasks in the Scope area.
Fluent API
Workflows can also be created programmatically via the Fluent API (Aurora.Workflows.Fluent). A StartTask is added automatically as the root - you never need to add one yourself.
using Aurora.Workflows.Fluent;
var wf = FluentWorkflow
.Create("My Workflow")
.TriggerOnce()
.Do<SetVariableTask>(t =>
{
t.Expression = "42";
t.CustomOutputVariableName = "answer";
})
.Then.Print("Done!")
.Build();
await wf.StartAsync();
Key builder methods: Do<T>(), Then, Branch(), Named(), WithInput(), Retry(), Build(), Persist(), and Load().
User Interaction and Shortcuts
Canvas Navigation
- Right Mouse Button (Hold) - Pan the editor canvas.
- Left Mouse Button (Hold) - Move tasks on the canvas.
- Minimap (Bottom Right) - Quickly navigate large workflows.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Drag port to port | Create a connection |
| ALT + Left Click | Delete a connection |
| CTRL + C / CTRL + V | Copy / paste tasks |
| CTRL + T | Open task selection dialog |
| F5 / SHIFT + F5 | Start / Stop workflow |
| CTRL + E | Create a prefab from selected tasks |
| CTRL + SHIFT + E | Insert prefab at cursor position |
| CTRL + G | Group selected tasks into a visual group |
| CTRL + S | Save workflow |
| CTRL + O | Open workflow file |
| CTRL + N | New workflow |
| F9 | Toggle debug breakpoint |
Context-Sensitive Task Suggestions
When dragging from a task output into empty space, the editor filters the task menu to show only type-compatible next tasks (highlighted in violet).
Example: dragging from a StringReplaceTask output suggests ConcatStringsTask, StringSplitTask, ConvertStringToByteTask, WriteFileTask, etc.
Port Tooltips and Visual Cues
Hovering over a task port shows a tooltip with the expected data type. Visual indicators:
| Cue | Meaning |
|---|---|
| Red port | Required input |
| Blue port | Optional or already connected |
| Orange border | Currently selected task |
Live Execution Visualization
The workflow editor shows real-time status during execution:
| Visual Style | Meaning |
|---|---|
| Red border | Task is currently executing |
| Violet border | Task has a debug breakpoint set |
| Orange border | Task is currently selected in the editor |
| Yellow/orange border | Task encountered an error (can be retried or ignored via settings) |
| Green checkmark | Task completed successfully |
| Duration label | Shows execution time in milliseconds below each task |
Error behavior (e.g., retry or ignore) can be configured in the Properties Panel per task.
NuGet Packages
Aurora Workflows is distributed via NuGet for seamless integration in .NET projects.
- Main package: nuget.org/packages/Aurora.Workflows
- All packages: nuget.org/packages?q=aurora.workflows
Summary
- Visual drag-and-drop workflow editor
- Context-aware task suggestions based on data types
- Modular task system (core, extension, and custom tasks)
- Fluent API for programmatic workflow construction
- Built-in debugging with breakpoints and real-time execution feedback
- Multiple trigger strategies for concurrency control
- Expression versioning (legacy C# vs. marker-based)
- Extensible via NuGet packages and user-provided DLLs
- Cross-platform UI via Avalonia (Desktop + Browser)
- Headless CLI runner for automated / server-side execution
License
MIT - Copyright Ben. Wagner 2020+
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Aurora.Workflows (>= 0.4.1.14)
- Aurora.Workflows.Contracts (>= 0.4.1.14)
- Aurora.Workflows.Tasks (>= 0.4.1.14)
-
net8.0
- Aurora.Workflows (>= 0.4.1.14)
- Aurora.Workflows.Contracts (>= 0.4.1.14)
- Aurora.Workflows.Extensions (>= 0.4.1.14)
- Aurora.Workflows.Tasks (>= 0.4.1.14)
- Aurora.Workflows.UI.Contracts (>= 0.4.1.14)
-
net8.0-windows7.0
- Aurora.Workflows (>= 0.4.1.14)
- Aurora.Workflows.Contracts (>= 0.4.1.14)
- Aurora.Workflows.Extensions (>= 0.4.1.14)
- Aurora.Workflows.Tasks (>= 0.4.1.14)
- Aurora.Workflows.Tasks.Windows (>= 0.4.1.14)
- Aurora.Workflows.UI.Contracts (>= 0.4.1.14)
- Aurora.Workflows.UI.Core (>= 0.4.1.14)
- Azure.Identity (>= 1.21.0)
- Dirkster.AvalonDock (>= 4.74.1)
- Dirkster.AvalonDock.Themes.Expression (>= 4.74.1)
- Dirkster.AvalonDock.Themes.VS2013 (>= 4.74.1)
- Extended.Wpf.Toolkit (>= 5.0.0)
- Fluent.Ribbon (>= 11.0.2)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.9)
- Microsoft.Data.SqlClient (>= 7.0.1)
- Microsoft.Extensions.Hosting (>= 10.0.7)
- Microsoft.Extensions.Http (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Microsoft.Identity.Client (>= 4.83.3)
- NuGet.Configuration (>= 7.3.1)
- Serilog (>= 4.3.1)
- Serilog.Extensions.Hosting (>= 10.0.0)
- Serilog.Settings.Configuration (>= 10.0.0)
- Serilog.Sinks.Async (>= 2.1.0)
- Serilog.Sinks.Console (>= 6.1.1)
- Serilog.Sinks.Debug (>= 3.0.0)
- Serilog.Sinks.File (>= 7.0.0)
- System.Drawing.Common (>= 10.0.7)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Xml (>= 10.0.7)
- System.Text.RegularExpressions (>= 4.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.1.14 | 123 | 5/11/2026 |
| 0.4.1.12 | 102 | 5/9/2026 |
| 0.4.1.11 | 109 | 5/6/2026 |
| 0.4.1.10 | 102 | 5/1/2026 |
| 0.4.1.9 | 107 | 4/30/2026 |
| 0.4.1.8 | 111 | 4/28/2026 |
| 0.4.1.7 | 113 | 4/21/2026 |
| 0.4.1.5 | 130 | 4/15/2026 |
| 0.4.1.2 | 141 | 3/16/2026 |
| 0.4.1.1 | 123 | 3/16/2026 |
| 0.3.1.60 | 127 | 3/14/2026 |
| 0.3.1.56 | 130 | 3/12/2026 |
| 0.3.1.55 | 124 | 3/12/2026 |
| 0.3.1.53 | 113 | 3/9/2026 |
| 0.3.1.52 | 114 | 3/5/2026 |
| 0.3.1.47 | 118 | 3/5/2026 |
| 0.3.1.46 | 111 | 3/5/2026 |
| 0.3.1.45 | 105 | 3/4/2026 |
| 0.3.1.40 | 114 | 3/4/2026 |
| 0.3.1.33 | 114 | 3/4/2026 |