docs(iwooos): 記錄 tenants 前台身份最小化驗證 [skip ci]
This commit is contained in:
@@ -1,3 +1,56 @@
|
||||
## 2026-06-15|AwoooP Tenants 前台身份與內部識別最小化補強
|
||||
|
||||
**背景**:`/zh-TW/awooop/tenants` 曾在 production 高可見區塊暴露個人 owner namespace、外部 org namespace、完整英文產品 / repo 名稱、raw source-control 狀態碼與 `blockers` 類內部數值。這不符合 IwoooS 前台資安原則:公開頁只可呈現脫敏範圍、只讀證據狀態與低摩擦治理邊界;個人識別、完整 repo namespace、內部狀態碼、schema id、工作視窗溝通內容與可被誤讀為 runtime 授權的字串不得進入前台或 client bundle。
|
||||
|
||||
**完成項目**:
|
||||
- `/zh-TW/awooop/tenants` 的來源候選表不再顯示原始 repo namespace、完整英文產品 / repo 名稱、raw `blocked_waiting_*` 狀態或 `blockers=` 類內部碼,改為 `SRC-###` 脫敏範圍代號、繁中產品描述、風險等級、管控狀態與「待補證據」摘要。
|
||||
- 租戶頁 badge 從 raw schema version 改為 `只讀資產台帳`,避免 `awooop_tenant_asset_inventory_v1` 顯示在前台。
|
||||
- route shape 顯示從 `upstream=...; admin=...; ws=...` 改為 `上游 ...;後台 ...;即時通道 ...`。
|
||||
- 頁首操作員標記移除個人縮寫,改用 `ShieldCheck` 圖示與 `操作員` 無個人識別文案。
|
||||
- `scripts/security/security-mirror-progress-guard.py` 補上 Tenants 頁與 layout header 防回歸檢查,禁止 raw schema id、raw route key、raw blocker 文案、內部英文識別與頁首個人縮寫回流。
|
||||
- `zh-TW` 與目前鏡像文案同步維持繁體中文;沒有把工作視窗溝通內容放入前端頁面。
|
||||
|
||||
**本地驗證**:
|
||||
- `python3 -m json.tool apps/web/messages/zh-TW.json` 通過。
|
||||
- `python3 -m json.tool apps/web/messages/en.json` 通過。
|
||||
- `python3 -m py_compile scripts/security/security-mirror-progress-guard.py` 通過。
|
||||
- `python3 scripts/security/security-mirror-progress-guard.py --root .` → `SECURITY_MIRROR_PROGRESS_GUARD_OK`。
|
||||
- `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/package-supply-chain-owner-policy-guard.py --root .` → `PACKAGE_SUPPLY_CHAIN_OWNER_POLICY_GUARD_OK`。
|
||||
- `python3 scripts/ops/doc-secrets-sanity-check.py docs .gitea apps/web/messages/zh-TW.json apps/web/messages/en.json 'apps/web/src/app/[locale]/awooop/tenants/page.tsx' apps/web/src/components/layout/header.tsx scripts/security/security-mirror-progress-guard.py` → `DOC_SECRET_SANITY_OK scanned_files=867`。
|
||||
- `DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/awoooi_test pytest -q apps/api/tests/test_awooop_tenant_asset_inventory.py` → `2 passed`。
|
||||
- `pnpm --filter @awoooi/web typecheck` 通過。
|
||||
- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --filter @awoooi/web build` 通過。
|
||||
- Targeted build scan:Tenants page chunk、AwoooP layout chunk 與 locale layout chunk 未命中高風險識別 marker。
|
||||
- `git diff --check` 通過。
|
||||
|
||||
**Gitea / CD**:
|
||||
- Code commits:
|
||||
- `471b16ac fix(awooop): 清理 tenants 前台內部識別文案`
|
||||
- `1ac68352 fix(web): 隱藏頁首操作員個人縮寫`
|
||||
- Deploy markers:
|
||||
- `4ef5546a chore(cd): deploy 471b16a [skip ci]`
|
||||
- `c8734e98 chore(cd): deploy 1ac6835 [skip ci]`
|
||||
- Gitea Actions:
|
||||
- 第一輪:CD `3019` 成功、code-review `3020` 成功。
|
||||
- 第二輪:code-review `3022` 成功;CD `3021` 的 `tests` 與 `build-and-deploy` 成功,deploy marker 已落地,但 `post-deploy-checks` 因 `Source Correlation Applied-Link Smoke` 回傳 `status=blocked allowed=false` 標記 failure。此 blocked 與本次 Tenants 前台脫敏修正不同範圍,不能當成 S4.9 / source correlation acceptance 已通過。
|
||||
|
||||
**Production 只讀驗證(最終 deploy marker `c8734e98`)**:
|
||||
- In-app browser desktop `1280x720`:`/zh-TW/awooop/tenants?_v=c8734e98-header-prod-desktop` 載入完成,`只讀資產台帳`、`待補證據`、`上游`、`即時通道` 與 `16` 個產品 / 專案可見;高風險識別 marker 全部未命中;頁面水平溢出 `0`。
|
||||
- In-app browser mobile `390x844`:`/zh-TW/awooop/tenants?_v=c8734e98-header-prod-mobile` 載入完成,`共 2 個租戶 · 16 個產品 / 專案 · 31 個網站入口` 可見;高風險識別 marker 全部未命中;頁面水平溢出 `0`。表格仍可在自身容器內橫向捲動,但未造成整頁外溢。
|
||||
- Production HTML / JS bundle scan:`/zh-TW/awooop/tenants?_v=c8734e98-prod-final` HTTP `200`;HTML、AwoooP layout chunk、Tenants page chunk、locale layout chunk 均未命中個人 owner namespace、外部 org namespace、raw blocker 狀態、raw schema id、raw route key、完整英文產品 / repo 名稱、頁首個人縮寫或工作視窗文字。
|
||||
|
||||
**完成度與邊界**:
|
||||
- Tenants raw owner / repo / internal status visible remediation:`95% -> 100%`。
|
||||
- 頁首操作員身份最小化:`0% -> 100%`。
|
||||
- Frontend public sensitive redaction defense:`86% -> 88%`。
|
||||
- AwoooP Tenants route visibility:`88% -> 92%`。
|
||||
- IwoooS headline 維持 `64%`;active runtime gate 維持 `0`。
|
||||
- S4.9 owner response、source correlation applied-link、target decision、refs parity、repository creation、refs sync、workflow modification、secret collection、runtime execution、action button、Nginx reload、host restart、firewall change、active scan 全部維持 `0 / false`。
|
||||
- 本輪未 SSH、未讀 live conf、未改主機、未重啟 Docker / Nginx、未修改 firewall / iptables、未收 secrets 明文、未執行 active scan、未切 GitHub primary、未 force push。
|
||||
|
||||
## 2026-06-15|Public Gateway 手動 / 緊急變更 Metadata Gate 強化
|
||||
|
||||
**背景**:使用者再次指出 Nginx / gateway 類配置常被手動變動,且端口或路由異常會直接影響 Ollama、ArgoCD、registry、stock 等服務。既有 Public Gateway owner response acceptance 已要求 owner、decision、live conf ref、rendered diff、`nginx -t` plan、route smoke、maintenance window、rollback owner 與 post-check,但尚未把「誰動了、何時動、影響哪些專案、是否同步通知」列為必填 metadata。這會讓事故收斂只看技術 diff,缺少責任、時窗與跨專案同步。
|
||||
|
||||
Reference in New Issue
Block a user