Zum Inhalt

Audit-Trail

Der Audit-Trail protokolliert alle Aenderungen an Datensaetzen im System. Er stellt die lueckenlose Nachverfolgbarkeit aller Bearbeitungsvorgaenge sicher und ist eine zentrale Anforderung fuer die Einhaltung von Qualitaetsstandards wie ISO 17025.

Audit-Trail

Uebersicht

Der Audit-Trail erfasst automatisch jede Erstellung, Aenderung und Loeschung von Datensaetzen. Dabei werden der Zeitpunkt, der ausfuehrende Benutzer sowie die alten und neuen Werte gespeichert.

Ueberwachte Bereiche

Jeder Bereich wird in einer eigenen Audit-Tabelle gefuehrt. Die Spaltenanzeige wird rollenbasiert und dynamisch geladen.

Bereich Tabelle Beschreibung
Inventar inventory_audit Aenderungen an Inventardatensaetzen.
Buchungen booking_audit Aenderungen an Buchungsdatensaetzen.
Kunden customers_audit Aenderungen an Kundenstammdaten.
Wartung / Reparatur repair_audit Aenderungen an Wartungs- und Reparaturauftraegen.

Spalten

Spalte Beschreibung
Zeitstempel Datum und Uhrzeit der Aenderung.
Benutzer Name des Benutzers, der die Aenderung vorgenommen hat.
Typ Art der Aenderung (INSERT, UPDATE, DELETE).
Feldname Name des geaenderten Feldes.
Alter Wert Wert vor der Aenderung.
Neuer Wert Wert nach der Aenderung.
Tabelle Betroffener Datenbereich (z. B. inventory, calibration).
Datensatz-ID Eindeutige Kennung des betroffenen Datensatzes.

Zugriff

Der Audit-Trail ist in verschiedenen Bereichen des Systems zugaenglich:

  • Inventardetails: Unter dem Reiter Statushistorie werden alle Aenderungen am jeweiligen Inventar angezeigt.
  • Kundendetails: Aenderungen am Kundendatensatz und zugehoerigen Kontakten.
  • Buchungsdetails: Aenderungen an einzelnen Buchungsvorgaengen.

Typische Nutzungsszenarien

  • Aenderungsnachverfolgung: Pruefen, wer wann welche Aenderungen an einem Geraetedatensatz vorgenommen hat.
  • Qualitaetsaudit: Nachweis der lueckenlosen Dokumentation fuer externe Audits und Zertifizierungen.
  • Fehleranalyse: Identifikation fehlerhafter Aenderungen und Rueckverfolgung zum Verursacher.
  • Statusverlauf: Nachvollziehen der Statuswechsel eines Inventars ueber die gesamte Lebensdauer.

Technische Hinweise

Automatische Erfassung

Der Audit-Trail wird automatisch bei jeder Datenaenderung befuellt. Es ist keine manuelle Aktion erforderlich. Systeminterne Aenderungen werden mit dem Benutzer "SYSTEM" protokolliert.

Unveraenderbarkeit

Audit-Trail-Eintraege sind Teil der revisionssicheren Dokumentation. Aenderungen am Audit-Trail selbst sollten nur durch autorisiertes Personal erfolgen.

  • Statusfelder werden automatisch in lesbare Bezeichnungen uebersetzt (z. B. Inventarstatus, Buchungsstatus).
  • Die Ansicht unterstuetzt Filter nach Benutzer, Zeitraum, Aenderungstyp und Feldname.
  • Die angezeigte Spaltenkonfiguration ist rollenabhaengig und wird per AJAX dynamisch geladen.
  • Der Zugriff erfordert die Berechtigung inventory_details_statushistory_view.

Aufbewahrung und Archiv

Der Audit-Trail waechst mit jeder Aenderung und wird nie kleiner, solange nichts ihn aufraeumt. Auf einer aktiv genutzten Anlage kommen mehrere zehntausend Eintraege pro Tag zusammen. calServer haelt ihn deshalb in zwei Stufen.

Stufe Tabelle Zweck
Heisses Fenster audit Die juengste Vergangenheit, hinter Grid und Detailseiten. Vorgabe: 24 Monate.
Archiv audit_archive Alles Aeltere. Gleiche Spalten, weniger Indizes, wird selten gelesen.

Der Umzug ins Archiv loescht nichts. Ein Eintrag verlaesst das System erst, wenn die gesetzliche Aufbewahrungsfrist abgelaufen ist.

Aufbewahrungsfrist einstellen

Die Frist gilt fuer Audit-Meldungen und Geraetedaten gleichermassen und ist je nach Labor, Akkreditierung und Kundenvertrag verschieden. Einstellbar sind 10 bis 30 Jahre, die Vorgabe sind 10.

Gepflegt wird sie unter Administration > Grundeinstellungen > Aufbewahrung.

Feld Bedeutung Vorgabe
Aufbewahrungsfrist (Jahre) Wann ein archivierter Eintrag geloescht werden darf (10-30). 10
Audit-Trail: heisses Fenster (Monate) Wie lange ein Eintrag im heissen Fenster bleibt. 24

Die Mindestfrist laesst sich nicht unterschreiten

Ein Wert unter 10 Jahren wird auf 10 angehoben, ein Wert ueber 30 auf 30 gekappt. Das heisse Fenster wird zusaetzlich durch die Frist begrenzt.

Der Aufraeumlauf

Die geplante Aufgabe Audit-Trail archivieren (audit:prune) laeuft taeglich um 4 Uhr. Sie verschiebt zuerst alles aus dem heissen Fenster ins Archiv und loescht danach aus dem Archiv, was die Frist hinter sich hat.

# Trockenlauf: zeigt an, was umziehen und was geloescht wuerde
docker exec calserver-api-v2 php artisan audit:prune --dry-run

Der erste Lauf dauert

Auf einer gewachsenen Anlage zieht der erste Lauf sehr viele Zeilen um. Er laeuft in Stapeln und kann gefahrlos abgebrochen und wiederholt werden -- der naechste Lauf macht dort weiter, wo der vorige aufgehoert hat.

Anlegen und Loeschen im Trail

Beim Anlegen und beim Loeschen eines Datensatzes schreibt calServer einen Eintrag, der alle Felder als Momentaufnahme enthaelt -- nicht einen Eintrag je Feld. Die Ansicht faltet ihn wieder in die einzelne Felder auf, der Inhalt ist also derselbe.

Zwei Auswirkungen im Alltag:

  • Der Filter Feldname trifft nur Aenderungen, keine Anlage- oder Loeschvorgaenge. Nach diesen wird ueber den Aenderungstyp gefiltert.
  • In einer aufgefalteten Momentaufnahme stehen Verweise auf andere Datensaetze als Kennung statt als Name. Die Kennung wird gekuerzt angezeigt, der volle Wert steht im Tooltip.