Strawhats.Framework.Authentication
0.6.0
dotnet add package Strawhats.Framework.Authentication --version 0.6.0
NuGet\Install-Package Strawhats.Framework.Authentication -Version 0.6.0
<PackageReference Include="Strawhats.Framework.Authentication" Version="0.6.0" />
<PackageVersion Include="Strawhats.Framework.Authentication" Version="0.6.0" />
<PackageReference Include="Strawhats.Framework.Authentication" />
paket add Strawhats.Framework.Authentication --version 0.6.0
#r "nuget: Strawhats.Framework.Authentication, 0.6.0"
#:package Strawhats.Framework.Authentication@0.6.0
#addin nuget:?package=Strawhats.Framework.Authentication&version=0.6.0
#tool nuget:?package=Strawhats.Framework.Authentication&version=0.6.0
Strawhats.Framework
A reusable, AI-coding-friendly .NET 10 framework for building OAuth authentication servers, microservices, monoliths, and SaaS systems. It bundles a hand-rolled CQRS dispatcher, validation, caching, persistence (repository + unit of work), providers (factory pattern), identity, OAuth2/OIDC primitives, and file/CSV handling — each shipped as a focused NuGet package.
Built with Clean Architecture, DRY, and SOLID throughout. Dependencies point inward only.
Packages
Each Libraries.* project ships as Strawhats.Framework.<Name>:
| Package | Purpose |
|---|---|
Strawhats.Framework.Domain |
Entity/AggregateRoot/ValueObject, domain events, Result/Error |
Strawhats.Framework.Cqrs.Abstractions |
CQRS contracts (IRequest, ISender, IPipelineBehavior, …) + AddCqrs |
Strawhats.Framework.Cqrs |
Base records (Command/Query), pipeline behaviors, DomainEventNotification<T> |
Strawhats.Framework.Cqrs.EntityFrameworkCore |
Transaction behavior, domain-event dispatch interceptor, list/paging extensions |
Strawhats.Framework.Validation |
IValidator<T>, predicate-based Validator<T>, validation pipeline support |
Strawhats.Framework.Caches.Abstractions |
ICacheService, key prefixing, provider factory |
Strawhats.Framework.Caches.InMemory / .Redis / .Couchbase |
Cache backends |
Strawhats.Framework.Persistence.Abstractions |
Repository / unit-of-work / specification contracts |
Strawhats.Framework.Persistence.EntityFrameworkCore |
Generic EF Core Repository<T> / UnitOfWork |
Strawhats.Framework.Providers |
Generic provider factory (IProviderFactory<T> + AddProvider) |
Strawhats.Framework.Files / .Files.Csv |
File storage abstraction + hand-rolled RFC 4180 CSV |
Strawhats.Framework.Sms / .Push |
SMS + push-notification provider abstractions (in-memory + logging backends) |
Strawhats.Framework.Identity |
User/role/claim model, PBKDF2 password hashing |
Strawhats.Framework.Authentication |
JWT issuance/validation, OAuth2/OIDC primitives |
Strawhats.Framework.Messaging.Abstractions / .EntityFrameworkCore |
Transactional outbox contracts + EF Core implementation |
Strawhats.Framework.Observability |
OpenTelemetry tracing/metrics/logs + health checks (AddObservability) |
Quick start
dotnet build Strawhats.Framework.slnx # build everything
dotnet test Strawhats.Framework.slnx # run all tests (integration tests need Docker)
docker compose up --build # run the reference app (see docs/RUNNING.md)
The /src projects are a generic reference application (account registration → login → welcome
mail) that proves the framework end to end — see docs/RUNNING.md. It is not an
OAuth2/OIDC server; that is a dedicated app type a future template will provide.
Documentation
docs/USAGE.md— using the framework for new projects (templates, libraries, multi-system wiring)docs/BUILDING-PLAN.md— the phased roadmap and Definition-of-Done per phasedocs/PROVIDERS.md— the provider factory conventiondocs/RUNNING.md— running the reference app + tests + migrationsCLAUDE.md— architecture rules and conventions
License
Licensed under the Apache License 2.0.
| 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. |
-
net10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Http (>= 10.0.9)
- Microsoft.Extensions.Http.Resilience (>= 10.7.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Options (>= 10.0.9)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.19.1)
- Microsoft.IdentityModel.Tokens (>= 8.19.1)
- Strawhats.Framework.Cqrs.Abstractions (>= 0.6.0)
- Strawhats.Framework.Identity (>= 0.6.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Strawhats.Framework.Authentication:
| Package | Downloads |
|---|---|
|
Strawhats.Framework.Authentication.EntityFrameworkCore
Strawhats.Framework.Authentication.EntityFrameworkCore — part of Strawhats.Framework, a reusable .NET 10 framework for OAuth authentication servers, microservices, monoliths, and SaaS systems (CQRS, Clean Architecture, DDD, providers). |
GitHub repositories
This package is not used by any popular GitHub repositories.