UDT-001: Login (scaffolding + JWT RS256 end-to-end) #1

Merged
dmolinari merged 14 commits from feature/UDT-001 into main 2026-04-14 14:44:28 +00:00
Owner

Resumen

Primera UDT del roadmap. Scaffolding completo del proyecto + login end-to-end.

Alcance

Backend (.NET 10 + Clean Architecture)

  • 4 proyectos: SIGCM2.Api / .Application / .Domain / .Infrastructure
  • POST /api/v1/auth/login con JWT RS256 (par RSA 2048, keys gitignored)
  • BCrypt cost 12, Dapper + SQL Server, FluentValidation, Serilog
  • Dispatcher manual (sin MediatR)

Frontend (Vite 6 + React 19 + TS strict + Tailwind 4)

  • LoginPage + ProtectedRoute/PublicRoute + Zustand authStore (persist)
  • TanStack Query + Axios, form validation

DB

  • Migración V001__create_usuario.sql + seed admin (BCrypt)
  • DB dedicada SIGCM2_Test para integration tests con Respawn

Tests

  • 30 backend (unit + integration) + 11 frontend = 41 verdes

Capabilities delivered

  • auth-login — login endpoint + JWT
  • user-management-core — tabla Usuario + seed
  • platform-scaffold — Clean Arch + Serilog + CORS + Scalar

Deferred

  • Logout + refresh real → UDT-002
  • Registro → UDT-003
  • RBAC granular → UDT-004/005
  • Middleware auth → UDT-006
  • CI/CD Gitea

Test plan

  • dotnet build -p:TreatWarningsAsErrors=true → 0 errors
  • dotnet test → 30/30 (con TECNICA3 accesible)
  • cd src/web && npm test -- --run → 11/11
  • cd src/web && npm run build → exit 0
  • Smoke manual: login UI con admin / @Diego550@ → JWT válido verificable en jwt.io con public key
## Resumen Primera UDT del roadmap. Scaffolding completo del proyecto + login end-to-end. ## Alcance ### Backend (.NET 10 + Clean Architecture) - 4 proyectos: `SIGCM2.Api` / `.Application` / `.Domain` / `.Infrastructure` - `POST /api/v1/auth/login` con JWT RS256 (par RSA 2048, keys gitignored) - BCrypt cost 12, Dapper + SQL Server, FluentValidation, Serilog - Dispatcher manual (sin MediatR) ### Frontend (Vite 6 + React 19 + TS strict + Tailwind 4) - LoginPage + ProtectedRoute/PublicRoute + Zustand authStore (persist) - TanStack Query + Axios, form validation ### DB - Migración `V001__create_usuario.sql` + seed admin (BCrypt) - DB dedicada `SIGCM2_Test` para integration tests con Respawn ### Tests - 30 backend (unit + integration) + 11 frontend = **41 verdes** ## Capabilities delivered - `auth-login` — login endpoint + JWT - `user-management-core` — tabla Usuario + seed - `platform-scaffold` — Clean Arch + Serilog + CORS + Scalar ## Deferred - Logout + refresh real → UDT-002 - Registro → UDT-003 - RBAC granular → UDT-004/005 - Middleware auth → UDT-006 - CI/CD Gitea ## Test plan - [x] `dotnet build -p:TreatWarningsAsErrors=true` → 0 errors - [x] `dotnet test` → 30/30 (con TECNICA3 accesible) - [x] `cd src/web && npm test -- --run` → 11/11 - [x] `cd src/web && npm run build` → exit 0 - [x] Smoke manual: login UI con `admin` / `@Diego550@` → JWT válido verificable en jwt.io con public key
dmolinari added 14 commits 2026-04-14 14:44:23 +00:00
dmolinari merged commit b3d78ff56d into main 2026-04-14 14:44:28 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmolinari/SIG-CM2.0#1