Files
dh-inspeccion-v2/docs/PHASE_A3.md

42 lines
1.1 KiB
Markdown

# DH Inspección V2 — Fase A3
## Versión
```text
v0.3.0 · Fase A3 · Guards y autorización
```
## Alcance
A3 agrega autorización declarativa y reutilizable al backend:
```ts
@RequirePermissions('users.create')
```
`PermissionsGuard` se registra globalmente después de `AccessTokenGuard`. Los
permisos se resuelven desde las relaciones `user_roles` y `role_permissions`
en cada request autenticado, por lo que los cambios futuros de A4 no dependen
de regenerar el access token.
Reglas:
- endpoint sin sesión: `401 UNAUTHORIZED`;
- sesión válida sin todos los permisos requeridos: `403 FORBIDDEN`;
- sesión con todos los permisos requeridos: acceso permitido;
- permisos de controller y handler se acumulan;
- endpoints marcados con `@Public()` no requieren permisos;
- el frontend podrá ocultar acciones, pero la autorización definitiva siempre
queda en el backend.
## Migraciones
A3 no modifica el esquema y no incluye migraciones. Utiliza la matriz de roles
y permisos creada en A1.
## Exclusiones
- endpoints administrativos de usuarios y roles: A4;
- consultas administrativas de auditoría: A5;
- login y panel web autenticado: A6.