Änderungen:
- Einführung einer Logik zur Priorisierung des Ladens der Produktions-.env-Datei, falls vorhanden, andernfalls wird die lokale .env-Datei verwendet.
- Hinzufügung von Protokollausgaben, um anzuzeigen, welche .env-Datei geladen wird.
Diese Anpassungen verbessern die Flexibilität beim Laden von Umgebungsvariablen und erleichtern die Konfiguration in verschiedenen Umgebungen.
Änderungen:
- Im ForumService wurde die Berechtigungsabfrage aktualisiert, um direkt den Wert der Berechtigung zu verwenden.
- In ForumAdminView wurde die Verarbeitung der Berechtigungen beim Erstellen eines neuen Forums angepasst, um die Werte der Berechtigungen korrekt zu übermitteln.
Diese Anpassungen verbessern die Konsistenz und Funktionalität der Berechtigungsverwaltung im Forum.
Änderungen:
- Hinzufügung eines Verbindungsstatus-Indicators in der AppHeader.vue, der den aktuellen Verbindungsstatus anzeigt.
- Erweiterung der MultiChatDialog.vue um verbesserte Netzwerkereignisbehandlungen und eine Herzschlag-Logik zur Aufrechterhaltung der WebSocket-Verbindung.
- Anpassungen im Store zur Verwaltung des Verbindungsstatus und zur Implementierung von Wiederverbindungslogik mit exponentiellem Backoff.
- Diese Anpassungen verbessern die Benutzererfahrung durch klare Statusanzeigen und erhöhen die Stabilität der WebSocket-Verbindungen.
Änderungen:
- Neue Methode `getUserStatistics` im `AdminController` hinzugefügt, um Benutzerstatistiken abzurufen.
- Implementierung der Logik zur Berechnung der Gesamtanzahl aktiver Benutzer, Geschlechterverteilung und Altersverteilung im `AdminService`.
- Neue Route `/users/statistics` im `adminRouter` definiert, um auf die Benutzerstatistiken zuzugreifen.
- Anpassungen der Navigationsstruktur und Übersetzungen für Benutzerstatistiken in den Sprachdateien aktualisiert.
Diese Anpassungen verbessern die Analyse der Benutzerbasis und erweitern die Funktionalität des Admin-Bereichs.
Änderungen:
- Entfernen von überflüssigen Protokollausgaben in den Methoden `setupSocketEvents` und `handleEvent` in den Komponenten BankView.vue, BranchView.vue, DirectorView.vue, FamilyView.vue, HealthView.vue, HouseView.vue, NobilityView.vue und OverviewView.vue.
- Diese Anpassungen verbessern die Lesbarkeit des Codes und reduzieren die Menge an Konsolenausgaben, was die Wartbarkeit der Anwendung erhöht.
Änderungen:
- Hinzugefügte Überprüfungen in den Methoden `getRenovationCost`, `getWorth` und `buyCost`, um sicherzustellen, dass die erforderlichen Daten vorhanden sind, bevor Berechnungen durchgeführt werden.
- Diese Anpassungen erhöhen die Robustheit der Preisberechnungen und verhindern Fehler bei fehlenden Informationen.
Änderungen:
- Anpassungen der Formatierung und Einrückungen für bessere Lesbarkeit.
- Überarbeitung der Bedingungen in der Template-Logik zur Vereinheitlichung.
- Rückführung der Socket-Event-Setup-Logik in die Lebenszyklusmethoden `mounted` und `beforeUnmount`.
Diese Anpassungen verbessern die Wartbarkeit des Codes und die Benutzeroberfläche der Hausansicht.
Änderungen:
- Neue Funktionen zur Benutzerverwaltung hinzugefügt: Benutzer suchen, Benutzer abrufen und Benutzer aktualisieren.
- Implementierung von Funktionen zur Verwaltung von Benutzerrechten: Rechtearten auflisten, Benutzerrechte auflisten, Recht hinzufügen und Recht entfernen.
- Routen für die neuen Funktionen im Admin-Router definiert.
- Übersetzungen für Benutzer- und Rechteverwaltung in den Sprachdateien aktualisiert.
Diese Anpassungen verbessern die Verwaltung von Benutzern und deren Rechten im Admin-Bereich und erweitern die Funktionalität der Anwendung.
Änderungen:
- Neue Übersetzungen für Beta-Hinweise, Einführungstexte und Datenschutzinformationen wurden in die JSON-Dateien für Deutsch und Englisch eingefügt.
- Die NoLoginView.vue wurde aktualisiert, um die neuen Übersetzungen anzuzeigen und die Benutzererfahrung zu verbessern.
- Die Struktur und das Styling der Ansicht wurden optimiert, um eine bessere Lesbarkeit und Benutzerinteraktion zu gewährleisten.
Diese Anpassungen verbessern die Benutzererfahrung und die Verständlichkeit der Plattform während der Beta-Phase.
Änderungen:
- Die Redis-Client-Konfiguration wurde aktualisiert, um die Verwendung von Umgebungsvariablen für Passwort und URL zu unterstützen.
- Warnungen wurden hinzugefügt, um auf fehlende Authentifizierungsinformationen hinzuweisen.
- Die HTML-Dateien wurden um wichtige Metadaten wie Beschreibung, Open Graph- und Twitter-Tags erweitert, um die Sichtbarkeit und SEO zu verbessern.
- Eine Beta-Hinweis-Nachricht wurde in die NoLoginView.vue eingefügt, um Benutzer über den Entwicklungsstatus der Plattform zu informieren.
Diese Anpassungen erhöhen die Sicherheit der Redis-Verbindung und verbessern die Benutzererfahrung sowie die Auffindbarkeit der Anwendung.
Änderungen:
- Eine neue Umgebungsvariable `DEBUG_SOCKETS` wurde eingeführt, um die Protokollierung von Socket-Interaktionen zu steuern.
- Protokollausgaben für Verbindungsherstellung, Benutzer-ID-Setzung, Trennung und Benachrichtigungen wurden aktualisiert, um nur bei aktivem Debugging angezeigt zu werden.
Diese Anpassungen erhöhen die Flexibilität der Protokollierung und verbessern die Fehlerdiagnose in der Socket.io-Integration.
Änderungen:
- Protokollausgaben wurden hinzugefügt, um die Ereignisse beim Verkauf von Produkten und beim Verkauf aller Produkte zu dokumentieren.
- Diese Anpassungen erhöhen die Nachvollziehbarkeit der Benutzerinteraktionen und verbessern die Fehlerdiagnose im Service.
Änderungen:
- Protokollausgaben wurden hinzugefügt, um Verbindungsherstellung, Benutzer-ID-Setzung und Trennung von Sockets zu dokumentieren.
- Zusätzliche Warnungen wurden implementiert, um fehlende Sockets für Benutzer zu kennzeichnen.
Diese Anpassungen erhöhen die Nachvollziehbarkeit und Robustheit der Socket.io-Integration in der Anwendung.
Änderungen:
- Die Logik zur Übertragung der Benutzer-ID an den Socket wurde aktualisiert, um die Verwendung von `hashedId` zu unterstützen.
- In `BranchView.vue` wurde die Socket-Verbindung um zusätzliche Live-Events erweitert und die Handhabung der Socket-Events optimiert.
- Protokollausgaben wurden hinzugefügt, um die Nachverfolgbarkeit der Socket-Interaktionen zu verbessern.
Diese Anpassungen erhöhen die Flexibilität und Robustheit der Socket.io-Integration in der Anwendung.
Änderungen:
- Eine neue Umgebungsvariable `VITE_SOCKET_IO_URL` wurde zur .env.server-Datei hinzugefügt, um die Socket.io-URL zu definieren.
- Die Logik zur Initialisierung der Socket.io-Verbindung wurde aktualisiert, um die neue Umgebungsvariable zu verwenden und einen Fallback auf die API-URL zu implementieren.
- Der Transportmodus für die Socket.io-Verbindung wurde auf 'websocket' und 'polling' erweitert.
Diese Anpassungen verbessern die Flexibilität der Socket.io-Verbindung und ermöglichen eine bessere Handhabung der Umgebungsvariablen.
Änderungen:
- Das Skript überprüft nun, ob die Datei .env.server vorhanden ist, und kopiert sie nur, wenn sie existiert.
- Umgebungsvariablen werden nun mit Standardwerten gesetzt, falls sie nicht bereits definiert sind.
- Die Kopie der .env-Datei erfolgt ebenfalls nur, wenn diese existiert, um unnötige Überschreibungen zu vermeiden.
Diese Anpassungen erhöhen die Flexibilität und Robustheit des Deploy-Prozesses.
Änderungen:
- Die Umgebungsvariablen für die API-URLs wurden auf lokale Adressen geändert, um die Entwicklung zu erleichtern.
- Der Socket.io-Verbindungsaufbau wurde angepasst, um nur das 'polling'-Transportprotokoll zu verwenden.
Diese Anpassungen verbessern die lokale Entwicklungsumgebung und vereinfachen die Verbindung zu den WebSocket-Diensten.
Änderungen:
- Der Verbindungsaufbau des Daemon WebSockets wurde angepasst, um zuerst mit einem spezifischen Subprotokoll zu versuchen und bei Misserfolg auf eine Verbindung ohne Subprotokoll zurückzugreifen.
- Zusätzliche Protokollausgaben wurden hinzugefügt, um den Verbindungsstatus und Fehlerdetails besser nachzuvollziehen.
Diese Anpassungen erhöhen die Robustheit der WebSocket-Verbindung und verbessern die Fehlerdiagnose.
Änderungen:
- Die WebSocket-URLs für Daemon und Chat wurden aktualisiert, um spezifische Ports zu verwenden.
- Der Daemon WebSocket wird nun mit dem Protokoll 'wss' initialisiert und verwendet das 'yourpart-protocol'.
Diese Anpassungen verbessern die Verbindungsstabilität und die Protokollierung der WebSocket-Interaktionen.
Änderungen:
- Der Daemon WebSocket-URL wurde von 'wss' auf 'ws' geändert, um die Verbindung zu optimieren.
- Der WebSocket wird nun ohne spezifisches Protokoll initialisiert, um Tests zu erleichtern.
- Zusätzliche Protokollausgaben wurden hinzugefügt, um Browserinformationen bei Verbindungsfehlern zu dokumentieren.
Diese Anpassungen verbessern die Fehlerdiagnose und die Flexibilität der WebSocket-Verbindung.
Änderungen:
- Der Daemon WebSocket wurde aus der Anwendung entfernt, um die Komplexität zu reduzieren und die Stabilität zu erhöhen.
- Die Event-Verarbeitung in StatusBar.vue und BranchView.vue wurde aktualisiert, um Socket.io für die Registrierung und Verarbeitung von Live-Events zu verwenden.
- Protokollausgaben wurden hinzugefügt, um den Empfang und die Verarbeitung von Events zu dokumentieren.
Diese Anpassungen verbessern die Nachvollziehbarkeit der Event-Verarbeitung und vereinfachen die Codebasis.
Änderungen:
- Hinzufügen von detaillierten Protokollausgaben beim Verbindungsaufbau und beim Empfang von Nachrichten, um den Status und die empfangenen Daten besser nachzuvollziehen.
- Implementierung von Protokollausgaben zur Unterscheidung zwischen verschiedenen Nachrichtenformaten und zur Dokumentation der Weiterleitung von Events an Socket.io.
- Verbesserung der Fehlerbehandlung beim Parsen von JSON-Nachrichten mit zusätzlichen Protokollausgaben zur Diagnose.
Diese Anpassungen erhöhen die Nachvollziehbarkeit der WebSocket-Interaktionen und erleichtern die Fehlersuche im Backend.
Änderungen:
- In der StatusBar.vue wurden Protokollausgaben hinzugefügt, um den Start und die Ergebnisse des fetchStatus-Aufrufs zu dokumentieren.
- In der BranchView.vue wurden Protokollausgaben hinzugefügt, um den Status der Aktualisierung der verschiedenen Sektionen zu verfolgen und sicherzustellen, dass die Referenzen verfügbar sind.
Diese Anpassungen erhöhen die Nachvollziehbarkeit der Eventverarbeitung und erleichtern die Fehlersuche.
Änderungen:
- In der StatusBar.vue wurden Protokollausgaben hinzugefügt, um den Event-Typ und den Erfolg oder Fehler des fetchStatus-Aufrufs zu dokumentieren.
- In der BranchView.vue wurden Protokollausgaben hinzugefügt, um den Event-Typ und den Status der Aktualisierung aller Sektionen zu protokollieren.
Diese Anpassungen verbessern die Nachvollziehbarkeit der Eventverarbeitung und erleichtern die Fehlersuche.
Änderung:
- Die Methode `beforeUnmount` wurde aktualisiert, um die Abmeldung von Socket.io-Events zu vereinfachen, indem die spezifischen Event-Namen entfernt wurden. Dies verbessert die Lesbarkeit und Wartbarkeit des Codes.
- Der Aufruf von `loadStatus` wurde durch `fetchStatus` ersetzt, um die Konsistenz mit der neuen Event-Verarbeitung zu gewährleisten.
Diese Anpassung sorgt für eine klarere Struktur und eine einheitliche Handhabung der Socket.io-Events in der StatusBar-Komponente.
Änderung:
- In den Views StatusBar, BankView, BranchView, DirectorView, FamilyView, HealthView, HouseView und NobilityView wurde eine neue Methode `handleEvent` hinzugefügt, um die Verarbeitung von empfangenen Socket.io-Events zu zentralisieren.
- Die spezifischen Event-Handler wurden aktualisiert, um die `handleEvent`-Methode aufzurufen, was die Lesbarkeit und Wartbarkeit des Codes verbessert.
Diese Anpassung sorgt für eine konsistentere Handhabung von Socket.io-Events und erleichtert zukünftige Erweiterungen und Anpassungen der Event-Logik.
Änderung:
- In den Views BankView, DirectorView, FamilyView, HealthView, HouseView und NobilityView wurden Protokollausgaben hinzugefügt, um empfangene Daten von den Socket.io-Events 'falukantUpdateStatus' und 'familychanged' zu dokumentieren.
- Diese Anpassung verbessert die Nachvollziehbarkeit der Datenaktualisierungen und erleichtert die Fehlersuche bei der Eventverarbeitung.
Diese Änderungen sorgen für eine bessere Transparenz und Debugging-Möglichkeiten in der Anwendung.
Änderung:
- Die Logik zur Abmeldung von WebSocket-Events wurde vereinfacht, indem die spezifischen Event-Namen direkt in der Methode `beforeUnmount` abgemeldet werden. Dies verbessert die Lesbarkeit und Wartbarkeit des Codes.
Diese Anpassung sorgt für eine klarere Struktur und effizientere Handhabung der WebSocket-Events.
Änderung:
- Alle Views wurden aktualisiert, um den Daemon WebSocket zu deaktivieren und stattdessen Socket.io für die Event-Registrierung zu verwenden.
- Eine neue Methode `setupSocketEvents` wurde hinzugefügt, um die Socket.io-Events zu registrieren und Protokollausgaben für den Status der Registrierung bereitzustellen.
- Die Logik zur Handhabung von WebSocket-Events wurde vereinfacht und verbessert, um die Stabilität und Nachvollziehbarkeit zu erhöhen.
Diese Anpassung sorgt für eine konsistentere Handhabung von WebSocket-Events und verbessert die Benutzererfahrung durch zuverlässigere Datenaktualisierungen.
Änderung:
- Aktualisierung der Versionen mehrerer Pakete in der Datei package-lock.json, einschließlich @types/node (24.3.1), @types/validator (13.15.3), dotenv (17.2.2), mysql2 (3.14.4) und iconv-lite (0.7.0).
- Diese Anpassungen verbessern die Sicherheit und Stabilität der Anwendung durch die Verwendung der neuesten Versionen der Abhängigkeiten.
Änderung:
- Der Daemon WebSocket wurde aufgrund von CORS- und Protokollproblemen deaktiviert.
- Alle WebSocket-Interaktionen wurden auf Socket.io umgestellt, um die Funktionalität weiterhin zu gewährleisten.
- Entsprechende Protokollausgaben wurden hinzugefügt, um den Status der Deaktivierung zu dokumentieren.
Diese Anpassung verbessert die Stabilität der Anwendung und sorgt für eine konsistente Handhabung von WebSocket-Events.
Änderung:
- In der Klasse FalukantController wurden Protokollausgaben hinzugefügt, um die Aufrufe der Methoden getDirectorProposals und getGifts zu verfolgen.
- In der Klasse FalukantService wurde eine Protokollausgabe hinzugefügt, um die Aufrufe der Methode getFalukantUserByHashedId zu dokumentieren und das Ergebnis zu protokollieren.
Diese Anpassung verbessert die Nachvollziehbarkeit der Methodenaufrufe und erleichtert die Fehlersuche im Backend.
Änderung:
- Die WebSocket-Verbindung zum Daemon verwendet nun zuerst das 'yourpart-protocol' und versucht bei einem Protokollfehler eine Verbindung ohne Protokoll.
- Es wurde eine Retry-Logik mit exponentiellem Backoff hinzugefügt, um die Verbindung bei Fehlern stabiler zu gestalten.
- Zusätzliche Protokollausgaben für Fehler- und Verbindungsdetails wurden implementiert, um die Fehlersuche zu erleichtern.
Diese Anpassung verbessert die Zuverlässigkeit der WebSocket-Verbindung und die Fehlerdiagnose.
Änderung:
- Die Logik zur Extraktion der Benutzerliste wurde aktualisiert, um auch `userlist` aus `obj.message` zu berücksichtigen. Dies verbessert die Robustheit der Benutzerlistenverarbeitung und stellt sicher, dass alle relevanten Benutzer korrekt angezeigt werden.
Diese Anpassung sorgt dafür, dass die Benutzerliste im Chat präziser und vollständiger ist.
Änderung:
- Die Methode createRoom im AdminService wird nun mit userId und value aufgerufen, anstatt nur mit value. Dies verbessert die Zuordnung des Raums zum entsprechenden Benutzer.
Diese Anpassung sorgt dafür, dass die Raumerstellung korrekt mit dem zugehörigen Benutzer verknüpft ist.
Änderung:
- SQL-Abfragen in der Datei sequelize.js wurden aktualisiert, um die Verwendung von `bind` anstelle von `replacements` zu implementieren. Dies verbessert die Lesbarkeit und Konsistenz der Abfragen.
Diese Anpassung sorgt dafür, dass die SQL-Abfragen effizienter und sicherer ausgeführt werden.
Änderung:
- Die Beziehung zu UserParamValue für genderRestriction wurde aktualisiert, um `required: false` zu setzen. Dadurch können auch Räume ohne genderRestriction geladen werden.
Diese Anpassung verbessert die Flexibilität beim Laden von Rauminformationen und stellt sicher, dass Räume ohne Geschlechtsbeschränkungen korrekt angezeigt werden.
Änderung:
- Der ownerId wird nun aus dem userId extrahiert und als Ganzzahl gesetzt, bevor ein Raum erstellt wird. Dies verbessert die Zuordnung des Raums zum entsprechenden Benutzer.
Diese Anpassung sorgt dafür, dass die Raumerstellung korrekt mit dem zugehörigen Benutzer verknüpft ist.
Problem:
- Chat WebSocket versuchte wss://www.your-part.de (ohne Port)
- Sollte wss://www.your-part.de:1235 sein (direkte Verbindung)
Lösung:
- getChatWsUrl() verwendet jetzt Port 1235 für Production
- getChatWsCandidates() verwendet Port 1235 für alle Hosts
- Direkte Verbindung zum Chat-Server auf Port 1235
Chat-Server:
- Läuft mit SSL auf Port 1235
- yourchat.service: SSL WebSocket Server starting on port 1235
- Frontend: wss://www.your-part.de:1235 mit 'chat' Protokoll
Änderung:
- Umgebungsvariablen `VITE_DAEMON_SOCKET` und `VITE_CHAT_WS_URL` werden nun direkt beim Bauen des Frontends gesetzt, anstatt sie vorher zu exportieren. Dies verbessert die Handhabung der Variablen im Build-Prozess.
Diese Anpassung sorgt dafür, dass die Umgebungsvariablen korrekt im Build-Prozess verarbeitet werden und die WebSocket-Verbindung stabil bleibt.
Änderung:
- Die WebSocket-Verbindung verwendet jetzt die Variable `daemonUrl`, die entweder den Wert von `VITE_DAEMON_SOCKET` oder einen Standardwert hat. Dies verbessert die Flexibilität und stellt sicher, dass die Verbindung auch bei fehlender Umgebungsvariable funktioniert.
Diese Anpassung sorgt dafür, dass die WebSocket-Verbindung stabiler und zuverlässiger ist.
Änderung:
- VITE_DAEMON_SOCKET wurde von wss://www.your-part.de/ws auf wss://www.your-part.de:4551 geändert, um die Verbindung zum Daemon-Service zu verbessern.
Diese Anpassung stellt sicher, dass die WebSocket-Verbindung korrekt konfiguriert ist und die Kommunikation mit dem Daemon-Service reibungslos funktioniert.
Problem:
- VITE_DAEMON_SOCKET wird nicht im Build-Prozess verarbeitet
- Umgebungsvariable wird nicht korrekt in JavaScript eingebaut
Lösung:
- echo 'VITE_DAEMON_SOCKET=wss://www.your-part.de/ws' >> .env
- export VITE_DAEMON_SOCKET=wss://www.your-part.de/ws
- Umgebungsvariablen werden sowohl in .env geschrieben als auch exportiert
Dadurch sollte das yourpart-protocol korrekt im Frontend eingebaut werden.
Änderung:
- VITE_CHAT_WS_URL wurde von wss://www.your-part.de/ws auf wss://www.your-part.de:1235 geändert, um die Verbindung zu verbessern.
Diese Anpassung stellt sicher, dass die WebSocket-Verbindung korrekt konfiguriert ist und die Kommunikation mit dem Daemon-Service reibungslos funktioniert.
Problem:
- VITE_DAEMON_SOCKET wird nicht im Build-Prozess verarbeitet
- Umgebungsvariable wird nicht korrekt in JavaScript eingebaut
Lösung:
- echo 'VITE_DAEMON_SOCKET=wss://www.your-part.de/ws' >> .env
- echo 'VITE_CHAT_WS_URL=wss://www.your-part.de:1235' >> .env
- Umgebungsvariablen werden direkt in .env Datei geschrieben
Dadurch sollte das yourpart-protocol korrekt im Frontend eingebaut werden.
Problem:
- VITE_DAEMON_SOCKET wird nicht im Build-Prozess verarbeitet
- Umgebungsvariable wird nicht korrekt in JavaScript eingebaut
Lösung:
- export VITE_DAEMON_SOCKET=wss://www.your-part.de/ws
- export VITE_CHAT_WS_URL=wss://www.your-part.de:1235
- Umgebungsvariablen sind jetzt im Build-Prozess verfügbar
Dadurch sollte das yourpart-protocol korrekt im Frontend eingebaut werden.
Problem:
- 502 Proxy Error trotz upgrade=websocket Parameter
- Daemon-Service erwartet reine WebSocket-Verbindungen
Lösung:
- ProxyPass mit upgrade=websocket entfernt (unzuverlässig)
- Nur RewriteRules für WebSocket-Upgrade-Requests verwenden
- ProxyPass '/ws/' '!' hinzugefügt um andere Requests zu blockieren
Daemon-Logs zeigen:
- WebSocket Server auf Port 4551 (no SSL)
- 'Unknown client spec version 0' Fehler
- Apache muss WebSocket-Upgrade korrekt weiterleiten
Problem:
- 502 Proxy Error bei WebSocket-Verbindungen zu /ws/
- Apache konnte nicht mit Daemon-Service auf Port 4551 verbinden
Lösung:
- upgrade=websocket Parameter zu ProxyPass hinzugefügt
- Reihenfolge der RewriteRules und ProxyPass optimiert
- WebSocket-Upgrade-Requests werden jetzt korrekt behandelt
Konfiguration:
- RewriteRules für WebSocket-Upgrade vor ProxyPass
- ProxyPass mit upgrade=websocket für /ws/ → ws://localhost:4551/
- Daemon-Service läuft auf Port 4551 und akzeptiert nur WebSocket-Verbindungen