Erhöhen Client lesen Timeout zu 120s für lange Nachrichten
LibreTranslate betreibt CPU-only argos Modelle - eine Absatz-Länge Chat-Nachricht braucht 20-30s zu übersetzen, und längere können über 60er schieben. Die 8-Sek...
Verfolgen Sie öffentlichen Support-Chat von Session GUID in Redis
Marketing-Besucher nutzen /ws/public-chat-native ohne MitgliedId; Tickets noch verweisen auf das org-Panzer-Mitglied als Antragsteller. Increment PRESENCE_PUBLI...
Erhöhen Sie TTL von 90ern auf 300er, um falsche OFFLINE bei der Tab-Tedrängelung zu verhindern
JPA-Repository-Scan erweitern, um Commerce-Paket enthalten
Die neue Kamo-Shad-Bibliothek bringt ************ in die **************** erfordert (in com.kamo.z.shared.commerce). MediaService nur gescannt donotmodify.dao.r...
HashMap-Import in ChatWebSocketController wiederherstellen
Der vorherige Refaktor entfernte den HashMap-Import, aber das handleTyping Methode konstruiert immer noch eine HashMap für die Eingabe-Event-Nage-Nage-Nage-Nage...
Erstellen Sie NATS-Konsument bei der Erstellung von Sitzungen, um Nachrichtenverlust zu verhindern
Zuvor wurde der NATS JetStream Push Consumer nur erstellt, wenn ein STOMP-Client gesendet /app/chat/subscribe. Mit DeliverPolicy.New, alle Nachrichten veröffent...
Relay-Themenvorsorge aus Kern NATS
Match SecurityService Kern veröffentlichen: Abonnieren Sie mit Dispatcher auf security.theme.provision.* anstelle von JetStream (Stream-Cover nur Chat).
Verwenden Sie PublicChatVisitor displayName für requestorName auf Besuchertickets
Visitor-eitiierte Tickets Hardcode-Anfragen an das org-System-Mitglied, so Die DTO hat den Namen des org-Besitzers in der Spalte Requestor aufgeschlagen. Herbst...
Fehler in GeoLookupService bauen und NATS für Agentenmeldungen veröffentlichen
- Optional vs List Typ Mismatch in ************ - NatsMessageService in MediaController injizieren - Publish to chat.session.{guid] nach Agent erstellt eine Nac...
Echtzeit-Chat-Lieferung, Nachrichtenseiten, Benachrichtigungen und Namenssynchronisation
- Halten Sie NATS-Abonnement am Leben auf Client Abmelden zu vermeiden, Broker Echtzeit-Lieferung - Besuchernachrichten mit messageType=VISITOR_MESSAGE in getMe...
Tag Besuchernachrichten als VISITOR_MESSAGE Typ, fügen Sie senderName zu GET-Nachrichten hinzu
- PublicChatService: set messageType=VISITOR_MESSAGE so Frontend unterscheiden kann Besucher hallt von Agenten-Antworten zum Thema STOMP - MediaController.get...
Three support/chat issues — NATS relay, auto-popup, topic fallback
1. Switch SupportNotificationService and SupportStompRelayController from JetStream to core NATS — the CHAT_MESSAGES stream only covers chat.> so JetStrea...
Write contact form description as chat message on public ticket creation
The description was only stored on the ticket entity and never appeared in the chat window. Added writeTextMessage() helper and call it after the system event s...
Add debug logging and robust rights parsing for webinar controller
Adds info/warn logging for session data and rights on POST /types to diagnose 403 errors. Also adds fallback parsing for rights stored as JSON strings in Redis ...
Resolve org theme backgrounds not appearing in meet virtual backgrounds
- Add domain-based theme URL resolution for internal K8s service-to-service calls - getPublicBackgrounds now accepts optional domain param to derive correct the...
Upload meet backgrounds to public MinIO bucket with hash-based naming
Was uploading to private 'imaging-meet-recordings' bucket via **************** which caused: - MinIO region mismatch errors on the primary node - Connection tim...
Return serialization-safe Maps instead of raw JPA entities in MeetConfigController
All config/background endpoints were returning raw JPA entities with @ManyToOne(fetch=LAZY) Organization references. Jackson failed to serialize the Hibernate p...
Remove duplicate endpoints from MeetController, add org-themes to MeetConfigController
MeetConfigController already handled config/background endpoints. The duplicate endpoints in MeetController caused ambiguous mapping. Added org-theme background...
Update health probes to HTTP port 80 to match new server config
Startup, readiness, and liveness probes were still pointing to port 8443 with HTTPS scheme, causing pod restart loops.
Switch MediaService to HTTP port 80 — TLS termination at Traefik
Internal cluster traffic doesn't need HTTPS. Traefik handles TLS for external clients. This aligns MediaService with all other services.
Send chat invites to correct WebSocket topic /topic/chat/incoming/{memberId}
Was publishing to /topic/chat/member/{id} but kamo-internal subscribes to /topic/chat/incoming/{id}. Also fixed Member entity field access **************** inst...
Fügen Sie voip. zu NATS-Stream-Themen hinzu und behandeln Sie IllegalStateException in VoipStompRelayController
Der NATS-Stream nur abgedeckt Chat., so abonnieren voip. IllegalStateException ([SUB-90007] Keine passenden Streams). Zusätzliche voip. zu den Strompersonen, so...
VoipStompRelayController Abonnement-Referenz einbehalten und PreDestroy hinzufügen
Nehmen Sie *** von query param für Cross-Subdomain WebSocket auth
Lesen Sie *** ID von ?***= Abfrageparameter zuerst, zurückfallen auf Cookie. Dies ermöglicht das Frontend auf intern.kamocrm.com zu authentifizieren WebSocket V...
Abgestandene NATS-Verbraucherbindung mit einzigartigem Verbraucher-Reprot
- Extraktion Message Handler in createNatsMessageHandler() Methode - Wieder versuchen Logik mit eindeutigem Verbrauchernamen hinzufügen, wenn "Verbraucher berei...
Route WebSocket durch Traefik auf Port 443
- service.yaml: fix Port 80-8443 zum eigentlichen Listenport von pod - ingressroute.yaml: Verwendungsschema https + Port 8443 für Backend - serverstransport.yam...
Cluster-interne DNS für NATS-Verbindung verwenden
Änderung der voreingestellten NATS URL von WireGuard IPs (100.64.x) auf nats.kamo.svc.cluster.local für den lokalen Server. Remote-Knoten (k0m1, k2m1) bleiben a...
TLS Zertifikat optional machen bei MediaService Bereitstellung
- Optional hinzufügen: getreu Wildcard-kamocrm-com geheimes Volumen - Aktualisieren von Zertifikat init Container, um fehlendes Zertifikat anmutig zu behandeln
Buildx-Setup mit unsicherer Registry-Konfiguration hinzufügen, um 401 auth-Fehler zu beheben
Verbesserung der Anrufeinführung von Nachrichten und Mitglieder-Nachahmung - Ausreichend Protokollierung für Anrufeinweihungsnachrichten hinzufügen - Die Suchelogik von MediaSessionMitglieder simplifizieren - getSessionId() Fehler in der Erstellung von Janus-Sesionssitzungen beheben
Verwenden Sie getUsernameAlias() anstelle der nicht existierenden Methode getName() auf Member
Fügen Sie Janus-API-Geheimnisse als Umgebungsvariablen bei der Bereitstellung hinzu - JANUS_API_SECRET, JANUS_TOKEN_SECRET und JANUS_ADMIN_SECRET env vars hinzufügen - Sichert, dass Geheimnisse über Umgebungsvariablen zusätzlich zur Konfigurationskarte verfügbar sind
Fügen Sie apiSecret zu WebRTC Konfigurationsantwort für Janus Authentifizierung hinzu
Spring Security for WebSocket - CSRF komplett konfigurieren, Session-Erstellung IF_REQUIRED für WebSocket Handshake aktivieren
CSRF für /ws/** Endpunkte aussetzen und die Sicherheitskonfiguration vereinfachen, um SockJS /ws/info 405 Fehler zu beheben
Explizit erlauben GET/POST/HEAD-Methoden für /ws/** Endpoints, um SockJS /ws/info 405 Fehler zu beheben
Entfernen ungültige Methodenaufrufe, die Kompilierungsfehler verursachen (getId auf MediaSession, getStatusCode auf ServerHttpResponse)
WebSocket Middleware und ServerTransport zu IngressRoute hinzufügen
- Medien-websocket-Upgrade Middleware für WebSocket Upgrade Header hinzugefügt - Medien-Websocket-Transport hinzugefügt, um HTTP/2 zu deaktivieren (WebSocket er...
WebSocket Live-Nachrichten-Lieferung - ChatMessageHandler-Abonnement deaktivieren, Logging verbessern
- Behinderte ChatMessageHandler Abonnement für chat.session. - Verbesserte WebSocketConfig-Logging auf /app/chat/subscribe messages mit detaillierter Payload/He...
Verwenden Sie einzigartige NATS-Verbrauchernamen pro Chat-Sitzung - Jede Sitzung verwendet jetzt den Verbrauchernamen: Chat-Verbraucher-{sessionGuid' - Verhindert Verbraucherkonflikte, wenn mehrere Sitzungen aktiv sind - Behebt Websocket Live-Messaging-Problem, bei dem Nachrichten nicht zugestellt wurden
WebSocket persistente Verbindung mit aggressiven Keepalive
Idle Timeout auf 0 gesetzt, Herzschlag 20s, Trennung Verzögerung 30s, Match Frontend Timing
Hardcode-SSL-Einstellungen in ConfigMap für die Produktion
- Entfernte Umgebung variable Platzhalter - Hardcoded Port 8443, SSL aktiviert, keystore path - Behebt Spring Boot nicht richtig lösen env vars
Korrigieren Spring Boot SSL Umgebungsnamen
- SSL_ENABLED in SERVER_SSL_ENABLED geändert - Geändert SSL_KEY_STORE auf SERVER_SSL_KEY_STORE - Geändert SSL_KEY_STORE_PASSWORD auf SERVER_SSL_STORE_PASSWORD -...
Verwenden Sie SSLHostConfig API für Tomcat SSL Konfiguration
- Verwenden Sie SSLHostConfig und SSLHostConfigCertificate (korrekte Tomcat API) - Konfigurieren Zertifikat via ************ - Fehler bei der Kompilierung mit s...
SetAttribute für Tomcat SSL-Konfiguration verwenden
- Wechselte von setKeystoreFile/Pass/Type/Alias zu setAttribute - Tomcat 10+ verwendet setAttribute für SSL-Eigenschaften - Fehler bei der Kompilierung behebt
Führen Sie MediaService auf BOTH-Ports 80 (HTTP API) und 8443 (HTTPS WebSocket)
- Reverted service.yaml und ingressroute.yaml zu verwenden Port 80 - Entfernt gezwungen SERVER_PORT und SSL_ENABLED env vars - DualPortConfig zum programmatisch...
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.