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
                    
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="Tharga.Team.Blazor" Version="3.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tharga.Team.Blazor" Version="3.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Tharga.Team.Blazor" />
                    
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 Tharga.Team.Blazor --version 3.0.4
                    
#r "nuget: Tharga.Team.Blazor, 3.0.4"
                    
#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 Tharga.Team.Blazor@3.0.4
                    
#: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=Tharga.Team.Blazor&version=3.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Tharga.Team.Blazor&version=3.0.4
                    
Install as a Cake Tool

Tharga Team Blazor

NuGet Nuget License

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 - ApiKeyView for 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 with AutoLockKeys the key is locked immediately. Shows Created and Last used columns per key (SystemApiKeyView shows 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) and AllowPrivilegedAccess (let Administrator/Owner see private keys when All; view-only). TeamComponent shares ShowScopeTooltip/ShowScopeOverrides/ShowRoles; SystemApiKeyView uses global system scopes (o.ConfigureSystemScopes). Access is gated on the apikey:manage scope; cross-team access comes from mapping a role to system scopes (o.ConfigureSystemRoles), not per-component role parameters. "Last used" writes are throttled by ApiKeyOptions.LastUsedThrottle (default 1 min).
  • Scope explorer - ScopeView shows 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 an Override badge). Built dynamically from IScopeRegistry / 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 - LoginDisplay with login/logout and team navigation.
  • Claims augmentation - TeamClaimsAuthenticationStateProvider adds TeamKey, AccessLevel, role, and scope claims. Compatible with all hosting models.
  • Scope enforcement in the circuit - AddThargaTeamBlazor registers a circuit-aware ITeamPrincipalAccessor, so [RequireScope] / [RequireAccessLevel] on services (registered with AddScopedWithScopes / AddScopedWithAccessLevel) enforce when called from interactive Blazor Server components, not just from controllers/API.
  • Audit - AuditLogView for viewing audit logs with charts and filtering.

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

Package Description
Tharga.Team.MongoDB MongoDB persistence for teams and users
Tharga.Team.Service Server-side API key auth, Swagger, audit logging
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed