Protección de Datos
Cómo Rela AI cifra, aísla y protege los datos operativos de cada tenant: at-rest, en tránsito, secretos en GCP Secret Manager, retención configurable y cumplimiento GDPR.
Protección de Datos
Rela AI procesa datos industriales sensibles — lecturas de sensores, contratos con clientes, conversaciones de WhatsApp, documentos extraídos — y cada uno exige un nivel de protección distinto. Esta página explica cómo se cifra, aísla, retiene y se elimina la información dentro de la plataforma.
¿Para qué sirve?
Una plataforma que consolida el historial operativo de una planta industrial es un objetivo valioso para un atacante y un riesgo de cumplimiento si no cumple con normativas locales (GDPR en Europa, LFPDPPP en México, LPDP en Argentina). La protección de datos es lo que permite a un director de TI firmar el acuerdo sin levantar riesgos imposibles de cerrar.
- Aislamiento multi-tenant — un tenant nunca ve los datos de otro.
- Cifrado — at-rest en MongoDB/GCS, en tránsito TLS 1.3.
- Secret management — credenciales externas fuera de la base de datos.
- Retención configurable — borrar datos antiguos según política del tenant.
- Derecho al olvido — exportar y borrar datos de un sujeto específico.
¿Cómo funciona?
flowchart LR
C[Cliente] -->|TLS 1.3| LB[Load Balancer]
LB --> API[FastAPI<br/>JWT + tenant_id]
API --> S[Scope al tenant_id]
S --> M[(MongoDB<br/>at-rest AES-256)]
S --> G[(GCS<br/>at-rest AES-256)]
API --> SM[(GCP Secret Manager<br/>MQTT / Postmark / APIs externas)]
M --> R[Jobs de retención]
R -->|TTL MongoDB| Prune[Borrado automático]- Cifrado en tránsito. Todo request entra por HTTPS (TLS 1.3). HSTS habilitado con
max-age=63072000; includeSubDomains; preload. - Cifrado at-rest. MongoDB Atlas y GCS cifran con AES-256 gestionado por GCP KMS. Las claves rotan cada 90 días sin downtime.
- Aislamiento por tenant. Cada documento en MongoDB lleva
tenant_idy cada query lo filtra (enforced a nivel de service). No hay colecciones cruzadas. - Secret management. Credenciales de integraciones (broker MQTT, API keys de Postmark, tokens externos) viven en GCP Secret Manager. Sólo el service account del backend tiene acceso; jamás aparecen en el código, logs o JSON responses.
- Retención. Cada colección operativa puede configurar TTL (
_machine_events: 90d default,_alerts: 180d,_audit_trail: 7 años). El TTL lo maneja MongoDB nativamente. - Derecho al olvido. Endpoint
POST /api/v1/privacy/erase-subjectmarca y borra todo documento asociado a un sujeto (nombre, teléfono, email) dentro del tenant — cumple GDPR Art. 17.
Parámetros de configuración
| Parámetro | Default | Significado |
|---|---|---|
retention.machine_events_days | 90 | Días que se conservan los eventos raw antes de borrado por TTL. |
retention.alerts_days | 180 | Días para la colección _alerts consolidada. |
retention.conversations_days | 365 | Historial de conversaciones WhatsApp/email. |
retention.audit_trail_days | 2555 (7 años) | Audit trail — no se puede reducir bajo 365. |
retention.extracted_records_days | 1825 (5 años) | Documentos extraídos con IA. |
encryption.at_rest | AES-256 | Fijo — no configurable. |
encryption.in_transit | TLS 1.3 | Fijo — no configurable. |
pii.auto_redact | false | Si true, Rela detecta PII (email/teléfono) en transcripciones y la reemplaza por [redacted] antes de almacenar. |
¿Cómo usarlo?
Configurar retención
- Administración → Protección de Datos → Retención.
- Ajustar los días por colección.
- Guardar. Los TTL de MongoDB se actualizan en la próxima sync (típicamente < 5 min).
Reducir retención no borra retroactivamente — sólo aplica a los documentos que crucen el nuevo umbral después del cambio. Para purgar datos históricos manualmente, usar el endpoint de borrado selectivo.
Exportar datos de un sujeto (GDPR Art. 15, derecho de acceso)
POST /api/v1/privacy/export-subject
{
"subject_id": "juan.perez@cliente.com",
"format": "json"
}Responde con un signed URL a un ZIP conteniendo: conversaciones, registros extraídos, tareas asociadas, respuestas CSAT, audit trail de acciones hechas sobre el sujeto. URL válida 24 h.
Borrar datos de un sujeto (GDPR Art. 17, derecho al olvido)
POST /api/v1/privacy/erase-subject
{
"subject_id": "juan.perez@cliente.com",
"reason": "request from data subject",
"preserve_audit": true
}preserve_audit=true mantiene el audit trail pero lo redacta: reemplaza el subject_id por un hash SHA-256 irreversible. Cumple la obligación legal sin romper compliance con el audit trail.
Auto-redact de PII en transcripciones
Para conversaciones donde el usuario podría mandar PII de terceros (ej: agente que pide datos bancarios):
- Administración → Protección de Datos → PII Auto-redact →
on. - Elegir categorías:
email,phone,id_number,credit_card.
Las transcripciones almacenadas en _conversations mantienen el contexto conversacional pero reemplazan los tokens detectados por [redacted:<tipo>].
Casos de uso
1 · Auditoría GDPR en onboarding de cliente UE. Una empresa europea evalúa Rela AI. Durante la due-diligence legal pide: cifrado at-rest (✓ AES-256), borrado de datos a petición (✓ endpoint de erase-subject), retención configurable (✓ per-tenant), location de datos (✓ GCS región europe-west1). Onboarding cerrado sin bloqueos legales.
2 · Reducción de retención tras migración.
Un cliente migra de un sistema legacy con 7 años de eventos. En Rela AI decide conservar sólo 2 años de _machine_events (los anteriores los archivó en su data lake). Cambia retention.machine_events_days=730, guarda. Los eventos más viejos que 730 días se borran en el próximo ciclo de TTL (~24 h).
3 · Ex-empleado pide borrado de sus datos.
Un ex-técnico solicita el derecho al olvido. El admin dispara POST /api/v1/privacy/erase-subject con su email. El sistema: borra su conversación con el agente de soporte, elimina su respuesta CSAT, redacta su email del audit trail con hash SHA-256. La auditoría conserva "usuario anónimo creó tarea X" pero ya no se puede enlazar al sujeto. Compliance cerrado.
Limitaciones y supuestos
- La redacción de PII es best-effort. El detector de patterns de email/teléfono funciona bien; para identificadores locales específicos (CURP mexicano, codice fiscale italiano) puede fallar. No dependas al 100% — revisá muestras.
- El
preserve_audit=falsees destructivo. Si lo usás, incluso el audit trail pierde la referencia — considerá las obligaciones legales locales antes. - Los signed URLs de export son temporales (24 h). Si el sujeto no descarga a tiempo, regenerá con un nuevo request.
- Reducir retención NO purga históricos instantáneamente. TTL de MongoDB corre cada ~24 h; para purgas inmediatas usar
POST /api/v1/privacy/purge-oldcon unolder_thanespecífico. - GCS data residency es región-fija al setup. Cambiar de región requiere re-provisionar el tenant.
Beneficios clave
- Cifrado end-to-end: TLS 1.3 en tránsito, AES-256 at-rest con rotación de claves cada 90 días.
- Aislamiento multi-tenant enforced a nivel de service, no solo de query filter.
- Secrets externos vivientes en GCP Secret Manager, nunca en DB ni código.
- Retención configurable per-tenant con TTL nativo de MongoDB.
- Cumplimiento GDPR: endpoints dedicados para export y erase.
- Auto-redact de PII para proteger datos de terceros mencionados en conversaciones.
- Audit trail inmutable que sobrevive a la redacción del sujeto.
Tiempo de Inactividad de Sesión
Las sesiones autenticadas en conversaciones expiran automáticamente después de un período de inactividad y tienen un límite absoluto de 24 horas. Esto evita que una sesión quede abierta indefinidamente.
Facturación y Suscripciones
Planes de Rela AI, qué incluye cada uno, cómo se mide el uso mensual, y cuándo es momento de cambiar a un plan mayor.