Skip to content

全仓库统一 ID 字段、系统字段及多租户字段命名规范(消除 _id / space_id / modified_xx 混用) #876

@hotlong

Description

@hotlong

背景

现有仓库内关于主键 ID 字段、审计与租户字段命名混杂,存在 _id / idspace_id / tenant_idmodified_at/by / updated_at/by 等并存使用,违反了 SystemFieldName 统一规范,导致 driver、引擎、mock、handler、测试等层面不一致,埋下兼容和维护隐患。鉴于 audit/prompt/mock 多处已传播此问题,需统一整改。

需要合并解决的具体问题

1. ID 字段统一

  • ObjectQL、protocol、engine���mock、handler、test、业务类型定义等多处混用 _idid
  • 数据驱动接口规定只返回 id,但上下游仍有 _id 查询/写入/转换逻辑。
  • Studio/types/action handlers/示例代码需移除 _id,统一投射 id

2. 审计字段统一

  • created_atupdated_at 应作为标准,部分 audit hook 使用 modified_at/modified_by
  • 所有自动审计挂钩、业务代码、mock、prompt 均应重命名为 updated_at/updated_by

3. 多租户隔离字段统一

  • 租户字段只能用 tenant_id,ObjectQL 插件/中间件实现和协议层应全部移除 space_id

4. Prompt 和开发者文档示例同步

  • 包含 seed 脚本、示例、testing schema 等,应禁止 _id,只用 id

5. Mock/插件/devPlugin

  • 返回类型、filter、insert/update/delete、record capture 等全面清查。

6. Testing

  • 所有相关用例和 scenario 中不再混用 _id,只出现 id

建议修复方案(合并执行)

  1. 全文自动/人工替换 _ididmodified_atupdated_atspace_idtenant_id(兼容层/适配器除外)。
  2. 引擎、插件、对象协议、mock、action handler、dev-plugin、http-adapter、testing schema、prompt 全面梳理改写。
  3. 强制内部和协议文档一致,所有接口入参出参、主数据类型只出现一套规范命名。
  4. 提供一次性升级 migration/说明文档。

影响面

  • packages/objectql
  • packages/core
  • packages/plugins/driver-memory
  • examples/
  • apps/studio/
  • content/prompts/
  • packages/spec/
  • 及所有 demo/test/mock/工具层

风险

  • 第三方驱动或定制插件/适配层如因历史原因必须用 _id,需做兼容适配(如 storage column 映射);主协议层、SDK、API 不再暴露 _id

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions