From d68cb5b34eee57a77724750f3062450e92d79a80 Mon Sep 17 00:00:00 2001 From: Shad Date: Sun, 14 Jun 2026 21:21:44 +0000 Subject: [PATCH] qa(evidence): live production verification report (#2) --- qa/evidence/01-login.png | Bin 0 -> 46816 bytes qa/evidence/02-after-login.png | Bin 0 -> 47093 bytes qa/evidence/03-mission.png | Bin 0 -> 47093 bytes qa/evidence/REPORT.md | 102 +++++++++++++++++++++++++++ qa/evidence/_ea2_full_trace.mjs | 94 ++++++++++++++++++++++++ qa/evidence/_ea2_trace.mjs | 48 +++++++++++++ qa/evidence/_endpoint_probe.mjs | 44 ++++++++++++ qa/evidence/demo-direct-ea2-401.json | 1 + qa/evidence/endpoint-probe.json | 66 +++++++++++++++++ qa/evidence/network-report.json | 14 ++++ 10 files changed, 369 insertions(+) create mode 100644 qa/evidence/01-login.png create mode 100644 qa/evidence/02-after-login.png create mode 100644 qa/evidence/03-mission.png create mode 100644 qa/evidence/REPORT.md create mode 100644 qa/evidence/_ea2_full_trace.mjs create mode 100644 qa/evidence/_ea2_trace.mjs create mode 100644 qa/evidence/_endpoint_probe.mjs create mode 100644 qa/evidence/demo-direct-ea2-401.json create mode 100644 qa/evidence/endpoint-probe.json create mode 100644 qa/evidence/network-report.json diff --git a/qa/evidence/01-login.png b/qa/evidence/01-login.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf98b947a2c1407cf2ee0fb66237bb5916cc817 GIT binary patch literal 46816 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 J^6x$M`(NS)TD<@O literal 0 HcmV?d00001 diff --git a/qa/evidence/02-after-login.png b/qa/evidence/02-after-login.png new file mode 100644 index 0000000000000000000000000000000000000000..a60a330e7b2eabb54e6340886b9cef212ab487aa GIT binary patch literal 47093 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 literal 0 HcmV?d00001 diff --git a/qa/evidence/03-mission.png b/qa/evidence/03-mission.png new file mode 100644 index 0000000000000000000000000000000000000000..a60a330e7b2eabb54e6340886b9cef212ab487aa GIT binary patch literal 47093 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 literal 0 HcmV?d00001 diff --git a/qa/evidence/REPORT.md b/qa/evidence/REPORT.md new file mode 100644 index 0000000..31dc024 --- /dev/null +++ b/qa/evidence/REPORT.md @@ -0,0 +1,102 @@ +# Canvas — production verification report + +**Date:** 2026-06-14 +**Target:** https://canvas.flow-master.ai +**Method:** browser-style probes + Playwright dogfood, no kubectl access. + +## TL;DR + +The live canvas frontend is healthy as a static SPA, but it is **not connected to EA2**. Every `/api/*` call through canvas's nginx proxy returns **502 Bad Gateway**. The user's hypothesis that "GETs are all 200, it should be wired" is wrong — those are 502s, not 200s. Plus the frontend calls auth routes that don't exist on demo (`/api/v1/auth/dev-login-config`, `/api/v1/auth/microsoft/login`), which is a real product bug independent of the proxy issue. + +## Evidence + +### 1. canvas /api/* → 502 (proxy broken) + +``` +GET /api/v1/auth/dev-login-config 502 Bad Gateway +POST /api/v1/auth/dev-login 502 Bad Gateway +GET /api/v1/auth/me 502 Bad Gateway +GET /api/v1/auth/microsoft/login 502 Bad Gateway +GET /api/ea2/work-items 502 Bad Gateway +GET /api/ea2/flow/processes?limit=10 502 Bad Gateway +GET /api/ea2/process-definitions 502 Bad Gateway +GET /api/runtime/transactions 502 Bad Gateway +``` + +Body of every 502: +``` + +502 Bad Gateway +

502 Bad Gateway


nginx
+ +``` + +Raw artifacts: `qa/evidence/endpoint-probe.json`, `qa/evidence/canvas-proxy-ea2-error.html`. + +### 2. demo upstream is alive + +``` +GET https://demo.flow-master.ai/ 200 +GET https://demo.flow-master.ai/api/ea2/work-items 401 (auth required, as expected) +``` + +So upstream is reachable from the public internet. The 502 is canvas's nginx-side proxy failing — TLS handshake, NetworkPolicy, or DNS resolution inside the pod. + +### 3. Frontend calls routes that don't exist on demo + +``` +GET https://demo.flow-master.ai/api/v1/auth/dev-login-config → 404 +GET https://demo.flow-master.ai/api/v1/auth/microsoft/login → 404 +POST https://demo.flow-master.ai/api/v1/auth/dev-login → unverified (proxy blocks the probe) +``` + +Even after the proxy is fixed, the Login scene will still fail because the auth endpoints aren't on demo. Either: +- the frontend is targeting the wrong path prefix (should be `/api/auth/...`?), or +- demo isn't the real auth backend for canvas and a different host should be proxied. + +### 4. Playwright dogfood against live canvas + +`qa/full_dogfood.mjs` first 5 checks: + +``` +PASS auth_guard_unauthed_redirects_to_login +PASS login_shows_three_personas — Mariana Cole · CEO | Aisha Khan · HR | Rohan Patel · IT +PASS login_has_microsoft_sso_button +FAIL ceo_persona_dev_login_lands_on_landing +FAIL landing_exposes_all_hubs_and_extras + missing: Procurement Hub, People Hub, IT Hub, Attendance Map, + Command Assistant, Team Chat, What is FlowMaster? +``` + +The login screen renders correctly. Dev-login click never lands because the dev-login endpoint is 502. + +### 5. Idle network during a 6-second landing visit + +``` +total /api/ calls: 1 +by status: { "502": 1 } +endpoint: /api/v1/auth/microsoft (SSO availability probe) +``` + +The "non-stop 200 GETs" the user saw in the console were either: (a) the probe + retry loop (1 call every few seconds, every one a 502, not 200), or (b) developer-tools showing the static-asset 200s and the user not differentiating from the failing /api calls. Either way, **zero EA2 traffic** is reaching the backend. + +## Root cause + +Canvas's running nginx pod is at the build whose `last-modified` is `Sun, 14 Jun 2026 17:02:30 GMT` — pre-dating today's ops PRs. The image bumps in `FM06/flowmaster-ops` (#1173, #1174, #1175) did not roll the pod, because: +- `FM06/flowmaster-ops` `manifests/overlays/demo/mc-mission-control` points at `gitea.flow-master.ai/shad/mission-control-demo` images, but the live CSP signature (`script-src 'self'`, openstreetmap, unpkg) does not match the `mc-mission-control` nginx.conf. So the host `canvas.flow-master.ai` is **not** being served by `mc-mission-control` at all. +- The actual serving deployment is not in `flowmaster-ops` and not in any of the cloned source repos. Either it's out-of-Gitops on the cluster or in a private repo not exposed. +- The 502s on `/api/*` mean whichever nginx is serving canvas has a broken `proxy_pass` to demo — wrong cluster DNS, missing NetworkPolicy egress, expired upstream TLS, or wrong upstream host. + +## What needs cluster access to fix + +1. Identify the deployment+pod actually serving `canvas.flow-master.ai`. +2. Verify its nginx.conf `proxy_pass` target and resolve why `proxy_pass https://demo.flow-master.ai` returns 502 from inside the pod. +3. Confirm `NetworkPolicy` allows egress to `demo.flow-master.ai`'s IP from the pod's namespace. +4. Identify the correct auth API base path (`/api/v1/auth/...` does not exist on demo) and reconfigure the frontend or the upstream. + +Until those four are resolved on the cluster, no amount of repo-side change will make canvas talk to EA2. + +## What did get fixed this session + +- `shad/canvas-frontend` README rewritten to match the shipped product (PR #1 merged). +- Findings above filed as `qa/evidence/` artifacts for the next operator with cluster access to pick up. diff --git a/qa/evidence/_ea2_full_trace.mjs b/qa/evidence/_ea2_full_trace.mjs new file mode 100644 index 0000000..9085b25 --- /dev/null +++ b/qa/evidence/_ea2_full_trace.mjs @@ -0,0 +1,94 @@ +// Post-login EA2 trace + screenshot bundle. Uses dev-login (the SSO 502 is +// the user's actual issue) and walks Mission Control so polling fires. +import { chromium } from "playwright"; +import { writeFileSync, mkdirSync } from "node:fs"; + +const URL = "https://canvas.flow-master.ai/"; +const OUT = "/tmp/canvas-evidence"; +mkdirSync(OUT, { recursive: true }); + +const calls = []; +const b = await chromium.launch({ headless: true }); +const ctx = await b.newContext({ viewport: { width: 1440, height: 900 } }); +const p = await ctx.newPage(); + +p.on("response", async (res) => { + const u = res.url(); + if (!u.includes("/api/")) return; + calls.push({ url: u, status: res.status(), ts: Date.now() }); +}); + +console.log("[1/5] goto landing"); +await p.goto(URL, { waitUntil: "domcontentloaded" }); +await p.waitForTimeout(2000); +await p.screenshot({ path: `${OUT}/01-login.png`, fullPage: false }); + +console.log("[2/5] try dev-login as CEO persona"); +const ceoChip = p.locator(".persona-chip").filter({ hasText: /Mariana/ }); +const ceoVisible = await ceoChip.count(); +console.log(` CEO persona chip count: ${ceoVisible}`); +if (ceoVisible) { + await ceoChip.first().click(); + await p.waitForTimeout(3000); +} +await p.screenshot({ path: `${OUT}/02-after-login.png`, fullPage: false }); + +console.log("[3/5] check URL + page title"); +console.log(` url: ${p.url()}`); +console.log(` title: ${await p.title()}`); +const headers = await p.evaluate(() => ({ + body: document.body?.innerText?.slice(0, 200) ?? "", + scenes: document.querySelector("[class*='shell']")?.className ?? "n/a", +})); +console.log(` scene: ${headers.scenes}`); +console.log(` body[0..200]: ${JSON.stringify(headers.body)}`); + +console.log("[4/5] try to reach Mission Control"); +const missionLink = p.locator("a, button").filter({ hasText: /mission control/i }).first(); +if (await missionLink.count()) { + await missionLink.click(); + await p.waitForTimeout(4000); +} +await p.screenshot({ path: `${OUT}/03-mission.png`, fullPage: false }); + +console.log("[5/5] dump network"); +const byStatus = {}; +const byHost = {}; +const byPath = {}; +for (const c of calls) { + byStatus[c.status] = (byStatus[c.status] || 0) + 1; + const url = new URL(c.url); + byHost[url.host] = (byHost[url.host] || 0) + 1; + const path = url.pathname.split("/").slice(0, 4).join("/"); + byPath[path] = (byPath[path] || 0) + 1; +} + +const report = { + ts: new Date().toISOString(), + url: URL, + total: calls.length, + byStatus, + byHost, + byPath, + ea2Calls: calls.filter((c) => c.url.includes("/api/ea2/")).length, + ea2Ok: calls.filter((c) => c.url.includes("/api/ea2/") && c.status === 200).length, + authCalls: calls.filter((c) => c.url.includes("/api/v1/auth/")).length, + authOk: calls.filter((c) => c.url.includes("/api/v1/auth/") && c.status === 200).length, + first10: calls.slice(0, 10), + last10: calls.slice(-10), +}; + +writeFileSync(`${OUT}/network-report.json`, JSON.stringify(report, null, 2)); + +console.log("\n=== SUMMARY ==="); +console.log(`total /api/ calls: ${report.total}`); +console.log(`by status: ${JSON.stringify(report.byStatus)}`); +console.log(`by path (top):`); +for (const [pa, n] of Object.entries(byPath).sort((a, b) => b[1] - a[1]).slice(0, 8)) { + console.log(` ${n}\t${pa}`); +} +console.log(`EA2 200/total: ${report.ea2Ok}/${report.ea2Calls}`); +console.log(`auth 200/total: ${report.authOk}/${report.authCalls}`); +console.log(`screenshots → ${OUT}`); + +await b.close(); diff --git a/qa/evidence/_ea2_trace.mjs b/qa/evidence/_ea2_trace.mjs new file mode 100644 index 0000000..b5f447a --- /dev/null +++ b/qa/evidence/_ea2_trace.mjs @@ -0,0 +1,48 @@ +// Browser-style trace: visit live canvas, capture every network request, and +// classify whether EA2 endpoints are actually being hit with real responses. +import { chromium } from "playwright"; + +const URL = "https://canvas.flow-master.ai/"; +const calls = []; + +const b = await chromium.launch({ headless: true }); +const ctx = await b.newContext({ viewport: { width: 1440, height: 900 } }); +const p = await ctx.newPage(); + +p.on("response", async (res) => { + const u = res.url(); + if (!u.includes("/api/")) return; + calls.push({ + url: u, + status: res.status(), + ts: Date.now(), + }); +}); + +await p.goto(URL, { waitUntil: "domcontentloaded" }); +await p.waitForTimeout(8000); + +const total = calls.length; +const byStatus = {}; +const byEndpoint = {}; +for (const c of calls) { + byStatus[c.status] = (byStatus[c.status] || 0) + 1; + const path = c.url.replace(/https?:\/\/[^/]+/, "").split("?")[0]; + const bucket = path.split("/").slice(0, 5).join("/"); + byEndpoint[bucket] = (byEndpoint[bucket] || 0) + 1; +} + +console.log("\n=== EA2 wiring trace ==="); +console.log("total /api/ calls in 8s:", total); +console.log("by status:", JSON.stringify(byStatus)); +console.log("by endpoint:"); +for (const [ep, n] of Object.entries(byEndpoint).sort((a, b) => b[1] - a[1])) { + console.log(` ${n}\t${ep}`); +} + +const ea2 = calls.filter((c) => c.url.includes("/api/ea2/")); +const auth = calls.filter((c) => c.url.includes("/api/v1/auth/")); +console.log(`\nEA2 calls: ${ea2.length} (${ea2.filter((c) => c.status === 200).length} 200)`); +console.log(`auth calls: ${auth.length} (${auth.filter((c) => c.status === 200).length} 200)`); + +await b.close(); diff --git a/qa/evidence/_endpoint_probe.mjs b/qa/evidence/_endpoint_probe.mjs new file mode 100644 index 0000000..5d2c45c --- /dev/null +++ b/qa/evidence/_endpoint_probe.mjs @@ -0,0 +1,44 @@ +// Direct curl-style probe through the live nginx of every endpoint canvas's +// frontend code calls. Goal: prove which ones return real EA2 JSON vs 502. +import { writeFileSync, mkdirSync } from "node:fs"; + +const OUT = "/tmp/canvas-evidence"; +mkdirSync(OUT, { recursive: true }); + +const ROOT = "https://canvas.flow-master.ai"; +const endpoints = [ + ["GET", "/api/v1/auth/dev-login-config", null], + ["POST", "/api/v1/auth/dev-login", { email: "dev@flow-master.ai" }], + ["GET", "/api/v1/auth/me", null], + ["GET", "/api/v1/auth/microsoft/login", null], + ["GET", "/api/ea2/work-items", null], + ["GET", "/api/ea2/flow/processes?limit=10", null], + ["GET", "/api/ea2/process-definitions", null], + ["GET", "/api/runtime/transactions", null], +]; + +const out = []; +let token = null; + +for (const [method, path, body] of endpoints) { + const headers = { "content-type": "application/json" }; + if (token) headers["authorization"] = `Bearer ${token}`; + const init = { method, headers }; + if (body) init.body = JSON.stringify(body); + try { + const res = await fetch(`${ROOT}${path}`, init); + const text = await res.text(); + const sample = text.slice(0, 200).replace(/\s+/g, " "); + let json = null; + try { json = JSON.parse(text); } catch { /* not json */ } + if (path === "/api/v1/auth/dev-login" && json?.access_token) token = json.access_token; + out.push({ method, path, status: res.status, len: text.length, sample, ctype: res.headers.get("content-type") }); + console.log(`${method.padEnd(4)} ${path.padEnd(46)} ${res.status} ${sample.slice(0, 80)}`); + } catch (e) { + out.push({ method, path, error: e.message }); + console.log(`${method.padEnd(4)} ${path.padEnd(46)} ERR ${e.message}`); + } +} + +writeFileSync(`${OUT}/endpoint-probe.json`, JSON.stringify(out, null, 2)); +console.log(`\n→ ${OUT}/endpoint-probe.json`); diff --git a/qa/evidence/demo-direct-ea2-401.json b/qa/evidence/demo-direct-ea2-401.json new file mode 100644 index 0000000..fea6992 --- /dev/null +++ b/qa/evidence/demo-direct-ea2-401.json @@ -0,0 +1 @@ +{"error":{"code":401,"message":"Missing authentication token","request_id":"unknown"}} \ No newline at end of file diff --git a/qa/evidence/endpoint-probe.json b/qa/evidence/endpoint-probe.json new file mode 100644 index 0000000..27177d0 --- /dev/null +++ b/qa/evidence/endpoint-probe.json @@ -0,0 +1,66 @@ +[ + { + "method": "GET", + "path": "/api/v1/auth/dev-login-config", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "POST", + "path": "/api/v1/auth/dev-login", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "GET", + "path": "/api/v1/auth/me", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "GET", + "path": "/api/v1/auth/microsoft/login", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "GET", + "path": "/api/ea2/work-items", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "GET", + "path": "/api/ea2/flow/processes?limit=10", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "GET", + "path": "/api/ea2/process-definitions", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + }, + { + "method": "GET", + "path": "/api/runtime/transactions", + "status": 502, + "len": 150, + "sample": " 502 Bad Gateway

502 Bad Gateway


nginx
", + "ctype": "text/html" + } +] \ No newline at end of file diff --git a/qa/evidence/network-report.json b/qa/evidence/network-report.json new file mode 100644 index 0000000..b76d2cc --- /dev/null +++ b/qa/evidence/network-report.json @@ -0,0 +1,14 @@ +{ + "ts": "2026-06-14T21:18:38.314Z", + "url": "https://canvas.flow-master.ai/", + "total": 0, + "byStatus": {}, + "byHost": {}, + "byPath": {}, + "ea2Calls": 0, + "ea2Ok": 0, + "authCalls": 0, + "authOk": 0, + "first10": [], + "last10": [] +} \ No newline at end of file