从 ObjectStack 元数据到运行时表面
ObjectStack 建模业务;ObjectOS 与 ObjectUI 把它变成可被 AI 操作的应用。
// customer.object.ts
import { defineObject, z } from '@objectstack/spec';
export const Customer = defineObject({
name: 'customer',
label: 'Customer',
fields: {
companyName: z.string().min(1),
accountManagerId: z.lookup('user'),
annualRevenue: z.number().optional(),
},
});// ObjectStack runtime 派生:
// 数据引擎 -> driver-backed CRUD/query
// REST API -> /api/v1/data/customer
// Client SDK -> client.data.find('customer', ...)
// ObjectUI -> 表单、表格、仪表盘
// MCP tools -> customer.list / customer.update
// ObjectOS 统一执行认证、行/字段权限、
// 校验、审计与请求归因。ObjectStack 里有什么
AI 就绪元数据优先;数据/查询管道退到幕后。
业务元数据核心
ObjectStack 用一套结构化模型定义对象、字段、权限、流程、动作、视图、Agent 与工具表面。运行时决定谁可以使用它们,以及每个动作如何暴露。
基于 Driver 的存储
同一份对象元数据可以跑在 SQL、MongoDB、内存、电子表格或自定义 Driver 上。内部数据/查询引擎服务于框架本身,而不是成为产品叙事中心。
人和 AI 都能读懂
对象、动作与查询表面结构化到足以让 Framework、REST、SDK、ObjectUI 与 MCP 工具派生行为,而不需要重复定义。
ObjectStack vs. 只有 ORM 的后端
ObjectStack 是应用、API、UI 与 AI 工具的元数据主干;数据/查询引擎保持为内部能力。
面向业务元数据、API、UI 与 AI 工具表面的开源框架。
通常只是数据抽象,周围还要补大量胶水。
ObjectOS 在每个动作外层执行认证、RBAC/RLS/FLS、审计与 Agent 身份。
治理要在每条 API 路由与每个 AI 集成里重写。
元数据可以作为编译工件跨 Driver 与运行时移动。
模型经常绑定到特定方言、迁移栈或应用框架。
动作与对象元数据通过运行时喂给 MCP 工具。
Agent 工具通常手写,并逐渐偏离真实后端。
Driver 是数据边界
ObjectStack 负责通用对象/动作契约;真正的存储行为由 Driver 负责。
PostgreSQL
通过 SQL Driver 支持生产级关系存储。
MySQL
用于常见 Web 与企业部署的关系存储。
SQLite
适合本地开发、嵌入式工具与 standalone 部署。
SQL Server
通过自定义或商业 Driver 对接企业关系系统。
Oracle Database
遗留企业系统可以先被挂载,而不是立刻迁移。
MongoDB
在合适场景下使用原生文档存储语义。
Excel / CSV
把电子表格包装成 API、UI 与 Agent 都能使用的受治理对象。
用例
用 ObjectStack 作为开源基础;让 ObjectOS 运行它,让 ObjectUI 渲染它。
AI 就绪应用模型
先在本地原型化对象、流程、动作与 Agent 工具;需要认证、审计、API 与受治理执行时,把同一份元数据放进 ObjectOS。
Driver 适配器
把现有数据库、电子表格与专有系统包装成 ObjectStack 元数据,让 API、UI 与 AI 工具可以安全理解它们。
产品元数据主干
为生成的 REST API、SDK、UI 渲染器与 AI Agent 提供一致的过滤、分页、动作、权限与工具契约。