Introduce comprehensive documentation covering architecture (ARCHITECTURE.md), concerns (CONCERNS.md), coding conventions (CONVENTIONS.md), integrations (INTEGRATIONS.md), technology stack (STACK.md), codebase structure (STRUCTURE.md), and testing patterns (TESTING.md). Enhance testing with additional test cases for external sign-in flows, ensuring accurate timestamp recording for identity links.
50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
# Technology Stack
|
|
|
|
## Runtime Summary
|
|
|
|
| Area | Value | Evidence |
|
|
|---|---|---|
|
|
| Primary language | C# (`LangVersion` latest) | `Directory.Build.props` |
|
|
| Runtime | .NET 8, 9, and 10 for source projects | `src/Directory.Build.props` |
|
|
| Package manager | NuGet with central package management | `Directory.Packages.props` |
|
|
| Build system | MSBuild solution with NUKE wrappers | `Elsa.sln`, `build/Build.cs`, `build.sh` |
|
|
|
|
## Production Frameworks and Dependencies
|
|
|
|
| Dependency | Version | Role | Evidence |
|
|
|---|---:|---|---|
|
|
| FastEndpoints | target-dependent 7.1.1/7.2.0 | HTTP endpoint framework | `Directory.Packages.props` |
|
|
| Entity Framework Core | target-dependent 9.0.17/10.0.9 | Durable relational persistence | `Directory.Packages.props` |
|
|
| Microsoft.Extensions.Logging | target-dependent 9.0.17/10.0.9 | Application logging | `Directory.Packages.props` |
|
|
|
|
## Development Toolchain
|
|
|
|
| Tool | Purpose | Evidence |
|
|
|---|---|---|
|
|
| xUnit 2.9.3 | Test framework | `Directory.Packages.props`, `test/Directory.Build.props` |
|
|
| NSubstitute 5.3.0 | Test doubles | `Directory.Packages.props` |
|
|
| coverlet | Coverage with a 10% project threshold | `test/Directory.Build.props` |
|
|
|
|
## Key Commands
|
|
|
|
```bash
|
|
dotnet build Elsa.sln
|
|
dotnet test Elsa.sln
|
|
dotnet test test/integration/Elsa.ExternalAuthentication.IntegrationTests/Elsa.ExternalAuthentication.IntegrationTests.csproj
|
|
./build.sh Test
|
|
```
|
|
|
|
## Environment and Config
|
|
|
|
- ASP.NET Core applications use `appsettings*.json` and environment-variable overrides.
|
|
- Production source enables nullable reference types and implicit usings.
|
|
- External Authentication supports in-memory defaults and optional EF Core providers.
|
|
|
|
## Evidence
|
|
|
|
- `Directory.Build.props`
|
|
- `src/Directory.Build.props`
|
|
- `test/Directory.Build.props`
|
|
- `Directory.Packages.props`
|
|
|