WorkflowCore.Dashboard
0.0.3
dotnet add package WorkflowCore.Dashboard --version 0.0.3
NuGet\Install-Package WorkflowCore.Dashboard -Version 0.0.3
<PackageReference Include="WorkflowCore.Dashboard" Version="0.0.3" />
<PackageVersion Include="WorkflowCore.Dashboard" Version="0.0.3" />
<PackageReference Include="WorkflowCore.Dashboard" />
paket add WorkflowCore.Dashboard --version 0.0.3
#r "nuget: WorkflowCore.Dashboard, 0.0.3"
#:package WorkflowCore.Dashboard@0.0.3
#addin nuget:?package=WorkflowCore.Dashboard&version=0.0.3
#tool nuget:?package=WorkflowCore.Dashboard&version=0.0.3
Workflow Core Dashboard
Simple dashboard to visualise Workflow Core state
Note: This is in early development, see the roadmap below
Installation
Install the NuGet package "WorkflowCore.Dashboard"
Using NuGet
PM> Install-Package WorkflowCore.Dashboard
Using .net cli
dotnet add package WorkflowCore.Dashboard
Usage
Add the dashboard to your application by adding AddWorkflowCoreDashboard()
and UseWorkflowCoreDashboard()
:
public void ConfigureServices(IServiceCollection services)
{
...
// Register with DI container
services.AddWorkflowCoreDashboard(/*optionally pass in DashboardConfig here*/);
...
}
public void Configure(IApplicationBuilder app, IWorkflowHost workflowHost)
{
...
// Hook up Workflow Core + register workflows
workflowHost.RegisterWorkflow<HelloWorldWorkflow>();
workflowHost.Start();
// Add dashboard
app.UseWorkflowCoreDashboard();
...
}
By default you can access the dashboard at /wfc-dashboard
(this path is configurable, see below)
Configuration
You can pass a DashboardConfig
into the UseWorkflowCoreDashboard()
Property | Type | Default Value | Notes |
---|---|---|---|
RoutePrefix | string | /wfc-dashboard | Change this if you want to expose the dashboard on a different path |
PermissionManager | Type (must implement IPermissionManager) | AllowLocalAccessPermissionManager | Default permissions will only authorize api access for local requests |
PermissionManagerLifetime | ServiceLifetime | If provided, will register the permission manager with the DI container. Otherwise, will assume permission manager will be registered elsewhere |
Authorization
By default, the api will authorize access only to local requests, and users will have full access permissions.
You can easily change authorization behaviour by implementing a new IPermissionManager
. If you specify a lifetime then it will be registered with the DI container, otherwise it is assumed that it will be registered elsewhere.
Sample Custom IPermissionManager
public class CustomPermissionManager(IMyUserContext userContext) : IPermissionManager {
public Task<Permission> CurrentPermission()
{
var currentUser = await userContext.GetCurrentUser();
if (currentUser is null) return Permission.None;
if (currentUser.IsAdministrator()) return Permission.All;
return Permission.ViewDefinitions;
}
}
services.AddWorkflowCoreDashboard(new DashboardConfig()
{
PermissionManager = typeof(CustomPermissionManager),
PermissionManagerLifetime = ServiceLifetime.Scoped // not required if the IPermissionManager is registered with the DI container elsewhere
};
TODO
Workflow Core Dashboard is in early development. Still todo:
- More workflow detail, filtering + search capabilities
- List events, with filtering + search capabilities
- List errors, with filtering + search capabilities
- Overview of specific workflow instance. Show current status, step history, state etc
- Suspend / resume / terminate workflows
- UI improvements based on user permissions
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1)
- WorkflowCore (>= 3.10.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.