91 lines
1.3 KiB
Markdown
91 lines
1.3 KiB
Markdown
# DH Inspección V2 — Fase A5
|
|
|
|
## Versión
|
|
|
|
```text
|
|
v0.5.0 · Fase A5 · Auditoría, filtros y trazabilidad
|
|
```
|
|
|
|
## Endpoints
|
|
|
|
```text
|
|
GET /api/v3/audit
|
|
GET /api/v3/audit/:id
|
|
```
|
|
|
|
Ambos requieren:
|
|
|
|
```text
|
|
audit.read
|
|
```
|
|
|
|
## Listado
|
|
|
|
El listado devuelve únicamente la información necesaria para una grilla:
|
|
|
|
```text
|
|
fecha/hora
|
|
usuario
|
|
acción
|
|
entidad
|
|
request ID
|
|
origen
|
|
IP
|
|
indicador de detalle
|
|
```
|
|
|
|
Los objetos `beforeData`, `afterData` y `metadata` se reservan para la consulta
|
|
individual, evitando respuestas innecesariamente pesadas.
|
|
|
|
## Filtros
|
|
|
|
```text
|
|
page
|
|
pageSize
|
|
actorUserId
|
|
actorUsername
|
|
action
|
|
source
|
|
entityType
|
|
entityId
|
|
requestId
|
|
from
|
|
to
|
|
search
|
|
```
|
|
|
|
`pageSize` admite hasta 100 resultados. `from` y `to` usan ISO 8601 y se
|
|
rechaza un rango en el que la fecha inicial sea posterior a la final.
|
|
|
|
La respuesta paginada conserva el contrato:
|
|
|
|
```json
|
|
{
|
|
"data": [],
|
|
"meta": {
|
|
"page": 1,
|
|
"pageSize": 25,
|
|
"total": 0,
|
|
"totalPages": 0
|
|
}
|
|
}
|
|
```
|
|
|
|
## Detalle
|
|
|
|
Además de los campos del listado devuelve:
|
|
|
|
```text
|
|
userAgent
|
|
beforeData
|
|
afterData
|
|
metadata
|
|
```
|
|
|
|
La escritura continúa pasando por `sanitizeAuditData`, que elimina passwords,
|
|
hashes, JWT, refresh tokens, cookies, encabezados de autorización y secretos.
|
|
|
|
## Migraciones
|
|
|
|
A5 no cambia el esquema y no incluye migraciones.
|