Repository navigation
Development
- .NET 10 SDK (the packages target .NET 8; the sample and tests run on .NET 10)
- Node.js 22.22+ or 24.15+ (Angular 22)
src/WorkflowCore.Dashboard/ API, SignalR hub, journal, embedded UI host
src/WorkflowCore.Dashboard.EntityFramework/ EF Core journal
src/WorkflowCore.Dashboard.Designer/ Designer API
src/WorkflowCore.Dashboard.UI/ Angular app
samples/WorkflowCore.Dashboard.Sample/ Demo host on SQLite, port 5290
tests/WorkflowCore.Dashboard.Tests/ xUnit tests
docs/ Documentation, mirrored to the wiki
dotnet build # builds the UI too when wwwroot/ is missing
dotnet run --project samples/WorkflowCore.Dashboard.Sample-
-p:BuildDashboardUi=truerebuilds the UI on everydotnet build. -
-p:SkipDashboardUi=truebuilds the .NET code without the UI.
# terminal 1
dotnet run --project samples/WorkflowCore.Dashboard.Sample
# terminal 2
cd src/WorkflowCore.Dashboard.UI
npm start # http://localhost:4200/workflows, API proxied to :5290npm run build writes the production UI into src/WorkflowCore.Dashboard/wwwroot, which the next dotnet build embeds.
dotnet test
dotnet test -p:EfVersion=8.0.*
dotnet test -p:EfVersion=10.0.*The EF journal is built against EF Core 8. EF Core 9 moved some APIs, so a call that compiles against 8 can fail at runtime on 9 or 10; CI runs the tests on all three. JournalContractTests run the same behaviour against both journals.
SecurityTests host the dashboard on an in-memory test server to check the CSRF, framing and local-request rules.
- Map it on the
apigroup (or in anIDashboardExtension), so authorization and the change filter apply. - Use GET only for reads; changes must be POST, PUT or DELETE.
- Return errors as
{ code, message }. - Send requests from the UI through
HttpClient, which adds theX-Wfc-Dashboardheader.
Edit the pages in docs/. On every push to main, the Publish wiki workflow copies them to the wiki, rewriting Page.md links to wiki links. Do not edit the wiki directly; it is overwritten.
- Move the Unreleased entries in
CHANGELOG.mdunder a new version heading, e.g.## [0.2.0] - 2026-11-01, and update the compare links. - Merge that change to
main. - Tag and push:
git tag v0.2.0 && git push origin v0.2.0.
The Release workflow runs the tests, packs the three packages with that version, and creates a GitHub release with the changelog section as notes and the .nupkg and .snupkg files attached. Tags with a hyphen (v0.2.0-beta.1) become prereleases.
Start
Guides
Reference