[![Build Status][build-shield]][build-url] [![NuGet Downloads][nuget-shield]][nuget-url] [![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![License][license-shield]][license-url] [![LinkedIn][linkedin-shield]][linkedin-url]
TirsvadCLI Authentication Server Library
Overview
TirsvadCLI Authentication Server is a .NET 10+ authentication server library implementing Clean Architecture. It supports local, network, and cloud deployment (Azure/AWS), and is ready for containerization with Docker.
Project Structure
- src/ — Source code
- TirsvadCLI.AuthenticationServer.Domain — Domain entities and rules
- TirsvadCLI.AuthenticationServer.Core — Application logic, CQRS, services
- TirsvadCLI.AuthenticationServer.Infrastructure — Data access, external services
- TirsvadCLI.AuthenticationServer.Api — ASP.NET Core Web API
- tests/ — Unit and integration tests (mirrors main projects, uses .Test/.Tests suffix)
- docs/ — Documentation (Markdown, Doxygen config in Doxyfile)
- LocalNuget/ — Local NuGet packages
Build & Run
- Build:
dotnet build TirsvadCLI.AuthenticationServer.slnx
- Test:
dotnet test TirsvadCLI.AuthenticationServer.slnx
- Run (API):
dotnet run --project src/TirsvadCLI.AuthenticationServer.Api
Solution-wide MSBuild props/targets are used for consistent builds.
Docker
Containerization is supported via docker-compose.yml and Dockerfile.
Key Dependencies & Patterns
- MediatR (CQRS pattern)
- Microsoft Identity (authentication/authorization)
- EF Core (data access)
- FluentValidation (validation)
- AutoMapper (object mapping)
- Swashbuckle/Swagger (API documentation)
- xUnit (testing)
- TirsvadCLI.AuthenticationServer (business logic)
All NuGet dependencies are managed via Directory.Packages.props with <PackageReference Include="..." /> (no Version attribute in project files).
Documentation
- See docs/ for guides and API reference (Markdown).
- API documentation is generated using Doxygen (Doxyfile in root).
Contributing
- Follow Clean Architecture principles.
- Place tests in tests/, mirroring main projects and using .Test/.Tests suffix.
- Use solution-wide MSBuild props/targets.
- Adhere to naming and folder conventions.
License
See LICENSE file for details.