You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Customers can see a deployment's derived lifecycle status, but nothing of its runtime console output (stdout/stderr) — no way to see why an app is misbehaving short of asking us. Part of the App Deployments epic (#45).
Wanted
A customer-facing endpoint that streams a running deployment's container log output live over WebSocket, scoped to the owning customer only.
lnvps_api_admin/src/admin/websocket.rs (admin_job_feedback_websocket) is an existing WebSocket precedent in this codebase (axum WebSocketUpgrade, per-connection auth, forward a stream to the socket) — different source (Redis pub/sub, not pod logs), but the connection/auth shape is there to follow.
A multi-container service (compose can declare several) needs a container selector, not just a deployment id.
Not settled here
Retention/scrollback (live tail only vs. some history), and whether the web UI change lands in the same pass or as a follow-up once the endpoint's contract is set.
Problem
Customers can see a deployment's derived lifecycle status, but nothing of its runtime console output (stdout/stderr) — no way to see why an app is misbehaving short of asking us. Part of the App Deployments epic (#45).
Wanted
A customer-facing endpoint that streams a running deployment's container log output live over WebSocket, scoped to the owning customer only.
Starting points, not a mandate
lnvps_operatoralready depends onkube/k8s-openapi(Cargo.toml) and reconciles each deployment in its ownapp-<id>namespace (per Operator cannot list pods in app-N namespaces, so the workload health read added in #276 never runs #293) — the Kubernetes API's pod log stream (Api<Pod>::log_stream) is the natural source, no new dependency needed.lnvps_api_admin/src/admin/websocket.rs(admin_job_feedback_websocket) is an existing WebSocket precedent in this codebase (axumWebSocketUpgrade, per-connection auth, forward a stream to the socket) — different source (Redis pub/sub, not pod logs), but the connection/auth shape is there to follow.Not settled here
Retention/scrollback (live tail only vs. some history), and whether the web UI change lands in the same pass or as a follow-up once the endpoint's contract is set.
-- PM: Alejandra