Remove media-cors middleware from IngressRoute to allow WebSocket connections
- media-cors middleware was clearing CORS headers which interfered with WebSocket upgrades - WebSocket connections require direct pass-through without header mo...
Remove invalid Spring Security pattern /ws/**/info
- PatternParseException: No more pattern data allowed after {*...} or ** - /ws/** already covers all paths under /ws including /ws/info - This was causing 500 e...
Apply media-cors middleware to MediaService IngressRoute
- Apply media-cors middleware to allow CORS headers for WebSocket connections - Matches the pattern used for theme domains
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
Explicitly permit OPTIONS requests for CORS preflight
- Add explicit permit for OPTIONS method on all paths - Add explicit permit for /ws/info endpoint (SockJS handshake) - This ensures CORS preflight requests reac...
Make CORS configuration more permissive for WebSocket connections
- Explicitly handle '*' wildcard for origins, methods, and headers - Add WebSocket-related headers to exposed headers - Add logging to verify CORS configuration...
Add logging and configure SockJS heartbeat/disconnect settings
- Add logging to verify WebSocket endpoint registration - Configure SockJS heartbeat and disconnect delay - This should help diagnose why SockJS handshake isn't...
Revert IngressRoute changes - Traefik handles WebSocket automatically
从 STOMP 中删除不存在的“ 活动” 属性 客户端记录
- STOMP (英语) 客户端没有“ 活动” 属性 - 只检查“ 连接” 属性, 该属性为正确的状态指标
从 STOMP 客户端中删除不支持的 WebSocketError 处理器
- 在WebSocketError上不是客户端选项中的有效属性 - SockJS 错误处理器( 错误, 关闭) 已经提供了错误处理
添加全面的 WebSocket 错误处理和记录
- 添加SockJS出错处理器(打开、打开、关闭)以捕获连接故障 - 添加连接超时检测(10秒)以识别无声故障 - 在WebSocketError处理器上添加到STOMP客户端 - 改进记录,以确定WebSocket连接为何没有建立 - 这将有助于识别 SockJS /ws/info 请求是否失败
Remove duplicate WebSocket endpoint registration and improve logging
- Removed duplicate /ws endpoint registration (SockJS already handles native WebSocket) - Added null check for payload in subscribeToSession - This may fix WebS...
Remove invalid Spring Security path pattern /ws/**/websocket
- Spring Security does not allow path segments after /** pattern - /ws/** already matches all paths under /ws including websocket endpoints - This fixes Pattern...
删除错误的 HTTPS 代理工作
- 绕过证书验证的还原更改 - 证书由自动证书服务(让我们加密)签发,而不是自签名 - 需要调查验证失败的原因
使用接受自签名证书的代理 HTTPS
- 恢复使用HTTPS(不是HTTP) - 添加 HTTPS 代理, 拒绝 未经授权: 自签证书有假 - 这使得服务器端 Next.js 路由连接到 https://media.kamocrm.com - 适用于所有媒体API线路
为 Media Service 使用 Kubernetes 服务名来避免 SSL 证书问题
- 服务器侧 Next.js 路由现在使用QQ - 这可以避免在连接 https://media.kamocrm.com 时出现自签证书错误 - 客户端请求仍然使用外部 https://media.{domain} URL 网络 - 适用于所有媒体API线路:会话/聊天、会话/[guid]、会话/[guid]/消息、信...
删除截获请求的旧/api/ 安全/ 媒体/ 路线
- 旧路线已转发给APIService,它不再有媒体终点 - 所有媒体要求应直接通过/api/媒体/途径进入媒体服务处 - 删除: - 删除: ...
为 MediaService 会话创建添加详细错误记录
- 调用日志媒体服务 URL - 日志回复信头 - 强化有全部错误细节的错误记录 - 在调试错误响应中包含 URL
返回到动作/ 检查出@ v4 以匹配其他 Next.js 项目
- 删除导致绞刑的复杂的手工取出逻辑 - 使用标准动作/ 检查出@v4, 如 kamo- login 和 Kamo- register - 简化多克建筑上下文以使用.而不是env var - 添加退出以部署 k8s 显示访问的任务
使用带有超时的浅层克隆来防止挂起
- 使用 -- -- 深度 1 为更快的克隆 - 增加超时(浅重120分,全重300分) - 如果浅度失败, 倒向完全克隆 - 必要时在浅层克隆后获取具体承诺
在 git 克隆前更改为有效的目录以避免工作目录出错
- 在删除/克隆工作空间之前更改为/tmp或/ - 只有在目录存在但不是 git repo 时才删除 - 防止“ 无法读取当前工作目录” 出错
Use hardcoded repository URL and set GITHUB_WORKSPACE env var
- Use direct repository URL to avoid DNS/hostname resolution issues - Set GITHUB_WORKSPACE environment variable for subsequent steps - Use env var in Docker bui...
Use git clone directly instead of relying on empty workspace
- Clone repository using git directly with repository URL - Handle both fresh clone and existing repository cases - Use working-directory for Docker build actio...
Simplify all checkout steps - remove git operations that hang
- Remove git fetch/reset/clean from deploy jobs - Forgejo runner already has code checked out - Just verify GITHUB_WORKSPACE is valid
Simplify checkout step - remove git clone that was hanging
- Remove git clone logic that was causing 20+ minute hangs - Forgejo runner already has code checked out, just verify directory - Remove unnecessary git fetch/r...
Improve checkout and Docker build context handling
- Add proper repository cloning if not already checked out - Verify Dockerfile exists before building - Use absolute paths for Docker build context - Fix workin...
Replace actions/checkout with manual git checkout to avoid DNS issues
- Replace actions/checkout@v4 with manual git checkout commands - Forgejo runner already has code checked out, just need to ensure clean state - Fixes DNS looku...
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...
Clarify WebSocket support in IngressRoute (automatic in Traefik)
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...
Explicitly permit WebSocket endpoints in Spring Security
- Added explicit permitAll for /ws/** endpoints - WebSocket upgrade requests need explicit permission even in development mode - Fixes issue where WebSocket con...
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...
由参与者成员搜索现有的聊天会,而不仅仅是会话所有者
- 更改了OrCreateChatSession,以搜索媒体会议成员的记录而不是媒体会议。 - 现在搜索创作者是参与者的会话(邀请成员或创建成员) - 搜索其他成员参加的会议 - 解决每个成员创建单独会议而不是共享会议的问题 - 这将确保两个成员的所有信息都出现在同一个聊天会话中
Add detailed logging for message member ID retrieval
- Added logging to trace member ID for each message being returned - Logs member class name to detect proxy/stub issues - Logs distinct member IDs in response t...
添加 JOIN FETCH 在信件查询中快速加载成员
- 加入JOIN FETCH m. 成员 发现BYSYANDISLOVED 虚假查询 - 确保成员实体热衷于装载,以避免懒惰的装载问题 - 解决在串行信件时可能无法正确检索成员身份的问题