GDPR / Privacy Log
Registro trattamenti, consensi, diritti interessato, data breach, log di accountability
Riferimenti normativi
- Reg. UE 2016/679 (GDPR) art. 5 — Principi del trattamento: Liceità, correttezza, trasparenza, limitazione delle finalità, minimizzazione, esattezza, limitazione della conservazione, integrità, riservatezza, responsabilizzazione (accountability). Il modulo implementa il principio di accountability documentando trattamenti, consensi e operazioni.
- GDPR art. 6 — Liceità del trattamento: Il trattamento è lecito solo se basato su almeno una delle 6 basi giuridiche: consenso (a), esecuzione contratto (b), obbligo legale (c), interessi vitali (d), interesse pubblico (e), legittimo interesse (f). Il registro trattamenti documenta la base giuridica per ciascun trattamento.
- GDPR art. 7 — Condizioni per il consenso: Il consenso deve essere libero, specifico, informato, inequivocabile e revocabile in qualsiasi momento. Il modulo traccia data, canale e tipo di consenso per ogni soggetto.
- GDPR art. 9 — Categorie particolari di dati: I dati sanitari, biometrici, genetici, relativi all'orientamento sessuale o alle convinzioni religiose richiedono consenso esplicito o altra base giuridica specifica. Particolarmente rilevante per gli studi olistici/naturopatici e sanitari.
- GDPR art. 12-14 — Informazione all'interessato: Obbligo di fornire informativa chiara e completa prima dell'inizio del trattamento. L'informativa privacy può essere generata e stampata dal modulo Soggetti.
- GDPR art. 15-22 — Diritti dell'interessato: Accesso (15), rettifica (16), cancellazione/oblio (17), limitazione (18), portabilità (20), opposizione (21). Il modulo traccia ogni richiesta con stato e scadenze.
- GDPR art. 12.3 — Tempistica di risposta: Il titolare deve riscontrare la richiesta entro 30 giorni dal ricevimento. Il termine può essere prorogato di 60 giorni per complessità (totale 90 giorni), informando l'interessato.
- GDPR art. 30 — Registro dei trattamenti: Obbligo di tenere un registro scritto delle attività di trattamento. Deve contenere: finalità, categorie di dati e interessati, destinatari, trasferimenti extra-UE, termini di conservazione, misure di sicurezza.
- GDPR art. 33 — Notifica al Garante: In caso di violazione dei dati personali (data breach), notifica all'autorità di controllo entro 72 ore dal rilevamento, salvo che la violazione non presenti rischi per i diritti degli interessati.
- GDPR art. 34 — Comunicazione all'interessato: Se la violazione presenta un rischio elevato, il titolare deve comunicarla senza ritardo anche agli interessati coinvolti.
- GDPR art. 83 — Sanzioni: Fino a 20 milioni di euro o il 4% del fatturato mondiale annuo (il maggiore dei due) per le violazioni più gravi (art. 5, 6, 7, 9, diritti degli interessati).
- D.Lgs. 196/2003 (Codice Privacy): Codice italiano in materia di protezione dei dati personali, integrato dal D.Lgs. 101/2018 per allineamento al GDPR. Prevede sanzioni penali per trattamento illecito (art. 167) e misure minime di sicurezza.
- Provv. Garante 08/06/2023 — Cookie e tracciamento: Linee guida su cookie, tracciamento online e consenso digitale. Rilevante per aziende con siti web e e-commerce.
Il modulo GDPR / Privacy Log centralizza tutti gli adempimenti privacy richiesti dal Regolamento UE 2016/679 in un unico strumento organizzato in 6 linguette:
| Tab | Contenuto | Rif. GDPR | Indicatore |
|---|---|---|---|
| Registro Trattamenti | Registro dei trattamenti dati personali | Art. 30 | Numero trattamenti attivi |
| Consensi | Gestione consensi per soggetto e tipo | Art. 6-7 | Consensi attivi totali |
| Diritti Interessato | Richieste degli interessati (accesso, cancellazione…) | Art. 15-22 | Richieste aperte (da evadere) |
| Data Breach | Registro violazioni con notifica | Art. 33-34 | Breach aperti (non chiusi) |
| Log Privacy | Log cronologico operazioni privacy | Art. 5.2 (accountability) | — |
| Accessi dati | Chi ha aperto, cambiato, esportato o anonimizzato i dati di un soggetto (sez. 17) | Art. 5.2, 32 | — |
In testa alla pagina, quattro contatori mostrano: trattamenti, consensi attivi, richieste aperte, breach aperti. Li conta il server su tutte le righe, non solo su quelle a video: gli elenchi di consensi e richieste arrivano a pagine da 100 (pulsante Mostra altri), e le richieste aperte vengono per prime.
Il Registro dei trattamenti è il documento fondamentale della compliance GDPR. Documenta cosa trattate, perché, come e per quanto tempo.
Quando è obbligatorio
- Organizzazioni con più di 250 dipendenti
- Trattamento di dati particolari (sanitari, biometrici, genetici — art. 9)
- Trattamento non occasionale (praticamente tutte le aziende)
- In pratica: è sempre consigliato tenere il registro, indipendentemente dalla dimensione
Campi per ogni trattamento
| Campo | Obbligatorio | Descrizione | Esempio |
|---|---|---|---|
| Nome | Sì | Denominazione del trattamento | “Gestione anagrafica clienti” |
| Finalità | Sì | Scopo del trattamento | “Gestione rapporto contrattuale e fatturazione” |
| Base giuridica | Sì | Fondamento legale (art. 6.1 a-f) | “Esecuzione contratto (art. 6.1.b)” |
| Categorie dati | Sì | Tipologie di dati trattati | “Anagrafici, fiscali, contatto” |
| Categorie interessati | Sì | Chi sono i soggetti dei dati | “Clienti, pazienti, fornitori” |
| Destinatari | Consigliato | A chi vengono comunicati | “Commercialista, Agenzia Entrate, hosting provider” |
| Trasferimento extra-UE | Se applicabile | Trasferimenti fuori dallo Spazio Economico Europeo | “Sì — hosting USA con clausole contrattuali standard” |
| Termine conservazione | Sì | Per quanto tempo si conservano i dati | “10 anni dalla cessazione rapporto (art. 2220 CC)” |
| Misure di sicurezza | Sì | Protezioni tecniche e organizzative | “Crittografia, backup, accesso con credenziali, firewall” |
| Responsabile | Consigliato | Persona o ente responsabile | “Titolare dello studio” |
| DPO | Se nominato | Responsabile protezione dati | “Avv. Mario Rossi — dpo@studio.it” |
Basi giuridiche disponibili
| Base | Art. GDPR | Quando si usa |
|---|---|---|
| Consenso | 6.1.a | Marketing, newsletter, profilazione, dati sanitari |
| Esecuzione contratto | 6.1.b | Anagrafica clienti, fatturazione, gestione ordini |
| Obbligo legale | 6.1.c | Conservazione fatture (10 anni), adempimenti fiscali |
| Interessi vitali | 6.1.d | Emergenze sanitarie (raro in ambito commerciale) |
| Interesse pubblico | 6.1.e | Enti pubblici, servizi di pubblica utilità |
| Legittimo interesse | 6.1.f | Sicurezza IT, prevenzione frodi, marketing diretto ai clienti esistenti |
Trattamenti predefiniti
Il sistema pre-carica 4 trattamenti tipo per uno studio/azienda italiana:
- Gestione anagrafica clienti/pazienti — base: contratto (6.1.b)
- Fatturazione e contabilità — base: obbligo legale (6.1.c), conservazione 10 anni
- Trattamento dati sanitari — base: consenso esplicito (6.1.a + art. 9)
- Comunicazioni commerciali — base: consenso (6.1.a)
- Aprire il tab Trattamenti.
- Premere + Nuovo Trattamento. Si apre il form inline.
- Compilare il Nome del trattamento (es. “Gestione fornitori”).
- Descrivere la Finalità in modo chiaro e specifico.
- Selezionare la Base giuridica dal dropdown (le 6 basi dell'art. 6.1).
- Indicare le Categorie di dati trattati (anagrafici, fiscali, bancari, sanitari...).
- Indicare le Categorie di interessati (clienti, pazienti, dipendenti, fornitori...).
- Specificare i Destinatari a cui i dati vengono comunicati.
- Indicare il Termine di conservazione con riferimento normativo.
- Descrivere le Misure di sicurezza adottate.
- Premere Salva. Il trattamento appare nell'elenco con badge della base giuridica.
Il tab Consensi traccia l'acquisizione e la revoca dei consensi per ogni soggetto dell'anagrafica.
Tipi di consenso gestiti
| Tipo | Descrizione | Quando richiesto |
|---|---|---|
| BASE | Trattamento dati personali di base | Sempre, per ogni soggetto |
| MARKETING | Comunicazioni commerciali e promozionali | Prima di inviare materiale promozionale |
| PROFILAZIONE | Analisi abitudini e preferenze | Se si usano strumenti di analisi comportamentale |
| TERZE_PARTI | Condivisione dati con partner esterni | Se i dati vengono comunicati a terzi per finalità proprie |
| NEWSLETTER | Invio newsletter periodiche | Prima di iscrivere alla mailing list |
| GEOLOCALIZZAZIONE | Tracciamento posizione | Se si utilizzano servizi basati sulla localizzazione |
| COMUNICAZIONI_COMMERCIALI | Offerte e promozioni dirette | Distinto da marketing generico se su canali specifici (SMS, WhatsApp) |
Informazioni per ogni consenso
- Soggetto: collegato all'anagrafica (ricerca per nome)
- Stato: DATO (verde) o REVOCATO (rosso)
- Data acquisizione: timestamp automatico
- Data scadenza: opzionale (per consensi a termine)
- Canale: CARTACEO, EMAIL, WEB, TELEFONO, PEC
- Note: annotazioni libere
Funzionalità
- Ricerca soggetto: filtra i consensi per nome
- Revoca / Dai consenso: il pulsante sulla riga revoca il consenso (o lo ridà) con data e ora automatiche
- Esporta consensi soggetto: scarica i consensi di un soggetto come documentazione
- Storico delle modifiche: chi ha dato o revocato quel consenso, e quando
- Aprire il tab Consensi.
- Premere Nuovo Consenso e scegliere il soggetto dall'elenco.
- Selezionare il Tipo di consenso dal dropdown.
- Selezionare il Canale di acquisizione (cartaceo, email, web, telefono, PEC).
- Il sistema registra automaticamente la data di acquisizione.
- Se necessario, impostare una data di scadenza (es. consenso annuale).
- Premere Registra Consenso: lo stato viene impostato a DATO (badge verde).
Il tab Richieste gestisce le richieste di esercizio dei diritti previsti dal GDPR:
| Diritto | Articolo | In cosa consiste | Termine |
|---|---|---|---|
| Accesso | Art. 15 | L'interessato ha diritto di ottenere copia di tutti i dati personali trattati, le finalità, i destinatari, il termine di conservazione | 30 giorni |
| Rettifica | Art. 16 | Correzione di dati inesatti o integrazione di dati incompleti | 30 giorni |
| Cancellazione (Oblio) | Art. 17 | Eliminazione dei dati personali quando non più necessari, consenso revocato, o trattamento illecito | 30 giorni |
| Limitazione | Art. 18 | Sospensione del trattamento (i dati restano ma non vengono usati) | 30 giorni |
| Portabilità | Art. 20 | Ricezione dei dati in formato strutturato, leggibile da macchina (es. JSON, CSV) | 30 giorni |
| Opposizione | Art. 21 | Opposizione al trattamento per motivi legittimi, incluso il marketing diretto | 30 giorni |
Workflow delle richieste
| Stato | Colore | Significato |
|---|---|---|
| RICEVUTA | Blu | Richiesta registrata, in attesa di presa in carico. Il contatore dei 30 giorni parte. |
| IN_LAVORAZIONE | Arancione | Richiesta presa in carico, in fase di analisi ed evasione |
| EVASA | Verde | Richiesta completata. La data di evasione viene registrata automaticamente. |
| RIFIUTATA | Rosso | Richiesta respinta con motivazione (es. obbligo legale di conservazione) |
- Aprire il tab Richieste.
- Premere + Nuova Richiesta. Si apre il form.
- Selezionare il soggetto richiedente dall'anagrafica.
- Selezionare il tipo di diritto esercitato (Accesso, Rettifica, Cancellazione, ecc.).
- Inserire la data di ricezione della richiesta.
- Descrivere la richiesta nel campo Descrizione.
- Premere Salva. La richiesta appare con stato RICEVUTA.
- Analizzare la richiesta e passare allo stato IN_LAVORAZIONE premendo il pulsante di avanzamento.
- Richiesta di accesso (art. 15) o portabilità (art. 20): il pulsante Esporta i dati scarica il fascicolo JSON del soggetto (vedi sez. 21), da consegnare all'interessato.
- Richiesta di cancellazione (art. 17): il pulsante Anonimizza (oblio) anonimizza il soggetto (vedi sez. 20) e chiude la richiesta come EVASA. Una richiesta di cancellazione non si può evadere se il soggetto non è stato anonimizzato: il programma lo rifiuta.
- Dopo aver evaso la richiesta, passare allo stato EVASA (si può annotare come). La data di evasione viene registrata automaticamente.
- Se la richiesta non può essere accolta (es. obbligo legale di conservazione fatture), premere Rifiuta: il programma chiede il motivo, che è obbligatorio (art. 12.4: va comunicato all'interessato) e resta nelle note della richiesta.
Quando rifiutare una richiesta di cancellazione
Il diritto alla cancellazione (art. 17) non si applica quando il trattamento è necessario per:
- Adempiere un obbligo legale (es. conservazione fatture per 10 anni — art. 2220 CC)
- Esercitare o difendere un diritto in sede giudiziaria
- Motivi di interesse pubblico nel settore della sanità pubblica
- Fini di archiviazione nel pubblico interesse, ricerca scientifica o storica
In questi casi, registrare la richiesta come RIFIUTATA documentando la motivazione legale.
Cancellazione dei dati degli appuntamenti (calendario)
Nel modulo Gestione Appuntamenti, il riquadro «Backup / Ripristino / Cancellazione calendario» include il pulsante «Cancella tutti gli appuntamenti»: elimina in modo definitivo e irreversibile tutti i dati personali contenuti negli appuntamenti del workspace (nominativi, contatti, note), a supporto del diritto alla cancellazione (art. 17). L'operazione richiede una doppia conferma (solo amministratore, più digitazione della parola «CANCELLA») ed è irreversibile; non tocca le esclusioni orarie né i documenti (Ricette/Fatture). Si consiglia di scaricare prima un backup.
Il tab Data Breach registra le violazioni di sicurezza dei dati personali e gestisce le notifiche obbligatorie.
Cos'è un data breach
Una violazione dei dati personali (data breach) è una violazione di sicurezza che comporta, accidentalmente o in modo illecito: distruzione, perdita, modifica, divulgazione non autorizzata o accesso ai dati personali. Esempi:
- Furto o smarrimento di un dispositivo con dati personali
- Attacco informatico con accesso ai database
- Invio di dati al destinatario sbagliato
- Perdita di dati per guasto hardware senza backup
- Accesso non autorizzato da parte di un dipendente
Campi per ogni breach
| Campo | Descrizione |
|---|---|
| Rilevato il | Giorno e ora in cui la violazione è stata scoperta (fa partire le 72 ore) |
| Descrizione | Natura della violazione |
| Tipologia dati | Categorie di dati coinvolti (anagrafici, sanitari, finanziari...) |
| Interessati coinvolti | Numero approssimativo di persone impattate |
| Rischio | BASSO (verde), MEDIO (giallo), ALTO (rosso), CRITICO (rosso scuro) |
| Notifica Garante | Sì/no + giorno e ora della notifica; si registra anche dopo, dalla riga del breach (obbligatoria entro 72 ore se rischio) |
| Notifica non dovuta | Solo a rischio BASSO e se il Garante non è stato notificato: la spunta «Notifica al Garante non dovuta» con il motivo (obbligatorio: la valutazione va documentata, art. 33.5). Ferma il conto delle 72 ore; nella colonna Garante compare «Non dovuta» col motivo nel suggerimento. Si mette anche dopo, dalla riga del breach, e si toglie (il conto riparte dal rilevamento). Se poi il Garante viene notificato, vale la notifica. |
| Notifica interessati | Flag se comunicazione agli interessati effettuata (obbligatoria se rischio alto) |
| Misure adottate | Azioni correttive implementate |
| Stato | RILEVATO → IN_GESTIONE → RISOLTO → CHIUSO |
Obblighi di notifica
| Livello rischio | Notifica Garante (art. 33) | Notifica interessati (art. 34) |
|---|---|---|
| BASSO | Non obbligatoria se il rischio è improbabile: si spunta «Notifica non dovuta» con il motivo (documentare comunque) | Non obbligatoria |
| MEDIO | Obbligatoria entro 72 ore | Non obbligatoria (valutare caso per caso) |
| ALTO / CRITICO | Obbligatoria entro 72 ore | Obbligatoria senza ritardo |
- Aprire il tab Data Breach.
- Premere Segnala Data Breach. Si apre il form.
- Inserire giorno e ora del rilevamento (quando avete scoperto l'incidente): le 72 ore partono da quell'ora.
- Selezionare il livello di rischio: BASSO, MEDIO, ALTO, CRITICO.
- Indicare il numero approssimativo di interessati coinvolti.
- Descrivere la natura della violazione.
- Indicare la tipologia dei dati coinvolti.
- Descrivere le misure adottate per contenere e risolvere.
- Se la notifica al Garante è già stata fatta: spuntare “Notifica al Garante già effettuata” e indicare quando.
- Se il rischio è alto/critico e gli interessati sono già stati avvisati: spuntare “Comunicazione agli interessati effettuata”.
- Se il rischio è basso e la violazione non va notificata: spuntare “Notifica al Garante non dovuta” e scrivere perché (obbligatorio). Il conto delle 72 ore si ferma.
- Premere Registra Breach. Il breach appare nell'elenco con stato RILEVATO.
- Quando si notifica il Garante (di solito dopo), premere Registra la notifica al Garante nella riga e scrivere giorno e ora. Allo stesso modo Interessati informati. A rischio basso c'è anche Notifica al Garante non dovuta, che chiede il motivo, e la si toglie con la freccia indietro (il conto riparte dal rilevamento).
- Aggiornare lo stato man mano che si procede: IN_GESTIONE → RISOLTO → CHIUSO.
Il tab Log mostra il registro cronologico non modificabile di tutte le operazioni privacy eseguite nel sistema:
- Acquisizione e revoca consensi
- Creazione e modifica trattamenti
- Registrazione e avanzamento richieste diritti
- Registrazione e gestione data breach
- Export di documentazione
Colonne del log
| Colonna | Contenuto |
|---|---|
| Data/ora | Timestamp dell'operazione |
| Azione | Tipo di operazione (badge colorato) |
| Utente | Username dell'operatore che ha eseguito l'azione |
| Soggetto | Interessato coinvolto (se applicabile) |
| Dettagli | Descrizione specifica dell'operazione |
Il log è in sola lettura e costituisce la documentazione di accountability richiesta dall'art. 5.2 GDPR. In caso di ispezione del Garante, il log dimostra che l'organizzazione ha implementato e mantenuto le misure di protezione.
Esportare il registro trattamenti
Il pulsante “Esporta Registro” nel tab Trattamenti genera un file JSON contenente tutti i trattamenti attivi con dettagli completi e la data dell'export. Il file può essere:
- Presentato in caso di ispezione del Garante
- Allegato alla documentazione del sistema di gestione privacy
- Archiviato come fotografia periodica dello stato dei trattamenti
Esportare i consensi di un soggetto
Nel tab Consensi, il pulsante Export per soggetto scarica tutti i consensi con date, canali e stati. Utile per rispondere a richieste di accesso (art. 15) dimostrando le basi giuridiche dei trattamenti.
Cosa tenere aggiornato
| Adempimento | Frequenza consigliata |
|---|---|
| Registro trattamenti | Ad ogni nuovo trattamento o modifica significativa |
| Revisione consensi | Annuale (verificare scadenze e validità) |
| Revisione misure sicurezza | Annuale o dopo ogni incidente |
| Export registro per archivio | Trimestrale o semestrale |
Il modulo GDPR è integrato con l'anagrafica Soggetti su più livelli:
- Consensi: collegati ai soggetti per ID. Ogni soggetto ha i suoi consensi specifici con data, canale e tipo.
- Richieste diritti: collegate al soggetto richiedente. La richiesta registra chi ha chiesto cosa e quando.
- Scheda soggetto: nella sezione Privacy della scheda paziente/cliente, sono visibili i flag consenso con data e canale di acquisizione.
- Informativa privacy: generabile e stampabile in PDF dalla scheda soggetto, usando il template “Informativa Privacy” del Print Designer.
- Ricerca: nel tab Consensi, la ricerca per nome trova direttamente i soggetti dall'anagrafica.
Formalmente no, ma ai fini Privacy sì. La naturopatia è una professione non organizzata in ordini o collegi ai sensi della Legge 4/2013: il naturopata non è un esercente professione sanitaria, non può diagnosticare né prescrivere farmaci, non ha accesso al Sistema TS e le sue prestazioni non rientrano nell'esenzione IVA art. 10 n. 18 DPR 633/72.
Però tratta sistematicamente "dati relativi alla salute" (sintomi, terapie alternative, intolleranze, allergie, integratori, ecc.) che ricadono nelle categorie particolari ex art. 9 GDPR. Il Garante Privacy italiano ha più volte chiarito che la qualifica formale dell'operatore (sanitario o meno) non cambia la natura dei dati trattati: se raccogli informazioni sulla salute di una persona, applichi l'art. 9 GDPR.
Conseguenze pratiche per uno studio di naturopatia configurato in NOX:
- Esenzione IVA prestazioni sanitarie — non applicabile (Natura IVA N4 utilizzabile solo in casi specifici autorizzati)
- GDPR/Privacy — indispensabile e non disattivabile: consenso esplicito per dati salute, registro trattamenti specifico, misure di sicurezza rafforzate (art. 32), notifica data breach in 72h (art. 33-34), eventuale DPIA per trattamenti su larga scala (art. 35)
È paradossale ma corretto: la naturopatia non è sanitaria a fini fiscali/professionali, ma è quasi sanitaria a fini Privacy. Il pallino rosso (indispensabile) su GDPR/Privacy nel pacchetto BASE per un workspace "Studio di Naturopatia" è quindi voluto e va lasciato attivo.
• il pacchetto
BASE è compreso nella licenza dell’azienda
• il modulo è acceso nella Aziende & Licenze, per l’azienda e per l’utente
Spento vuol dire bloccato, non solo nascosto. Dettagli in Licenza e Aziende & Licenze.
Elenco formale dei trattamenti con finalità, base giuridica, categorie dati, retention.
Tabella: gdpr_trattamenti. Endpoint CRUD: GET / POST / DELETE /api/gdpr/trattamenti.
Ogni modifica ad un consenso (dato / revocato) è registrata in due posti per compatibilità + granularità.
Log legacy (compatibilità)
Tabella gdpr_log: azione (CONSENSO_DATO / CONSENSO_REVOCATO), username, dettagli.
Log esteso (certificazione v 2.2)
Tabella log_consensi_gdpr con campi aggiuntivi: soggettoId, campo modificato, valore vecchio/nuovo, motivazione opzionale, timestamp.
Consultabile tramite: GET /api/gdpr/consensi/:id/audit-log.
Tabella log_accessi_dati_personali: chi ha guardato, cambiato, esportato o cancellato i dati di un soggetto, quando e da quale indirizzo. La scrive il programma da solo, nel momento in cui l'accesso avviene: non c'è modo di aggiungere righe a mano.
| Operazione | Quando viene registrata |
|---|---|
| READ | Apertura della scheda di un soggetto (e del suo storico), allegati e appuntamenti. La stessa persona sulla stessa scheda si registra una volta ogni dieci minuti |
| EXPORT | Esportazione dei consensi di un soggetto, fascicolo artt. 15/20 |
| MODIFY | Salvataggio della scheda, cambio dei flag privacy |
| DELETE | Soggetto nel cestino o cancellato definitivamente |
| ANON | Anonimizzazione (diritto all'oblio) |
Non si registrano gli elenchi e le ricerche (la lista dei soggetti), ma solo l'apertura di una scheda precisa.
Consultazione
Linguetta Accessi dati (solo amministratori), con filtri per soggetto, utente e operazione; le ultime 200 righe (fino a 500 con ?limit=).
Gestione richieste di accesso, rettifica, cancellazione, portabilità con scadenza 30 giorni.
Tabella gdpr_richieste. Stato della richiesta tracciato con data di apertura e data di chiusura; i giorni rimasti si vedono nella colonna Scadenza. Il tipo e lo stato si scelgono da un elenco chiuso; il motivo di un rifiuto e l'esito restano nelle note.
Registro separato per violazioni dei dati personali con notifica all'Autorità Garante e agli interessati.
Endpoint: GET /api/gdpr/breaches per lista, POST per registrare nuova violazione (giorno e ora del rilevamento obbligatori), PATCH /api/gdpr/breaches/:id per lo stato, la notifica al Garante (notificaGarante, dataNotificaGarante), la notifica non dovuta (notificaNonDovuta, motivoNonDovuta: solo a rischio basso e senza notifica fatta) e la comunicazione agli interessati. Notifica Garante Privacy entro 72 ore (obbligo art. 33).
L'interessato può richiedere la cancellazione dei propri dati personali (GDPR art. 17). Per i dati con obbligo di conservazione fiscale (10 anni, art. 2220 c.c.) la cancellazione fisica non è possibile; al suo posto si esegue anonimizzazione.
Come si fa
Dalla linguetta Diritti Interessato: sulla richiesta di cancellazione presa in carico, pulsante Anonimizza (oblio). Il programma chiede conferma, anonimizza e chiude la richiesta come EVASA, con il riferimento alla richiesta come motivazione. Serve il ruolo ADMIN.
Per chi integra: POST /api/gdpr/anonimizza/:soggettoId con body { "motivazione": "riferimento alla richiesta dell'interessato" }.
Cosa viene anonimizzato
- cognome, nome → "ANONIMIZZATO (#ID)"
- email, telefono, cellulare, pec → null
- indirizzo, cap, località, provincia, paese → null
- ragioneSociale (se presente) → "ANONIMIZZATO (#ID)"
- ibanSoggetto, regione e comune → null
- data e luogo di nascita, sesso, dati sanitari, minore o tutore collegato → null
- note di pagamento, motivo del blocco, note commerciali, tag e titolo (Dott., Avv.…) → svuotati
- sedi e referenti della scheda → indirizzi, telefoni, email e nomi tolti
- familiari collegati: la sua scheda non li elenca più; nelle schede dei familiari il legame resta, al posto del nome compare "ANONIMIZZATO (#ID)"
- note amministrative → "Anonimizzato il [data e ora italiane] da [utente] — [motivazione]". Il testo che c'era prima sparisce; se la scheda viene anonimizzata una seconda volta, la nuova riga si aggiunge sotto quella della prima, che resta
Oltre la scheda
- Appuntamenti: note, nome scritto a mano, email e telefono vengono svuotati. Restano data, ora, stato, servizio e prezzo. Sono suoi gli appuntamenti collegati alla scheda e quelli senza scheda (prenotati online o al volo) con la sua stessa email o lo stesso telefono; il solo nome non basta, perché due omonimi non sono la stessa persona. Se l'azienda copia i suoi appuntamenti in un'altra azienda collegata, si anonimizzano con le stesse regole anche le copie che stanno di là (e, se un appuntamento di qui è a sua volta la copia di uno di un'altra azienda, anche l'originale). La scheda del cliente nell'altra azienda resta com'è: è il suo archivio.
- Interventi non ancora fatturati: tolti nome, firmatario, firma, foto, posizione e note. Restano la descrizione del lavoro e l'esito, che sono la storia tecnica dell'impianto.
- Interventi fatturati (o collegati a un documento): non si toccano, sono il rapportino di un documento emesso e vanno conservati con lui.
- Impianti e contratti di manutenzione: perdono il nome del cliente copiato sopra. Restano tutto il resto, ubicazione compresa, che serve al registro delle apparecchiature F-gas, e il collegamento alla scheda (ormai anonima).
- Allegati della scheda (documenti d'identità, referti, moduli firmati): cancellati, file compreso, anche quelli già nel cestino. Nei registri resta che un allegato c'era, non il nome del file. Gli allegati dei documenti fiscali non si toccano.
- CRM (referenti, trattative, attività) e pratiche di riparazione: i testi e i recapiti personali vengono tolti, importi ed esiti restano.
Cosa viene preservato
- Codice Fiscale e Partita IVA — solo se il soggetto ha almeno un documento emesso (anche annullato o nel cestino): servono alla conservazione fiscale. Se non ha mai avuto un documento emesso (solo bozze, o nessun documento) vengono svuotati anche loro, e la risposta dell'anonimizzazione lo dice.
- Documenti fiscali collegati (fatture, scadenze) — per obblighi ex art. 2220 c.c.
- Integrità referenziale — tutti i riferimenti al soggetto continuano a funzionare
Tracciabilità
- Evento
operazione=ANONinlog_accessi_dati_personalicon motivazione e IP - Ogni campo modificato registrato in
log_modifiche_soggetticon valore vecchio mascherato come***ANON***(l'obiettivo dell'oblio è non lasciare traccia del valore originale)
L'interessato ha diritto di ricevere i propri dati personali in un formato strutturato, di uso comune e leggibile da dispositivo automatico (GDPR art. 20).
Come si fa
Dalla linguetta Diritti Interessato: sulla richiesta di accesso o portabilità, pulsante Esporta i dati. Serve il ruolo ADMIN.
Per chi integra: GET /api/gdpr/export/:soggettoId, con ?motivazione=riferimento facoltativo (registrato nel log accessi).
Risposta: file JSON scaricabile gdpr_export_soggetto_<id>_<YYYY-MM-DD>.json
Struttura del payload
| Sezione | Contenuto |
|---|---|
metadati | data export, utente, riferimento GDPR artt. 15 e 20, versione formato; troncati elenca le parti arrivate al tetto di 10.000 righe (da estrarre a parte), moduliNonPresenti quelle che l'azienda non ha |
soggetto | anagrafica completa (cognome, nome, recapiti, fiscali, ruoli, dati sanitari) |
sedi, referenti | sedi e referenti della scheda |
documenti | documenti collegati (fatture, DDT, preventivi...) con le righe |
scadenze | scadenze di pagamento |
appuntamenti | appuntamenti in agenda |
interventi | interventi tecnici (la firma e le foto non sono nel file: si dice se ci sono e quante; si consegnano a parte se richieste) |
allegati | elenco degli allegati della scheda (nome, categoria, data; i file si consegnano a parte) |
crm, praticheRiparazione | referenti e trattative del CRM, pratiche di riparazione |
consensi | stato consensi privacy registrati |
auditModifiche | ultimi 200 log modifiche anagrafica |
accessiDati | ultimi 200 log accessi ai dati personali |
Tracciabilità
Ogni chiamata registra un evento operazione=EXPORT in log_accessi_dati_personali con: utente, data/ora, IP, motivazione opzionale. L'interessato può verificare gli export eseguiti sui suoi dati.
Job schedulato che ogni giorno alle 03:15 UTC elimina fisicamente dal cestino gli elementi rimasti oltre il periodo di conservazione configurato.
Due livelli di retention
| Categoria | Retention | Moduli |
|---|---|---|
| Commerciale | 90 giorni (default) | Opportunità, Attività CRM, Soggetti (non linked), Catalogo, Listini, Sconti, Spedizioni, Utenti |
| Fiscale | 3650 giorni = 10 anni | Documenti, Scadenze, Prima Nota, Piano dei Conti, Lettere Intento, Magazzino |
Configurazione
Variabili d'ambiente configurabili:
CESTINO_RETENTION_DAYS= 90 (default commerciale)CESTINO_RETENTION_DAYS_FISCAL= 3650 (default fiscale — art. 2220 c.c.)
Protezioni
- Per i soggetti il job verifica l'assenza di record collegati prima di eliminare: se ci sono documenti/scadenze l'eliminazione viene saltata
- Per i moduli fiscali la retention a 10 anni garantisce il rispetto dell'art. 2220 c.c.
- Il log di ogni esecuzione (conteggi per modulo) viene stampato nei log del backend