loading experience

Generale

Caveman PrivacyGuard 1.2.1 -- Nuova Release

Con l'adozione di massa dei Large Language Models (LLM) e dei sistemi di intelligenza artificiale generativa all'interno dei software aziendali, gli sviluppatori si trovano davanti a una sfida cruciale: come sfruttare la potenza dell'AI senza mandare in fumo la compliance e la privacy dei dati degli utenti? Inviare accidentalmente un codice fiscale, un IBAN o una chiave di accesso a un'API esterna può costare caro, sia in termini di reputazione che di sanzioni pecuniarie (GDPR in primis).

Caveman PrivacyGuard 1.2.1 -- Nuova Release

E' stata pubblicata la nuova release di Caveman.PrivacyGuard

Riepilogo cumulativo di tutte le modifiche da v1.0.2 a v1.2.1.

v1.2.1 (2026-06-02) โ€” Critical Bugfix Hotfix

๐Ÿ›‘ Fixed

  1. Critico: Falsi positivi su Carta d'Identitร  Tedesca โ€” il pattern \b[A-Z0-9]{9}\b abbinato a RegexOptions.IgnoreCase globale causava falsi positivi su qualsiasi parola di 9 caratteri (es. "francesco", "contratto", "password") classificandola erroneamente come "German ID Card". Aggiunto (?-i) inline per ripristinare la case-sensitivity corretta.

๐Ÿ†• Added

  1. Demo: comando /restore โ€” ripristino interattivo dei placeholder da una risposta AI.
  2. Demo: comando /roundtrip โ€” dimostrazione completa del flusso mask โ†’ AI โ†’ restore client-side.

v1.2.0 (2026-06-02) โ€” Session Persistence & JSON Config

๐Ÿ†• New Features

  1. ThrowIfDisposed() โ€” tutti i metodi pubblici lanciano un'eccezione ObjectDisposedException esplicita.
  2. GetWhitelist() โ†’ IReadOnlySet<string> โ€” ispezione degli elementi in whitelist.
  3. IsWhitelisted(value) โ†’ bool โ€” test rapido sulla whitelist.
  4. AnalyzeAsync โ€” 4 overload con CancellationToken per interfacce UI e applicazioni web.
  5. AnalyzeBatch / AnalyzeBatchAsync โ€” analisi batch in memoria.
  6. PrivacySession.Count โ€” conteggio O(1) senza necessitร  di copiare il dizionario.
  7. NormalizeNewlines(StringBuilder) โ€” allocazioni extra azzerate sui caratteri \r\n / \r.
  8. LoadCustomJson / LoadCustomJsonFromString โ€” caricamento delle regole di mascheramento da JSON.
  9. WatchConfig / StopWatching / ConfigReloaded โ€” supporto all'hot-reload (ricaricamento a caldo) sui file JSON.
  10. PrivacySession.ToJson / FromJson / ImportFromJson โ€” esportazione e persistenza delle sessioni.
  11. IReadOnlySession โ€” interfaccia in sola lettura per le sessioni.
  12. PrivacyAnalyzer.Logger โ€” integrazione con ILogger per la diagnostica di sistema.
  13. PrivacyAnalyzer.ValidateRules() โ€” validazione formale delle regole caricate.
  14. GetRule() โ€” cache O(1) gestita tramite ConcurrentDictionary.
  15. netstandard2.0 target โ€” compatibilitร  estesa con il mondo .NET Framework.
  16. Demo: aggiunti i comandi /export e /validate.

๐Ÿ› Fixed

  1. Dispose() โ€” risolto un crash se il lock era ancora in uso: aggiunto catch(SynchronizationLockException), lasciando il rilascio del lock al Garbage Collector.
  2. Warning nullable: corretti i tipi per ValidatorRegistry.TryGet โ†’ Func<string, bool>? e ContextKeywords โ†’ !.
  3. Risolte le incompatibilitร  con netstandard2.0 relative a System.Index, Math.Clamp e RegexParseException.

๐Ÿ”ง Improved

  1. Demo: nuovi comandi pratici /whitelist, /rules, /export, /validate.
  2. README: documentate nel dettaglio tutte le nuove API.
  3. Creata la classe unificata RegexHelper per la gestione multi-target.
  4. Armonizzate le RegexOptions tra net8.0 e netstandard2.0.

v1.1.0 (2026-05-21) โ€” Placeholder Session System

๐Ÿ†• New Features

  1. PrivacySession โ€” mappatura basata sulla sessione per collegare i placeholder ai rispettivi valori originali.
  2. Placeholder univoci [PG_N] โ€” sostituiscono il vecchio formato generico [CATEGORY], permettendo il ripristino sicuro dei dati lato client.
  3. session.Restore(text) โ€” ripristina i valori originali all'interno di una risposta generata dall'AI.
  4. session.RestoreDetailed(text) โ€” esegue il ripristino restituendo anche il conteggio accurato delle sostituzioni effettuate.
  5. session.MergeFrom(other) โ€” unisce piรน sessioni basandosi sul valore originale.
  6. session.AddOrGet(category, value) โ€” registrazione pubblica di un placeholder.
  7. analyzer.Analyze(input, session) โ€” overload per eseguire l'analisi inserendo una sessione esplicita.
  8. analyzer.RestoreText(text) โ€” metodo di istanza basato su CurrentSession.
  9. PrivacyAnalyzer.RestoreText(text, session) โ€” helper statico di utilitร .
  10. EnableAutoMasking ? Session : null โ€” restituisce una sessione nulla quando il mascheramento รจ disabilitato.

๐Ÿ› Fixed

  1. CurrentSession โ€” risolto un bug per cui la proprietร  veniva ignorata dagli overload di Analyze().
  2. ReaderWriterLockSlim โ€” corretto un leak di risorse; PrivacyAnalyzer ora implementa correttamente IDisposable.
  3. AddEntry โ€” ottimizzato il lookup da O(n) a O(1) tramite l'introduzione di un ConcurrentDictionary secondario.
  4. Analyze(input, session) โ€” ora aggiorna correttamente lo stato di CurrentSession.

๐Ÿ”ง Improved

  1. CompiledRule โ€” convertito in un tipo record, sostituendo la precedente tupla a 7 campi.
  2. GetLoadedCategories() / GetRule(category) / RemoveRule(category) โ€” migliorata la gestione del ciclo di vita delle regole.
  3. LoadCustomYaml(path, replace: true) โ€” ora sovrascrive le regole esistenti (replace) invece di appenderle.
  4. ClearRules() โ€” svuota e rimuove completamente tutte le regole.
  5. AddToWhitelist / RemoveFromWhitelist / ClearWhitelist โ€” ciclo di vita completo per la gestione della whitelist.
  6. ValidatorRegistry.Unregister(name) / Reset() โ€” gestione del ciclo di vita dei validatori personalizzati.
  7. LoadCustomYamlFromString(yaml) / LoadCustomYaml(path) โ€” implementazione nativa completa.
  8. I tag compliance_tags definiti in YAML vengono ora mappati correttamente in ComplianceFlags.
  9. Timeout di 3 secondi sui nodi Regex โ€” difesa integrata contro attacchi ReDoS.
  10. Gli errori di parsing delle Regex ora includono dettagli sul contesto (categoria di dato e paese).
  11. Aggiunti i commenti di documentazione XML su tutte le API pubbliche.
  12. Demo: introdotto il comando /status per visionare il conteggio dei placeholder attivi.


Installazione


Bashdotnet add package Caveman.PrivacyGuard --version 1.2.1


Collegamenti

  1. NuGet: https://www.nuget.org/packages/Caveman.PrivacyGuard
  2. GitHub: https://github.com/francescopaolopassaro/Caveman.PrivacyGuard
  3. Licenza: MIT


Commenti (0)

Nessun commento ancora.

Lascia un commento