Tharga.Team.Blazor
3.0.4
dotnet add package Tharga.Team.Blazor --version 3.0.4
NuGet\Install-Package Tharga.Team.Blazor -Version 3.0.4
<PackageReference Include="Tharga.Team.Blazor" Version="3.0.4" />
<PackageVersion Include="Tharga.Team.Blazor" Version="3.0.4" />
<PackageReference Include="Tharga.Team.Blazor" />
paket add Tharga.Team.Blazor --version 3.0.4
#r "nuget: Tharga.Team.Blazor, 3.0.4"
#:package Tharga.Team.Blazor@3.0.4
#addin nuget:?package=Tharga.Team.Blazor&version=3.0.4
#tool nuget:?package=Tharga.Team.Blazor&version=3.0.4
Tharga Team Blazor
Team management Blazor components for multi-tenant applications. Works with both Blazor Server and Blazor WebAssembly.
Components
- Team management -
TeamSelector,TeamComponent,TeamDialog,InviteUserDialog,TeamInviteView. - API key management -
ApiKeyViewfor team-scoped API keys. Row actions are in a single overflow (⋮) context menu (copy, show/hide, audit, edit roles & scopes, lock, refresh, delete). On create or regenerate the key is shown once in a reveal dialog with a copy button and a "shown only once / not stored" warning — required because withAutoLockKeysthe key is locked immediately. Shows Created and Last used columns per key (SystemApiKeyViewshows the same for system keys); the Last used tooltip lists Created / Expiry / Created by (falling back to "System" for keys with no recorded creator, e.g. auto-generated). Also shows a Tags column (system-set key-value tags, displayed read-only via an(i)tooltip). Per-component parameters:ShowScopeTooltip(effective-scope(i), default on),ShowScopeOverrides(scope-override editor),ShowRoles(tenant-role editor),ShowLastUsed(Last used column; 60-day expiry warning),ShowExpiryDatePicker,ShowTags(bool?— null = auto-show when any key has tags),ChipTagKeys,ShowAuditLogButton,AllowGridSorting(sort by Name / Last used, default on, Name ascending),AllowGridFiltering(case-insensitive Name text filter, default off),ShowPrivateKeys(None/Mine/All— include owner-scoped "private" keys; default None) andAllowPrivilegedAccess(let Administrator/Owner see private keys whenAll; view-only).TeamComponentsharesShowScopeTooltip/ShowScopeOverrides/ShowRoles;SystemApiKeyViewuses global system scopes (o.ConfigureSystemScopes). Access is gated on theapikey:managescope; cross-team access comes from mapping a role to system scopes (o.ConfigureSystemRoles), not per-component role parameters. "Last used" writes are throttled byApiKeyOptions.LastUsedThrottle(default 1 min). - Scope explorer -
ScopeViewshows which scopes a member would have: pick an access level (single-select bar; Owner/Administrator are merged since they grant the same scopes) and roles (multi-select bar), and scopes not granted by the selection are greyed out. Defaults to the signed-in member's own access level, roles, and scope overrides (overrides are highlighted with a ⭐ and anOverridebadge). Built dynamically fromIScopeRegistry/ITenantRoleRegistry, so it always reflects the live configuration (no hard-coded list). Parameters:ShowDescription(default on),ShowAccessLevelSelector(default on),ShowRoles(default on; the roles bar auto-hides when no tenant roles are configured),AllowGridSorting(sort by scope name, default on),AllowGridFiltering(case-insensitive name filter, default off). Shows a friendly notice when no scopes are configured. - User management -
UserProfileView,UsersView. - Authentication -
LoginDisplaywith login/logout and team navigation. - Claims augmentation -
TeamClaimsAuthenticationStateProvideraddsTeamKey,AccessLevel, role, and scope claims. Compatible with all hosting models. - Scope enforcement in the circuit -
AddThargaTeamBlazorregisters a circuit-awareITeamPrincipalAccessor, so[RequireScope]/[RequireAccessLevel]on services (registered withAddScopedWithScopes/AddScopedWithAccessLevel) enforce when called from interactive Blazor Server components, not just from controllers/API. - Audit -
AuditLogViewfor viewing audit logs with charts and filtering.
Quick Start (recommended)
Use AddThargaPlatform to register all Platform services in one call:
builder.AddThargaPlatform(o =>
{
o.Blazor.Title = "My App";
o.Blazor.RegisterTeamService<MyTeamService, MyUserService>();
});
var app = builder.Build();
app.UseThargaPlatform();
This registers auth (Azure AD + OIDC), API key authentication, Blazor components, and controllers with sensible defaults. See the main README for the full setup including MongoDB.
Individual Registration
For partial or custom setups, use the individual methods:
Authentication
builder.AddThargaAuth(); // registers auth services
app.UseThargaAuth(); // maps /login and /logout endpoints
Requires an AzureAd section in appsettings.json:
{
"AzureAd": {
"Authority": "https://<tenant>.ciamlogin.com/<domain>",
"ClientId": "<client-id>",
"TenantId": "<tenant-id>",
"CallbackPath": "/signin-oidc"
}
}
Team management
builder.Services.AddThargaTeamBlazor(o =>
{
o.Title = "My App";
o.RegisterTeamService<MyTeamService, MyUserService>();
});
UI components:
<LoginDisplay />— profile menu with Gravatar when authenticated, login button when not.<UserProfileView />— displays the user's profile info and authentication claims.
Dependencies
- Tharga.Blazor - Generic UI components.
- Tharga.Team - Domain models and authorization primitives.
- Tharga.Team.Service - Audit types for AuditLogView.
Related packages
| Package | Description |
|---|---|
| Tharga.Team.MongoDB | MongoDB persistence for teams and users |
| Tharga.Team.Service | Server-side API key auth, Swagger, audit logging |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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.Identity.Web (>= 4.9.0)
- System.Linq.Async (>= 7.0.1)
- Tharga.Blazor (>= 2.1.6)
- Tharga.Team (>= 3.0.4)
- Tharga.Team.Service (>= 3.0.4)
-
net9.0
- Microsoft.Identity.Web (>= 4.9.0)
- System.Linq.Async (>= 7.0.1)
- Tharga.Blazor (>= 2.1.6)
- Tharga.Team (>= 3.0.4)
- Tharga.Team.Service (>= 3.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.4 | 0 | 6/14/2026 |
| 3.0.3 | 81 | 6/11/2026 |
| 3.0.2 | 107 | 6/4/2026 |
| 3.0.1 | 99 | 6/2/2026 |
| 3.0.0 | 101 | 6/2/2026 |
| 2.1.3 | 98 | 5/30/2026 |
| 2.1.2 | 91 | 5/29/2026 |
| 2.1.1 | 99 | 5/26/2026 |
| 2.1.0 | 98 | 5/18/2026 |
| 2.0.18 | 170 | 5/11/2026 |
| 2.0.17 | 112 | 5/10/2026 |
| 2.0.16 | 100 | 5/7/2026 |
| 2.0.15 | 137 | 4/29/2026 |
| 2.0.14 | 103 | 4/29/2026 |
| 2.0.13 | 113 | 4/21/2026 |
| 2.0.12 | 105 | 4/20/2026 |
| 2.0.11 | 130 | 4/18/2026 |
| 2.0.10 | 111 | 4/17/2026 |
| 2.0.9 | 101 | 4/17/2026 |
| 2.0.8 | 125 | 4/8/2026 |