Lumarin.Notify.Admin 0.8.0-preview.199

This is a prerelease version of Lumarin.Notify.Admin.
dotnet add package Lumarin.Notify.Admin --version 0.8.0-preview.199
                    
NuGet\Install-Package Lumarin.Notify.Admin -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.Admin" 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.Admin" Version="0.8.0-preview.199" />
                    
Directory.Packages.props
<PackageReference Include="Lumarin.Notify.Admin" />
                    
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.Admin --version 0.8.0-preview.199
                    
#r "nuget: Lumarin.Notify.Admin, 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.Admin@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.Admin&version=0.8.0-preview.199&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Lumarin.Notify.Admin&version=0.8.0-preview.199&prerelease
                    
Install as a Cake Tool

Lumarin.Notify.Admin

Lumarin.Notify.Admin is the optional ASP.NET Core control-plane package for Lumarin.Notify.

What it includes

  • route and contract wiring for the admin HTTP surface
  • stable OpenAPI operation names and frontend-friendly response shapes
  • a typed .NET HTTP client for the locked admin control-plane contract
  • admin authorization seams and RFC 9457 problem-details behavior
  • service-driven module activation so hosts only expose the modules they actually register

What it does not include

  • a second delivery or template runtime
  • EF Core persistence by itself
  • direct outbox package dependencies
  • cluster-wide runtime control semantics

Optional companions

  • Lumarin.Notify.Admin.Claims for typed claims-based IAdminAuthorizationPolicy registration
  • Lumarin.Notify.Admin.EntityFrameworkCore for EF-backed dashboard, delivery, dead-letter, audit, recipient, provider, and policy services
  • Lumarin.Notify.Admin.Outbox for outbox summary, entry, replay, requeue, and process-local pause or resume routes

Control-plane truth model

Use the published Admin truth-model docs when you are wiring an Admin UI or reviewing operator-facing semantics:

Basic activation

using Lumarin.Notify.DependencyInjection;

builder.Services.AddLumarinNotify(options =>
{
    options.EnableAdminDefaults(admin =>
    {
        admin.RoutePrefix = "/api/admin";
    });
});

var app = builder.Build();
app.MapLumarinNotify();

Direct AddLumarinNotifyAdmin(...) and MapLumarinNotifyAdminApi() calls remain available for advanced composition when the host intentionally wants only the admin surface.

EnableAdminDefaults(...) enables the common operator modules, including analytics and policy management, while keeping sandbox access, outbox activation, route mapping, and host authorization explicit.

If you want the EF-backed admin query and mutation services, add AddLumarinNotifyAdminEntityFrameworkCore() and run MigrateLumarinNotifyAdminAsync() before enabling admin mutations against an existing database. The admin migration stream applies the provider, policy, and durable admin audit schema, and EF-backed responses include TenantId when multi-tenancy is enabled and the host supplies an ambient tenant context.

EF-backed provider inventory, provider validation, and policy simulation responses are intentionally explicit about what they do and do not prove. Provider inventory/detail payloads may add ValidationAttempted, ValidationMode, IsRuntimeOnly, IsCodeRegistered, EditabilityReason, LastSignalSource, Limitations, and Warnings; provider validation results may add ValidationAttempted, LastSignalSource, Limitations, and Warnings; policy simulation may add SimulationMode, delivery/probe/readiness booleans, actor/runtime/tenant scope, SourceModules, Limitations, Warnings, and EvaluatedAtUtc. Those additions qualify the current response without changing the locked route set.

using Lumarin.Notify.Admin.Abstractions;
using Lumarin.Notify.Admin.EntityFrameworkCore.Extensions;
using Lumarin.Notify.DependencyInjection;

builder.Services.AddOpenApi();

builder.Services.AddLumarinNotify(options =>
{
    options.EnableAdminDefaults(admin =>
    {
        admin.RoutePrefix = "/api/admin";
    });
});

builder.Services.AddLumarinNotifyAdminEntityFrameworkCore();
builder.Services.AddSingleton<IAdminAuthorizationPolicy, YourAppAdminAuthorizationPolicy>();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
}

app.MapLumarinNotify();
await app.Services.MigrateLumarinNotifyAdminAsync();

This recipe gives operators a stable bootstrap surface at GET /api/admin/me, the locked root document at GET /api/admin, and the OpenAPI document at GET /openapi/v1.json in Development.

When AddLumarinNotifyAdminEntityFrameworkCore() is present, the base Admin package also exposes service-backed audit inspection at GET /api/admin/audit and GET /api/admin/audit/{id} and includes ambient TenantId in EF-backed list and detail payloads when multi-tenancy is active.

Embedded-host route groups

If the host already owns the /ops prefix and a staff-only authorization policy, mount Admin directly onto that host-owned route group instead of proxying it through a second controller layer:

app.UseAuthentication();
app.UseAuthorization();

app.MapGroup("/ops/admin")
    .RequireAuthorization("NotifyStaff")
    .MapLumarinNotifyAdminApi();

This keeps route ownership and policy ownership in the host while preserving the library-owned Admin contract. The compile-verified reference for this shape is samples/Lumarin.Notify.Sample.EmbeddedHost.

If the host already normalizes admin roles, scopes, or permissions onto HttpContext.User, install Lumarin.Notify.Admin.Claims and call AddLumarinNotifyClaimsAdminAuthorization(...) after enabling Admin. The helper replaces the base deny-all policy with a typed claims-based implementation while keeping route-level authentication fully host-owned.

Typed client

using Lumarin.Notify.Admin.Client.Configuration;
using Lumarin.Notify.Admin.DependencyInjection;

builder.Services.AddLumarinNotifyAdminHttpClient(
    new Uri("https://ops.example"),
    configure: options =>
    {
        options.Routes.Apply(LumarinNotifyAdminHttpRoutes.ForRoutePrefix("/ops/admin"));
    });

The typed client tracks the locked LumarinNotifyAdminContract.Current route set and throws a typed HTTP exception for RFC 9457 problem responses. Read operations that still hit a placeholder-backed admin surface fail fast with a descriptive InvalidOperationException instead of silently deserializing the placeholder payload as a service-backed response.

Use GetCurrentOperatorAsync() first when bootstrapping an Admin UI or operator workflow. It returns the effective module capability matrix for the current caller, including the currently mapped ReadOperations and ManageOperations per module, so the UI does not need to probe routes speculatively.

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.Admin:

Package Downloads
Lumarin.Notify.Admin.EntityFrameworkCore

Optional EF Core persistence companion package for the Lumarin.Notify admin control plane.

Lumarin.Notify.Admin.Outbox

Optional outbox admin adapter package for Lumarin.Notify

Lumarin.Notify.Admin.Claims

Optional claims-based admin authorization adapter for Lumarin.Notify

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 74 5/14/2026
0.8.0-preview.162 61 4/26/2026
0.8.0-preview.161 64 4/26/2026
0.8.0-preview.160 67 4/26/2026
0.8.0-preview.159 54 4/26/2026
0.8.0-preview.158 58 4/26/2026
0.8.0-preview.157 62 4/25/2026
0.8.0-preview.156 61 4/25/2026
0.8.0-preview.155 57 4/25/2026
0.8.0-preview.154 55 4/25/2026
0.8.0-preview.153 62 4/25/2026
0.8.0-preview.150 67 4/25/2026
0.8.0-preview.133 69 4/23/2026
0.8.0-preview.132 56 4/23/2026
0.8.0-preview.130 55 4/23/2026
0.8.0-preview.128 61 4/23/2026
0.8.0-preview.120 143 4/21/2026
0.8.0-preview.115 64 4/18/2026
0.8.0-preview.114 56 4/18/2026
0.8.0-preview.113 64 4/17/2026
Loading failed