Protezione dei Dati
Come Rela AI cifra, isola e protegge i dati operativi di ogni tenant: at-rest, in transito, segreti in GCP Secret Manager, retention configurabile e compliance GDPR.
Protezione dei Dati
Rela AI elabora dati industriali sensibili — letture di sensori, contratti con clienti, conversazioni WhatsApp, documenti estratti — e ognuno richiede un livello di protezione diverso. Questa pagina descrive come l'informazione viene cifrata, isolata, conservata ed eliminata nella piattaforma.
A cosa serve
Una piattaforma che consolida la storia operativa di un impianto è un bersaglio prezioso per un attaccante e un rischio di compliance se non rispetta le normative locali (GDPR in Europa, LFPDPPP in Messico, LPDP in Argentina). La protezione dei dati è ciò che permette a un CIO di firmare l'accordo senza sollevare rischi impossibili da chiudere.
- Isolamento multi-tenant — un tenant non vede mai i dati di un altro.
- Crittografia — at-rest in MongoDB/GCS, in transito TLS 1.3.
- Secret management — credenziali esterne fuori dal database.
- Retention configurabile — eliminare dati obsoleti secondo la policy del tenant.
- Diritto all'oblio — esportare e cancellare i dati di un soggetto specifico.
Come funziona
flowchart LR
C[Client] -->|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 / API esterne)]
M --> R[Job di retention]
R -->|TTL MongoDB| Prune[Cancellazione automatica]- Crittografia in transito. Ogni richiesta entra via HTTPS (TLS 1.3). HSTS abilitato con
max-age=63072000; includeSubDomains; preload. - Crittografia at-rest. MongoDB Atlas e GCS cifrano con AES-256 gestito da GCP KMS. Le chiavi ruotano ogni 90 giorni senza downtime.
- Isolamento per tenant. Ogni documento in MongoDB porta
tenant_ide ogni query filtra per esso (enforced a livello di service). Nessuna collezione cross-tenant. - Secret management. Credenziali di integrazioni (broker MQTT, API key Postmark, token esterni) vivono in GCP Secret Manager. Solo il service account del backend vi accede; mai appaiono in codice, log o JSON response.
- Retention. Ogni collezione operativa può configurare il TTL (
_machine_events: 90d default,_alerts: 180d,_audit_trail: 7 anni). Il TTL è gestito nativamente da MongoDB. - Diritto all'oblio. Endpoint
POST /api/v1/privacy/erase-subjectflagga e cancella ogni documento collegato a un soggetto (nome, telefono, email) nel tenant — conforme al GDPR Art. 17.
Parametri di configurazione
| Parametro | Default | Significato |
|---|---|---|
retention.machine_events_days | 90 | Giorni di conservazione degli eventi raw prima della cancellazione via TTL. |
retention.alerts_days | 180 | Giorni per la collezione _alerts consolidata. |
retention.conversations_days | 365 | Storico delle conversazioni WhatsApp/email. |
retention.audit_trail_days | 2555 (7 anni) | Audit trail — non riducibile sotto 365. |
retention.extracted_records_days | 1825 (5 anni) | Documenti estratti con IA. |
encryption.at_rest | AES-256 | Fisso — non configurabile. |
encryption.in_transit | TLS 1.3 | Fisso — non configurabile. |
pii.auto_redact | false | Se true, Rela rileva PII (email/telefono) nelle trascrizioni e le sostituisce con [redacted] prima dell'archiviazione. |
Come usarlo
Configurare la retention
- Amministrazione → Protezione dei Dati → Retention.
- Regolare i giorni per collezione.
- Salvare. I TTL di MongoDB si aggiornano alla successiva sync (tipicamente < 5 min).
Ridurre la retention NON cancella retroattivamente — applica solo ai documenti che attraversano la nuova soglia dopo il cambio. Per purgare storici manualmente, usare l'endpoint di cancellazione selettiva.
Esportare dati di un soggetto (GDPR Art. 15, diritto di accesso)
POST /api/v1/privacy/export-subject
{
"subject_id": "mario.rossi@cliente.it",
"format": "json"
}Risponde con un signed URL a uno ZIP contenente: conversazioni, record estratti, attività associate, risposte CSAT, audit trail di azioni eseguite sul soggetto. URL valido 24 h.
Cancellare dati di un soggetto (GDPR Art. 17, diritto all'oblio)
POST /api/v1/privacy/erase-subject
{
"subject_id": "mario.rossi@cliente.it",
"reason": "richiesta dal soggetto interessato",
"preserve_audit": true
}preserve_audit=true mantiene l'audit trail ma lo redige: sostituisce il subject_id con un hash SHA-256 irreversibile. Soddisfa l'obbligo legale senza rompere la compliance dell'audit trail.
Auto-redact di PII nelle trascrizioni
Per conversazioni in cui l'utente potrebbe inviare PII di terzi (es: agente che chiede dati bancari):
- Amministrazione → Protezione dei Dati → PII Auto-redact →
on. - Scegliere categorie:
email,phone,id_number,credit_card.
Le trascrizioni salvate in _conversations mantengono il contesto conversazionale ma sostituiscono i token rilevati con [redacted:<tipo>].
Casi d'uso
1 · Audit GDPR nell'onboarding di cliente UE. Un'azienda europea valuta Rela AI. Durante la due-diligence legale chiedono: cifratura at-rest (✓ AES-256), cancellazione dati su richiesta (✓ endpoint erase-subject), retention configurabile (✓ per-tenant), residenza dei dati (✓ regione GCS europe-west1). Onboarding chiuso senza blocchi legali.
2 · Riduzione di retention dopo migrazione.
Un cliente migra da un sistema legacy con 7 anni di eventi. In Rela AI decide di tenere solo 2 anni di _machine_events (quelli più vecchi archiviati nel data lake). Imposta retention.machine_events_days=730, salva. Gli eventi più vecchi di 730 giorni vengono cancellati al prossimo ciclo di TTL (~24 h).
3 · Ex-dipendente chiede la cancellazione dei propri dati.
Un ex-tecnico richiede il diritto all'oblio. L'admin invoca POST /api/v1/privacy/erase-subject con la sua email. Il sistema: cancella la sua conversazione con l'agente di supporto, elimina la sua risposta CSAT, redige la sua email dall'audit trail con hash SHA-256. L'audit preserva "utente anonimo ha creato attività X" ma non è più collegabile al soggetto. Compliance chiusa.
Limiti e assunzioni
- Il redact di PII è best-effort. Il detector di pattern email/telefono funziona bene; per identificatori locali specifici (CURP messicano, codice fiscale italiano) può fallire. Non affidarsi al 100% — controllare a campione.
- Il
preserve_audit=falseè distruttivo. Se lo usi, anche l'audit trail perde il riferimento — valuta gli obblighi legali locali prima. - I signed URL di export sono temporanei (24 h). Se il soggetto non scarica in tempo, rigenera.
- Ridurre la retention NON purga lo storico istantaneamente. TTL MongoDB gira ogni ~24 h; per purghe immediate usa
POST /api/v1/privacy/purge-oldconolder_thanesplicito. - La residenza dati GCS è fissata al setup. Cambiare regione richiede ri-provisioning del tenant.
Benefici chiave
- Crittografia end-to-end: TLS 1.3 in transito, AES-256 at-rest con rotazione chiavi ogni 90 giorni.
- Isolamento multi-tenant enforced a livello di service, non solo di query filter.
- Segreti esterni che vivono in GCP Secret Manager, mai in DB né codice.
- Retention configurabile per-tenant con TTL nativo MongoDB.
- Compliance GDPR: endpoint dedicati per export ed erase.
- Auto-redact PII per proteggere terzi menzionati nelle conversazioni.
- Audit trail immutabile che sopravvive al redact del soggetto.