CreaRack-SL

Decisión: Correo — no guardar cuerpos de mensajes

Contexto

Durante el diseño de la feature Menú Correo F0 (sesión 12-08-2026), el equipo (grill) decidió qué información del buzón Zoho se guarda en D1 y cuál no.

Decisión

NO guardar cuerpos de mensajes en la tabla correo_digests.

Qué SÍ se guarda

  • Remitente (dirección o nombre).
  • Asunto del mensaje.
  • Síntesis “por qué importa” (razón de inclusión en el informe, max 500 chars).
  • Enlace directo al mensaje en el cliente Zoho.

Qué NO se guarda

  • Cuerpo completo del mensaje.
  • Contenido HTML/plain-text.
  • Attachments u metadatos privados.

Justificación

  1. Privacidad: los cuerpos contienen información sensible (clientes, decisiones internas, datos personales). Guardarlos en D1 aumenta superficie de riesgo.
  2. Cumplimiento: reduce carga de cumplimiento normativo (GDPR, CCPA) — menos datos = menos obligaciones de borrado/auditoría.
  3. UX pragmática: el usuario siempre abre el detalle en Zoho (botón “Abrir en Zoho”). Aquí solo se ve un resumen que le permite decidir rápidamente si debe actuar.
  4. Rendimiento: payloads más pequeños en D1, queries más rápidas.

Implicaciones

  • Tabla D1: columna payload contiene solo remitente, asunto, porque, zoho_link (JSON, máx 50 items × 500 chars = ~50KB por pasada).
  • Endpoint: validación en POST que trunca campos a 500 chars.
  • UI: widget y página no puede mostrar preview del cuerpo. Botón “Abrir en Zoho” es obligatorio.
  • Skill /correo: debe sintetizar “por qué importa” en el cliente (Claude) antes de publicar.

Retención

  • Máximo: 30 días desde inserción.
  • Poda: automática en cada POST (DELETE ... WHERE created_at < datetime('now', '-30 days')).
  • Auditoría: cada creación de alerta urgente se loguea en logActivity().

Aprobación

  • Decidido por: grill.
  • Fecha: 2026-08-12.
  • Incorporado en: PR#154.

Véase también

  • [[feature—workspace—correo-menu-f0]]
  • [[entity—functions—endpoint—correo-digest]]
  • [[entity—migrations—table—correo-digests]]
  • [[concept—saas—data-privacy]]
  • [[concept—infra—retention-policy]]