Files
customer-installer/CHANGELOG_WORKFLOW_RELOAD.md

168 lines
4.0 KiB
Markdown
Raw Normal View History

# Changelog - Workflow Auto-Reload Feature
## Version 1.0.0 - 2024-01-15
### ✨ Neue Features
#### Automatisches Workflow-Reload bei LXC-Neustart
Der n8n-Workflow wird jetzt bei jedem Neustart des LXC-Containers automatisch neu geladen. Dies stellt sicher, dass der Workflow immer im gewünschten Zustand ist.
### 📝 Änderungen
#### Neue Dateien
1. **`templates/reload-workflow.sh`**
- Bash-Script für automatisches Workflow-Reload
- Liest Konfiguration aus `.env`
- Wartet auf n8n API
- Löscht alten Workflow
- Importiert neuen Workflow aus Template
- Aktiviert Workflow
- Umfassendes Logging
2. **`templates/n8n-workflow-reload.service`**
- Systemd-Service-Unit
- Startet automatisch beim LXC-Boot
- Wartet auf Docker und n8n
- Führt Reload-Script aus
3. **`WORKFLOW_RELOAD_README.md`**
- Vollständige Dokumentation
- Funktionsweise
- Installation
- Fehlerbehandlung
- Wartung
4. **`WORKFLOW_RELOAD_TODO.md`**
- Implementierungsplan
- Aufgabenliste
- Status-Tracking
5. **`CHANGELOG_WORKFLOW_RELOAD.md`**
- Diese Datei
- Änderungsprotokoll
#### Geänderte Dateien
1. **`libsupabase.sh`**
- Neue Funktion: `n8n_api_list_workflows()`
- Neue Funktion: `n8n_api_get_workflow_by_name()`
- Neue Funktion: `n8n_api_delete_workflow()`
- Neue Funktion: `n8n_api_get_credential_by_name()`
2. **`install.sh`**
- Neuer Schritt 10a: Setup Workflow Auto-Reload
- Kopiert Workflow-Template in Container
- Installiert Reload-Script
- Installiert Systemd-Service
- Aktiviert Service
### 🔧 Technische Details
#### Systemd-Integration
- **Service-Name**: `n8n-workflow-reload.service`
- **Service-Typ**: `oneshot`
- **Abhängigkeiten**: `docker.service`
- **Auto-Start**: Ja (enabled)
#### Workflow-Verarbeitung
- **Template-Speicherort**: `/opt/customer-stack/workflow-template.json`
- **Verarbeitungs-Script**: Python 3
- **Credential-Ersetzung**: Automatisch
- **Felder-Bereinigung**: `id`, `versionId`, `meta`, `tags`, `active`, `pinData`
#### Logging
- **Log-Datei**: `/opt/customer-stack/logs/workflow-reload.log`
- **Systemd-Journal**: `journalctl -u n8n-workflow-reload.service`
- **Log-Level**: INFO, ERROR
### 🎯 Verwendung
#### Automatisch (Standard)
Bei jeder Installation wird das Auto-Reload-Feature automatisch konfiguriert:
```bash
bash install.sh --debug
```
#### Manuelles Reload
```bash
# Im LXC-Container
/opt/customer-stack/reload-workflow.sh
```
#### Service-Verwaltung
```bash
# Status prüfen
systemctl status n8n-workflow-reload.service
# Logs anzeigen
journalctl -u n8n-workflow-reload.service -f
# Service neu starten
systemctl restart n8n-workflow-reload.service
# Service deaktivieren
systemctl disable n8n-workflow-reload.service
# Service aktivieren
systemctl enable n8n-workflow-reload.service
```
### 🐛 Bekannte Einschränkungen
1. **Wartezeit beim Start**: 10 Sekunden Verzögerung nach Docker-Start
2. **Timeout**: Maximale Wartezeit für n8n API: 60 Sekunden
3. **Workflow-Name**: Muss exakt "RAG KI-Bot (PGVector)" sein
4. **Credential-Namen**: Müssen exakt "PostgreSQL (local)" und "Ollama (local)" sein
### 🔄 Workflow beim Neustart
```
1. LXC startet
2. Docker startet
3. n8n-Container startet
4. Systemd wartet 10 Sekunden
5. Reload-Script startet
6. Script wartet auf n8n API (max. 60s)
7. Login bei n8n
8. Suche nach altem Workflow
9. Lösche alten Workflow (falls vorhanden)
10. Suche nach Credentials
11. Verarbeite Workflow-Template
12. Importiere neuen Workflow
13. Aktiviere Workflow
14. Cleanup
15. Workflow ist bereit
```
### 📊 Statistiken
- **Neue Dateien**: 5
- **Geänderte Dateien**: 2
- **Neue Funktionen**: 4
- **Zeilen Code**: ~500
- **Dokumentation**: ~400 Zeilen
### 🚀 Nächste Schritte
- [ ] Tests durchführen
- [ ] Feedback sammeln
- [ ] Optimierungen vornehmen
- [ ] Weitere Workflows unterstützen (optional)
### 📚 Dokumentation
Siehe `WORKFLOW_RELOAD_README.md` für vollständige Dokumentation.
### 🙏 Danke
Dieses Feature wurde entwickelt, um die Wartung und Zuverlässigkeit der n8n-Installation zu verbessern.