建議 model:Opus,effort:medium——四張表三種現況(scope/is_builtin/無欄位),policy 要新寫「反向前綴」分支,且要決定 UI 在哪裡讓母租戶勾「分享」。本卡由可見度原則①「租戶不跨、要看只能靠明確分享」長出(決策者 2026-09-14 裁),不擋 1.20.0。前置:.2e CM-1772(workflow_templates 的 scope 欄位由它開)。
母租戶自己做的模組框架、檢測方案、流程範本,子租戶現在看不到——這三張表早就開了隔離,只放行「原廠公版」與「自己子樹」。集團總部想把自訂的稽核框架給子公司用,目前只能一家一家複製。業界做法是資源上標「分享給子樹」,規則多一條「這筆的租戶路徑是我的路徑的開頭就放行」(把現有的前綴比對反過來用一次)。
首腦核對(2026-09-14 DEV 實查):
scope='SYSTEM' OR is_super_admin OR 子樹。or_(tenant_id==x, is_builtin==True) union,要跟著加分支。app_tenant_allowed_for_session 是「資料路徑 LIKE 我的路徑%」;分享要的是「我的路徑 LIKE 資料路徑%」。新開一支 helper app_tenant_is_ancestor_of_session(_tenant_id),不改既有 helper(D1)。~/Projects/Billows/Audit-Manager/compliance-manager-be/scripts/sql/2026-XX-XX-fr094-cm<本卡號>-shared-scope-subtree.sql (新)helper+四張表 policy+scope 值
~/Projects/Billows/Audit-Manager/compliance-manager-be/infra/flow_engine/repository/flow_template_repo_impl.py:29-36 讀取端 union
~/Projects/Jedicogy/module/jedi-python-package/jedi-detection/ detection_profiles 讀取端(grep scope)
~/Projects/Jedicogy/module/jedi-python-package/jedi-flow-engine/ workflow_templates 讀取端(.2e 已加 union,本卡擴 SHARED)
~/Projects/Billows/Audit-Manager/compliance-manager-be/infra/module_frame/ module_frames 讀取端
app_tenant_is_ancestor_of_session(_tenant_id):資料所屬租戶的 path 是 session 任一 allowed_tenant_paths 的前綴 → true。SECURITY DEFINER、search_path public,寫法比照既有 helper(02-schema.sql:623)。OR (scope='SHARED' AND app_tenant_is_ancestor_of_session(tenant_id));update/delete 不加(只有擁有者租戶能改,子租戶只讀)。scope 的 check constraint 若有,加 SHARED。