chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user