Contributing
Repository layout, local development, project status, and license.
Repository layout
Nafas.Observability/— the package itself.Nafas.Dashboard.TestHost/— a minimal ASP.NET Core app used to manually verify the package end to end; not a usage example to copy patterns from.Nafas.Observability.Server/— the optional standalone HTTP listener package for non-ASP.NET Core apps (no Kestrel, no OWIN); see Desktop and other non-ASP.NET Core apps.Nafas.Observability.Server.Sample/— a WPF app demonstrating it, with a settings-screen-style checkbox to enable/disable the dashboard server, pick its port, and choose localhost-only vs. LAN access at runtime.Nafas.Observability.Server.NetFrameworkSample/— a plainnet48console app; not a usage pattern to copy, but an actual classic .NET Framework process used to empirically verify the whole stack rather than just relying onnetstandard2.0's TFM compatibility claim.
Local development
For normal use of the published package, no Node.js/npm step is needed at
all — the dashboard UI is already built and committed under
Nafas.Observability/wwwroot/. Just build the solution:
dotnet build nafas.observability.sln
To try the package locally end to end:
cd Nafas.Dashboard.TestHost
dotnet run
then open http://localhost:<port>/nafas.
To change the dashboard UI itself:
cd Nafas.Observability/ClientApp
npm install # first time only
npm run build # output goes to ClientApp/dist/
# then replace (not merge) the contents of ../wwwroot/ with dist/'s contents
then dotnet build again so the updated files are re-embedded. The
publish workflow does this same rebuild-and-sync step from source on
every release, so a tagged release never ships a stale UI.
Status
Feature-complete for the free tier. Logs, metrics, traces, alerting,
the embedded dashboard, and the standalone desktop/console server
(Nafas.Observability.Server) are all shipped — no further feature work
is planned for this scope. From here, changes to the free tier are bug
fixes and hardening, not new capability.
Still pre-1.0, and that status is about proof, not scope: real ingestion,
storage, dashboard, and alert evaluation all work and are exercised
through Nafas.Dashboard.TestHost, but neither package has yet run in a
real production deployment or been through a real upgrade cycle. The
public API surface (NafasServerOptions, UseNafasDashboard) is expected
to stay stable regardless.
License
FSL-1.1-ALv2 — free to use, modify and redistribute for any purpose other than building a competing product or service; each release converts to the Apache License, Version 2.0 two years after it ships.