Bloqr Dashboard

The flagship .NET console app that ties the rest of the toolkit together — a single pane of glass for generating and editing compiler configs, running compilations with rich live progress, and validating your filter lists.

Overview

Dashboard lives at src/apps/dashboard/ as its own .NET solution (BloqrDashboard.slnx). It's menu-driven and never terminates on an unhandled error — the goal is a console app comfortable for non-technical users, while still exposing every operation as a CLI switch for automation and as an embeddable library (IDashboardService) for anything that wants to drive it programmatically. A full .NET MAUI UI is planned on top of the same library boundary.

Dashboard shares its compiler configuration, hash-verification, and event-pipeline logic with the .NET rules compiler via the common Bloqr.Compiler.Abstractions/Bloqr.Compiler.Core library, rather than duplicating it — so a config generated in Dashboard is guaranteed compatible with every compiler in this repo, not just the .NET one.

Key Features

Config Generation Wizard

Walks through every option in the compiler-config schema — sources, transformations, inclusions/exclusions, hash verification, archiving — and writes a schema-linked, heavily commented .jsonc file.

Round-Trip Config Editing

Open an existing config, edit it in a structured or raw view, and save back — with automatic backups and a git-based version history you can browse and restore from.

Live Compilation Progress

Stage-by-stage progress (validation, linting, chunking, merging) with rule counts, transformation results, and color-coded errors — driven by the same event pipeline the compiler itself raises.

Profiles

Save collections of settings and compiler configs as named profiles you can switch between, instead of re-entering the same options every run.

Validation & Diagnostics

Runs the same bloqr-validator-core hash-verification and syntax-linting library the compilers use (via P/Invoke), plus self-diagnostics for fixable config/binary problems.

Structured Logging

JSON logs with configurable verbosity and automatic rollover, viewable in human-readable form from within Dashboard itself — filterable by app and time range.

CLI & Library Parity

Everything reachable from the interactive menus is also a CLI switch (bloqr-dashboard compile, validate, profiles, …) and an IDashboardService method for embedding.

Durable Event Pipeline

Polly-backed retry and optional background queueing on compilation events, so a slow downstream handler (a log sink, a webhook) can't stall or crash a compile.

Quick Start

cd src/apps/dashboard
dotnet restore BloqrDashboard.slnx
dotnet run --project src/Bloqr.Dashboard.Console

# Interactive mode is the default; or drive it directly:
dotnet run --project src/Bloqr.Dashboard.Console -- compile --config compiler-config.jsonc
dotnet run --project src/Bloqr.Dashboard.Console -- validate --config compiler-config.jsonc
dotnet run --project src/Bloqr.Dashboard.Console -- profiles list

Dashboard's own settings persist in a .jsonc profile file (see BLOQR_DASHBOARD_CONFIG / BLOQR_DASHBOARD_CONFIG_DIR in the Environment Variables reference to relocate it).

Learn More

The full user guide — installation, every CLI flag, config locations, the library-embedding pattern, and troubleshooting — lives in the docs: Dashboard Guide →