Replace legacy Bash check and rebuild script with a new Python-based validator; add comprehensive validation checks and improve documentation for usage and features.

This commit is contained in:
2026-01-24 00:05:18 +01:00
parent ee7a36ef41
commit b6cf03c4cf
5 changed files with 858 additions and 225 deletions

View File

@@ -44,22 +44,28 @@ Keine integrierte KI-Schnittstelle existiert, aber mit Dateizugriff können auto
**WICHTIG:** Nach jeder Änderung an Custom-Dateien muss ein Rebuild durchgeführt werden!
### Check & Rebuild Script (Empfohlen)
### Validate & Rebuild Script (Empfohlen)
**Zentrales Tool:** `custom/scripts/check_and_rebuild.sh`
**Zentrales Tool:** `custom/scripts/validate_and_rebuild.py`
**NEU ab Januar 2026:** Erweitertes Python-basiertes Validierungs-Tool mit automatischen Checks!
Dieses Script sollte **IMMER** verwendet werden (nicht manueller Rebuild). Es führt automatisch aus:
**Validierungen:**
- JSON-Syntax-Prüfung aller `.json` Dateien im `custom/` Verzeichnis
- **Relationship-Konsistenz-Prüfung** (bidirektionale Links, foreign-Definitionen)
- **Formula-Script Platzierung** (korrekt in `/formula/` statt `/entityDefs/`)
- **i18n-Vollständigkeit** (fehlende Übersetzungen für Links)
- Layout-Struktur-Prüfung
- Dateirechte-Prüfung (`www-data:www-data` Owner)
- System-Checks (Cache-Verzeichnis, Logs-Verzeichnis)
**Automatische Korrekturen:**
- Setzt fehlerhafte Dateirechte auf `www-data:www-data`
- Korrigiert Verzeichnis-Permissions (775) und Datei-Permissions (664)
**Rebuild:**
- **Nur wenn keine kritischen Fehler gefunden werden!**
- Merged alle Custom-Metadata mit Core-Definitionen
- Aktualisiert Datenbank-Schema (neue Felder, Tabellen, Indizes)
- Leert Cache-Verzeichnis
@@ -68,18 +74,25 @@ Dieses Script sollte **IMMER** verwendet werden (nicht manueller Rebuild). Es f
**Verwendung:**
```bash
# Im EspoCRM-Root-Verzeichnis ausführen
./custom/scripts/check_and_rebuild.sh
python3 custom/scripts/validate_and_rebuild.py
# Nur Validierung ohne Rebuild
python3 custom/scripts/validate_and_rebuild.py --dry-run
```
**Ausgabe:**
- ✓ Grün: Alles in Ordnung, Rebuild erfolgreich
- ⚠ Gelb: Warnungen, Rebuild wird trotzdem ausgeführt
- ✗ Rot: Fehler (z.B. ungültiges JSON), Rebuild wird NICHT ausgeführt
- ⚠ Gelb: Warnungen (z.B. fehlende i18n), Rebuild wird trotzdem ausgeführt
- ✗ Rot: Kritische Fehler (z.B. ungültiges JSON, fehlende Relationships), Rebuild wird NICHT ausgeführt
**Bei Fehlern:**
- JSON-Syntax-Fehler werden mit Datei und Zeilennummer angezeigt
- Relationship-Fehler zeigen fehlende Links zwischen Entities
- Formula-Platzierungsfehler werden erkannt und gemeldet
- i18n-Probleme werden als Warnungen angezeigt (kein Abbruch)
- Dateirechte-Probleme werden automatisch korrigiert
- System-Fehler (fehlende Verzeichnisse) müssen manuell behoben werden
**Detaillierte Dokumentation:** Siehe `custom/scripts/VALIDATOR_README.md`
### Wann Rebuild erforderlich?