Monorepo for Tangled
0

Configure Feed

Select the types of activity you want to include in your feed.

appview/pipelines: do validations before upgrading to wss

once upgraded, its only possible to return websocket errors

Signed-off-by: oppiliappan <me@oppi.li>

author
oppiliappan
date (May 12, 2026, 11:10 AM +0100) commit f1d74112 parent 3cb04fff change-id zswzuxtk
+18 -18
+18 -18
appview/pipelines/pipelines.go
··· 181 181 func (p *Pipelines) Logs(w http.ResponseWriter, r *http.Request) { 182 182 l := p.logger.With("handler", "logs") 183 183 184 - clientConn, err := upgrader.Upgrade(w, r, nil) 185 - if err != nil { 186 - l.Error("websocket upgrade failed", "err", err) 187 - return 188 - } 189 - defer func() { 190 - _ = clientConn.WriteControl( 191 - websocket.CloseMessage, 192 - websocket.FormatCloseMessage(websocket.CloseNormalClosure, "log stream complete"), 193 - time.Now().Add(time.Second), 194 - ) 195 - clientConn.Close() 196 - }() 197 - 198 - ctx, cancel := context.WithCancel(r.Context()) 199 - defer cancel() 200 - 201 184 f, err := p.repoResolver.Resolve(r) 202 185 if err != nil { 203 186 l.Error("failed to get repo and knot", "err", err) ··· 241 224 242 225 url := scheme + "://" + strings.Join([]string{spindle, "logs", knot, rkey, workflow}, "/") 243 226 l = l.With("url", url) 227 + 228 + clientConn, err := upgrader.Upgrade(w, r, nil) 229 + if err != nil { 230 + l.Error("websocket upgrade failed", "err", err) 231 + return 232 + } 233 + defer func() { 234 + _ = clientConn.WriteControl( 235 + websocket.CloseMessage, 236 + websocket.FormatCloseMessage(websocket.CloseNormalClosure, "log stream complete"), 237 + time.Now().Add(time.Second), 238 + ) 239 + clientConn.Close() 240 + }() 241 + 242 + ctx, cancel := context.WithCancel(r.Context()) 243 + defer cancel() 244 + 244 245 l.Info("logs endpoint hit") 245 246 246 247 spindleConn, _, err := websocket.DefaultDialer.Dial(url, nil) 247 248 if err != nil { 248 249 l.Error("websocket dial failed", "err", err) 249 - http.Error(w, "failed to connect to log stream", http.StatusBadGateway) 250 250 return 251 251 } 252 252 defer spindleConn.Close()