本卡屬 FR-188(母卡),D7 的主系統端。嚴重度:中。
帳號沒有掛部門時,新增設備等要求部門的寫入會被資料庫權限規則(RLS)擋下,畫面只看到「Error in ProgrammingError」的 500,使用者不知道要找管理員把帳號加進部門。
首腦核對:雲端錯誤 psycopg.errors.InsufficientPrivilege: new row violates row-level security policy for table "devices",參數 org_unit_id: None。
/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/core/app_factory.py 全域錯誤處理註冊
jedi_common.handler.handler.register_error_handlers 套件的全域處理(先查有沒有可掛的點)
InsufficientPrivilege 且訊息含 violates row-level security policy 的情況,回 403 與白話錯誤碼(例:「您的帳號沒有被指派到可寫入此資料的部門,請聯絡系統管理員」)。只轉這一種,其他資料庫錯誤照舊。錯誤碼照模組選對應檔(common/code/<module>_error_code.py);若落在 common/code/error_code.py,M-1 已在前一批合回,照它新增後的序號往下接。ProgrammingError;若要改套件才做得到,停下回寫問首腦,不在本卡改套件。log/app.log 有對應紀錄。feature/FR-172,不切 branch;顯式 git add <檔名>、禁 -am;只 add 自己改的檔。commit 不等令,push 由決策者做。修正待驗證。卡住也 commit 已完成部分並回寫卡在哪,狀態維持 In progress。api//app//infra/ 時 .claude/rules/security/ 自動載入,照著做;從 BE 開的 session 跨 repo 改 FE,FE 規則 .claude/rules/security/frontend.md 不會自動載入,動手前自己讀。回寫列出對到哪幾條、怎麼滿足。XxxV2、不複製改兩行、不在既有函式塞第三個來源分支。test/test_module_boundaries.py)。