Lumarin.Notify.EntityFrameworkCore.PostgreSQL 0.8.0-preview.199

This is a prerelease version of Lumarin.Notify.EntityFrameworkCore.PostgreSQL.
dotnet add package Lumarin.Notify.EntityFrameworkCore.PostgreSQL --version 0.8.0-preview.199
                    
NuGet\Install-Package Lumarin.Notify.EntityFrameworkCore.PostgreSQL -Version 0.8.0-preview.199
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Lumarin.Notify.EntityFrameworkCore.PostgreSQL" Version="0.8.0-preview.199" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Lumarin.Notify.EntityFrameworkCore.PostgreSQL" Version="0.8.0-preview.199" />
                    
Directory.Packages.props
<PackageReference Include="Lumarin.Notify.EntityFrameworkCore.PostgreSQL" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Lumarin.Notify.EntityFrameworkCore.PostgreSQL --version 0.8.0-preview.199
                    
#r "nuget: Lumarin.Notify.EntityFrameworkCore.PostgreSQL, 0.8.0-preview.199"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Lumarin.Notify.EntityFrameworkCore.PostgreSQL@0.8.0-preview.199
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Lumarin.Notify.EntityFrameworkCore.PostgreSQL&version=0.8.0-preview.199&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Lumarin.Notify.EntityFrameworkCore.PostgreSQL&version=0.8.0-preview.199&prerelease
                    
Install as a Cake Tool

Lumarin.Notify

Lumarin.Notify is a .NET notification library for applications that need a consistent send API, durable delivery options, current-actor receiver APIs, and optional operator-facing capabilities.

Use it when you want to keep notification delivery inside your application boundary while still supporting features such as templates, delivery tracking, preferences, devices, SignalR refresh hints, outbox delivery, and admin APIs.

When to use it

  • You want one notification model across in-app feed, email, push, SMS, or webhook delivery.
  • You need an adoption path that can start simple and grow into durable or outbox-backed delivery.
  • You want hosted receiver APIs under /api/notify/* or a host-owned facade over the same services.
  • You need clear boundaries between library-owned behavior and host-owned auth, tenant semantics, and deployment choices.

Key capabilities

  • Unified INotificationHub send API.
  • Simple, durable, and explicit outbox composition modes.
  • Current-actor receiver APIs for feed, preferences, devices, templates, and tracking.
  • Optional generated client for the stable hosted contract.
  • Optional SignalR realtime fan-out as a refresh hint beside persisted feed state.
  • Optional admin APIs, policy routing, scheduling preview, and telemetry helpers.
  • Optional embeddable Admin UI and Receiver UI package surfaces.

Quick start

Start with the smallest supported profile and add capability layers as needed.

builder.Services.AddLumarinNotify(options =>
{
    options.Delivery.EnableBackgroundWorkers = false;
    options.EnableTemplates();
});

Add durable storage when you need persisted notifications and background delivery:

builder.Services.AddLumarinNotify(options =>
{
    options.UsePostgreSql(builder.Configuration.GetConnectionString("LumarinNotify")!);
    options.EnableHostedApiDefaults(hosted => hosted.ScopeType = "user");
});

Send a notification:

var result = await hub.SendAsync(new NotificationRequest(
    ScopeType: "user",
    ScopeId: "user-123",
    Category: "order.shipped",
    Content: new NotificationContent("Order shipped", "Your order #456 is on the way."),
    Recipients: new NotificationRecipients(
        Identities: ["user-123"],
        Channels: [NotificationChannel.InApp, NotificationChannel.Email])));

Supported integration shapes

Shape Start with Use when
Simple in-process notifications Lumarin.Notify You want the send API without EF Core or hosted workers
Durable notifications and receiver APIs Lumarin.Notify + Lumarin.Notify.EntityFrameworkCore + Lumarin.Notify.AspNetCore You want persisted feed state, deliveries, and hosted current-actor routes
Explicit outbox delivery add Lumarin.Notify.Outbox and Lumarin.Notify.Outbox.EntityFrameworkCore You want enqueue-on-commit delivery with explicit runtime ownership
Operator-facing admin APIs add Lumarin.Notify.Admin and admin EF packages as needed You want optional control-plane APIs and admin-specific persistence
Embeddable admin UI add Lumarin.Notify.Admin plus lumarin-notify-admin-ui You want an operator UI over the optional admin control-plane surface
Embeddable receiver UI add Lumarin.Notify.AspNetCore plus lumarin-notify-receiver-ui You want a current-user notification center over feed, preferences, devices, and optional SignalR refresh hints
Generated hosted client add Lumarin.Notify.AspNetCore.OpenApiClient You call the stable /api/notify/* contract from another application
Realtime refresh hints add Lumarin.Notify.Channels.SignalR You want websocket fan-out beside persisted feed state

Package map and docs

Stability and release status

The current package set is published as 0.8.0-preview.1.

The packageable UI libraries remain supported-optional release-candidate surfaces with their own npm metadata and package checks. Keep their published posture aligned with the same control-plane versus user-plane boundaries as the .NET packages.

Lumarin.Notify uses these repo-wide tiers:

  • Stable: core runtime, durable EF packages, production channel families, the library-owned /api/notify/* contract, and the generated hosted client
  • Supported optional: outbox, admin, policy routing, telemetry helpers, claims helpers, and bridge packages when adopted intentionally
  • Preview: scheduling, webhook delivery, and preview provider adapters such as Postmark, Mailgun, Resend, APNs, Azure Communication Services SMS, Amazon SNS push or SMS, Telnyx, and Vonage
  • Sample-only: reference host, runnable samples, and showcase tooling
  • Internal: repo-local generators and helper settings

Use docs/release/checklist.md and docs-site/docs/release-candidate-readiness.md when you need the release-quality validation posture.

Boundaries and non-goals

Lumarin.Notify does not provide:

  • IdP-specific authentication integration
  • a tenant-management API
  • a dashboard product or mandatory telemetry backend
  • a general-purpose workflow or scheduler platform
  • product-owned /api/me/* routes when your host needs a custom receiver contract

The host remains responsible for authentication, authorization, tenant resolution, deployment topology, migrations ownership, and provider credential management.

Validation commands

Run the narrowest command that matches your change. Common validation lanes are:

dotnet build Lumarin.Notify.slnx
dotnet test Lumarin.Notify.slnx -m:1
./scripts/verify.ps1 -Fast
./scripts/verify.ps1
./scripts/verify.ps1 -Full
./scripts/verify-docs-alignment.ps1
./scripts/verify-generated-openapi-clients.ps1
npm run build --prefix docs-site

For the packageable UI surfaces, also run the matching package checks:

Push-Location admin-ui
npm run typecheck
npm run typecheck:lib
npm run test:run
npm run build
npm run build:lib
npm run check:publint
npm run check:types-wrong
Pop-Location

Push-Location receiver-ui
npm run typecheck
npm run typecheck:lib
npm run test:run
npm run build
npm run build:lib
npm run check:publint
npm run check:types-wrong
Pop-Location

Use ./scripts/verify.ps1 -Full for the local lane that most closely mirrors the union of the main CI verification jobs. For release work, also use docs/release/checklist.md.

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Lumarin.Notify.EntityFrameworkCore.PostgreSQL:

Package Downloads
Lumarin.Notify.Outbox.EntityFrameworkCore.PostgreSQL

Optional PostgreSQL provider package for Lumarin.Notify outbox EF Core persistence.

Lumarin.Notify.Scheduling.EntityFrameworkCore.PostgreSQL

Preview PostgreSQL provider package for Lumarin.Notify scheduling EF Core persistence.

Lumarin.Notify.Admin.EntityFrameworkCore.PostgreSQL

Optional PostgreSQL provider package for Lumarin.Notify admin EF Core persistence.

Lumarin.Notify.Hosting.Embedded.PostgreSQL

Optional embedded-hosting convenience profile for Lumarin.Notify on PostgreSQL

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.8.0-preview.199 64 5/14/2026
0.8.0-preview.162 66 4/26/2026
0.8.0-preview.161 74 4/26/2026
0.8.0-preview.160 65 4/26/2026
0.8.0-preview.159 55 4/26/2026
0.8.0-preview.158 57 4/26/2026
0.8.0-preview.157 58 4/25/2026
0.8.0-preview.156 59 4/25/2026
0.8.0-preview.155 59 4/25/2026
0.8.0-preview.154 49 4/25/2026
0.8.0-preview.153 54 4/25/2026
0.8.0-preview.150 63 4/25/2026
0.8.0-preview.133 71 4/23/2026
0.8.0-preview.132 58 4/23/2026
0.8.0-preview.130 55 4/23/2026
0.8.0-preview.128 64 4/23/2026
0.8.0-preview.120 139 4/21/2026
0.8.0-preview.115 59 4/18/2026
0.8.0-preview.114 65 4/18/2026
0.8.0-preview.113 65 4/17/2026
Loading failed