docs(iwooos): 記錄 tenants 遮罩正式驗證 [skip ci]

This commit is contained in:
Your Name
2026-06-15 06:51:44 +08:00
parent 583605a4be
commit f40b83456e

View File

@@ -1,3 +1,47 @@
## 2026-06-15Tenants 前台敏感識別二次遮罩與 Owner Gate Guard 正式部署完成
**背景**:使用者指出 `/zh-TW/awooop/tenants` 曾把個人 owner namespace、完整 repository slug、英文專案名稱、內部阻塞狀態與預算資訊直接放到前台。這不符合 IwoooS 現階段「只讀證據、低摩擦流程、公開面不暴露內部識別」原則前台必須只顯示繁中公開名稱、公開代號與人讀狀態raw id 只能留在後端、snapshot、guard 或只讀驗收脈絡。
**完成項目**
- `/zh-TW/awooop/tenants` 租戶表由 `project_id``display_name`、預算金額改為 `TNT-###`、繁中公開名稱與「已設定 / 未設定」預算狀態。
- 全域產品資產、網站入口與原始碼範圍新增公開名稱 allowlist 與代號 fallback`AST-###``RTE-###``SRC-###`;未知或可能洩漏的英文 slug / owner-repo / 內部狀態一律不直出。
- 原本可見的 evidence refs 內部路徑改為「已提交證據參照 N 項」,完整路徑保留在只讀台帳與 guard不在前台公開顯示。
- `security-mirror-progress-guard.py` 新增 tenants 前台防回歸禁止舊表頭、預算格式化、raw owner namespace、raw readiness code、內部 evidence path 渲染與不安全 fallback。
- 新增 `scripts/security/iwooos-owner-gate-guard.py``docs/security/IWOOOS-OWNER-GATE-GUARD.md`,集中鎖住 S4.9 / S4.10 / S4.11 / S4.12 owner response packet 與 S4.13 rollup 的 `0 / false` 邊界。
- `security-mirror-dry-run.snapshot.json` 已加入 `CHECK_OWNER_GATE_GUARD`,主進度 guard 會同步呼叫 owner gate guard。
**本地驗證**
- `python3 -m py_compile scripts/security/iwooos-owner-gate-guard.py scripts/security/security-mirror-progress-guard.py` 通過。
- `python3 -m json.tool docs/security/security-mirror-dry-run.snapshot.json` 通過。
- `python3 scripts/security/iwooos-owner-gate-guard.py --root .``IWOOOS_OWNER_GATE_GUARD_OK`
- `python3 scripts/security/iwooos-config-control-guard.py --root .``IWOOOS_CONFIG_CONTROL_GUARD_OK`
- `python3 scripts/security/source-control-owner-response-guard.py --root .``SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK`
- `python3 scripts/security/security-mirror-progress-guard.py --root .``SECURITY_MIRROR_PROGRESS_GUARD_OK`
- `python3 scripts/ops/doc-secrets-sanity-check.py docs .gitea``DOC_SECRET_SANITY_OK scanned_files=863`
- `pnpm --dir apps/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 --dir apps/web build` 通過92/92 static pages generated。
- 本地 Chrome fixture smoke故意注入 `owenhytsai/*``nexu-io/*`、英文產品名、`blocked_waiting_*``blockers=`、預算金額與 `docs/security/...`desktop `1440x900` / mobile `390x844``forbiddenHits=[]``missingRequired=[]``horizontalOverflow=false`、console errors `0`
**Gitea / CD**
- Code commit`3496a6be fix(iwooos): 鎖住 owner gate 與 tenants 前台遮罩`,已正常 push 到 `gitea/main`,無 force push。
- Deploy marker`583605a4 chore(cd): deploy 3496a6b [skip ci]`
- Gitea Actions run id本輪未能以 unauthenticated 只讀 API 取得;`/api/v1/repos/wooo/awoooi/actions/runs``401 token is required`,未收 token、未重跑 workflow、未 dispatch action。
**Production 只讀驗證deploy marker `583605a4`**
- deploy marker 回寫後曾短暫觀察到 `https://awoooi.wooo.work/api/v1/health` HTTP `502`;後續連續只讀檢查恢復為 HTTP `200``/zh-TW/awooop/tenants``/zh-TW/iwooos` 也為 HTTP `200`
- Chrome desktop `1440x900``/zh-TW/awooop/tenants?_v=3496a6be-583605a4-prod-desktop` 必填文案全可見forbidden hits `0`owner/repo shape `false``scrollWidth=1440``clientWidth=1440``horizontalOverflow=false`console errors `0`、page errors `0`;截圖 `/tmp/tenants-3496a6be-prod-desktop.png`
- Chrome mobile `390x844``/zh-TW/awooop/tenants?_v=3496a6be-583605a4-prod-mobile` 必填文案全可見forbidden hits `0`owner/repo shape `false``scrollWidth=390``clientWidth=390``horizontalOverflow=false`console errors `0`、page errors `0`;截圖 `/tmp/tenants-3496a6be-prod-mobile.png`
- Production forbidden 字串檢查包含 owner namespace、外部 namespace、完整 owner/repo slug、`blocked_waiting_*``blockers=``observe_scope_review`、舊預算表頭、英文專案名稱與完整 owner/repo patterndesktop / mobile 均未命中。
**完成度與邊界**
- Tenants 前台敏感識別遮罩:`94% -> 100%`
- AwoooP Tenants production redaction smoke`0% -> 100%`
- S4.9 owner gate 集中 guard`0% -> 100%`,僅代表 guard 完成,不代表 owner response 已收到。
- Frontend public sensitive redaction defense`70% -> 76%`
- IwoooS headline 維持 `64%`active runtime gate 維持 `0`
- owner response received / accepted、target decision accepted、refs parity accepted、repository creation、refs sync、workflow modification、secret collection、runtime execution、action button、Nginx reload、host restart、firewall change、active scan 全部維持 `0 / false`
- 本輪未 SSH、未改主機、未重啟 Docker / Nginx、未修改 firewall / iptables、未收 secrets 明文、未執行 active scan、未切 GitHub primary、未 force push也沒有把工作視窗溝通內容放上前端頁面。
## 2026-06-15Package / Docker 供應鏈 repo-only baseline 完成
**背景**IwoooS 資安治理已把 Nginx、K8s、Secrets、runner、firewall、backup 與 monitoring 納入高價值配置帳本,但 package manifest、Python dependency、lockfile、Dockerfile 與 docker-compose image refs 尚未有獨立 repo-only 供應鏈基線。此缺口會讓 CVE / license / SBOM / image digest / registry owner 後續沒有可比較的起點。