feat: 规范化PocketBase数据库文档与原生API访问

- 将数据库文档拆分为按collection命名的标准文件,统一格式
- 补充tbl_company、tbl_system_dict等表的原生访问规则
- 新增users_tag、document_create等字段
- 优化用户资料更新接口,支持非必填字段
- 添加公司原生API测试脚本
- 归档本次变更至OpenSpec
This commit is contained in:
2026-03-29 16:21:34 +08:00
parent 51a90260e4
commit e9fe1165e3
46 changed files with 3790 additions and 1108 deletions

37
docs/pb_auth_model.md Normal file
View File

@@ -0,0 +1,37 @@
# pb_auth_model
> 来源:`script/pocketbase.newpb.js`、当前 hooks 权限实现
> 说明:本文件描述权限模型设计与表间职责,不替代单表结构文档
## 模型目标
当前项目采用 `RBAC + ABAC + 用户覆盖` 的混合权限模型:
- `RBAC` 负责角色级默认权限
- `ABAC` 负责组织、等级、目标表等属性条件
- `用户覆盖` 负责单人例外授权
## 核心表职责
| 文档 | 作用 |
| :--- | :--- |
| [pb_tbl_auth_users.md](/e:/Project_Class/BAI/Web_BAI_Manage_ApiServer/docs/pb_tbl_auth_users.md) | 用户身份源与 PocketBase auth 主表 |
| [pb_tbl_auth_resources.md](/e:/Project_Class/BAI/Web_BAI_Manage_ApiServer/docs/pb_tbl_auth_resources.md) | 资源目录 |
| [pb_tbl_auth_roles.md](/e:/Project_Class/BAI/Web_BAI_Manage_ApiServer/docs/pb_tbl_auth_roles.md) | 角色定义 |
| [pb_tbl_auth_role_perms.md](/e:/Project_Class/BAI/Web_BAI_Manage_ApiServer/docs/pb_tbl_auth_role_perms.md) | 角色权限映射 |
| [pb_tbl_auth_user_overrides.md](/e:/Project_Class/BAI/Web_BAI_Manage_ApiServer/docs/pb_tbl_auth_user_overrides.md) | 单用户权限覆盖 |
| [pb_tbl_auth_row_scopes.md](/e:/Project_Class/BAI/Web_BAI_Manage_ApiServer/docs/pb_tbl_auth_row_scopes.md) | 行级过滤范围 |
## 权限计算路径
1.`tbl_auth_users` 读取用户身份、组织、等级和角色。
2.`tbl_auth_role_perms` 读取角色默认权限。
3.`tbl_auth_user_overrides` 应用用户级覆盖。
4.`tbl_auth_row_scopes` 组合行级过滤条件。
5. 将可原生表达的权限同步到 PocketBase collection rules复杂业务权限仍由 hooks 判断。
## 当前实现约定
- 管理后台用户通过 `users_idtype = ManagePlatform` 与管理角色识别。
- hooks 页面 `/pb/manage/sdk-permission-manage` 负责维护角色与 collection CRUD 权限。
- 用户登录返回的是 PocketBase 原生可验证 token可直接给 PocketBase SDK 使用。