Building out navigation in the admin site
This commit is contained in:
67
docs/api/01_project_setup_output.md
Normal file
67
docs/api/01_project_setup_output.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Step 1 Implementation Output
|
||||
|
||||
## What Was Implemented
|
||||
|
||||
### Solution Structure
|
||||
|
||||
The solution (`MicCheck.slnx`) now contains four projects:
|
||||
|
||||
| Project | Path |
|
||||
|---|---|
|
||||
| `MicCheck.Api` | `src/api/MicCheck.Api/` |
|
||||
| `MicCheck.Infrastructure` | `src/infrastructure/MicCheck.Infrastructure/` |
|
||||
| `MicCheck.Api.Tests.Unit` | `tests/api/MicCheck.Api.Tests.Unit/` |
|
||||
| `MicCheck.Infrastructure.Tests` | `tests/infrastructure/MicCheck.Infrastructure.Tests/` |
|
||||
|
||||
### Projects Created
|
||||
|
||||
**`MicCheck.Infrastructure`** — new class library targeting net10.0 with:
|
||||
- `Microsoft.EntityFrameworkCore` 10.0.5
|
||||
- `Npgsql.EntityFrameworkCore.PostgreSQL` 10.0.1
|
||||
- `Microsoft.EntityFrameworkCore.Design` 10.0.5
|
||||
- Folder structure: `Data/Configurations/`, `Data/Migrations/`
|
||||
|
||||
**`MicCheck.Infrastructure.Tests`** — new NUnit test project targeting net10.0 with:
|
||||
- `NUnit` 4.3.2, `NUnit3TestAdapter` 5.0.0, `NUnit.Analyzers` 4.7.0
|
||||
- `Moq` 4.20.72, `coverlet.collector` 6.0.4
|
||||
- Project reference to `MicCheck.Infrastructure`
|
||||
|
||||
### Projects Updated
|
||||
|
||||
**`MicCheck.Api`** — added:
|
||||
- `TreatWarningsAsErrors`
|
||||
- `Serilog.AspNetCore` 9.0.0
|
||||
- `FluentValidation.AspNetCore` 11.3.0
|
||||
- Project reference to `MicCheck.Infrastructure`
|
||||
- `Program.cs` updated: Serilog bootstrap logger, `AddControllers()`, `AddFluentValidationAutoValidation()`, `AddRateLimiter("AdminApi")`, `MapControllers()`
|
||||
- `appsettings.json` updated: Serilog config section, `ConnectionStrings:DefaultConnection`
|
||||
|
||||
**`MicCheck.Api.Tests.Unit`** — added:
|
||||
- `TreatWarningsAsErrors`
|
||||
- `coverlet.collector` 6.0.4
|
||||
- Project reference to `MicCheck.Infrastructure`
|
||||
|
||||
### Feature Folders Created in MicCheck.Api
|
||||
|
||||
`Features/`, `Environments/`, `Projects/`, `Organizations/`, `Segments/`, `Identities/`, `Audit/`, `Webhooks/`, `ApiKeys/`, `Users/`
|
||||
|
||||
Existing `Auth/` folder retained (equivalent to `Authentication/` in the plan).
|
||||
|
||||
### Files Added
|
||||
|
||||
- `docker-compose.yml` — PostgreSQL 15-alpine + API service with health check
|
||||
- `src/api/MicCheck.Api/Dockerfile` — multi-stage build (SDK → publish → runtime)
|
||||
|
||||
### Deviations from Plan
|
||||
|
||||
- **Scalar instead of Swashbuckle**: The project already used `Scalar.AspNetCore` + `Microsoft.AspNetCore.OpenApi`. This is the recommended approach for .NET 10 and was retained. The API reference UI is at `/scalar` rather than `/swagger`.
|
||||
- **`Auth/` folder**: The existing auth code lives in `Auth/` rather than `Authentication/` as named in the plan. The existing code was not renamed.
|
||||
- **NUnit template version**: `MicCheck.Infrastructure.Tests` was created with `dotnet new nunit` which brought in NUnit 4.3.2 / NUnit3TestAdapter 5.0.0 (slightly different patch versions from the Api test project). Both are current stable releases.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] Solution builds with `dotnet build` with zero warnings
|
||||
- [x] All projects target net10.0 with `LangVersion=latest` and `Nullable=enable`
|
||||
- [x] `dotnet test` runs successfully — 8 tests pass across 2 test projects
|
||||
- [x] API reference UI accessible at `/scalar` (Scalar, not Swagger)
|
||||
- [ ] Docker Compose brings up API and database cleanly — requires Docker; not verified in this step
|
||||
Reference in New Issue
Block a user