NocoBase 创建人(Created by)系统字段:自动记录创建者,支撑权限、审计与工作流
【免费下载链接】nocobaseNocoBase is an open-source AI + no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase
创建人(Created by)是 NocoBase 数据建模中的系统预设字段,用于在记录创建时由系统自动写入当前操作用户,无需任何人工录入。本文将以 NocoBase 开源仓库中的 创建人字段文档 为主体,系统讲解该字段的适用场景、创建配置、字段特性、编辑与删除注意事项、页面使用方式,并结合仓库源码与测试用例揭示其底层实现原理,帮助你安全地在实际业务中落地"创建人"能力。
什么是创建人字段
在 NocoBase 中,创建人(Created by)是一个系统级字段,用于自动记录一条记录的创建者(当前登录用户)。它与普通业务字段最大的区别在于:
- 由系统自动写入:新增记录时自动填充,无需用户在表单中手动选择;
- 由预设字段生成:在数据表配置中通过「创建人」界面类型(Field interface
createdBy)快速创建,底层是指向用户表的belongsTo关系字段; - 天然支持审计与权限:适合权限控制、责任追踪、筛选和审计等场景。
从源码实现看,创建人字段本质上是一个指向用户(users)集合的belongsTo关系字段。在 repository-query.test.ts 的测试用例中,可以看到系统通过createdBy作为关系入口进行嵌套筛选(createdBy.roles.name过滤),这印证了创建人字段在查询层就是一条标准的关系路径,可以像普通关系字段一样参与筛选与关联查询。
与业务负责人字段的区别
需要特别强调的是:创建人 ≠ 业务负责人。如果业务上需要表达"负责人""经办人""审批人"等概念,建议单独创建用户关系字段,而不要混用创建人字段。原因在于:
- 创建人的值由系统固定写入(创建者本人),业务上不可变更;
- 负责人、经办人等角色可能随流程流转而更换,需要独立的用户关系字段承载。
适用场景
创建人字段适合以下典型业务场景:
- 只看我创建的数据:配合权限配置实现"个人数据隔离",用户只能看到自己创建的数据;
- 按创建人筛选记录:在筛选区块中快速定位某个用户创建的数据;
- 审计记录创建责任:追溯每条数据的来源用户,满足合规审计要求;
- 工作流中判断记录创建者:在工作流节点中获取创建人作为条件判断或通知对象。
创建配置
在数据表的「Configure fields」页面中,点击「Add field」,选择「创建人」即可创建创建人字段。创建时需要配置以下属性:
| 配置 | 说明 |
|---|---|
| Field interface | 字段的界面类型。创建人对应createdBy,决定页面中如何录入和展示。 |
| Field display name | 字段在界面中显示的名称,比如「创建人」。建议使用业务人员能直接理解的名称。 |
| Field name | 字段标识名称,用于 API、关系字段、权限、工作流等内部引用。创建后通常不再修改,只支持字母、数字和下划线,并且必须以字母开头。 |
| Field type | 字段在数据层的类型。创建人通常是指向用户表的belongsTo关系字段。 |
| Default value | 默认值。新增记录时,如果用户没有填写,可以自动带出默认值。 |
| Validation rules | 系统自动维护,通常不需要人工校验。 |
| Description | 字段说明。适合写字段含义、填写要求、数据来源或维护人。 |
:::warning 注意 字段名创建后会被页面区块、权限、工作流和 API 引用。创建前先确认命名,避免后续修改带来配置调整成本。 :::
字段特性
创建人字段的默认行为如下:
| 特性 | 说明 |
|---|---|
| 默认 Field interface | createdBy |
| 默认 Field type | belongsTo |
| 可选 Field type | belongsTo |
| 页面组件 | 系统自动写入,页面通常以用户选择或用户展示组件呈现 |
| 筛选 | 支持按用户筛选 |
| 排序 | 通常不按创建人排序 |
| 校验 | 由系统自动写入 |
从字段特性可以看出,创建人字段的写入与校验完全由系统接管。其作为belongsTo关系字段的能力在服务端查询层同样有效——在 contenteditable="false">【免费下载链接】nocobaseNocoBase is an open-source AI + no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考