FullStackHero.Modules.Identity
10.0.0-rc.2
This is a prerelease version of FullStackHero.Modules.Identity.
dotnet add package FullStackHero.Modules.Identity --version 10.0.0-rc.2
NuGet\Install-Package FullStackHero.Modules.Identity -Version 10.0.0-rc.2
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="FullStackHero.Modules.Identity" Version="10.0.0-rc.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FullStackHero.Modules.Identity" Version="10.0.0-rc.2" />
<PackageReference Include="FullStackHero.Modules.Identity" />
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 FullStackHero.Modules.Identity --version 10.0.0-rc.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FullStackHero.Modules.Identity, 10.0.0-rc.2"
#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 FullStackHero.Modules.Identity@10.0.0-rc.2
#: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=FullStackHero.Modules.Identity&version=10.0.0-rc.2&prerelease
#tool nuget:?package=FullStackHero.Modules.Identity&version=10.0.0-rc.2&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
FullStackHero .NET 10 Starter Kit
An opinionated, production-first starter for building multi-tenant SaaS and enterprise APIs on .NET 10. You get ready-to-ship Identity, Multitenancy, Auditing, caching, mailing, jobs, storage, health, OpenAPI, and OpenTelemetry—wired through Minimal APIs, Mediator, and EF Core.
Why teams pick this
- Modular vertical slices: drop
Modules.Identity,Modules.Multitenancy,Modules.Auditinginto any API and let the module loader wire endpoints. - Battle-tested building blocks: persistence + specifications, distributed caching, mailing, jobs via Hangfire, storage abstractions, and web host primitives (auth, rate limiting, versioning, CORS, exception handling).
- Cloud-ready out of the box: Aspire AppHost spins up Postgres + Redis + the Playground API/Blazor with OTLP tracing enabled.
- Multi-tenant from day one: Finbuckle-powered tenancy across Identity and your module DbContexts; helpers to migrate and seed tenant databases on startup.
- Observability baked in: OpenTelemetry traces/metrics/logs, structured logging, health checks, and security/exception auditing.
Stack highlights
- .NET 10, C# latest, Minimal APIs, Mediator for commands/queries, FluentValidation.
- EF Core 10 with domain events + specifications; Postgres by default, SQL Server ready.
- ASP.NET Identity with JWT issuance/refresh, roles/permissions, rate-limited auth endpoints.
- Hangfire for background jobs; Redis-backed distributed cache; pluggable storage.
- API versioning, rate limiting, CORS, security headers, OpenAPI (Swagger) + Scalar docs.
Repository map
src/BuildingBlocks— Core abstractions (DDD primitives, exceptions), Persistence, Caching, Mailing, Jobs, Storage, Web host wiring.src/Modules—Identity,Multitenancy,Auditingruntime + contracts projects.src/Playground— Reference host (Playground.Api), Aspire app host (FSH.Playground.AppHost), Blazor UI, Postgres migrations.src/Tests— Architecture tests that enforce layering and module boundaries.docs/framework— Deep dives on architecture, modules, and developer recipes.terraform— Infra as code scaffolding (optional starting point).
Run it now (Aspire)
Prereqs: .NET 10 SDK, Aspire workload, Docker running (for Postgres/Redis).
- Restore:
dotnet restore src/FSH.Framework.slnx - Start everything:
dotnet run --project src/Playground/FSH.Playground.AppHost- Aspire brings up Postgres + Redis containers, wires env vars, launches the Playground API and Blazor front end, and enables OTLP export on https://localhost:4317.
- Hit the API:
https://localhost:5285(Swagger/Scalar and module endpoints under/api/v1/...).
Run the API only
- Set env vars or appsettings for
DatabaseOptions__Provider,DatabaseOptions__ConnectionString,DatabaseOptions__MigrationsAssembly,CachingOptions__Redis, and JWT options. - Run:
dotnet run --project src/Playground/Playground.Api - The host applies migrations/seeding via
UseHeroMultiTenantDatabases()and maps module endpoints viaUseHeroPlatform.
Bring the framework into your API
- Reference the building block and module projects you need.
- In
Program.cs:- Register Mediator with assemblies containing your commands/queries and module handlers.
- Call
builder.AddHeroPlatform(...)to enable auth, OpenAPI, caching, mailing, jobs, health, OTel, rate limiting. - Call
builder.AddModules(moduleAssemblies)andapp.UseHeroPlatform(p => p.MapModules = true);.
- Configure connection strings, Redis, JWT, CORS, and OTel endpoints via configuration. Example wiring lives in
src/Playground/Playground.Api/Program.cs.
Included modules
- Identity — ASP.NET Identity + JWT issuance/refresh, user/role/permission management, profile image storage, login/refresh auditing, health checks.
- Multitenancy — Tenant provisioning, migrations, status/upgrade APIs, tenant-aware EF Core contexts, health checks.
- Auditing — Security/exception/activity auditing with queryable endpoints; plugs into global exception handling and Identity events.
Development notes
- Target framework:
net10.0; nullable enabled; analyzers on. - Tests:
dotnet test src/FSH.Framework.slnx(includes architecture guardrails). - Want the deeper story? Start with
docs/framework/architecture.mdand the developer cookbook indocs/framework/developer-cookbook.md.
Built and maintained by Mukesh Murugan for teams that want to ship faster without sacrificing architecture discipline.
| Product | Versions 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.
-
net10.0
- Asp.Versioning.Http (>= 8.1.0)
- Asp.Versioning.Mvc (>= 8.1.0)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.0)
- AWSSDK.S3 (>= 3.7.405)
- Finbuckle.MultiTenant (>= 10.0.0)
- Finbuckle.MultiTenant.Abstractions (>= 10.0.0)
- Finbuckle.MultiTenant.EntityFrameworkCore (>= 10.0.0)
- Finbuckle.MultiTenant.Identity.EntityFrameworkCore (>= 10.0.0)
- FluentValidation (>= 12.1.1)
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- FullStackHero.Framework.Caching (>= 10.0.0-rc.2)
- FullStackHero.Framework.Eventing (>= 10.0.0-rc.2)
- FullStackHero.Framework.Jobs (>= 10.0.0-rc.2)
- FullStackHero.Framework.Mailing (>= 10.0.0-rc.2)
- FullStackHero.Framework.Persistence (>= 10.0.0-rc.2)
- FullStackHero.Framework.Web (>= 10.0.0-rc.2)
- FullStackHero.Modules.Auditing.Contracts (>= 10.0.0-rc.2)
- FullStackHero.Modules.Identity.Contracts (>= 10.0.0-rc.2)
- Hangfire (>= 1.8.22)
- Hangfire.Core (>= 1.8.22)
- Hangfire.MemoryStorage (>= 1.8.1.2)
- Hangfire.PostgreSql (>= 1.20.12)
- MailKit (>= 4.14.1)
- Mediator.Abstractions (>= 3.1.0-preview.14)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.0)
- Microsoft.AspNetCore.OpenApi (>= 10.0.0)
- Microsoft.EntityFrameworkCore (>= 10.0.0)
- Microsoft.EntityFrameworkCore.Abstractions (>= 10.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.0)
- Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.0)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore (>= 10.0.0)
- MimeKit (>= 4.14.0)
- Newtonsoft.Json (>= 13.0.4)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 10.0.0)
- Npgsql.OpenTelemetry (>= 10.0.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.14.0)
- OpenTelemetry.Extensions.Hosting (>= 1.14.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.14.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.14.0-beta.2)
- OpenTelemetry.Instrumentation.Http (>= 1.14.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.14.0)
- OpenTelemetry.Instrumentation.StackExchangeRedis (>= 1.14.0-beta.1)
- Scalar.AspNetCore (>= 2.11.0)
- Serilog (>= 4.3.1-dev-02395)
- Serilog.AspNetCore (>= 10.0.0)
- Serilog.Enrichers.CorrelationId (>= 3.0.1)
- Serilog.Enrichers.Environment (>= 3.0.1)
- Serilog.Enrichers.Process (>= 3.0.0)
- Serilog.Enrichers.Span (>= 3.1.0)
- Serilog.Enrichers.Thread (>= 4.0.0)
- Serilog.Sinks.OpenTelemetry (>= 4.2.1-nblumhardt-02317)
- System.IdentityModel.Tokens.Jwt (>= 8.15.0)
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 |
|---|---|---|
| 10.0.0-rc.2 | 215 | 12/18/2025 |
| 10.0.0-rc.1 | 217 | 12/18/2025 |