SuperAPI AI 工具集

objectstack-schema

设计与创作

查看项目

更新于 10-16 02:35

技能介绍

用途:面向 ObjectStack 规范设计业务数据 schema,适用于新建业务对象(如 account、project_task)、从 48 种字段类型中选择合适类型、配置对象间 lookup/master_detail 关系、添加校验规则、用索引优化查询性能、为已有对象扩展字段,以及实现数据生命周期钩子。不适用范围:查询过滤聚合改用 objectstack-query,API 与鉴权用 objectstack-api,视图仪表盘用 objectstack-ui,插件与服务注册用 objectstack-plugin。

主要能力:对象定义需 name(snake_case,不可变)与 fields(键为 snake_case),可选 label、pluralLabel、namespace(自动生成表名 {namespace}_{name})、datasource、displayNameField、enable 能力开关(trackHistory、searchable、apiEnabled、apiMethods、files、feeds、activities、trash、mru、clone)。字段类型分文本、数值、日期时间、逻辑、选择、关系、媒体、计算、增强等类别。关系用 lookup(独立一对多)、master_detail(拥有型一对多)、双 lookup 连接对象(多对多)、tree(自引用层级)。校验类型含 script(注意逻辑反转:表达式为真时校验失败)、unique、state_machine、format、cross_field。索引默认 btree,可配 unique、fulltext 及复合索引。生命周期钩子通过 @objectstack/spec/data 的 Hook 在 beforeInsert 等事件实现业务逻辑。扩展对象用 ownership: 'extend'、extend 指定 FQN、priority 控制合并顺序(默认 200,范围 0–999),只能增加字段、校验与索引,不能删除。

用法:安装或导入来自 @objectstack/spec 的 ObjectSchema,用 ObjectSchema.create({...}) 定义对象,示例中通过 import { ObjectSchema } from '@objectstack/spec'; 引入。命名规则:对象名与字段键 snake_case,schema 属性 camelCase(如 maxLength、referenceFilters),选项值小写(如 in_progress)。

限制:资料未提供收费、价格、平台等细节;脚本校验逻辑为反转,需特别注意;扩展不可移除已有元素;多重租户、软删除、版本、分区、CDC、加密与脱敏等高级特性仅在资料中以清单形式提及,具体配置暂未提供。