From 49aac6bcb3ea326293b6e54672e09607abca9678 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 22 Jan 2026 04:55:29 +0000 Subject: [PATCH 1/2] Initial plan From 17beb5edec8806aac049472e7e6a5bb7ea2cb733 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 22 Jan 2026 05:02:35 +0000 Subject: [PATCH 2/2] Reorganize documentation structure based on enterprise framework three-layer architecture Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- .../docs/concepts/enterprise-framework.cn.mdx | 6 +- .../docs/concepts/enterprise-framework.mdx | 6 +- .../cli/index.mdx | 0 .../cli/meta.json | 0 content/docs/creator-layer/index.cn.mdx | 146 +++++++ content/docs/creator-layer/index.mdx | 146 +++++++ content/docs/creator-layer/meta.json | 8 + .../sdk/index.mdx | 0 .../sdk/meta.json | 0 content/docs/execution-layer/index.cn.mdx | 363 ++++++++++++++++++ content/docs/execution-layer/index.mdx | 363 ++++++++++++++++++ content/docs/execution-layer/meta.json | 9 + .../objectos/audit-compliance.cn.mdx | 0 .../objectos/audit-compliance.mdx | 0 .../objectos/automation-rules.cn.mdx | 0 .../objectos/automation-rules.mdx | 0 .../objectos/index.cn.mdx | 0 .../objectos/index.mdx | 0 .../objectos/integration-etl.cn.mdx | 0 .../objectos/integration-etl.mdx | 0 .../objectos/meta.json | 0 .../objectos/permission-governance.cn.mdx | 0 .../objectos/permission-governance.mdx | 0 .../objectos/plugin-manifest.cn.mdx | 0 .../objectos/plugin-manifest.mdx | 0 .../objectos/workflow-engine.cn.mdx | 0 .../objectos/workflow-engine.mdx | 0 .../objectql/advanced-types.cn.mdx | 0 .../objectql/advanced-types.mdx | 0 .../objectql/analytics-protocol.cn.mdx | 0 .../objectql/analytics-protocol.mdx | 0 .../objectql/ast-structure.cn.mdx | 0 .../objectql/ast-structure.mdx | 0 .../objectql/index.cn.mdx | 0 .../objectql/index.mdx | 0 .../objectql/meta.json | 0 .../objectql/schema-definition.cn.mdx | 0 .../objectql/schema-definition.mdx | 0 .../objectql/transaction-model.cn.mdx | 0 .../objectql/transaction-model.mdx | 0 .../objectql/wire-protocol.cn.mdx | 0 .../objectql/wire-protocol.mdx | 0 .../objectui/action-triggers.cn.mdx | 0 .../objectui/action-triggers.mdx | 0 .../objectui/component-schema.cn.mdx | 0 .../objectui/component-schema.mdx | 0 .../objectui/index.cn.mdx | 0 .../objectui/index.mdx | 0 .../objectui/layout-system.cn.mdx | 0 .../objectui/layout-system.mdx | 0 .../objectui/meta.json | 0 .../objectui/report-template.cn.mdx | 0 .../objectui/report-template.mdx | 0 .../objectui/view-protocol.cn.mdx | 0 .../objectui/view-protocol.mdx | 0 .../deployment/index.mdx | 0 .../deployment/meta.json | 0 content/docs/governance-layer/index.cn.mdx | 260 +++++++++++++ content/docs/governance-layer/index.mdx | 260 +++++++++++++ content/docs/governance-layer/meta.json | 7 + content/docs/meta.json | 5 +- content/docs/specifications/index.cn.mdx | 60 +-- content/docs/specifications/index.mdx | 60 +-- content/docs/specifications/meta.json | 9 +- 64 files changed, 1644 insertions(+), 64 deletions(-) rename content/docs/{specifications => creator-layer}/cli/index.mdx (100%) rename content/docs/{specifications => creator-layer}/cli/meta.json (100%) create mode 100644 content/docs/creator-layer/index.cn.mdx create mode 100644 content/docs/creator-layer/index.mdx create mode 100644 content/docs/creator-layer/meta.json rename content/docs/{specifications => creator-layer}/sdk/index.mdx (100%) rename content/docs/{specifications => creator-layer}/sdk/meta.json (100%) create mode 100644 content/docs/execution-layer/index.cn.mdx create mode 100644 content/docs/execution-layer/index.mdx create mode 100644 content/docs/execution-layer/meta.json rename content/docs/{specifications => execution-layer}/objectos/audit-compliance.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/audit-compliance.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/automation-rules.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/automation-rules.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/index.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/index.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/integration-etl.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/integration-etl.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/meta.json (100%) rename content/docs/{specifications => execution-layer}/objectos/permission-governance.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/permission-governance.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/plugin-manifest.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/plugin-manifest.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/workflow-engine.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectos/workflow-engine.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/advanced-types.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/advanced-types.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/analytics-protocol.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/analytics-protocol.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/ast-structure.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/ast-structure.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/index.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/index.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/meta.json (100%) rename content/docs/{specifications => execution-layer}/objectql/schema-definition.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/schema-definition.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/transaction-model.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/transaction-model.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/wire-protocol.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectql/wire-protocol.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/action-triggers.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/action-triggers.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/component-schema.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/component-schema.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/index.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/index.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/layout-system.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/layout-system.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/meta.json (100%) rename content/docs/{specifications => execution-layer}/objectui/report-template.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/report-template.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/view-protocol.cn.mdx (100%) rename content/docs/{specifications => execution-layer}/objectui/view-protocol.mdx (100%) rename content/docs/{specifications => governance-layer}/deployment/index.mdx (100%) rename content/docs/{specifications => governance-layer}/deployment/meta.json (100%) create mode 100644 content/docs/governance-layer/index.cn.mdx create mode 100644 content/docs/governance-layer/index.mdx create mode 100644 content/docs/governance-layer/meta.json diff --git a/content/docs/concepts/enterprise-framework.cn.mdx b/content/docs/concepts/enterprise-framework.cn.mdx index 814904e..bc7cf87 100644 --- a/content/docs/concepts/enterprise-framework.cn.mdx +++ b/content/docs/concepts/enterprise-framework.cn.mdx @@ -301,9 +301,9 @@ my-erp/ ## 下一步 -* **[SDK 参考](../specifications/sdk)**: `@objectstack/sdk` 的详细 API 文档 -* **[CLI 指南](../specifications/cli)**: 命令参考和使用示例 -* **[部署模式](../specifications/deployment)**: Docker、Kubernetes 和云部署策略 +* **[创造层](../creator-layer)**: 了解用于开发的 SDK 和 CLI 工具 +* **[治理层](../governance-layer)**: 理解 CI/CD 流水线和部署 +* **[执行层](../execution-layer)**: 探索 ObjectQL、ObjectOS 和 ObjectUI 引擎 :::tip 企业级准备 ObjectStack 企业框架专为重视代码质量、版本控制和可维护性的团队而设计。它将低代码的力量带入专业开发工作流程。 diff --git a/content/docs/concepts/enterprise-framework.mdx b/content/docs/concepts/enterprise-framework.mdx index 36a20e1..e72e2a0 100644 --- a/content/docs/concepts/enterprise-framework.mdx +++ b/content/docs/concepts/enterprise-framework.mdx @@ -302,9 +302,9 @@ However, it adds a critical developer experience layer: ## Next Steps -* **[SDK Reference](../specifications/sdk)**: Detailed API documentation for `@objectstack/sdk` -* **[CLI Guide](../specifications/cli)**: Command reference and usage examples -* **[Deployment Patterns](../specifications/deployment)**: Docker, Kubernetes, and cloud deployment strategies +* **[Creator Layer](../creator-layer)**: Learn about the SDK and CLI tools for development +* **[Governance Layer](../governance-layer)**: Understand the CI/CD pipeline and deployment +* **[Execution Layer](../execution-layer)**: Explore the ObjectQL, ObjectOS, and ObjectUI engines :::tip Enterprise-Ready The ObjectStack Enterprise Framework is designed for teams that value code quality, version control, and maintainability. It brings the power of low-code to professional development workflows. diff --git a/content/docs/specifications/cli/index.mdx b/content/docs/creator-layer/cli/index.mdx similarity index 100% rename from content/docs/specifications/cli/index.mdx rename to content/docs/creator-layer/cli/index.mdx diff --git a/content/docs/specifications/cli/meta.json b/content/docs/creator-layer/cli/meta.json similarity index 100% rename from content/docs/specifications/cli/meta.json rename to content/docs/creator-layer/cli/meta.json diff --git a/content/docs/creator-layer/index.cn.mdx b/content/docs/creator-layer/index.cn.mdx new file mode 100644 index 0000000..55b72b2 --- /dev/null +++ b/content/docs/creator-layer/index.cn.mdx @@ -0,0 +1,146 @@ +--- +title: 创造层 +description: "层级 A:ObjectStack SDK - 在 IDE 中定义世界" +--- + +# 创造层:ObjectStack SDK + +**"在 IDE 中定义世界"** + +创造层是开发者工作的地方——编写代码、定义元数据、构建业务逻辑,而无需离开他们熟悉的 IDE 环境。这一层通过将所有配置和开发带入 TypeScript 代码,消除了对网页后台的需求。 + +## 概述 + +在 ObjectStack 企业框架中,创造层代表开发者的主要工作空间。开发者不再需要点击配置界面,而是使用: + +* **ObjectStack CLI**: 用于快速脚手架和项目管理的命令行工具 +* **TypeScript SDK**: 用于定义对象、逻辑和界面的类型安全 API +* **代码化元数据**: 从 Schema 到 UI 布局的一切都作为版本控制的代码存在 + +## 核心理念 + +> "没有黑盒。所有业务定义都在本地代码中,基于 TypeScript,清晰透明。" + +这一层体现了**透明性**原则: +* 所有元数据都是可读的 TypeScript 代码 +* 所有变更都在 Git 中跟踪 +* 所有业务逻辑都可以使用标准 IDE 工具进行测试和重构 + +## 开发者体验 + +### 1. 项目初始化 + +```bash +ostack init my-enterprise-app +cd my-enterprise-app +``` + +这将生成一个标准项目结构,包含: +- 预配置的 TypeScript 设置 +- ObjectStack SDK 依赖 +- 示例对象和工作流 +- 测试基础设施 + +### 2. 对象定义 + +使用 SDK 定义业务实体: + +```typescript +import { defineObject, Field } from '@objectstack/sdk'; + +export const Contract = defineObject({ + name: 'contract', + label: '销售合同', + fields: { + title: Field.String({ + label: '标题', + required: true + }), + amount: Field.Currency({ + label: '金额', + precision: 18, + scale: 2 + }), + status: Field.Select({ + options: ['draft', 'signed', 'cancelled'], + defaultValue: 'draft' + }) + } +}); +``` + +### 3. 逻辑与触发器 + +将业务逻辑编写为 TypeScript 函数: + +```typescript +export const Contract = defineObject({ + // ... 字段 ... + + triggers: { + beforeInsert: async ({ doc }) => { + if (doc.amount < 0) { + throw new Error("金额不能为负"); + } + }, + + afterUpdate: async ({ doc, oldDoc }) => { + if (doc.status === 'signed' && oldDoc.status !== 'signed') { + doc.signedAt = new Date(); + } + } + } +}); +``` + +### 4. 本地开发 + +```bash +ostack dev +``` + +这将启动一个热重载开发服务器,你可以: +* 即时测试更改 +* 使用 Chrome DevTools 调试 +* 无需部署即可快速迭代 + +## 架构集成 + +创造层输出**代码化元数据**,流入**治理层**(CI/CD 流水线)进行编译和部署。 + +```mermaid +graph LR + CLI[ObjectStack CLI] --> MetaCode[代码化元数据] + SDK[TypeScript SDK] --> MetaCode + MetaCode --> Extract[治理层] + + style CLI fill:#e1f5ff + style SDK fill:#e1f5ff + style MetaCode fill:#fff4e1 +``` + +## 价值主张 + +### 类型安全 +* VS Code 中的完整 IntelliSense 支持 +* 编译时错误检测 +* 自信地重构 + +### Git 原生工作流 +* 所有更改都是提交 +* 通过 Pull Request 进行代码审查 +* 回滚只需 `git revert` + +### 无厂商锁定 +* 你的代码存在于你的仓库中 +* 无需特殊工具即可读取和修改 +* 可跨环境移植 + +## 此层中的工具 + +* **[SDK 参考](./sdk)**: `@objectstack/sdk` 的详细 API 文档 +* **[CLI 指南](./cli)**: 命令参考和使用示例 + +--- + +**下一步:** **[治理层](../governance-layer)** - 了解你的代码如何构建和部署 diff --git a/content/docs/creator-layer/index.mdx b/content/docs/creator-layer/index.mdx new file mode 100644 index 0000000..b6752ac --- /dev/null +++ b/content/docs/creator-layer/index.mdx @@ -0,0 +1,146 @@ +--- +title: Creator Layer +description: "Layer A: ObjectStack SDK - Define the World in Your IDE" +--- + +# Creator Layer: ObjectStack SDK + +**"Define the World in Your IDE"** + +The Creator Layer is where developers work—writing code, defining metadata, and building business logic without leaving their familiar IDE environment. This layer eliminates the need for web-based admin consoles by bringing all configuration and development into TypeScript code. + +## Overview + +In the ObjectStack Enterprise Framework, the Creator Layer represents the developer's primary workspace. Instead of clicking through configuration screens, developers use: + +* **ObjectStack CLI**: Command-line tools for rapid scaffolding and project management +* **TypeScript SDK**: Type-safe APIs for defining objects, logic, and interfaces +* **Metadata as Code**: Everything from schemas to UI layouts exists as version-controlled code + +## Core Philosophy + +> "No Black Boxes. All business definitions exist in local code, based on TypeScript, clear and transparent." + +This layer embodies the principle of **transparency**: +* All metadata is readable TypeScript code +* All changes are tracked in Git +* All business logic is testable and refactorable with standard IDE tools + +## The Developer Experience + +### 1. Project Initialization + +```bash +ostack init my-enterprise-app +cd my-enterprise-app +``` + +This generates a standard project structure with: +- Pre-configured TypeScript setup +- ObjectStack SDK dependencies +- Example objects and workflows +- Testing infrastructure + +### 2. Object Definition + +Define business entities using the SDK: + +```typescript +import { defineObject, Field } from '@objectstack/sdk'; + +export const Contract = defineObject({ + name: 'contract', + label: 'Sales Contract', + fields: { + title: Field.String({ + label: 'Title', + required: true + }), + amount: Field.Currency({ + label: 'Amount', + precision: 18, + scale: 2 + }), + status: Field.Select({ + options: ['draft', 'signed', 'cancelled'], + defaultValue: 'draft' + }) + } +}); +``` + +### 3. Logic & Triggers + +Write business logic as TypeScript functions: + +```typescript +export const Contract = defineObject({ + // ... fields ... + + triggers: { + beforeInsert: async ({ doc }) => { + if (doc.amount < 0) { + throw new Error("Amount cannot be negative"); + } + }, + + afterUpdate: async ({ doc, oldDoc }) => { + if (doc.status === 'signed' && oldDoc.status !== 'signed') { + doc.signedAt = new Date(); + } + } + } +}); +``` + +### 4. Local Development + +```bash +ostack dev +``` + +This starts a hot-reloading development server where you can: +* Test changes instantly +* Debug with Chrome DevTools +* Iterate rapidly without deploying + +## Architecture Integration + +The Creator Layer outputs **Metadata as Code** which flows into the **Governance Layer** (CI/CD Pipeline) for compilation and deployment. + +```mermaid +graph LR + CLI[ObjectStack CLI] --> MetaCode[Metadata as Code] + SDK[TypeScript SDK] --> MetaCode + MetaCode --> Extract[Governance Layer] + + style CLI fill:#e1f5ff + style SDK fill:#e1f5ff + style MetaCode fill:#fff4e1 +``` + +## Value Propositions + +### Type Safety +* Full IntelliSense support in VS Code +* Compile-time error detection +* Refactoring with confidence + +### Git-Native Workflow +* All changes are commits +* Code reviews via Pull Requests +* Rollback is just `git revert` + +### No Vendor Lock-in +* Your code lives in your repository +* Can be read and modified without special tools +* Portable across environments + +## Tools in This Layer + +* **[SDK Reference](./sdk)**: Detailed API documentation for `@objectstack/sdk` +* **[CLI Guide](./cli)**: Command reference and usage examples + +--- + +**Next:** **[Governance Layer](../governance-layer)** - Learn how your code gets built and deployed diff --git a/content/docs/creator-layer/meta.json b/content/docs/creator-layer/meta.json new file mode 100644 index 0000000..3db2bc6 --- /dev/null +++ b/content/docs/creator-layer/meta.json @@ -0,0 +1,8 @@ +{ + "title": "Creator Layer", + "pages": [ + "index", + "sdk", + "cli" + ] +} diff --git a/content/docs/specifications/sdk/index.mdx b/content/docs/creator-layer/sdk/index.mdx similarity index 100% rename from content/docs/specifications/sdk/index.mdx rename to content/docs/creator-layer/sdk/index.mdx diff --git a/content/docs/specifications/sdk/meta.json b/content/docs/creator-layer/sdk/meta.json similarity index 100% rename from content/docs/specifications/sdk/meta.json rename to content/docs/creator-layer/sdk/meta.json diff --git a/content/docs/execution-layer/index.cn.mdx b/content/docs/execution-layer/index.cn.mdx new file mode 100644 index 0000000..1c7c9d4 --- /dev/null +++ b/content/docs/execution-layer/index.cn.mdx @@ -0,0 +1,363 @@ +--- +title: 执行层 +description: "层级 C:ObjectStack 内核 - 自带动力的三位一体引擎" +--- + +# 执行层:ObjectStack 内核 + +**"自带动力的单体引擎"** + +执行层是交付给客户的运行时核心——一个标准的 **Docker 镜像**或 **NPM 包**,运行在他们的基础设施上。这一层包含统一的"三位一体"引擎,执行在创造层定义的元数据和业务逻辑。 + +## 概述 + +执行层是你的应用变为现实的地方。它是一个自包含的运行时: + +* **读取元数据**: 加载打包的业务定义 +* **管理数据**: 处理数据库操作和迁移 +* **执行逻辑**: 运行触发器、工作流和自动化 +* **渲染 UI**: 向前端客户端提供界面 + +## 核心理念 + +> "自带动力的单体引擎。应用运行所需的一切都包含在内核中。" + +这一层体现了**自给自足**原则: +* 不需要外部配置服务 +* 启动时自动数据库同步 +* 内置身份验证和授权 +* 原生支持本地优先架构 + +## 三位一体架构 + +内核集成了三个专业引擎,它们无缝协作: + +```mermaid +graph TB + subgraph "执行层:ObjectStack 内核" + Metadata[打包元数据] + + subgraph "ObjectQL 引擎" + Schema[Schema 管理] + Migration[自动迁移] + Query[查询引擎] + API[API 生成] + end + + subgraph "ObjectOS 引擎" + Auth[身份验证] + RBAC[授权/RBAC] + Workflow[工作流引擎] + Sync[本地优先同步] + end + + subgraph "ObjectUI 引擎" + SchemaAPI[Schema API] + Renderer[渲染器协议] + Components[组件库] + end + + Metadata --> Schema + Metadata --> Auth + Metadata --> SchemaAPI + end + + style ObjectQL fill:#e1f5ff + style ObjectOS fill:#ffe1f5 + style ObjectUI fill:#f5ffe1 +``` + +## 1. ObjectQL:数据引擎 + +**自动数据库管理** + +当应用启动时,ObjectQL: + +### 自动迁移 +* 比较元数据 Schema 与数据库状态 +* 生成并执行 `ALTER TABLE` 语句 +* 处理列添加、修改和索引 +* 确保零停机 Schema 演化 + +**示例:** +```javascript +// 元数据定义新字段 +{ + name: 'contract', + fields: { + // ... 现有字段 ... + vat_amount: { type: 'currency', precision: 18, scale: 2 } + } +} + +// ObjectQL 自动执行: +// ALTER TABLE contract ADD COLUMN vat_amount DECIMAL(18,2); +``` + +### 自动生成 API +* 创建 GraphQL 和 REST 端点 +* 挂载像 `/api/data/contract` 这样的路由 +* 实现 CRUD 操作 +* 应用权限过滤 + +**示例端点:** +``` +POST /api/data/contract/create +GET /api/data/contract/list +GET /api/data/contract/:id +PATCH /api/data/contract/:id/update +DELETE /api/data/contract/:id/delete +``` + +### 数据库无关 +ObjectQL 将相同的元数据编译为: +* **PostgreSQL**: 完整 ACID 与 JSONB 支持 +* **MySQL**: 与企业部署兼容 +* **SQLite**: 用于嵌入式和本地优先应用 +* **MongoDB**: 用于以文档为中心的工作负载(通过适配器) + +**了解更多:** **[ObjectQL 规范](./objectql)** + +## 2. ObjectOS:运行时操作系统 + +**业务逻辑编排** + +ObjectOS 管理你的业务逻辑执行环境: + +### 逻辑沙箱 +* 加载并执行开发者编写的触发器 +* 提供隔离的执行上下文 +* 处理错误和日志 +* 管理事务边界 + +**示例:** +```typescript +// 开发者编写此触发器: +triggers: { + afterUpdate: async ({ doc, oldDoc }) => { + if (doc.status === 'signed' && oldDoc.status !== 'signed') { + await sendNotification(doc.sales_rep, '合同已签署!'); + } + } +} + +// ObjectOS 确保: +// - 触发器在事务内运行 +// - 错误回滚更新 +// - 日志被捕获和存储 +``` + +### 身份验证与授权 +* **RBAC**(基于角色的访问控制) +* **ACL**(访问控制列表) +* **行级安全** +* **字段级权限** + +### 工作流引擎 +* 有限状态机(FSM) +* 审批流程 +* 定时自动化 +* 事件驱动触发器 + +### 本地优先同步 +* 冲突解决算法 +* 离线能力 +* 增量同步协议 +* 多设备协调 + +**了解更多:** **[ObjectOS 规范](./objectos)** + +## 3. ObjectUI:视图引擎 + +**服务端驱动界面** + +ObjectUI 向前端客户端提供 Schema 和渲染指令: + +### Schema API +向客户端提供 `schema.json`: + +```json +{ + "objects": { + "contract": { + "fields": { + "title": { "type": "string", "label": "标题" }, + "amount": { "type": "currency", "label": "金额" } + }, + "views": { + "form": { "layout": "two-column", "fields": ["title", "amount"] }, + "list": { "columns": ["title", "amount", "status"] } + } + } + } +} +``` + +### 渲染器集成 +* **Amis**: 直接 JSON 到 UI 渲染 +* **React**: 组件 props 生成 +* **Vue**: 模板数据绑定 +* **Flutter**: Widget 树构建 + +### 声明式布局 +* 响应式网格系统 +* 条件可见性 +* 动态验证 +* 自定义组件插槽 + +**了解更多:** **[ObjectUI 规范](./objectui)** + +## 部署模型 + +### Docker 容器 + +```bash +# 拉取官方镜像 +docker pull objectstack/kernel:latest + +# 使用你的元数据运行 +docker run -d \ + -p 3000:3000 \ + -v ./metadata:/app/metadata \ + -e DATABASE_URL=postgres://... \ + objectstack/kernel:latest +``` + +### NPM 包 + +```bash +# 安装内核 +npm install @objectstack/kernel + +# 以编程方式运行 +node server.js +``` + +```javascript +// server.js +const { ObjectStackKernel } = require('@objectstack/kernel'); + +const kernel = new ObjectStackKernel({ + metadata: require('./metadata.json'), + database: process.env.DATABASE_URL +}); + +kernel.start(3000); +``` + +### Kubernetes 部署 + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: objectstack-app +spec: + replicas: 3 + template: + spec: + containers: + - name: kernel + image: my-app:v1.0.0 + env: + - name: DATABASE_URL + valueFrom: + secretKeyRef: + name: db-credentials + key: url +``` + +## 启动序列 + +当内核启动时,它遵循此序列: + +```mermaid +sequenceDiagram + participant K as 内核 + participant M as 元数据加载器 + participant QL as ObjectQL + participant OS as ObjectOS + participant UI as ObjectUI + participant DB as 数据库 + + K->>M: 加载 metadata.json + M->>QL: 初始化 schema + QL->>DB: 比较和迁移 + DB-->>QL: 迁移完成 + QL->>K: 数据层就绪 + + K->>OS: 初始化运行时 + OS->>OS: 加载触发器 + OS->>OS: 启动工作流 + OS->>K: 逻辑层就绪 + + K->>UI: 初始化渲染器 + UI->>UI: 构建 schema API + UI->>K: 视图层就绪 + + K->>K: 启动 HTTP 服务器 + K->>K: 准备接受请求 +``` + +## 集成点 + +执行层从治理层接收制品: + +```mermaid +graph LR + subgraph "治理层" + Artifact[构建制品] + end + + subgraph "执行层" + Kernel[ObjectStack 内核] + QL[ObjectQL] + OS[ObjectOS] + UI[ObjectUI] + end + + Artifact --> Kernel + Kernel --> QL + Kernel --> OS + Kernel --> UI + + style Artifact fill:#fff4e1 + style Kernel fill:#e1ffe1 +``` + +## 此层中的引擎 + +* **[ObjectQL](./objectql)**: 数据引擎规范 +* **[ObjectOS](./objectos)**: 运行时和编排规范 +* **[ObjectUI](./objectui)**: 视图引擎规范 + +## 运维特性 + +### 性能 +* 亚毫秒级查询规划 +* 数据库连接池 +* 通过副本水平扩展 +* 多级缓存 + +### 可靠性 +* 瞬态故障自动重试 +* 外部服务熔断器 +* 优雅降级 +* 健康检查端点 + +### 可观测性 +* 结构化日志(JSON) +* 指标导出(Prometheus) +* 分布式追踪(OpenTelemetry) +* 实时调试端点 + +### 安全性 +* 所有连接使用 TLS/SSL +* 秘密管理集成 +* SQL 注入防护 +* XSS 清理 + +--- + +**上一步:** **[治理层](../governance-layer)** - 代码如何构建 +**另请参阅:** **[企业框架](../concepts/enterprise-framework)** - 完整架构概览 diff --git a/content/docs/execution-layer/index.mdx b/content/docs/execution-layer/index.mdx new file mode 100644 index 0000000..badfc9d --- /dev/null +++ b/content/docs/execution-layer/index.mdx @@ -0,0 +1,363 @@ +--- +title: Execution Layer +description: "Layer C: ObjectStack Kernel - The Self-Powered Trinity Engine" +--- + +# Execution Layer: ObjectStack Kernel + +**"Self-Powered Monolithic Engine"** + +The Execution Layer is the runtime core delivered to customers—a standard **Docker Image** or **NPM Package** that runs on their infrastructure. This layer contains the unified "Trinity" engine that executes the metadata and business logic defined in the Creator Layer. + +## Overview + +The Execution Layer is where your application comes to life. It's a self-contained runtime that: + +* **Reads Metadata**: Loads the packaged business definitions +* **Manages Data**: Handles database operations and migrations +* **Executes Logic**: Runs triggers, workflows, and automation +* **Renders UI**: Serves interfaces to frontend clients + +## Core Philosophy + +> "Self-Powered Monolithic Engine. Everything the application needs to run is contained in the Kernel." + +This layer embodies the principle of **self-sufficiency**: +* No external configuration services required +* Automatic database synchronization on startup +* Built-in authentication and authorization +* Native support for local-first architecture + +## The Trinity Architecture + +The Kernel integrates three specialized engines that work together seamlessly: + +```mermaid +graph TB + subgraph "Execution Layer: ObjectStack Kernel" + Metadata[Packaged Metadata] + + subgraph "ObjectQL Engine" + Schema[Schema Management] + Migration[Auto-Migration] + Query[Query Engine] + API[API Generation] + end + + subgraph "ObjectOS Engine" + Auth[Authentication] + RBAC[Authorization/RBAC] + Workflow[Workflow Engine] + Sync[Local-First Sync] + end + + subgraph "ObjectUI Engine" + SchemaAPI[Schema API] + Renderer[Renderer Protocol] + Components[Component Library] + end + + Metadata --> Schema + Metadata --> Auth + Metadata --> SchemaAPI + end + + style ObjectQL fill:#e1f5ff + style ObjectOS fill:#ffe1f5 + style ObjectUI fill:#f5ffe1 +``` + +## 1. ObjectQL: The Data Engine + +**Automatic Database Management** + +When the application starts, ObjectQL: + +### Auto-Migration +* Compares metadata schema with database state +* Generates and executes `ALTER TABLE` statements +* Handles column additions, modifications, and indexes +* Ensures zero-downtime schema evolution + +**Example:** +```javascript +// Metadata defines new field +{ + name: 'contract', + fields: { + // ... existing fields ... + vat_amount: { type: 'currency', precision: 18, scale: 2 } + } +} + +// ObjectQL automatically executes: +// ALTER TABLE contract ADD COLUMN vat_amount DECIMAL(18,2); +``` + +### Auto-Generate APIs +* Creates GraphQL and REST endpoints +* Mounts routes like `/api/data/contract` +* Implements CRUD operations +* Applies permission filters + +**Example Endpoints:** +``` +POST /api/data/contract/create +GET /api/data/contract/list +GET /api/data/contract/:id +PATCH /api/data/contract/:id/update +DELETE /api/data/contract/:id/delete +``` + +### Database Agnostic +ObjectQL compiles the same metadata to: +* **PostgreSQL**: Full ACID with JSONB support +* **MySQL**: Compatible with enterprise deployments +* **SQLite**: For embedded and local-first apps +* **MongoDB**: For document-centric workloads (via adapter) + +**Learn More:** **[ObjectQL Specifications](./objectql)** + +## 2. ObjectOS: The Runtime Operating System + +**Business Logic Orchestration** + +ObjectOS manages the execution environment for your business logic: + +### Logic Sandbox +* Loads and executes developer-written triggers +* Provides isolated execution contexts +* Handles errors and logging +* Manages transaction boundaries + +**Example:** +```typescript +// Developer writes this trigger: +triggers: { + afterUpdate: async ({ doc, oldDoc }) => { + if (doc.status === 'signed' && oldDoc.status !== 'signed') { + await sendNotification(doc.sales_rep, 'Contract signed!'); + } + } +} + +// ObjectOS ensures: +// - Trigger runs within transaction +// - Errors rollback the update +// - Logs are captured and stored +``` + +### Authentication & Authorization +* **RBAC** (Role-Based Access Control) +* **ACL** (Access Control Lists) +* **Row-Level Security** +* **Field-Level Permissions** + +### Workflow Engine +* Finite State Machines (FSM) +* Approval processes +* Scheduled automation +* Event-driven triggers + +### Local-First Synchronization +* Conflict resolution algorithms +* Offline capability +* Delta sync protocols +* Multi-device coordination + +**Learn More:** **[ObjectOS Specifications](./objectos)** + +## 3. ObjectUI: The View Engine + +**Server-Driven Interface** + +ObjectUI provides the schema and rendering instructions to frontend clients: + +### Schema API +Serves `schema.json` to clients: + +```json +{ + "objects": { + "contract": { + "fields": { + "title": { "type": "string", "label": "Title" }, + "amount": { "type": "currency", "label": "Amount" } + }, + "views": { + "form": { "layout": "two-column", "fields": ["title", "amount"] }, + "list": { "columns": ["title", "amount", "status"] } + } + } + } +} +``` + +### Renderer Integration +* **Amis**: Direct JSON-to-UI rendering +* **React**: Component props generation +* **Vue**: Template data binding +* **Flutter**: Widget tree construction + +### Declarative Layouts +* Responsive grid systems +* Conditional visibility +* Dynamic validation +* Custom component slots + +**Learn More:** **[ObjectUI Specifications](./objectui)** + +## Deployment Models + +### Docker Container + +```bash +# Pull the official image +docker pull objectstack/kernel:latest + +# Run with your metadata +docker run -d \ + -p 3000:3000 \ + -v ./metadata:/app/metadata \ + -e DATABASE_URL=postgres://... \ + objectstack/kernel:latest +``` + +### NPM Package + +```bash +# Install the kernel +npm install @objectstack/kernel + +# Run programmatically +node server.js +``` + +```javascript +// server.js +const { ObjectStackKernel } = require('@objectstack/kernel'); + +const kernel = new ObjectStackKernel({ + metadata: require('./metadata.json'), + database: process.env.DATABASE_URL +}); + +kernel.start(3000); +``` + +### Kubernetes Deployment + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: objectstack-app +spec: + replicas: 3 + template: + spec: + containers: + - name: kernel + image: my-app:v1.0.0 + env: + - name: DATABASE_URL + valueFrom: + secretKeyRef: + name: db-credentials + key: url +``` + +## Startup Sequence + +When the Kernel starts, it follows this sequence: + +```mermaid +sequenceDiagram + participant K as Kernel + participant M as Metadata Loader + participant QL as ObjectQL + participant OS as ObjectOS + participant UI as ObjectUI + participant DB as Database + + K->>M: Load metadata.json + M->>QL: Initialize schema + QL->>DB: Compare & Migrate + DB-->>QL: Migration complete + QL->>K: Data layer ready + + K->>OS: Initialize runtime + OS->>OS: Load triggers + OS->>OS: Start workflows + OS->>K: Logic layer ready + + K->>UI: Initialize renderer + UI->>UI: Build schema API + UI->>K: View layer ready + + K->>K: Start HTTP server + K->>K: Ready to accept requests +``` + +## Integration Points + +The Execution Layer receives artifacts from the Governance Layer: + +```mermaid +graph LR + subgraph "Governance Layer" + Artifact[Build Artifact] + end + + subgraph "Execution Layer" + Kernel[ObjectStack Kernel] + QL[ObjectQL] + OS[ObjectOS] + UI[ObjectUI] + end + + Artifact --> Kernel + Kernel --> QL + Kernel --> OS + Kernel --> UI + + style Artifact fill:#fff4e1 + style Kernel fill:#e1ffe1 +``` + +## Engines in This Layer + +* **[ObjectQL](./objectql)**: Data engine specifications +* **[ObjectOS](./objectos)**: Runtime and orchestration specifications +* **[ObjectUI](./objectui)**: View engine specifications + +## Operational Characteristics + +### Performance +* Sub-millisecond query planning +* Connection pooling for databases +* Horizontal scaling via replicas +* Caching at multiple levels + +### Reliability +* Automatic retry on transient failures +* Circuit breakers for external services +* Graceful degradation +* Health check endpoints + +### Observability +* Structured logging (JSON) +* Metrics export (Prometheus) +* Distributed tracing (OpenTelemetry) +* Real-time debugging endpoints + +### Security +* TLS/SSL for all connections +* Secret management integration +* SQL injection prevention +* XSS sanitization + +--- + +**Previous:** **[Governance Layer](../governance-layer)** - How code gets built +**See Also:** **[Enterprise Framework](../concepts/enterprise-framework)** - Complete architecture overview diff --git a/content/docs/execution-layer/meta.json b/content/docs/execution-layer/meta.json new file mode 100644 index 0000000..03b7a55 --- /dev/null +++ b/content/docs/execution-layer/meta.json @@ -0,0 +1,9 @@ +{ + "title": "Execution Layer", + "pages": [ + "index", + "objectql", + "objectos", + "objectui" + ] +} diff --git a/content/docs/specifications/objectos/audit-compliance.cn.mdx b/content/docs/execution-layer/objectos/audit-compliance.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/audit-compliance.cn.mdx rename to content/docs/execution-layer/objectos/audit-compliance.cn.mdx diff --git a/content/docs/specifications/objectos/audit-compliance.mdx b/content/docs/execution-layer/objectos/audit-compliance.mdx similarity index 100% rename from content/docs/specifications/objectos/audit-compliance.mdx rename to content/docs/execution-layer/objectos/audit-compliance.mdx diff --git a/content/docs/specifications/objectos/automation-rules.cn.mdx b/content/docs/execution-layer/objectos/automation-rules.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/automation-rules.cn.mdx rename to content/docs/execution-layer/objectos/automation-rules.cn.mdx diff --git a/content/docs/specifications/objectos/automation-rules.mdx b/content/docs/execution-layer/objectos/automation-rules.mdx similarity index 100% rename from content/docs/specifications/objectos/automation-rules.mdx rename to content/docs/execution-layer/objectos/automation-rules.mdx diff --git a/content/docs/specifications/objectos/index.cn.mdx b/content/docs/execution-layer/objectos/index.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/index.cn.mdx rename to content/docs/execution-layer/objectos/index.cn.mdx diff --git a/content/docs/specifications/objectos/index.mdx b/content/docs/execution-layer/objectos/index.mdx similarity index 100% rename from content/docs/specifications/objectos/index.mdx rename to content/docs/execution-layer/objectos/index.mdx diff --git a/content/docs/specifications/objectos/integration-etl.cn.mdx b/content/docs/execution-layer/objectos/integration-etl.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/integration-etl.cn.mdx rename to content/docs/execution-layer/objectos/integration-etl.cn.mdx diff --git a/content/docs/specifications/objectos/integration-etl.mdx b/content/docs/execution-layer/objectos/integration-etl.mdx similarity index 100% rename from content/docs/specifications/objectos/integration-etl.mdx rename to content/docs/execution-layer/objectos/integration-etl.mdx diff --git a/content/docs/specifications/objectos/meta.json b/content/docs/execution-layer/objectos/meta.json similarity index 100% rename from content/docs/specifications/objectos/meta.json rename to content/docs/execution-layer/objectos/meta.json diff --git a/content/docs/specifications/objectos/permission-governance.cn.mdx b/content/docs/execution-layer/objectos/permission-governance.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/permission-governance.cn.mdx rename to content/docs/execution-layer/objectos/permission-governance.cn.mdx diff --git a/content/docs/specifications/objectos/permission-governance.mdx b/content/docs/execution-layer/objectos/permission-governance.mdx similarity index 100% rename from content/docs/specifications/objectos/permission-governance.mdx rename to content/docs/execution-layer/objectos/permission-governance.mdx diff --git a/content/docs/specifications/objectos/plugin-manifest.cn.mdx b/content/docs/execution-layer/objectos/plugin-manifest.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/plugin-manifest.cn.mdx rename to content/docs/execution-layer/objectos/plugin-manifest.cn.mdx diff --git a/content/docs/specifications/objectos/plugin-manifest.mdx b/content/docs/execution-layer/objectos/plugin-manifest.mdx similarity index 100% rename from content/docs/specifications/objectos/plugin-manifest.mdx rename to content/docs/execution-layer/objectos/plugin-manifest.mdx diff --git a/content/docs/specifications/objectos/workflow-engine.cn.mdx b/content/docs/execution-layer/objectos/workflow-engine.cn.mdx similarity index 100% rename from content/docs/specifications/objectos/workflow-engine.cn.mdx rename to content/docs/execution-layer/objectos/workflow-engine.cn.mdx diff --git a/content/docs/specifications/objectos/workflow-engine.mdx b/content/docs/execution-layer/objectos/workflow-engine.mdx similarity index 100% rename from content/docs/specifications/objectos/workflow-engine.mdx rename to content/docs/execution-layer/objectos/workflow-engine.mdx diff --git a/content/docs/specifications/objectql/advanced-types.cn.mdx b/content/docs/execution-layer/objectql/advanced-types.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/advanced-types.cn.mdx rename to content/docs/execution-layer/objectql/advanced-types.cn.mdx diff --git a/content/docs/specifications/objectql/advanced-types.mdx b/content/docs/execution-layer/objectql/advanced-types.mdx similarity index 100% rename from content/docs/specifications/objectql/advanced-types.mdx rename to content/docs/execution-layer/objectql/advanced-types.mdx diff --git a/content/docs/specifications/objectql/analytics-protocol.cn.mdx b/content/docs/execution-layer/objectql/analytics-protocol.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/analytics-protocol.cn.mdx rename to content/docs/execution-layer/objectql/analytics-protocol.cn.mdx diff --git a/content/docs/specifications/objectql/analytics-protocol.mdx b/content/docs/execution-layer/objectql/analytics-protocol.mdx similarity index 100% rename from content/docs/specifications/objectql/analytics-protocol.mdx rename to content/docs/execution-layer/objectql/analytics-protocol.mdx diff --git a/content/docs/specifications/objectql/ast-structure.cn.mdx b/content/docs/execution-layer/objectql/ast-structure.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/ast-structure.cn.mdx rename to content/docs/execution-layer/objectql/ast-structure.cn.mdx diff --git a/content/docs/specifications/objectql/ast-structure.mdx b/content/docs/execution-layer/objectql/ast-structure.mdx similarity index 100% rename from content/docs/specifications/objectql/ast-structure.mdx rename to content/docs/execution-layer/objectql/ast-structure.mdx diff --git a/content/docs/specifications/objectql/index.cn.mdx b/content/docs/execution-layer/objectql/index.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/index.cn.mdx rename to content/docs/execution-layer/objectql/index.cn.mdx diff --git a/content/docs/specifications/objectql/index.mdx b/content/docs/execution-layer/objectql/index.mdx similarity index 100% rename from content/docs/specifications/objectql/index.mdx rename to content/docs/execution-layer/objectql/index.mdx diff --git a/content/docs/specifications/objectql/meta.json b/content/docs/execution-layer/objectql/meta.json similarity index 100% rename from content/docs/specifications/objectql/meta.json rename to content/docs/execution-layer/objectql/meta.json diff --git a/content/docs/specifications/objectql/schema-definition.cn.mdx b/content/docs/execution-layer/objectql/schema-definition.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/schema-definition.cn.mdx rename to content/docs/execution-layer/objectql/schema-definition.cn.mdx diff --git a/content/docs/specifications/objectql/schema-definition.mdx b/content/docs/execution-layer/objectql/schema-definition.mdx similarity index 100% rename from content/docs/specifications/objectql/schema-definition.mdx rename to content/docs/execution-layer/objectql/schema-definition.mdx diff --git a/content/docs/specifications/objectql/transaction-model.cn.mdx b/content/docs/execution-layer/objectql/transaction-model.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/transaction-model.cn.mdx rename to content/docs/execution-layer/objectql/transaction-model.cn.mdx diff --git a/content/docs/specifications/objectql/transaction-model.mdx b/content/docs/execution-layer/objectql/transaction-model.mdx similarity index 100% rename from content/docs/specifications/objectql/transaction-model.mdx rename to content/docs/execution-layer/objectql/transaction-model.mdx diff --git a/content/docs/specifications/objectql/wire-protocol.cn.mdx b/content/docs/execution-layer/objectql/wire-protocol.cn.mdx similarity index 100% rename from content/docs/specifications/objectql/wire-protocol.cn.mdx rename to content/docs/execution-layer/objectql/wire-protocol.cn.mdx diff --git a/content/docs/specifications/objectql/wire-protocol.mdx b/content/docs/execution-layer/objectql/wire-protocol.mdx similarity index 100% rename from content/docs/specifications/objectql/wire-protocol.mdx rename to content/docs/execution-layer/objectql/wire-protocol.mdx diff --git a/content/docs/specifications/objectui/action-triggers.cn.mdx b/content/docs/execution-layer/objectui/action-triggers.cn.mdx similarity index 100% rename from content/docs/specifications/objectui/action-triggers.cn.mdx rename to content/docs/execution-layer/objectui/action-triggers.cn.mdx diff --git a/content/docs/specifications/objectui/action-triggers.mdx b/content/docs/execution-layer/objectui/action-triggers.mdx similarity index 100% rename from content/docs/specifications/objectui/action-triggers.mdx rename to content/docs/execution-layer/objectui/action-triggers.mdx diff --git a/content/docs/specifications/objectui/component-schema.cn.mdx b/content/docs/execution-layer/objectui/component-schema.cn.mdx similarity index 100% rename from content/docs/specifications/objectui/component-schema.cn.mdx rename to content/docs/execution-layer/objectui/component-schema.cn.mdx diff --git a/content/docs/specifications/objectui/component-schema.mdx b/content/docs/execution-layer/objectui/component-schema.mdx similarity index 100% rename from content/docs/specifications/objectui/component-schema.mdx rename to content/docs/execution-layer/objectui/component-schema.mdx diff --git a/content/docs/specifications/objectui/index.cn.mdx b/content/docs/execution-layer/objectui/index.cn.mdx similarity index 100% rename from content/docs/specifications/objectui/index.cn.mdx rename to content/docs/execution-layer/objectui/index.cn.mdx diff --git a/content/docs/specifications/objectui/index.mdx b/content/docs/execution-layer/objectui/index.mdx similarity index 100% rename from content/docs/specifications/objectui/index.mdx rename to content/docs/execution-layer/objectui/index.mdx diff --git a/content/docs/specifications/objectui/layout-system.cn.mdx b/content/docs/execution-layer/objectui/layout-system.cn.mdx similarity index 100% rename from content/docs/specifications/objectui/layout-system.cn.mdx rename to content/docs/execution-layer/objectui/layout-system.cn.mdx diff --git a/content/docs/specifications/objectui/layout-system.mdx b/content/docs/execution-layer/objectui/layout-system.mdx similarity index 100% rename from content/docs/specifications/objectui/layout-system.mdx rename to content/docs/execution-layer/objectui/layout-system.mdx diff --git a/content/docs/specifications/objectui/meta.json b/content/docs/execution-layer/objectui/meta.json similarity index 100% rename from content/docs/specifications/objectui/meta.json rename to content/docs/execution-layer/objectui/meta.json diff --git a/content/docs/specifications/objectui/report-template.cn.mdx b/content/docs/execution-layer/objectui/report-template.cn.mdx similarity index 100% rename from content/docs/specifications/objectui/report-template.cn.mdx rename to content/docs/execution-layer/objectui/report-template.cn.mdx diff --git a/content/docs/specifications/objectui/report-template.mdx b/content/docs/execution-layer/objectui/report-template.mdx similarity index 100% rename from content/docs/specifications/objectui/report-template.mdx rename to content/docs/execution-layer/objectui/report-template.mdx diff --git a/content/docs/specifications/objectui/view-protocol.cn.mdx b/content/docs/execution-layer/objectui/view-protocol.cn.mdx similarity index 100% rename from content/docs/specifications/objectui/view-protocol.cn.mdx rename to content/docs/execution-layer/objectui/view-protocol.cn.mdx diff --git a/content/docs/specifications/objectui/view-protocol.mdx b/content/docs/execution-layer/objectui/view-protocol.mdx similarity index 100% rename from content/docs/specifications/objectui/view-protocol.mdx rename to content/docs/execution-layer/objectui/view-protocol.mdx diff --git a/content/docs/specifications/deployment/index.mdx b/content/docs/governance-layer/deployment/index.mdx similarity index 100% rename from content/docs/specifications/deployment/index.mdx rename to content/docs/governance-layer/deployment/index.mdx diff --git a/content/docs/specifications/deployment/meta.json b/content/docs/governance-layer/deployment/meta.json similarity index 100% rename from content/docs/specifications/deployment/meta.json rename to content/docs/governance-layer/deployment/meta.json diff --git a/content/docs/governance-layer/index.cn.mdx b/content/docs/governance-layer/index.cn.mdx new file mode 100644 index 0000000..d0088d8 --- /dev/null +++ b/content/docs/governance-layer/index.cn.mdx @@ -0,0 +1,260 @@ +--- +title: 治理层 +description: "层级 B:CI/CD 流水线 - Git 仓库即控制台" +--- + +# 治理层:CI/CD 流水线 + +**"Git 仓库即控制台"** + +治理层是你的代码转换为可部署制品的地方。没有单独的"Hub"或配置门户——**你的 Git 仓库就是 Hub**。这一层处理 ObjectStack 应用的构建、编译和版本管理。 + +## 概述 + +在传统的低代码平台中,你通过网页后台界面配置应用。ObjectStack 颠覆了这一模式: + +* **版本控制**: Git 提交成为权威记录 +* **构建时编排**: 元数据提取和编译发生在 CI/CD 中 +* **不可变制品**: 每次构建产生一个版本化的可部署包 + +## 核心理念 + +> "Git 仓库即控制台。没有 Hub——Git 仓库就是 Hub。" + +这一层体现了**透明性和可追溯性**原则: +* 每次更改都是带有作者和时间戳的 Git 提交 +* Pull Request 在部署前实现团队审查 +* Git Tag 管理语义化版本 + +## 构建流水线 + +当代码推送到仓库时,治理层编排多阶段构建: + +```mermaid +sequenceDiagram + participant Dev as 开发者 + participant Git as Git 仓库 + participant CI as CI 服务器 + participant Build as 构建工具 + participant Artifact as Docker 镜像 + + Dev->>Git: git push origin main + Git->>CI: 触发构建 + CI->>Build: 运行 'ostack build' + Build->>Build: 提取元数据 + Build->>Build: 编译 TypeScript + Build->>Build: 生成迁移脚本 + Build->>Artifact: 创建 Docker 镜像 + Artifact->>Artifact: 打标签版本 (v1.0.0) +``` + +## 构建阶段 + +### 1. 提取元数据 + +构建工具扫描项目中的所有 `.ts` 文件: + +```bash +ostack build --extract +``` + +此过程: +* 发现所有 `defineObject()` 调用 +* 提取 Schema 定义 +* 收集 UI 布局配置 +* 验证元数据完整性 + +**输出**: 包含所有业务定义的 `metadata.json` + +### 2. 编译逻辑 + +TypeScript 业务逻辑编译为优化的 JavaScript: + +```bash +ostack build --compile +``` + +此过程: +* 将 TypeScript 转译为 JavaScript +* 打包触发器和工作流函数 +* Tree-shake 未使用的代码 +* 压缩以用于生产 + +**输出**: `business-logic.bundle.js` + +### 3. 生成迁移 + +检测数据库 Schema 变更并生成迁移脚本: + +```bash +ostack build --migrate +``` + +此过程: +* 比较当前 Schema 与先前版本 +* 生成 `ALTER TABLE` 语句 +* 创建回滚脚本 +* 确保幂等迁移 + +**输出**: 包含版本化 SQL 文件的 `migrations/` 目录 + +### 4. 打包制品 + +所有组件打包为可部署制品: + +```bash +ostack build --bundle +``` + +此过程: +* 结合内核(ObjectQL/OS/UI)运行时 +* 包含提取的元数据 +* 嵌入编译的业务逻辑 +* 打包数据库迁移 + +**输出**: Docker 镜像或 NPM 包 + +## 版本管理 + +### 使用 Git Tag 发布 + +使用语义化版本的 Git Tag: + +```bash +git tag -a v1.0.0 -m "初始生产发布" +git push origin v1.0.0 +``` + +每个标签触发: +* CI/CD 中的自动构建 +* 制品中的版本标记 +* 发布说明生成 + +### 分支策略 + +推荐的 Git 工作流: + +| 分支 | 目的 | 部署 | +|------|------|------| +| `main` | 生产就绪代码 | 自动部署到生产环境 | +| `develop` | 集成分支 | 自动部署到预发布环境 | +| `feature/*` | 功能开发 | 手动部署到开发环境 | +| `hotfix/*` | 紧急 bug 修复 | 快速通道到生产环境 | + +### Pull Request 工作流 + +1. 开发者创建功能分支 +2. 提交更改并打开 PR +3. CI 运行自动化测试和构建 +4. 团队审查代码更改 +5. PR 合并触发部署 + +## 持续部署 + +### 自动化部署流水线 + +```mermaid +stateDiagram-v2 + [*] --> 代码提交 + 代码提交 --> CI: git push + CI --> 构建: 运行测试 + 构建 --> 构建失败: 测试失败 + 构建 --> 构建成功: 测试通过 + 构建失败 --> [*]: 通知开发者 + 构建成功 --> 创建制品: 打包 + 创建制品 --> 部署预发布: 自动部署 + 部署预发布 --> 人工审批: 冒烟测试 + 人工审批 --> 部署生产: 批准 + 人工审批 --> [*]: 拒绝 + 部署生产 --> [*]: 运行中 +``` + +### CI/CD 配置 + +GitHub Actions 工作流示例: + +```yaml +name: 构建和部署 + +on: + push: + branches: [main, develop] + tags: ['v*'] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: 安装依赖 + run: npm install + - name: 构建 ObjectStack 应用 + run: ostack build + - name: 运行测试 + run: npm test + - name: 构建 Docker 镜像 + run: docker build -t my-app:${{ github.sha }} . + - name: 推送到镜像仓库 + run: docker push my-app:${{ github.sha }} +``` + +## 与其他层的集成 + +治理层位于创造层和执行层之间: + +```mermaid +graph TB + subgraph "创造层" + Code[TypeScript 代码] + end + + subgraph "治理层" + Extract[提取元数据] + Compile[编译逻辑] + Bundle[打包制品] + end + + subgraph "执行层" + Deploy[部署和运行] + end + + Code --> Extract + Extract --> Compile + Compile --> Bundle + Bundle --> Deploy + + style Extract fill:#fff4e1 + style Compile fill:#fff4e1 + style Bundle fill:#fff4e1 +``` + +## 此层中的工具 + +* **[部署模式](./deployment)**: Docker、Kubernetes 和云部署策略 + +## 最佳实践 + +### 1. 不可变构建 +* 构建后永不修改制品 +* 任何更改都从源代码重新构建 +* 使用校验和验证完整性 + +### 2. 环境一致性 +* 相同的构建运行在开发、预发布和生产环境 +* 使用环境变量进行配置 +* 在生产前在预发布环境测试迁移 + +### 3. 回滚策略 +* 保留前 3 个版本已部署 +* 使用蓝绿或金丝雀部署 +* 维护回滚脚本 + +### 4. 安全扫描 +* 扫描依赖项的漏洞 +* 检查秘密不会泄漏到构建中 +* 使用 GPG 签名制品 + +--- + +**上一步:** **[创造层](../creator-layer)** - 代码编写的地方 +**下一步:** **[执行层](../execution-layer)** - 应用运行的地方 diff --git a/content/docs/governance-layer/index.mdx b/content/docs/governance-layer/index.mdx new file mode 100644 index 0000000..b8c8060 --- /dev/null +++ b/content/docs/governance-layer/index.mdx @@ -0,0 +1,260 @@ +--- +title: Governance Layer +description: "Layer B: CI/CD Pipeline - Git Repository as Console" +--- + +# Governance Layer: CI/CD Pipeline + +**"Git Repository as Console"** + +The Governance Layer is where your code transforms into deployable artifacts. There is no separate "Hub" or configuration portal—**Your Git Repository IS the Hub**. This layer handles the build, compilation, and version management of your ObjectStack applications. + +## Overview + +In traditional low-code platforms, you configure applications through a web-based admin interface. ObjectStack flips this model: + +* **Version Control**: Git commits become the authoritative record +* **Build-Time Composition**: Metadata extraction and compilation happen in CI/CD +* **Immutable Artifacts**: Each build produces a versioned, deployable package + +## Core Philosophy + +> "Git Repository as Console. There is no Hub—Git Repository IS the Hub." + +This layer embodies the principle of **transparency and traceability**: +* Every change is a Git commit with author and timestamp +* Pull Requests enable team review before deployment +* Git Tags manage semantic versioning + +## The Build Pipeline + +When code is pushed to the repository, the Governance Layer orchestrates a multi-stage build: + +```mermaid +sequenceDiagram + participant Dev as Developer + participant Git as Git Repository + participant CI as CI Server + participant Build as Build Tool + participant Artifact as Docker Image + + Dev->>Git: git push origin main + Git->>CI: Trigger Build + CI->>Build: Run 'ostack build' + Build->>Build: Extract Metadata + Build->>Build: Compile TypeScript + Build->>Build: Generate Migrations + Build->>Artifact: Create Docker Image + Artifact->>Artifact: Tag Version (v1.0.0) +``` + +## Build Stages + +### 1. Extract Metadata + +The build tool scans all `.ts` files in your project: + +```bash +ostack build --extract +``` + +This process: +* Discovers all `defineObject()` calls +* Extracts schema definitions +* Collects UI layout configurations +* Validates metadata integrity + +**Output**: `metadata.json` containing all business definitions + +### 2. Compile Logic + +TypeScript business logic is compiled into optimized JavaScript: + +```bash +ostack build --compile +``` + +This process: +* Transpiles TypeScript to JavaScript +* Bundles triggers and workflow functions +* Tree-shakes unused code +* Minifies for production + +**Output**: `business-logic.bundle.js` + +### 3. Generate Migrations + +Database schema changes are detected and migration scripts generated: + +```bash +ostack build --migrate +``` + +This process: +* Compares current schema with previous version +* Generates `ALTER TABLE` statements +* Creates rollback scripts +* Ensures idempotent migrations + +**Output**: `migrations/` directory with versioned SQL files + +### 4. Bundle Artifact + +All components are packaged into a deployable artifact: + +```bash +ostack build --bundle +``` + +This process: +* Combines Kernel (ObjectQL/OS/UI) runtime +* Includes extracted metadata +* Embeds compiled business logic +* Packages database migrations + +**Output**: Docker image or NPM package + +## Version Management + +### Git Tags for Releases + +Use semantic versioning with Git tags: + +```bash +git tag -a v1.0.0 -m "Initial production release" +git push origin v1.0.0 +``` + +Each tag triggers: +* Automated build in CI/CD +* Version stamping in artifacts +* Release notes generation + +### Branch Strategy + +Recommended Git workflow: + +| Branch | Purpose | Deployment | +|--------|---------|------------| +| `main` | Production-ready code | Auto-deploy to production | +| `develop` | Integration branch | Auto-deploy to staging | +| `feature/*` | Feature development | Manual deploy to dev | +| `hotfix/*` | Critical bug fixes | Fast-track to production | + +### Pull Request Workflow + +1. Developer creates feature branch +2. Commits changes and opens PR +3. CI runs automated tests and builds +4. Team reviews code changes +5. PR merged triggers deployment + +## Continuous Deployment + +### Automated Deployment Pipeline + +```mermaid +stateDiagram-v2 + [*] --> CodeCommit + CodeCommit --> CI: git push + CI --> Build: Run Tests + Build --> BuildFail: Tests Fail + Build --> BuildSuccess: Tests Pass + BuildFail --> [*]: Notify Developer + BuildSuccess --> CreateArtifact: Package + CreateArtifact --> DeployStaging: Auto-deploy + DeployStaging --> ManualApproval: Smoke Tests + ManualApproval --> DeployProd: Approved + ManualApproval --> [*]: Rejected + DeployProd --> [*]: Running +``` + +### CI/CD Configuration + +Example GitHub Actions workflow: + +```yaml +name: Build and Deploy + +on: + push: + branches: [main, develop] + tags: ['v*'] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: npm install + - name: Build ObjectStack app + run: ostack build + - name: Run tests + run: npm test + - name: Build Docker image + run: docker build -t my-app:${{ github.sha }} . + - name: Push to registry + run: docker push my-app:${{ github.sha }} +``` + +## Integration with Other Layers + +The Governance Layer sits between Creator and Execution layers: + +```mermaid +graph TB + subgraph "Creator Layer" + Code[TypeScript Code] + end + + subgraph "Governance Layer" + Extract[Extract Metadata] + Compile[Compile Logic] + Bundle[Bundle Artifact] + end + + subgraph "Execution Layer" + Deploy[Deploy & Run] + end + + Code --> Extract + Extract --> Compile + Compile --> Bundle + Bundle --> Deploy + + style Extract fill:#fff4e1 + style Compile fill:#fff4e1 + style Bundle fill:#fff4e1 +``` + +## Tools in This Layer + +* **[Deployment Patterns](./deployment)**: Docker, Kubernetes, and cloud deployment strategies + +## Best Practices + +### 1. Immutable Builds +* Never modify artifacts post-build +* Rebuild from source for any changes +* Use checksums to verify integrity + +### 2. Environment Parity +* Same build runs in dev, staging, and production +* Use environment variables for configuration +* Test migrations in staging before production + +### 3. Rollback Strategy +* Keep previous 3 versions deployed +* Use blue-green or canary deployments +* Maintain rollback scripts + +### 4. Security Scanning +* Scan dependencies for vulnerabilities +* Check secrets don't leak into builds +* Sign artifacts with GPG + +--- + +**Previous:** **[Creator Layer](../creator-layer)** - Where code is written +**Next:** **[Execution Layer](../execution-layer)** - Where applications run diff --git a/content/docs/governance-layer/meta.json b/content/docs/governance-layer/meta.json new file mode 100644 index 0000000..3bfbd2e --- /dev/null +++ b/content/docs/governance-layer/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Governance Layer", + "pages": [ + "index", + "deployment" + ] +} diff --git a/content/docs/meta.json b/content/docs/meta.json index 4f2a44e..af88938 100644 --- a/content/docs/meta.json +++ b/content/docs/meta.json @@ -1,8 +1,11 @@ { - "title": "OpenStack", + "title": "ObjectStack", "pages": [ "index", "concepts", + "creator-layer", + "governance-layer", + "execution-layer", "specifications" ] } diff --git a/content/docs/specifications/index.cn.mdx b/content/docs/specifications/index.cn.mdx index 5d9d9db..d45b496 100644 --- a/content/docs/specifications/index.cn.mdx +++ b/content/docs/specifications/index.cn.mdx @@ -1,17 +1,38 @@ --- -title: 规范概述 +title: 文档概述 description: ObjectStack 协议的权威指南。理解"意图优于实现"的哲学。 --- -# 规范概述 +# 文档概述 > "我们塑造工具,随后工具塑造我们。" — Marshall McLuhan -欢迎来到 ObjectStack 的**规范**部分("圣经")。 +欢迎来到 **ObjectStack 文档**。 -与*指南*(告诉你如何使用 SDK)或*概念*(解释哲学)不同,本节定义了生态系统的**严格契约**。它详细说明了每个 ObjectStack 实现必须遵守的线路格式、Schema 结构和确定性行为。 +文档现在围绕**三层企业架构**组织: -如果你正在构建新的数据库驱动程序、自定义 UI 渲染器或生成软件的 AI Agent,这就是你的参考手册。 +## 架构层次 + +### [创造层](../creator-layer) +**"在 IDE 中定义世界"** + +开发者工作的地方——编写代码、定义元数据、构建业务逻辑。 +* **[SDK 参考](../creator-layer/sdk)**: 用于定义对象和逻辑的 TypeScript SDK +* **[CLI 指南](../creator-layer/cli)**: 用于开发的命令行工具 + +### [治理层](../governance-layer) +**"Git 仓库即控制台"** + +代码通过 CI/CD 流水线转换为可部署制品的地方。 +* **[部署模式](../governance-layer/deployment)**: Docker、Kubernetes 和云策略 + +### [执行层](../execution-layer) +**"自带动力的三位一体引擎"** + +应用在客户基础设施上运行的地方。 +* **[ObjectQL](../execution-layer/objectql)**: 数据引擎规范 +* **[ObjectOS](../execution-layer/objectos)**: 运行时和编排规范 +* **[ObjectUI](../execution-layer/objectui)**: 视图引擎规范 ## 核心哲学: 意图优于实现 @@ -23,8 +44,6 @@ description: ObjectStack 协议的权威指南。理解"意图优于实现"的 ObjectStack 将这些完全分离。 - - ### 关注点分离 | 层次 | 职责 | 格式 | 示例 | @@ -37,24 +56,14 @@ ObjectStack 将这些完全分离。 2. **持久性:** 你今天编写的 JSON Schema 在 10 年后仍然有效,即使底层运行时从 Node.js 切换到 Bun 或 Rust。 3. **AI 原生性:** AI 生成结构化的 JSON 意图比生成充满副作用的命令式代码更安全、更准确。 -## 协议栈 - -这些规范分为三大支柱,对应于"三位一体"架构: - -### 1. ObjectQL(数据规范) -* **重点:** 数据建模、查询和变更。 -* **核心规范:** Schema 定义、AST 线路协议、事务模型。 -* **目标:** 使数据库层声明化且可互换。 +## 理解框架 -### 2. ObjectUI(视图规范) -* **重点:** 界面结构、布局和交互。 -* **核心规范:** Component Schema、视图类型、Action 协议。 -* **目标:** 实现服务端驱动 UI,其中后端决定前端体验。 +要了解 ObjectStack 如何工作: -### 3. ObjectOS(运行时规范) -* **重点:** 身份、治理和编排。 -* **核心规范:** 工作流 FSM、权限注入、审计跟踪。 -* **目标:** 为业务逻辑提供标准操作环境。 +1. **从[概念](../concepts)开始**: 理解哲学和核心价值 +2. **阅读[企业框架](../concepts/enterprise-framework)**: 查看完整的三层架构 +3. **探索每一层**: 深入研究创造层、治理层和执行层 +4. **参考规范**: 在构建时作为技术参考 ## 一致性与术语 @@ -65,8 +74,9 @@ ObjectStack 将这些完全分离。 * **✅ 架构师:** 了解系统的能力和约束。 * **✅ 驱动程序开发者:** 实现新的存储后端(例如 ClickHouse 驱动程序)。 * **✅ 平台工程师:** 将 ObjectStack 集成到现有的微服务网格中。 -* **❌ 初级开发者:** 如果你只想构建一个应用,请从 **[入门指南](../index)** 开始。 +* **✅ 开发者:** 使用 ObjectStack 构建企业应用。 +* **❌ 首次访问者:** 请从 **[入门指南](../index)** 开始。 --- -**继续阅读第一个规范:** **[ObjectQL 概述](objectql/index)** +**开始你的旅程:** **[企业框架概述](../concepts/enterprise-framework)** diff --git a/content/docs/specifications/index.mdx b/content/docs/specifications/index.mdx index fec19c9..3fd9f63 100644 --- a/content/docs/specifications/index.mdx +++ b/content/docs/specifications/index.mdx @@ -1,17 +1,38 @@ --- -title: Specifications Overview +title: Documentation Overview description: The authoritative guide to the ObjectStack protocols. Understanding the philosophy of "Intent over Implementation". --- -# Specifications Overview +# Documentation Overview > "We shape our tools and thereafter our tools shape us." — Marshall McLuhan -Welcome to the **Specifications** section (The "Bible") of ObjectStack. +Welcome to the **ObjectStack Documentation**. -Unlike the *Guides* (which tell you how to use the SDK) or the *Concepts* (which explain the philosophy), this section defines the **Strict Contracts** of the ecosystem. It details the wire formats, schema structures, and deterministic behaviors that every ObjectStack implementation must adhere to. +The documentation is now organized around the **Three-Layer Enterprise Architecture**: -If you are building a new Database Driver, a custom UI Renderer, or an AI Agent that generates software, this is your reference manual. +## Architecture Layers + +### [Creator Layer](../creator-layer) +**"Define the World in Your IDE"** + +Where developers work—writing code, defining metadata, and building business logic. +* **[SDK Reference](../creator-layer/sdk)**: TypeScript SDK for defining objects and logic +* **[CLI Guide](../creator-layer/cli)**: Command-line tools for development + +### [Governance Layer](../governance-layer) +**"Git Repository as Console"** + +Where code transforms into deployable artifacts through CI/CD pipelines. +* **[Deployment Patterns](../governance-layer/deployment)**: Docker, Kubernetes, and cloud strategies + +### [Execution Layer](../execution-layer) +**"Self-Powered Trinity Engine"** + +Where applications run on customer infrastructure. +* **[ObjectQL](../execution-layer/objectql)**: Data engine specifications +* **[ObjectOS](../execution-layer/objectos)**: Runtime and orchestration specifications +* **[ObjectUI](../execution-layer/objectui)**: View engine specifications ## Core Philosophy: Intent over Implementation @@ -23,8 +44,6 @@ In traditional software engineering, the "Business Intent" is inextricably mixed ObjectStack separates these completely. - - ### The Separation of Concerns | Layer | Responsibility | Format | Example | @@ -37,24 +56,14 @@ By freezing the **Intent** into a standardized Data Protocol, we achieve: 2. **Longevity:** The JSON schema you write today will still be valid in 10 years, even if the underlying runtime switches from Node.js to Bun or Rust. 3. **AI-Nativity:** It is safer and more accurate for an AI to generate a structured JSON intent than to generate imperative code full of side effects. -## The Protocol Stack - -These specifications are divided into three pillars, corresponding to the "Trinity" architecture: - -### 1. ObjectQL (The Data Specification) -* **Focus:** Data Modeling, Querying, and Mutation. -* **Key Specs:** Schema Definition, AST Wire Protocol, Transaction Model. -* **Goal:** To make the database layer declarative and interchangeable. +## Understanding the Framework -### 2. ObjectUI (The View Specification) -* **Focus:** Interface Structure, Layout, and Interaction. -* **Key Specs:** Component Schema, View Types, Action Protocol. -* **Goal:** To enable Server-Driven UI where the backend dictates the frontend experience. +To understand how ObjectStack works: -### 3. ObjectOS (The Runtime Specification) -* **Focus:** Identity, Governance, and Orchestration. -* **Key Specs:** Workflow FSM, Permission Injection, Audit Trail. -* **Goal:** To provide a standard operating environment for business logic. +1. **Start with [Concepts](../concepts)**: Understand the philosophy and core values +2. **Read [Enterprise Framework](../concepts/enterprise-framework)**: See the complete three-layer architecture +3. **Explore each layer**: Dive into Creator, Governance, and Execution layers +4. **Reference specifications**: Use as technical reference when building ## Conformance & Terminology @@ -65,8 +74,9 @@ In this documentation, the key words **"MUST"**, **"MUST NOT"**, **"REQUIRED"**, * **✅ Architect:** To understand the capabilities and constraints of the system. * **✅ Driver Developer:** To implement a new storage backend (e.g., a ClickHouse driver). * **✅ Platform Engineer:** To integrate ObjectStack into an existing microservices mesh. -* **❌ Junior Developer:** If you just want to build an app, start with the **[Getting Started](../index)** guide instead. +* **✅ Developer:** To build enterprise applications using ObjectStack. +* **❌ First-time visitor:** Start with the **[Getting Started](../index)** guide instead. --- -**Proceed to the first specification:** **[ObjectQL Overview](objectql/index)** \ No newline at end of file +**Begin your journey:** **[Enterprise Framework Overview](../concepts/enterprise-framework)** \ No newline at end of file diff --git a/content/docs/specifications/meta.json b/content/docs/specifications/meta.json index d20bbca..11b8293 100644 --- a/content/docs/specifications/meta.json +++ b/content/docs/specifications/meta.json @@ -1,11 +1,6 @@ { - "title": "Specifications", + "title": "Documentation", "pages": [ - "sdk", - "cli", - "deployment", - "objectql", - "objectui", - "objectos" + "index" ] }