Squash and merge of version-0.1 Co-authored-by: James Wampler <james@wamp.dev> Co-committed-by: James Wampler <james@wamp.dev>
68 lines
3.1 KiB
Markdown
Executable File
68 lines
3.1 KiB
Markdown
Executable File
# 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
|