Pre-Hook Ablauf
Der Pre-Hook wird vor jeder Tool-Ausführung aufgerufen und kann die Aktion blockieren, modifizieren oder durchlassen.
Trigger
Pre-Hooks werden bei folgenden Tools ausgelöst:
Bash- Shell-BefehleEdit- Datei-BearbeitungWrite- Datei-Erstellung- Alle anderen Tools (generisches Logging)
Ablauf bei Edit/Write
1. Sicherheits-Validierung (Bash)
Bei Bash-Befehlen werden zwei Blocker-Hooks ausgeführt:
| Hook | Prüft | Blockiert |
|---|---|---|
block_direct_db.py |
MySQL/MariaDB-Zugriffe | Direkte DB-Verbindungen mit Passwort |
block_direct_task_db.py |
Task-Tabellen-Zugriffe | INSERT/UPDATE/DELETE auf tasks-Tabellen |
Empfehlung bei Blockierung: MCP-Tools verwenden (db_select, tasks_create, etc.)
2. File Backup (Edit/Write)
Bei Edit- und Write-Operationen:
file_backup_hook.py
├── Prüft: Liegt Datei in BACKUP_DIRS?
│ ├── /var/www/dev.campus.../src
│ ├── /var/www/dev.campus.../public
│ ├── /var/www/dev.campus.../config
│ └── ... (weitere Verzeichnisse)
│
├── Prüft: Datei < 10 MB?
├── Prüft: Nicht in EXCLUDE_PATTERNS?
│ ├── /vendor/
│ ├── /node_modules/
│ ├── /.git/
│ └── ... (weitere Ausschlüsse)
│
├── Berechnet: SHA256-Hash des Inhalts
├── Vergleicht: Mit letzter Version
│
└── Bei Änderung:
└── INSERT INTO file_backup_history
├── file_path
├── file_content (vollständig)
├── content_hash
├── version (auto-increment pro Datei)
└── reason: "Claude Code Pre-Hook Backup"
3. Request-Logging
Für alle Tools wird der Request protokolliert:
log_to_db.py
├── Extrahiert: tool_name, tool_input
├── Sanitized: Sensible Daten (Passwörter, Tokens)
├── Schätzt: tokens_input
│
└── INSERT INTO protokoll
├── request (JSON)
├── request_timestamp
├── status: 'pending'
└── Speichert: pending_request für PostToolUse-Matching
Blockierung
Ein Pre-Hook kann die Ausführung blockieren durch:
exit(1)- Tool wird nicht ausgeführt{"allowed": false, "message": "..."}- Mit Fehlermeldung
Durchlassen
Bei Erfolg gibt der Hook zurück:
{"continue": true}
oder
{"allowed": true}
Geschützte Verzeichnisse
Backups werden erstellt für:
/var/www/dev.campus.systemische-tools.de/src/var/www/dev.campus.systemische-tools.de/public/var/www/dev.campus.systemische-tools.de/config/var/www/prod.campus.systemische-tools.de/src- ... und weitere