Expose MediaService on port 8443 for WebSocket over HTTPS/HTTP1.1
- Added NodePort service on 8443 for direct WebSocket access (bypasses Traefik) - Mount wildcard-kamocrm-com SSL certificate - Init container converts PEM to PK...
Add CORS middleware to media-route for cross-origin WebSocket
- Added cors middleware to allow cross-origin connections - Enables WebSocket connections from internal.* to media.* - Allows all origins, methods, and headers ...
Add API proxy routes for WebRTC endpoints
- Added /api/webrtc/config proxy to MediaService - Added /api/webrtc/token proxy for Janus authentication - Added /api/webrtc/call/initiate, answer, end proxies...
Complete peer-to-peer WebRTC calling with signaling
- Added useWebRTC hook with full signaling support - Integrated WebSocket signaling (offers, answers, ICE candidates) - Added incoming call notifications with a...
Add WebSocket signaling for peer-to-peer calls
- Added WebRTCSignalingController for call signaling - Handles offer/answer exchange via STOMP - Forwards ICE candidates between peers - Manages call hangup not...
Add Janus WebRTC integration for audio/video calls
- Added useJanusWebRTC hook for WebRTC call management - Added VideoCallPanel component for in-chat video display - Integrated with ChatBox for seamless call ex...
Add Janus WebRTC integration
- Added WebRTCController for token generation and call management - Configured Janus API URL and secrets (api, token, admin) - Configured STUN/TURN servers (kam...
Update TURN server credentials with secure values
- Updated turn-secret with secure random value - Updated turn-password for Janus authentication - Credentials match MediaService WebRTC configuration
Add ServersTransport deployment to CI/CD workflow
Deploy traefik/serverstransport.yaml as part of Traefik deployment to both K1M1 and K2M1. This enables HTTP/1.1 backend connections for MediaService WebSocket s...
Add ServersTransport for MediaService WebSocket connections
Add media-websocket-transport ServersTransport resource to disable HTTP/2 for backend connections to MediaService. This is required for proper WebSocket upgrade...
Add media-websocket-upgrade middleware to force Upgrade header
- Add Upgrade: websocket header for WebSocket paths to fix HTTP/2 Extended CONNECT conversion - This ensures HTTP/2 WebSocket upgrade requests are properly conv...
Add media-cors middleware for media domain CORS support
- Add media-cors middleware matching theme-cors configuration - Allows CORS headers to be set for media.{domain} requests
Add detailed error logging for MediaService session creation
- Log MediaService URL being called - Log response headers - Enhanced error logging with full error details - Include URL in error response for debugging
Add 'media' subdomain to auto-cert SUBDOMAINS for MediaService
- Add 'media' to SUBDOMAINS list in auto-cert-service.yaml - Enables automatic SSL certificate generation for media.{domain} subdomains - Required for MediaServ...
Add direct MediaService routes via media.{domain} for WebSocket support
- Create new /api/media/* routes that forward directly to media.{domain} - These routes bypass APIService to allow secure WebSocket connections - MediaService r...
Add logging for subscription request to backend
- Log when subscription request is sent to /app/chat/subscribe - Helps verify if subscription requests are reaching the backend
Add detailed logging for subscribe function
- Log when subscribe() is called and current connection state - Log client existence and connection status - Helps diagnose why subscriptions aren't being creat...
Add detailed logging for WebSocket subscription requests
- Added logging to trace when subscribeToSession is called - Logs payload and sessionGuid extraction - Logs database lookup for session verification - Helps dia...
Add detailed WebSocket connection logging
- Enhanced logging for WebSocket connection success/failure - Log connection frame details on successful connection - Log detailed STOMP error information - Hel...
Load 100 message history on chat open and determine message author correctly
Support two-member chat sessions and message pagination (default 100 messages)
Add pagination support for message history and findOrCreateChatSession for two-member chats
Make chat boxes reposition when Team Members panel opens/closes, add retry logic for session creation
Migrate chat functionality from ChatSideBar to Team Members - add chat button to MemberItem, preserve member IDs, remove duplicate ChatSideBar
Access Level dropdown with icons and titles from ImageAccessLevelType
Pre-consume X-OTK via filter to avoid expiry on large uploads; use pre-auth session in ImagingController
Expose endpoints under /api/security/imaging to match gateway
Enable server.shutdown=graceful, spring.lifecycle timeout; add shutdown-aware TaskScheduler/TaskExecutor
Support X-OTK and *** via Redis (KSessionService) to synthesize KToken
Finalize end-to-end imaging flow (session forward, hashing align, UX wiring)
Add imaging API routes and UI integration; wire into DocManager; update KToken and user-info; add ImageAccessLevelType; update package.json
Add imaging endpoints and beans; integrate session; update application.yml and k8s configmap
Migrate to MinIO-backed imaging; remove legacy storage model; add MinIOConfig, imaging services/exceptions, ImageAccessLevelType; update **************** update pom deps
Use TLSStore for dynamic cert management (survives CI/CD deployments)
Certificate export/import with locking for true multi-cluster cert sharing
Enable JSON access logging in Traefik for auto-cert domain detection
Add cert-manager and Let's Encrypt ClusterIssuer to deployment workflow
Add MinIO public/internal bucket routes to Traefik deployment
Migrate to CockroachDB with unique_rowid() for all entities
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.