給決策者親手驗。每項寫「怎麼做、預期看到什麼、壞了會長怎樣」。失敗的直接在 Notion 母卡 CM-1619 最下面回寫,首腦併成修正卡。 環境:worktree
compliance-manager-be-fr080的 BE 起在 8010(起之前lsof -i :8010確認是這個資料夾的),DB 是 DEV。
cd /Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be-fr080
unset VIRTUAL_ENV VIRTUAL_ENV_PROMPT
.venv/bin/python -m pytest test/test_module_boundaries.py -q # 86 過(含五層守衛)
.venv/bin/python scripts/deliverables/plugin_metrics.py # 105 / 6 / 8,677 / 17
套件測試各支:cd /Users/chouraymond/Projects/Jedicogy/module/jedi-python-package-fr080/<套件> && <上面那個 python> -m pytest tests -q --ignore=tests/architecture。全綠的:asset、system-core(5 失敗是既有)、log、task-platform(15 skip 是殼不在)、bulletin(4 失敗 11 錯是既有)、detection、license-runtime、compliance-audit、evidence-classification、ai-dashboard、iam、file-upload、common。survey 48 失敗 42 錯是既有基線。
資產:
cd /Users/chouraymond/Projects/Jedicogy/module/jedi-python-package-fr080/jedi-asset
docker compose -f harness/docker-compose.yml up -d
/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be-fr080/.venv/bin/python harness/dev_app.py --migrate
/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be-fr080/.venv/bin/python harness/dev_app.py --smoke
docker compose -f harness/docker-compose.yml down -v
預期:印出「缺 X-Auth → 401」「devices/menu → 200」「information-systems/menu → 200」「全部斷言通過」。壞了會長怎樣:500 或 assert 失敗。沒先 --migrate 直接 --smoke 會 500,那是順序不是缺陷。
系統核心:同上,目錄換 jedi-system-core,多一行「管理端點缺 X-Platform-Admin → 403」。
後端:worktree 的 BE 起在 8010(現在跑的就是,程式是最新的)。要重起:
cd /Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be-fr080
unset VIRTUAL_ENV VIRTUAL_ENV_PROMPT
PORT=8010 poetry run python main.py
前端:FE repo 已有 .env.development.local 指向 http://localhost:8010,直接起 dev server:
cd /Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-fe
npm run dev # 開 http://localhost:5180
FE 在 feature/FR-075 分支沒關係,本 arc 沒改 FE 程式(只有兩條錯誤碼文案的 patch 還沒套,遇到那兩個錯誤會顯示代碼而不是文案,不影響測試)。
帳號:用 DEV 既有的 blsadmin(租戶 102 管理員)測 C;D 的「切換租戶」「選單管理」「操作日誌」要平台管理員(root 租戶帳號)。
| 頁面 | 特別看 | 壞了會長怎樣 |
|---|---|---|
設備管理(左側選單 系統管理 → 設備管理,/device/device-manage) |
建立者顯示暱稱不是帳號;刪除前確認框顯示引用數 | 暱稱空白=查暱稱接口沒接;引用數恆 0=引用計數接口沒接 |
資訊系統管理(系統管理 → 資訊系統管理,/information-system/manage) |
新增帶系統負責人 → 詳細頁顯示負責人姓名 | 負責人空白 |
系統設定 SMTP(系統設定 → SMTP 設定,/system/smtp-config-manage) |
存一筆不改密碼 → 重開密碼還在;把 SMTP 列全刪 → 顯示空列表不是跳錯 | 跳錯=I2 沒修好 |
選單管理(系統管理 → 選單管理,/system/system-menu-manage,要平台管理員) |
新增/修改/刪除 | |
| 任一有下拉的頁面(例如設備管理的「設備類型」下拉) | 設備類型選項正常出現 | 選項空=選單 API 斷 |
操作日誌(系統設定 → 操作日誌,/log/user-log,要平台管理員) |
列表載入、匯出下載 | |
log 轉發設定(系統設定 → Log 轉發設定,/system/log-forwarding) |
頁面載入、存一次「最後修改者」顯示暱稱、按「發送測試 log」有回應 | |
公告(溝通與互動 → 公告管理,/bulletin/bulletin-manage;一般使用者看 /bulletin/bulletin-list) |
指定兩個部門 → 詳細頁兩個部門名稱;用該部門帳號看得到、其他看不到;下架時間填早於上架 → 顯示「公告下架時間必須晚於上架時間」;刪除成功不是 409 | 部門名空白=名冊接口沒接;錯誤碼顯示代碼不是文案=字串值變了 |
專案參與者、任務指派(專案與任務 → 專案列表 /project/projects → 進一個專案 → 設定頁加參與者;任務設置頁派人;被派的人看「待辦任務」/project/task-manage) |
專案設 manager → 建任務 → 派給人 → 被派的人「我的任務」看得到 → 通知寄出 | |
任務問卷(待辦任務 /project/task-manage → 點一個問卷型任務 → 右側「任務執行抽屜」) |
① 抽屜的「指派人員」顯示名字(例如 Billows Admin)不是帳號或空白。② 問卷區列出這個任務的問卷,「開啟問卷」進得去。③ 用兩個被派了不同任務的帳號各登入,待辦任務列表各自只出現自己的、數量對。(設備名、任務 uid 那些欄位畫面沒畫,要看的話 F12 → Network → task-survey 請求的 Response,runner 已驗過可跳) |
① 空白=名冊接線壞了。③ A 看到 B 的=篩選被丟掉,第 6 棒抓到修掉的資料外洩地雷回來了 |
問卷填答(待辦任務 → 點一份問卷 → 進填答頁 /survey/fill) |
填答頁上方或填答人資訊區的部門欄有名稱 | 空白=第 4 棒修的接線缺陷回來了 |
檢測工具(合規與稽核 → 工具外掛管理 /plugin/tool-plugin-manage;派工在專案的任務設置頁綁工具) |
綁工具 → 派工(DEV agent 若離線,派到「無可用 agent」即可)→ 執行紀錄列表報告檔可下載 | |
稽核(專案與任務 → 我的稽核管理 /project/audit-manage;進專案 → 稽核輪次 → 任務設置樹、審閱) |
我的稽核清單、任務設置樹、審閱 | 這 5 條 API 沒動,確認不受影響 |
AI 儀表板(AI 與分析 → AI 儀表板 /dashboard/ai-dashboard) |
health 回 200;產生儀表板在 DEV 會回「金鑰未設定」(DEV 三把 AI 金鑰本來就空),改前改後一樣 | |
| 檔案上傳(任一任務的佐證上傳,或專案的 SSP 匯入頁) | 上傳一個檔 → 建立者暱稱正常 |
| 項目 | 怎麼做 | 預期 |
|---|---|---|
| 切換租戶(右上角租戶切換,要平台管理員) | 平台管理員切到另一個租戶 | 資料切換正確 |
使用者清單(租戶與組織 → 使用者管理 /auth/user-manage)、部門樹(→ 部門管理 /department/department-manage) |
各開一次 | 與改前一樣 |
| 跨租戶隔離(用租戶 A 的帳號登入,設備管理/公告/專案列表都不該出現租戶 B 的資料) | 租戶 A 帳號看不到租戶 B 的設備/公告/專案 | 看得到=RLS 壞了(jedi-common 地基改動) |
授權狀態(授權管理 → 我的授權狀態 /license/status,用子租戶帳號登入看) |
子租戶帳號打授權狀態頁 | 解析到頂層持照租戶 |
子租戶額度(租戶與組織 → 租戶管理 /tenant/tenant-manage 開新子租戶,到授權上限第 N+1 個要被擋) |
開子租戶到上限 | 第 N+1 個被擋 |
BE 啟動 log(終端機 tail -50 compliance-manager-be-fr080/log/app.log) |
tail -50 log/app.log |
沒有 localhost:4317 連線錯誤 |
core/app_factory.py 找到 register_asset 那行註解掉 → 重啟 BE → 設備與資訊系統的 9 條 API 全 404、其他頁面正常 → 還原。system-core、bulletin、task-platform 同理各做一次(register_system_core、register_bulletin、register_participant)。
envs=dev 一起審,放行前要查客戶環境孤兒數。handoff/CM-1626-fe-error-code.patch)。my-tasks-detection.steps.js:323)改斷言。feature/FR-080 合回,與資安掃描 arc 協調時機;合完 git worktree remove 兩個 worktree。