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 plain net48 console 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 on netstandard2.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:

bash
dotnet build nafas.observability.sln

To try the package locally end to end:

bash
cd Nafas.Dashboard.TestHost
dotnet run

then open http://localhost:<port>/nafas.

To change the dashboard UI itself:

bash
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.