fix(ws): ticket auth + Firefox permessage-deflate fix#41
Merged
Conversation
Ticket pattern: one-time token (30s TTL, sync.Map) validates cross-domain WS connections when __Host- cookie is unavailable (Vercel/VPS split). CompressionDisabled: fixes Firefox WebSocket timeout caused by failed permessage-deflate negotiation between browser and coder/websocket.
Fetches a one-time ticket before opening the WebSocket, enabling cross-domain auth (komunumo.fr -> api.komunumo.fr). NEXT_PUBLIC_WS_URL baked at build time via CD; fallback maps komunumo.fr -> api.komunumo.fr for builds without the env var.
Dedicated /api/v1/ws location with proxy_buffering off and 3600s timeouts for both HTTP and HTTPS server blocks, ensuring WebSocket upgrade headers are not stripped by the generic location / block.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sync.Map) validates cross-domain WS connections when__Host-cookie is unavailable (Vercel frontend / VPS backend split)CompressionDisabledonwebsocket.Accept: fixes Firefox 108s timeout caused by failedpermessage-deflatenegotiation withcoder/websocketNEXT_PUBLIC_WS_URLbaked at build time via CD pipeline; frontend fallback mapskomunumo.fr → api.komunumo.fr/api/v1/wslocation block withproxy_buffering offand 3600s timeoutsTest plan
go test ./...— all passvitest run— 135/135 passtsc --noEmit— no errorsCompressionDisabled— was timing out before fix