HTTP/2 WebSocket アップグレードの問題を処理する SockJS トランスポートの設定
- WebSocketを好むSockJSの輸送順序を明示的に設定し、xhr-streaming/xhr-pollingにフォールバック - HTTP / 2 WebSocketのアップグレードが失敗する可能性があるため、SockJSはHTTP / 1.1互換輸送に自動的にフォールバックされます。 - これは、ブラウザが...
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
Next.js でメッセージのルートが認識されていることを確認します
- ルートがヒットしていることを確認するためにログを追加 - ルートファイルが存在し、構造はNext.js 15に正しい
STOMPから存在しない'active'プロパティを削除します クライアントロギング
- ストムプ クライアントは'active'プロパティを持たない - 正しい状態インジケータである「接続」プロパティのみをチェック
STOMP クライアントからサポートされていない onWebSocketError ハンドラを削除
- onWebSocketError は ClientOptions で有効なプロパティではありません - SockJSエラーハンドラ(onerror、onclose)は既にエラー処理を提供
包括的なWebSocketエラー処理とロギングを追加
- 接続障害をキャッチするためにSockJSエラーハンドラ(onopen、onerror、onclose)を追加 - 接続タイムアウト検知(10秒)を追加し、サイレント障害を特定 - STOMP クライアントに onWebSocketError ハンドラを追加 - WebSocket接続が確立されていない理由を診断する...
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(HTTPSではなく)を使用するように変換 - 未承認の HTTPS エージェントを追加: 自己署名された証明書の false - これは、https://media.kamocrm.comに接続するためのサーバー側Next.jsルートを可能にします - すべてのメディア API ルートに適用
SSL証明書の問題を回避するために、MediaServiceのKubernetesサービス名を使用する
- Server-side Next.js が使用できるようになりました。 - これは、https://media.kamocrm.comに接続するときに自己署名された証明書のエラーを回避します - クライアント側のリクエストはまだ外部 https://media.{domain} を使用します。 サイトマップ - セ...
古い /api/security/media/ のリクエストを傍受していたルートを削除します
- 古いルートは、もはやメディアエンドポイントがないAPIServiceに転送されました - すべてのメディアリクエストは、 /api/media/ から MediaService へ直接アクセスする - 削除:************************ - 削除:************************...
MediaServiceセッション作成用の詳細なエラーロギングを追加
- ログメディアサービス URL が呼び出される - ログ応答ヘッダー - フルエラーの詳細でエラーロギングを強化 - デバッグのためのエラー応答でURLを含める
他のNext.jsプロジェクトに合わせてアクション/checkout@v4に変換
- 掛かることを引き起こした複雑な手動チェックアウトロジックを削除します - kamo-loginおよびkamo-registerのような標準的な行為/checkout@v4を使用して下さい - Docker ビルドのコンテキストを env var ではなく . を使うように単純化 - k8sマニフェストアクセスのため...
掛かることを防ぐのにタイムアウトの浅いクローンを使用して下さい
- より速いクローニングのための --depth 1 を使用して下さい - タイムアウトを追加する(浅い120s、フルのための300s) - 浅い場合の完全なクローンへのフォールバック - 浅いクローンの後に必要に応じて特定のコミットをフェッチ
作業ディレクトリのエラーを回避するために、 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...
セッション所有者だけでなく、参加者のメンバーシップによる既存のチャットセッションを検索
- MediaSession.member ではなく MediaSessionMember レコードを検索する findOrCreateChatSession を変更しました - クリエイターが参加するセッションを検索します(memberInvited or MemberCreated) ・他のメンバーが参加するセッシ...
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 を追加して、メッセージのクエリでメンバーを重ねる
- 両方のfindBySessionAndIsRemovedにJOIN FETCH m.memberを追加しました 偽の質問 - レイジーローディングの問題を回避するために、メンバーのエンティティティティが熱心にロードされていることを確認してください - メッセージのシリアライズ時に、会員IDが正しく取得できない問題を...
