Healthie.NET.SqlServer
4.1.4
Prefix Reserved
dotnet add package Healthie.NET.SqlServer --version 4.1.4
NuGet\Install-Package Healthie.NET.SqlServer -Version 4.1.4
<PackageReference Include="Healthie.NET.SqlServer" Version="4.1.4" />
<PackageVersion Include="Healthie.NET.SqlServer" Version="4.1.4" />
<PackageReference Include="Healthie.NET.SqlServer" />
paket add Healthie.NET.SqlServer --version 4.1.4
#r "nuget: Healthie.NET.SqlServer, 4.1.4"
#:package Healthie.NET.SqlServer@4.1.4
#addin nuget:?package=Healthie.NET.SqlServer&version=4.1.4
#tool nuget:?package=Healthie.NET.SqlServer&version=4.1.4

Healthie.NET.SqlServer
▶ Live demo — board.healthie-dotnet.dev — a read-only Healthie.NET dashboard watching real status pages (Anthropic, OpenAI, GitHub, Cloudflare, and more), built from these packages. Full documentation at healthie-dotnet.dev.
SQL Server IStateProvider implementation for Healthie.NET. Persists pulse checker state to SQL Server or Azure SQL for durable storage across application restarts and across the replicas of a scaled-out deployment.
Installation
dotnet add package Healthie.NET.SqlServer
Usage
using Healthie.StateProviding.SqlServer;
builder.Services
.AddHealthie(typeof(Program).Assembly)
.AddHealthieSqlServer(builder.Configuration.GetConnectionString("Healthie")!);
The table is created on startup if it does not exist. The database is not, so create it yourself or point at an existing one. Pass a second argument to store state somewhere other than healthie_pulse_state:
.AddHealthieSqlServer(connectionString, "monitoring.pulse_state");
Writes update first and insert only if nothing was updated, under UPDLOCK, SERIALIZABLE. Those hints are what make concurrent writers safe rather than occasionally colliding on the primary key.
The checker name is the primary key, so it is capped at 450 characters — the longest a SQL Server key column may be. A checker name defaults to its type's full name and does not come close.
Other engines
This is a thin wrapper over Healthie.NET.Relational, which works against any database with an ADO.NET driver.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Healthie.NET.Relational (>= 4.1.4)
- Microsoft.Data.SqlClient (>= 7.1.0)
-
net8.0
- Healthie.NET.Relational (>= 4.1.4)
- Microsoft.Data.SqlClient (>= 7.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
### Fixed
- Timer-scheduled checks now continue after an individual scheduling caller cancels, while host
shutdown still stops them; an older overlapping result can no longer overwrite newer checker state.
- Bulk dashboard state reads and AI diagnoses now avoid redundant state-provider calls.
- Workflow dispatch inputs are passed to shell steps as environment variables, preventing command
injection through a supplied version or branch name.
- Dashboard status text has stronger contrast, and checker details expose their meaning to assistive
technology.
Full changelog: https://github.com/ivanvyd/Healthie.NET/blob/v4.1.4/CHANGELOG.md