Eventos y auditoría
HistorialCambios es una bitácora inmutable que almacena cada modificación relevante del dominio. Sirve como fuente única de verdad para auditorías internas y solicitudes externas.
Eventos de dominio
| Evento | Emisor | Payload clave | Persistencia |
|---|---|---|---|
proyecto.creado | API | proyectoId, titulo, institucion | sí |
proyecto.actualizado | API | proyectoId, campo, valorAnterior, valorNuevo | sí |
evidencia.subida | Frontend | proyectoId, tipo, url, hash | sí |
evidencia.eliminada | Frontend | proyectoId, evidenciaId, motivo | sí |
proyecto.estado.cambiado | Backend | proyectoId, estadoAnterior, estadoNuevo | sí |
usuario.verificado | Backend | usuarioId, metodo | sí |
Convención de nombres: <agregado>.<verbo> y payloads inmutables.
Ejemplos de payload
{
"evento": "proyecto.creado",
"proyectoId": 123,
"titulo": "Aula verde",
"institucion": "Escuela N° 1"
}
{
"evento": "evidencia.eliminada",
"proyectoId": 123,
"evidenciaId": 456,
"motivo": "Contenido inapropiado"
}
Política de retención
Los registros de HistorialCambios se conservan 6 meses posteriores al cierre del proyecto y luego se purgan según la política de retención.
Riesgos o limitaciones de auditoría
- Una falla de red del cliente podría evitar el envío de un evento.
- Las marcas de tiempo dependen del reloj del servidor.
- El acceso a los registros está restringido y requiere trazabilidad adicional.