Audit & Compliance#
BDP bietet ein umfassendes Audit-Trail-System für regulatorische Compliance und Forschungsdokumentation. Verfolgen Sie jede Operation an Ihren Daten mit automatischer Protokollierung.
Warum Audit-Trails wichtig sind#
Regulierungsbehörden wie FDA, NIH und EMA erfordern detaillierte Daten-Provenienz-Aufzeichnungen. BDP automatisiert diese Dokumentation und spart Stunden manueller Arbeit bei der Vorbereitung von Publikationen oder Antworten auf Reviewer-Anfragen.
Kernfunktionen#
Automatische Ereignisprotokollierung#
Jeder BDP-Befehl protokolliert automatisch Ereignisse in eine lokale SQLite-Datenbank:
bdp pull# Protokolliert automatisch: Download, Verifizierung, Cache-OperationenErfasste Ereignisse umfassen:
- Downloads - Welche Quellen, Versionen, Prüfsummen
- Verifizierungen - Integritätsprüfungen, Validierungsergebnisse
- Cache-Operationen - Datei-Hinzufügungen, Entfernungen, Updates
- Post-Pull-Verarbeitung - Hook-Ausführungen, generierte Dateien
- Konfigurationsänderungen - Einstellungsmodifikationen
Manipulationserkennung#
BDP verwendet Hash-Ketten zur Erkennung von Änderungen am Audit-Trail:
bdp audit verify# ✓ Audit-Trail verifiziert: Keine Manipulation erkannt# ✓ Hash-Kette intakt: 47 Ereignisse verifiziertMaschinenidentifikation#
Jedes Audit-Ereignis enthält:
- Maschinen-ID - Stabile Hostname-basierte Kennung
- Benutzer - System-Benutzername
- Zeitstempel - UTC-Zeit mit Mikrosekundenpräzision
- Befehl - Vollständig ausgeführter Befehl
- Ergebnis - Erfolg/Fehler-Status
Audit-Befehle#
Audit-Log anzeigen#
# Aktuelle Ereignisse anzeigenbdp audit list # Letzte 50 Ereignisse anzeigenbdp audit list --limit 50 # Nach Ereignistyp filternbdp audit list --type download # Als JSON exportierenbdp audit list --format json > audit.jsonIntegrität verifizieren#
# Audit-Trail-Integrität verifizierenbdp audit verify # Spezifischen Zeitraum verifizierenbdp audit verify --from 2024-01-01 --to 2024-12-31Berichte exportieren#
Compliance-Berichte in verschiedenen Formaten generieren:
# FDA 21 CFR Part 11 Berichtbdp audit export --format fda > fda-bericht.json # NIH Data Management and Sharing (DMS) Berichtbdp audit export --format nih > nih-bericht.md # EMA ALCOA++ Compliance-Berichtbdp audit export --format ema > ema-bericht.yaml # Datenverfügbarkeitserklärung für Publikationenbdp audit export --format das > datenverfuegbarkeit.mdExport-Formate#
FDA 21 CFR Part 11#
JSON-Bericht zur Demonstration der Compliance mit elektronischen Aufzeichnungsvorschriften:
{ "report_type": "FDA_21_CFR_Part_11", "generated_at": "2024-01-18T10:30:00Z", "machine_id": "lab-workstation-01", "events": [ { "timestamp": "2024-01-15T09:20:15Z", "event_type": "download", "source": "uniprot:P01308-fasta@1.0", "checksum": "sha256:abc123...", "user": "researcher01" } ], "verification": { "hash_chain_valid": true, "events_verified": 47 }}NIH Data Management#
Markdown-Bericht für NIH DMS-Compliance:
# Datenverfügbarkeitserklärung ## Datenquellen - **UniProt** (P01308-fasta@1.0) - Heruntergeladen: 2024-01-15 - Prüfsumme: sha256:abc123... - URL: https://bdp.dev/sources/uniprot/P01308 ## Reproduzierbarkeit Alle Datenquellen werden über BDP-Lockfile (bdp.lock)verwaltet, committed im Repository bei Commit abc123.EMA ALCOA++#
YAML-Bericht zur Demonstration der ALCOA++-Prinzipien (Attributable, Legible, Contemporaneous, Original, Accurate, Complete, Consistent, Enduring, Available):
alcoa_compliance: attributable: true # Alle Ereignisse enthalten Benutzer und Maschinen-ID legible: true # Menschenlesbarer Audit-Trail contemporaneous: true # Ereignisse in Echtzeit protokolliert original: true # Primärquellen-Tracking accurate: true # Prüfsummenverifizierung complete: true # Alle Operationen protokolliert consistent: true # Hash-Ketten-Verifizierung enduring: true # Permanenter Audit-Trail available: true # Einfach exportierbarDatenverfügbarkeitserklärung#
Publikationsfertiger Text für wissenschaftliche Arbeiten:
## Datenverfügbarkeit Alle Proteinsequenzen wurden von UniProt (Release 2024_01,Version 1.1.0, Accession P01308) am 2024-01-15 bezogen. Daten-Prüfsummenund exakte Versionen sind im BDP-Lockfile (bdp.lock) aufgezeichnet,verfügbar im Projekt-Repository unter https://codeberg.org/lab/project/src/tag/v1.0. Der vollständige Audit-Trail mit Daten-Provenienz und Integritätsverifizierungist in den Zusatzmaterialien verfügbar.Wichtige Hinweise#
Editierbarer Audit-Trail#
Der Audit-Trail ist editierbar und für Forschungsdokumentation gedacht, nicht für rechtliche Beweise.
- Audit-Ereignisse können zur Klarheit in Berichten modifiziert werden
- Hauptzweck: Berichte für Publikationen und Compliance generieren
- Verwenden Sie
bdp audit verifyzur Erkennung von Modifikationen - Nicht geeignet für Gerichtsverfahren
Lokale Speicherung#
Audit-Daten werden lokal in .bdp/audit.db (SQLite) gespeichert:
~/.bdp/audit.db # Benutzerspezifischer Audit-TrailDiese Datenbank bewegt sich mit Ihrem lokalen Cache und kann:
- In verschiedene Formate exportiert werden
- Zur Archivierung gesichert werden
- Mit Kollegen geteilt werden (optional)
Post-MVP: Backend-Integration#
Zukünftige Versionen werden das Synchronisieren von Audit-Trails zum BDP-Backend unterstützen für:
- Zentralisierte Team-Audit-Logs
- Unveränderliche serverseitige Aufzeichnungen
- Bessere Compliance für regulierte Umgebungen
Best Practices#
- Regelmäßig exportieren - Compliance-Berichte bei Projekt-Meilensteinen generieren
- In Publikationen einbeziehen - Datenverfügbarkeitserklärungen für Paper exportieren
- Vor Export verifizieren - Immer
bdp audit verifyvor Berichtsgenerierung ausführen - Lockfiles committen -
bdp.lockzusammen mit Audit-Exporten in Versionskontrolle speichern - Post-Pull-Hooks dokumentieren - Alle Datenverarbeitungsschritte im Audit-Trail aufzeichnen
Beispiel-Workflow#
# 1. Daten herunterladen und verarbeitenbdp pull# ✓ uniprot:P01308-fasta@1.0 heruntergeladen# ✓ Prüfsummen verifiziert# ✓ Post-Pull-Hooks ausgeführt # 2. Audit-Integrität verifizierenbdp audit verify# ✓ Audit-Trail verifiziert: Keine Manipulation erkannt # 3. Compliance-Bericht für Publikation generierenbdp audit export --format das > datenverfuegbarkeit.mdbdp audit export --format fda > zusatzmaterial-audit.json # 4. In Paper-Einreichung einbeziehen# - datenverfuegbarkeit.md zum Manuskript hinzufügen# - zusatzmaterial-audit.json als Zusatzmaterial einreichenTechnische Details#
Datenbankschema#
-- Audit-Ereignisse (editierbar, für Berichte)CREATE TABLE audit_events ( id INTEGER PRIMARY KEY, timestamp TEXT NOT NULL, event_type TEXT NOT NULL, machine_id TEXT NOT NULL, user TEXT NOT NULL, command TEXT, metadata TEXT, -- JSON hash_prev TEXT, hash_current TEXT); -- Cache-Dateien-TrackingCREATE TABLE files ( id INTEGER PRIMARY KEY, source_spec TEXT NOT NULL, file_path TEXT NOT NULL, checksum TEXT NOT NULL, size_bytes INTEGER, downloaded_at TEXT); -- Post-Pull generierte DateienCREATE TABLE generated_files ( id INTEGER PRIMARY KEY, source_spec TEXT NOT NULL, tool_name TEXT NOT NULL, file_path TEXT NOT NULL, checksum TEXT, generated_at TEXT);Hash-Kette#
Der Hash jedes Ereignisses wird berechnet aus:
- Hash des vorherigen Ereignisses
- Daten des aktuellen Ereignisses (Zeitstempel, Typ, Benutzer, Befehl, Metadaten)
Dies erzeugt eine manipulationssichere Kette:
Ereignis 1: hash(daten1) = H1Ereignis 2: hash(H1 + daten2) = H2Ereignis 3: hash(H2 + daten3) = H3Das Modifizieren eines Ereignisses bricht die Kette, erkannt durch bdp audit verify.
Verwandte Dokumentation#
- Post-Pull-Hooks - Automatische Datenverarbeitung
- Lockfiles - Versions-Pinning für Reproduzierbarkeit
- CLI-Befehle - Vollständige Befehlsreferenz