PrimusSaaS.Rbac
2.0.0
dotnet add package PrimusSaaS.Rbac --version 2.0.0
NuGet\Install-Package PrimusSaaS.Rbac -Version 2.0.0
<PackageReference Include="PrimusSaaS.Rbac" Version="2.0.0" />
<PackageVersion Include="PrimusSaaS.Rbac" Version="2.0.0" />
<PackageReference Include="PrimusSaaS.Rbac" />
paket add PrimusSaaS.Rbac --version 2.0.0
#r "nuget: PrimusSaaS.Rbac, 2.0.0"
#:package PrimusSaaS.Rbac@2.0.0
#addin nuget:?package=PrimusSaaS.Rbac&version=2.0.0
#tool nuget:?package=PrimusSaaS.Rbac&version=2.0.0
PrimusSaaS.Rbac
Release status: stable.
Core RBAC engine for Primus SaaS. Includes the data model, evaluation logic, and service interfaces. Storage adapters are shipped separately.
Validation
- Current workspace validation:
181/181tests passed onnet8.0 - Current workspace validation:
181/181tests passed onnet9.0 - Current workspace validation:
181/181tests passed onnet10.0 - Current workspace validation: total coverage
96.31%line /84.29%branch /96.56%method - Scope boundary: core evaluator first; seeded/sample data is optional and not required for production usage
Telemetry
- Emits
ActivitySourcespans for decisions, snapshots, what-if checks, cleanup, and mutations. - Emits exporter-agnostic metrics counters for decisions, mutations, and cleanup events.
- Consumers still need to wire their own exporter or
MeterListenerif they want the telemetry exported. - The module intentionally keeps telemetry generic and backend-neutral.
Combined ASP.NET Core Host
If you are wiring RBAC together with PrimusSaaS.Identity.Validator and PrimusSaaS.MultiTenancy, use the verified combined onboarding guide at /docs/modules/combined-dotnet-integration.
Start here
- First-time package overview:
/docs/modules/rbac - Initial host setup:
/docs/modules/rbac/integration-guide - Advanced topics such as caching, what-if evaluation, and telemetry:
/docs/modules/rbac/advanced
Quick Start
using PrimusSaaS.Rbac;
using PrimusSaaS.Rbac.InMemory;
var services = new ServiceCollection();
services.AddPrimusRbacInMemory(options =>
{
options.SeedMode = "none";
});
What it includes
- Scoped roles/permissions (application, tenant, qualifier)
- Deny-first evaluation with wildcard support
- Role hierarchy (single parent by default) and group hierarchy
- Attribute conditions (attributes on access requests)
- Role-based permission resolution (permissions only apply via roles)
- Optional audit sink for access checks and changes
- Snapshot, export/import, and what-if evaluation helpers
- Exporter-agnostic traces and metrics for decision flows
Storage adapters
PrimusSaaS.Rbac.InMemoryPrimusSaaS.Rbac.EFCore
Configuration
SeedMode:none,minimal, orsample.minimalseeds only a generic permission placeholder; it does not create built-in roles.sampleseeds demo roles and groups for local experimentation only.AllowMultipleInheritance: settrueto allow more than one parent role.
Compliance note
This package is designed to support common enterprise access-control requirements. It does not provide certification. Align it with your organization's compliance program.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Options (>= 7.0.0)
-
net6.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Options (>= 7.0.0)
-
net7.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Options (>= 7.0.0)
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Options (>= 7.0.0)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Options (>= 7.0.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on PrimusSaaS.Rbac:
| Package | Downloads |
|---|---|
|
PrimusSaaS.MultiTenancy
Core multi-tenancy abstractions and runtime for tenant context resolution, isolation, and membership modeling. |
|
|
PrimusSaaS.Rbac.InMemory
In-memory storage adapter for PrimusSaaS.Rbac. Intended for development, tests, and demos. |
|
|
PrimusSaaS.Memberships.Rbac
Optional bridge that provisions RBAC assignments from Memberships lifecycle events. |
|
|
PrimusSaaS.Rbac.EFCore
Entity Framework Core storage adapter for PrimusSaaS.Rbac. |
|
|
PrimusSaaS.Rbac.Dapper
Dapper storage adapter for PrimusSaaS.Rbac. A lightweight alternative to the EF Core adapter with full control over SQL. |
GitHub repositories
This package is not used by any popular GitHub repositories.