Zum Inhalt springen
Zurück zu Projekten

Case Study

CloakData

Eine privacy-first Anonymisierungsbibliothek für ETL-Workflows mit Polars.

CloakData zeigt, wie Datenteams sensible Felder in schnellen, wartbaren Python-Pipelines anonymisieren können, ohne jeden Workflow in individuelle Skripte zu verwandeln.

Explizite Privacy-Regeln statt versteckter Masking-Skripte
Polars-first Transformationen für schnelle tabellarische Workflows
Wiederverwendbare Paketform für ETL, Notebooks und Validierung

Problem

Operative Datensätze enthalten häufig personenbezogene oder sensible Werte, während Anonymisierungsschritte oft als einmalige Skripte entstehen. Das erschwert Auditierbarkeit, Wiederverwendung und sichere Weiterentwicklung.

Ergebnis

Das Projekt zeigt die Art von Engineering, die ich schätze: privacy-aware Data Tooling, explizites operatives Feedback und praktische Abstraktionen, die von lokaler Exploration in wiederholbare ETL-Arbeit übergehen können.

Was ich gebaut habe

  • Ein Python-Paket für Anonymisierungs-Workflows mit Polars als Transformations-Engine.
  • Konfigurierbare Regeln, die Maskierungsverhalten explizit machen statt es in Ad-hoc-Skripten zu verstecken.
  • Eine Bibliotheksform, die sich für ETL-Pipelines, Notebooks und lokale Validierung eignet.

Technische Entscheidungen

  • Polars-first Transformationen für schnelle und ausdrucksstarke Datenverarbeitung.
  • Regelorientiertes Design, damit Anonymisierungspolicies bewusst geprüft und geändert werden können.
  • Packaging für PyPI, damit Installation und Wiederverwendung über Projekte hinweg einfach bleiben.

CloakData demo

Masking-Flow ausprobieren

Eine kleine client-side Vorschau auf den Workflow, für den CloakData gedacht ist: sensible Felder prüfen, explizite Regeln anwenden und das Dataset für Analysen nutzbar halten.

maskiertes Dataset
polars.lazy()
fieldvalue
nameM*** S****
emailm***@example.com
telefon+55 ** *****-1234
kunde_idanon_7f3a9

angewendete Regeln

mask_name(strategy='initials')
mask_email(keep_domain=true)
mask_phone(keep_last=4)
hash_identifier(prefix='anon')
CloakData | Jeferson Peter