fix(web): redact public host targets
This commit is contained in:
@@ -1,3 +1,26 @@
|
||||
## 2026-06-13|P0-PUBLICENV client/API source redaction production patch
|
||||
|
||||
**01:46 / 02:00 source patch:**
|
||||
- 在乾淨 worktree `/tmp/awoooi-publicenv-prod-20260613-014604`、基底 `gitea/main=6a8b9f5c` 上補前端 public env / host display redaction;未使用 dirty main tree 的前端缺檔狀態。
|
||||
- `apps/web/src/app/[locale]/classic/page.tsx`:legacy host catalog key、API host render value 與 K3s control-plane fallback 改為 `host:*` 資產代號。
|
||||
- `apps/web/src/app/[locale]/iwooos/page.tsx`:IwoooS topology / host coverage 中的 dev / Kali host address 改為 `host:*` 資產代號。
|
||||
- `apps/web/src/components/dashboard/live-dashboard.tsx`:移除 `NEXT_PUBLIC_HOST_IPS` 讀取與 private-IP fallback,改用公開 host slot ids;runtime store 有資料時仍以 store host key 產生卡片。
|
||||
- `apps/web/src/components/dashboard/live-host-card.tsx`:顯示前把 runtime host IP 轉成 `host:*`,避免卡片直接顯示內網 IP。
|
||||
- `apps/web/src/components/infra/host-grid.tsx`:共用 HostGrid 顯示層加入 runtime IP redaction,移除 `NEXT_PUBLIC_K8S_VIP_INFO` 讀取,固定顯示 redacted K8s topology 文案。
|
||||
- `apps/web/src/app/api/sentry-tunnel/route.ts`:移除 server-side `SENTRY_HOST` 私網 fallback;runtime 未明確注入時 POST 以 `503` fail-closed,GET 健康檢查只回 `target_configured` boolean,不再回顯 target。
|
||||
|
||||
**驗證(本地)**:
|
||||
- Targeted source scan:上述五個前端檔與 `api/sentry-tunnel` 不再命中 `192.168.0.110 / 111 / 112 / 120 / 121 / 125 / 168 / 188`、`NEXT_PUBLIC_HOST_IPS`、`NEXT_PUBLIC_K8S_VIP_INFO`、`SENTRY_HOST ??`、`target: SENTRY_HOST`、`NEXT_PUBLIC_SENTRY_DSN`、`工作視窗`、`批准!`、`source_thread_id`、`codex_delegation`。
|
||||
- `pnpm --filter @awoooi/web typecheck` 通過。
|
||||
- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work NEXT_PRIVATE_BUILD_WORKER_COUNT=1 SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING=1 pnpm --filter @awoooi/web build`:Next compile 成功、static pages `92/92` 完成;本機最後在 `collect-build-traces` 因磁碟剩餘空間不足 `ENOSPC` 失敗。這是本機磁碟限制,不是 TypeScript / compile error。
|
||||
- 部分 build 產物掃描:`apps/web/.next/static` 與 generated HTML / RSC 未命中本輪 private IP / public env / 工作視窗字串。
|
||||
- `scripts/ops/doc-secrets-sanity-check.py docs .gitea` 通過,`DOC_SECRET_SANITY_OK scanned_files=728`;`source-control-owner-response-guard.py --root .` 與 `security-mirror-progress-guard.py --root .` 通過。
|
||||
|
||||
**仍需 owner review / production gate:**
|
||||
- `NEXT_PUBLIC_SENTRY_DSN` 舊 workflow / runtime env cleanup 與 `SENTRY_HOST` runtime 注入證據仍需 owner review;本輪只改 source fail-closed 與 public GET redaction,不直接改 workflow / runtime secret / deployment。
|
||||
- `k8s/awoooi-prod/05-deployment-web.yaml` 仍保留 legacy `NEXT_PUBLIC_HOST_IPS` / `NEXT_PUBLIC_K8S_VIP_INFO` env;前端 source 已不讀取,manifest cleanup 需 owner review。
|
||||
- 不能宣稱 production remediation complete,直到 Gitea CD build/deploy 成功、production bundle rescan、desktop/mobile Browser smoke、overflow 與工作視窗內容外洩檢查全部通過。
|
||||
|
||||
## 2026-06-13|Post-CD cold-start green 與 SSH trust guardrail closeout
|
||||
|
||||
**01:26 / 01:29 live refresh:**
|
||||
|
||||
Reference in New Issue
Block a user