pbl_compiler/json/compiler_pbl_capability_registry.json
agent.develop cb1132e6a9 fix(pbl_compiler): M3b RBAC 29条显式登记+CRUD只读拒绝端点+json根键统一+audit BinOp解析修复
- scripts/load_path.py: PATHS_CONTRACTS 20 条(含 M3b 5 个导出契约) + PATHS_READONLY_DENY 9 条
  = 29 条全显式登记,无通配符;与 wwwroot/api/*.dspy(29) 一一对应
- wwwroot/api/: 新增 9 个 CRUD 只读拒绝端点(create/update/delete × 3 表),
  封死 xls2ui 回退默认写入口,保 rules_hash 29.6 确定性指纹唯一写入路径
- json/*.json: 根级 browserfields 合并进 params,三文件统一 tblname/alias/title/params 根键集,
  editable 齐备 new_/update_/delete_data_url 且指向真实 .dspy
- scripts/audit_rbac_parity.py: 修复 PATHS = A + B (BinOp) 解析取空的自身缺陷(假 FAIL 根因),
  新增 json/ 根键白名单 + editable 三 URL + 幽灵/漏登记 检查
- pbl_compiler/init.py: 文件头注释登记条数与代码事实对齐(29=20+9)
- 实跑: audit_rbac_parity.py rc=0 PASS;test_m3b_mapping.py PASS=113/FAIL=0
2026-09-19 11:04:55 +08:00

41 lines
2.6 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"tblname": "pbl_capability_registry",
"alias": "pbl_capability_registry_list",
"title": "能力注册表第11章缺口",
"_comment": "M3b 整改(QC #3):删除根级冗余 browserfields规范只允许 params.browserfields根键统一为 tblname/alias/title/paramsalias 由 pbl_compiler与模块同名、生成目录会与模块 wwwroot 冲突)改为 pbl_capability_registry_listparams.editable 补齐 new/update/delete_data_url 对象,三写 URL 指向显式拒绝直写的端点(唯一写入口是契约 pbl_capability_register。",
"params": {
"browserfields": {
"id": {"label": "ID", "type": "number", "list": true},
"tenant_id": {"label": "租户ID", "type": "text", "list": true},
"capability_key": {"label": "能力键", "type": "text", "list": true},
"category": {"label": "分类", "type": "text", "list": true},
"args_schema_json": {"label": "参数JSON Schema", "type": "text", "list": true},
"permission_required": {"label": "所需权限", "type": "text", "list": true},
"is_enabled": {"label": "启用", "type": "checkbox", "list": true},
"version_no": {"label": "版本", "type": "number", "list": true},
"description": {"label": "说明", "type": "text", "list": true}
},
"editable": {
"get_data_url": {
"url": "{{entire_url('/pbl_compiler/api/pbl_capability_list.dspy')}}"
},
"new_data_url": {
"url": "{{entire_url('/pbl_compiler/api/pbl_capability_registry_create.dspy')}}"
},
"update_data_url": {
"url": "{{entire_url('/pbl_compiler/api/pbl_capability_registry_update.dspy')}}"
},
"delete_data_url": {
"url": "{{entire_url('/pbl_compiler/api/pbl_capability_registry_delete.dspy')}}"
}
},
"new_data_url": "{{entire_url('/pbl_compiler/api/pbl_capability_registry_create.dspy')}}",
"update_data_url": "{{entire_url('/pbl_compiler/api/pbl_capability_registry_update.dspy')}}",
"delete_data_url": "{{entire_url('/pbl_compiler/api/pbl_capability_registry_delete.dspy')}}",
"editexclouded": ["id", "tenant_id", "created_at", "updated_at"],
"_crud_note": "能力注册表只读列表:注册/更新一律走契约 pbl_capability_register做 capability_key 规范化、args_schema JSON 校验与租户归属校验),物理删除一律禁止(历史蓝图引用会造成产物不可复现),下线用 is_enabled=0 软标记。三个写端点仅用于满足 editable 格式硬要求并封死 xls2ui 默认写包装,均返回 widgettype=Error。",
"order_by": "id DESC",
"page_size": 20
}
}