Funzionalità

Il sidecar privacy per le tue AI e per i flussi RAG. Cosa fa, spiegato semplice: i dettagli tecnici sono nelle Docs.

Testo originale
Sono Marco Rossi, scrivimi a [email protected].
Testo protetto
Sono [NOME_1], scrivimi a [EMAIL_1].

Due modi di proteggere i dati

Scegli come sostituire i dati sensibili. Cambia modalità e guarda il risultato.

Modalità Tag: i dati diventano segnaposto stabili come [NOME_1]. Perfetti per ritrovarli e ripristinarli quando serve.

Ti torna il testo pulito, i tag nel JSON

L'API ti restituisce il testo già protetto e, separata, la mappa di cosa è stato sostituito. Il tuo software sa sempre cosa c'era, senza esporre i dati nel testo.

i I valori originali compaiono solo se sei admin (include_entity_values). Altrimenti vedi soltanto i tag.
POST /v1/anonymize 200 OK
{
  "text": "Sono [NOME_1], scrivimi a [EMAIL_1].",
  "entities": [
    { "tag": "[NOME_1]", "type": "PERSON", "value": "Marco Rossi" },
    { "tag": "[EMAIL_1]", "type": "EMAIL", "value": "[email protected]" }
  ],
  "reversible": true
}
context_type: "ricorso_multa"
Codice Fiscale, nome e telefono → protetti
Data della multa → mantenuta (serve al testo)
Modalità e surrogati → impostati in automatico

Una parola configura tutto

Invii un solo campo, context_type, e il sistema imposta da solo policy, modalità e dati da proteggere. Niente regole da riscrivere a ogni chiamata.

Dati finti, ma nel formato giusto

Faker genera valori realistici; per formati italiani come il Codice Fiscale il core usa un encoder dedicato, invece di trattarlo come una stringa casuale.

Reale
Mario Rossi · RSSMRA80A01H501U
Surrogato valido
Luca Bianchi · BNCLCU80A01F205X
Esempio detection 01
Input
Mario Rossi · RSSMRA80A01H501U · IT60X0542811101000001234567
Entità trovate
PERSON · FISCAL_CODE · IBAN

Regex DB batte i layer ML sugli overlap

Rilevamento a 4 livelli

Il motore combina Presidio + spaCy, privacy-filter, AI4Privacy e regex configurabili da database. Quando due rilevamenti si sovrappongono, prevale il layer più affidabile: le regex DB hanno priorità massima sui formati certi come CF, IBAN, email, telefono e targa.

Tag mode reversibile

I dati personali diventano token stabili nel contesto, come [PERSON_1] o [FISCAL_CODE_1]. La mappa token-valore viene salvata cifrata e può essere usata per ripristinare il testo con /v1/deanonymize.

Prima e dopo 02
Originale
Il sig. Mario Rossi, CF RSSMRA80A01H501U
Protetto
Il sig. [PERSON_1], CF [FISCAL_CODE_1]

Stesso valore + stesso context_id = stesso token

Surrogati realistici 03
Originale
Il sig. Mario Rossi, IBAN IT60X0542811101000001234567
Surrogato
Il sig. Luca Bianchi, IBAN IT29P0306901789100000046169

Generazione deterministica da valore reale, context_id e lingua

Surrogate mode deterministico

Per RAG, embedding e test, i dati reali vengono sostituiti con valori finti ma realistici e format-preserving. Il risultato resta leggibile per l'AI senza mandare PII reali fuori dal perimetro.

Codice Fiscale format-preserving

Faker italiano può generare codici fiscali validi, ma non li lega automaticamente a un nome generato a parte. Per questo il core include un encoder CF dedicato: quando serve un CF surrogato, viene costruito come codice valido e non come stringa casuale.

Formato italiano 04
Reale
Mario Rossi · RSSMRA80A01H501U
CF sintetico valido
Luca Bianchi · BNCLCU85M12F205X

Non è una garanzia di Faker vanilla: serve logica applicativa dedicata

Policy risolta 05
Richiesta
context_type: "fine_appeal"
Effetto
Protegge PERSON, CF, EMAIL, PHONE · mantiene DATE, LAW_REF, TARGA

Precedenza: inline request > domain policy > registry

Context type e policy di dominio

Una sola proprietà, context_type, seleziona policy, modalità e regole. Un ricorso multa può mantenere data e targa perchè servono al caso, mentre un contratto può proteggere targa, azienda e riferimenti finanziari.

Registro di circa 33 tipi PII

Il registry copre identità, contatti, finanza, legale, veicoli, rete e credenziali. Ogni tipo ha categoria, azione di default, strategia faker, reversibilità e stato enabled.

Categorie 06
Tipi
IDENTITY · CONTACT · FINANCIAL · LEGAL · VEHICLE · NETWORK · CREDENTIAL
Esempi
FISCAL_CODE, EMAIL, IBAN, TARGA, API_KEY, SECRET

Governabile da Admin UI senza cambiare codice

Regola contestuale 07
Prima
nato a Roma il 01/03/1980 → DATE
Dopo
01/03/1980 → DATE_BORN

Hot reload da database, niente restart

Tuning runtime: regex, denylist e riclassificazione

Gli operatori possono correggere falsi positivi, aggiungere pattern e riclassificare entità in base al contesto. Una data vicino a "nato a ... il", per esempio, può diventare DATE_BORN.

Audit log, API key e ruoli

Ogni chiamata può essere tracciata con azione, numero entità, context type e chiave usata. Le API key supportano ruoli admin, service e auditor, con scadenza opzionale.

Evento audit 08
Chiamata
POST /v1/anonymize · role: service
Log
action=anonymize · entities=3 · context_type=fine_appeal

Separazione tra integrazione applicativa e accesso amministrativo

Locale-aware 09
Request
language: "en" · mode: "surrogate"
Output
John Smith → Michael Johnson · +1 phone format

Modelli e lingua di default gestibili da UI

Multi-lingua e Admin UI

Il core supporta NER spaCy per IT, EN, DE, FR, ES e PT; i surrogate usano locale coerente con la lingua richiesta. L'Admin UI permette di gestire runtime language, policy, regex, denylist, context type e chiavi.

Mask mode — oscuramento irreversibile

POST /v1/mask sostituisce i dati sensibili senza salvare nessuna mappatura. Lo stile fill preserva la lunghezza del testo (████), lo stile label inserisce il tipo tra parentesi quadre ([PERSON]). Il carattere di mascheratura è configurabile.

Fill vs label 10
Originale
Contatta Mario Rossi al 333-1234567
Mascherato
Contatta ██████████ al ███████████

Nessuna mappatura salvata — impossibile ripristinare

Prima e dopo 11
Originale
Contattami a [email protected] per info.
Dopo rimozione
Contattami a per info.

Azione configurabile per tipo tramite domain policy o inline

Remove mode — cancellazione del dato

Configurando remove_types nella policy di dominio o inline, il valore PII viene sostituito con stringa vuota. Il testo risultante è più corto nelle posizioni rimosse. Nessuna mappatura viene salvata.

Block mode — rifiuto della richiesta

I tipi in block_types causano un HTTP 422 se rilevati nel testo, prima di qualsiasi elaborazione. Il controllo avviene su tutte le entità rilevate, anche quelle non incluse nei protect_types. CREDIT_CARD e SECRET sono bloccati di default.

Comportamento 12
Richiesta con carta di credito
"4111 1111 1111 1111" nel testo
Risposta
HTTP 422 · PII_BLOCKED · blocked_types: ["CREDIT_CARD"]

Configura block_types nella domain policy o in ogni richiesta inline

Token deterministici 13
Originale
Mario Rossi · RSSMRA80A01H501U · [email protected]
Pseudonimizzato
PSE_a3f1b2c4 · PSE_d7e8f901 · PSE_9a0b1c2d

Stesso valore reale → stesso token (determinismo garantito per contesto + chiave)

Pseudonimizzazione — token reversibili distinti

POST /v1/pseudonymize sostituisce i dati con token deterministici reversibili conservati in un keystore separato dall'anonimizzazione. Utile per pipeline analitiche che richiedono unlinkability ma devono mantenere la possibilità di recupero autorizzato.

Alert e Webhook in tempo reale

Configura regole di alert verso Inbox, Email, Slack e Microsoft Teams, o webhook HTTP che si attivano su qualsiasi evento del motore PII. Filtra per tipo di dato, categoria, contesto o numero minimo di entità rilevate.

Evento inviato 14
Trigger
POST /v1/anonymize → detect.pii_detected
Webhook payload
{ "event": "detect.pii_detected", "pii_types": ["FISCAL_CODE","EMAIL"], "entity_count": 2 }

Filtri condizionali per tipo PII, categoria, contesto e soglia entità