Dashboard API

The Trax.Core dashboard is a Blazor Server UI that provides real-time visibility into train execution, metadata, manifests, dead letters, and effect provider configuration. It's distributed as a Razor Class Library and mounted into your existing ASP.NET Core application.

Effect providers that implement IConfigurableEffectProviderFactory<TConfiguration> (or IConfigurableJunctionEffectProviderFactory<TConfiguration>) expose a settings button on the dashboard's Effects page, where their configuration properties can be modified at runtime.

// In Program.cs
var builder = WebApplication.CreateBuilder(args);
 
builder.Services.AddTrax(trax => trax
    .AddEffects(effects => effects.UsePostgres(connectionString))
    .AddMediator(typeof(Program).Assembly)
);
 
builder.AddTraxDashboard(o => o.RequireRoles("Admin"));  // Requires AddTrax() first, and a posture
 
var app = builder.Build();
app.UseTraxDashboard();
PageDescription
AddTraxDashboardRegisters dashboard services (Blazor, Radzen, train discovery)
UseTraxDashboardMaps the dashboard Blazor components, gated by the authorization posture
DashboardOptionsConfiguration options for the authorization posture, route prefix, title, and environment
IDashboardSettingsServicePer-browser preferences and refresh state, and how to replace where they are stored