feat: log de auditoría técnica por agente
Nueva tabla umind_eventos_log + tab "Auditoría" en el panel: errores y eventos que hasta ahora solo se podían ver pidiendo los logs del servidor (fallos al llamar al AI, respuestas sin texto usable, tools/webhooks que fallan, tokens de correo que no se pueden refrescar, firmas de WhatsApp inválidas, errores procesando mensajes de Telegram/WhatsApp) quedan registrados por agente, visibles directo en el panel con el JSON crudo expandible para diagnosticar sin acceso al servidor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
5febbd24d5
commit
997e3cc790
@@ -582,3 +582,20 @@ func UmindChatPruebaHandler(c *fiber.Ctx) error {
|
||||
}
|
||||
return c.JSON(fiber.Map{"session_id": sessionID, "respuesta": respuesta})
|
||||
}
|
||||
|
||||
// ─── Auditoría ──────────────────────────────────────────────────────────────
|
||||
|
||||
// GetUmindEventosHandler expone el log de auditoría técnica de un agente —
|
||||
// errores/eventos que antes solo se podían ver pidiendo los logs del
|
||||
// servidor (fallos de AI, tools, correo, canales).
|
||||
func GetUmindEventosHandler(c *fiber.Ctx) error {
|
||||
agenteID, err := strconv.ParseUint(c.Query("agente_id"), 10, 64)
|
||||
if err != nil || agenteID == 0 {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "agente_id requerido"})
|
||||
}
|
||||
items, err := models.GetUmindEventosByAgente(uint(agenteID), 100)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"items": items})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user