Raise client read timeout to 120s for long messages
LibreTranslate runs CPU-only argos models — a paragraph-length chat message takes 20-30s to translate, and longer ones can push past 60s. The 8-second read time...
Urmăriți chat-ul de suport public prin sesiune GUID în Redis
Vizitatorii de marketing folosesc /ws/public-chat-nativ fără membruId; bilete încă se referă la membrul titular de org ca solicitant. PRESENCE PUBLIC tastele ST...
Crește TTL de la 90 la 300 pentru a preveni fals OFFLINE pe trepidație filă
Extinde scanarea depozitului JPA pentru a include pachetul comercial
Noul librar kamo-împărtășește aduce în *************** care necesită - Nu. (în com.kamo.z.shared. commerce). MediaService doar scanat numodifica.dao.repos, deci...
Restaurare HashMap import în ChatWebSocketController
Refactorul anterior a eliminat importul HashMap dar manerTyping metoda construiește încă un HashMap pentru sarcina utilă eveniment de dactilografiere, cauzând F...
Creează activ consumatorul NAT la crearea sesiunii pentru a preveni pierderea mesajelor
Din episoadele anterioare: trimis /app/chat/subscribe. Cu DeliverPolicy. Nou, orice mesaje publicate înainte de consumatorul există sunt permanent pierdute Nic...
Furnizarea de teme de bază NATS
Match SecurityService core published: subscribe with Dispatcher on Security.theme.provision.* in loc de JetStream (stream acopera doar chat).
Utilizați PublicChatVizitor AfișareNume pentru solicitantNume pe biletele vizitatorilor
Vizitator-inițiat bilete hardcode solicita la membru al sistemului org, așa DTO a fost suprapuse numele proprietarului org în coloana solicitant. Cădere înapoi ...
Construiți eroare în GeoLookupService și adăugați NATS publica pentru mesaje de agent
- Fix Opţional vs Lista de nepotrivire de tip în ************* - Injectaţi NatsMessageService în MediaController - Publish to chat.session. agentul și vizitator...
Real-time chat delivery, message sides, notifications, and name sync
- Keep NATS subscription alive on client unsubscribe to avoid breaking agent real-time delivery - Tag visitor messages with messageType=VISITOR_MESSAGE in getMe...
Tag-ul de mesaje vizitatori ca tip VISITOR Message, adăugați numele expeditorului pentru a obține mesaje
- PublicChatService: set messageType=VISITOR Message astfel încât frontend poate distinge vizitatori ecouri din răspunsurile agent pe tema STOMP - MediaControll...
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...
Adăugaţi voip.> la subiecţii NATS flux şi se ocupe de stat ilegal Excepţie în VoipStompRelayController
Râul NATS a acoperit doar chat-ul.> Astfel, subscrie la voip.> aruncat Excepție de stat ilegal ([SUB-90007] Nu există fluxuri de potrivire). Adăugat voip.> la s...
Acceptaţi *** de la interogare param pentru Cross-subdomeniu WebSocket auth
Citește *** ID-ul de la ? *** = parametru de interogare primul, care se încadrează înapoi la Prăjitură. Acest lucru permite frontend pe intern.kamocrm.com să au...
Manipula vechi NATS consumator obligatoriu cu retry unic de consum
- Extragerea handler mesaj în crearea metoda NatsMessageHandler() - Adăugați logica retry cu numele unic de consumator atunci când "Consumator deja legat" eroar...
Traseu WebSocket prin Traefik pe portul 443
- service.yaml: fix port 80→8443 pentru a potrivi portul de ascultare real pod - ingressroute.yaml: sistem de utilizare https + port 8443 pentru suport - server...
Utilizați DNS intern-cluster pentru conectarea NATS
Schimbă URL- ul NATS implicit de la IP-uri WireGuard (100.64.x.x) la nats.kamo.svc.cluster.local pentru serverul local. Noduri la distanță (k0m1, k2m1) rămân pe...
Faceți ca certificatul TLS să fie opțional în implementarea MediaService
- Adăugaţi opţional: adevărat la volumul secret wildcard-kamocrm-com - Actualizează recipientul de iniţiere a certificatului de certificat lipsă cu graţie
Adaugă configurare Buildx cu configurare de registru nesigură pentru a rezolva 401 erori de aut
Utilizați getUsernameAlias() în loc de metoda de a obține denumirea inexistentă () a membrului
Adaugă apiSecret la răspunsul de configurare WebRTC pentru autentificarea Janus
Dezactivează CSRF pentru criteriile finale /ws/** și simplifică configurarea securității pentru a repara eroarea SockJS /ws/info 405
Permite explicit metodele GET/POST/HEAD pentru /ws/** finaluri pentru a remedia eroarea SockJS /ws/info 405
Elimină apelurile de metodă invalide care cauzează erori de compilare (getId on MediaSesssion, getStatusCode on ServerHttpResponse)
Adăugaţi WebSocket Middleware şi Servere Transport la IngressRoute
- Adăugat media-websocket-upgrade Middleware pentru upgrade-uri WebSocket - Added media-websocket-transport pentru a dezactiva HTTP/2 (WebSocket necesită HTTP/1...
WebSocket live message delivery - disable ChatMessageHandler subscription, enhance logging
- Disabled ChatMessageHandler subscription to chat.session.> that was consuming messages without forwarding to WebSocket - Enhanced WebSocketConfig logging to t...
WebSocket persistent connection with aggressive keepalive
Idle timeout set to 0, heartbeat 20s, disconnect delay 30s, match frontend timing
Hardcode SSL settings in ConfigMap for production
- Removed environment variable placeholders - Hardcoded port 8443, SSL enabled, keystore path - Fixes Spring Boot not resolving env vars correctly
Correct Spring Boot SSL environment variable names
- Changed SSL_ENABLED to SERVER_SSL_ENABLED - Changed SSL_KEY_STORE to SERVER_SSL_KEY_STORE - Changed SSL_KEY_STORE_PASSWORD to SERVER_SSL_KEY_STORE_PASSWORD - ...
Use SSLHostConfig API for Tomcat SSL configuration
- Use SSLHostConfig and SSLHostConfigCertificate (correct Tomcat API) - Configure certificate via **************** - Fixes compilation errors with setAttribute/...
Use setAttribute for Tomcat SSL configuration
- Changed from setKeystoreFile/Pass/Type/Alias to setAttribute - Tomcat 10+ uses setAttribute for SSL properties - Fixes compilation errors
Run MediaService on BOTH ports 80 (HTTP API) and 8443 (HTTPS WebSocket)
- Reverted service.yaml and ingressroute.yaml to use port 80 - Removed forced SERVER_PORT and SSL_ENABLED env vars - Added DualPortConfig to programmatically ad...
Ca ceea ce vezi de transport maritim?
Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.