@lark-base-open/base-database-cli 1.1.0 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +86 -0
- package/LICENSE +6 -0
- package/README.md +55 -31
- package/dist/ai-functions.d.ts +42 -0
- package/dist/ai-functions.d.ts.map +1 -0
- package/dist/ai-functions.js +327 -0
- package/dist/ai-functions.js.map +1 -0
- package/dist/archive.d.ts +21 -0
- package/dist/archive.d.ts.map +1 -1
- package/dist/archive.js +65 -10
- package/dist/archive.js.map +1 -1
- package/dist/auth.d.ts +8 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +60 -6
- package/dist/auth.js.map +1 -1
- package/dist/check.d.ts +74 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +283 -0
- package/dist/check.js.map +1 -0
- package/dist/dependency-policy.d.ts +10 -0
- package/dist/dependency-policy.d.ts.map +1 -0
- package/dist/dependency-policy.js +162 -0
- package/dist/dependency-policy.js.map +1 -0
- package/dist/deploy.d.ts +1 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +122 -175
- package/dist/deploy.js.map +1 -1
- package/dist/environment-variables.d.ts +52 -0
- package/dist/environment-variables.d.ts.map +1 -0
- package/dist/environment-variables.js +563 -0
- package/dist/environment-variables.js.map +1 -0
- package/dist/environment.d.ts +1 -1
- package/dist/environment.js +1 -1
- package/dist/environment.js.map +1 -1
- package/dist/function-input-types.d.ts +10 -0
- package/dist/function-input-types.d.ts.map +1 -0
- package/dist/function-input-types.js +160 -0
- package/dist/function-input-types.js.map +1 -0
- package/dist/function-schema.d.ts.map +1 -1
- package/dist/function-schema.js +89 -36
- package/dist/function-schema.js.map +1 -1
- package/dist/init-field-retry.d.ts +17 -0
- package/dist/init-field-retry.d.ts.map +1 -0
- package/dist/init-field-retry.js +127 -0
- package/dist/init-field-retry.js.map +1 -0
- package/dist/init-journal.d.ts +98 -0
- package/dist/init-journal.d.ts.map +1 -0
- package/dist/init-journal.js +492 -0
- package/dist/init-journal.js.map +1 -0
- package/dist/init-schema.d.ts +8 -0
- package/dist/init-schema.d.ts.map +1 -0
- package/dist/init-schema.js +423 -0
- package/dist/init-schema.js.map +1 -0
- package/dist/init.d.ts +14 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +886 -243
- package/dist/init.js.map +1 -1
- package/dist/lark-cli-error.d.ts +46 -0
- package/dist/lark-cli-error.d.ts.map +1 -0
- package/dist/lark-cli-error.js +171 -0
- package/dist/lark-cli-error.js.map +1 -0
- package/dist/lark-cli.d.ts +2 -1
- package/dist/lark-cli.d.ts.map +1 -1
- package/dist/lark-cli.js +292 -29
- package/dist/lark-cli.js.map +1 -1
- package/dist/mutation-schema.d.ts +146 -0
- package/dist/mutation-schema.d.ts.map +1 -0
- package/dist/mutation-schema.js +153 -0
- package/dist/mutation-schema.js.map +1 -0
- package/dist/mutation.d.ts +10 -0
- package/dist/mutation.d.ts.map +1 -0
- package/dist/mutation.js +131 -0
- package/dist/mutation.js.map +1 -0
- package/dist/npm.d.ts +1 -0
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +2 -2
- package/dist/npm.js.map +1 -1
- package/dist/preview-receipt.d.ts.map +1 -1
- package/dist/preview-receipt.js +15 -5
- package/dist/preview-receipt.js.map +1 -1
- package/dist/process.d.ts +3 -1
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +16 -4
- package/dist/process.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +241 -42
- package/dist/program.js.map +1 -1
- package/dist/project-build.d.ts +25 -0
- package/dist/project-build.d.ts.map +1 -0
- package/dist/project-build.js +229 -0
- package/dist/project-build.js.map +1 -0
- package/dist/project-context.d.ts +344 -0
- package/dist/project-context.d.ts.map +1 -0
- package/dist/project-context.js +485 -0
- package/dist/project-context.js.map +1 -0
- package/dist/project-layout.d.ts +5 -0
- package/dist/project-layout.d.ts.map +1 -0
- package/dist/project-layout.js +24 -0
- package/dist/project-layout.js.map +1 -0
- package/dist/public-sql-error.d.ts +25 -0
- package/dist/public-sql-error.d.ts.map +1 -0
- package/dist/public-sql-error.js +81 -0
- package/dist/public-sql-error.js.map +1 -0
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +54 -15
- package/dist/pull.js.map +1 -1
- package/dist/site-readme.d.ts +3 -0
- package/dist/site-readme.d.ts.map +1 -0
- package/dist/site-readme.js +83 -0
- package/dist/site-readme.js.map +1 -0
- package/dist/workspace-fingerprint.d.ts +21 -1
- package/dist/workspace-fingerprint.d.ts.map +1 -1
- package/dist/workspace-fingerprint.js +81 -2
- package/dist/workspace-fingerprint.js.map +1 -1
- package/package.json +2 -1
- package/skills/lark-base-database/SKILL.md +70 -53
- package/skills/lark-base-database/references/ai-function.md +471 -0
- package/skills/lark-base-database/references/base-capability-routing.md +3 -3
- package/skills/lark-base-database/references/database-function-limitations.md +46 -0
- package/skills/lark-base-database/references/database-function.md +349 -0
- package/skills/lark-base-database/references/design/components/actions-fields.md +16 -0
- package/skills/lark-base-database/references/design/components/code/controls.css +122 -0
- package/skills/lark-base-database/references/design/components/code/controls.tsx +73 -0
- package/skills/lark-base-database/references/design/components/code/date-picker.tsx +42 -0
- package/skills/lark-base-database/references/design/components/code/floating.tsx +41 -0
- package/skills/lark-base-database/references/design/components/code/overlays.tsx +19 -0
- package/skills/lark-base-database/references/design/components/code/select.tsx +34 -0
- package/skills/lark-base-database/references/design/components/code/styles.d.ts +1 -0
- package/skills/lark-base-database/references/design/components/code/theme.css +49 -0
- package/skills/lark-base-database/references/design/components/code/usage.tsx +38 -0
- package/skills/lark-base-database/references/design/components/date-time-number.md +9 -0
- package/skills/lark-base-database/references/design/components/feedback-navigation.md +9 -0
- package/skills/lark-base-database/references/design/components/index.md +18 -0
- package/skills/lark-base-database/references/design/components/overlays.md +9 -0
- package/skills/lark-base-database/references/design/components/patterns/flat-business.md +7 -0
- package/skills/lark-base-database/references/design/components/selection.md +24 -0
- package/skills/lark-base-database/references/design/components.md +91 -0
- package/skills/lark-base-database/references/design/composition.md +90 -0
- package/skills/lark-base-database/references/design/control-recipes.md +107 -0
- package/skills/lark-base-database/references/design/examples.md +172 -0
- package/skills/lark-base-database/references/design/foundations.md +126 -0
- package/skills/lark-base-database/references/design/review.md +82 -0
- package/skills/lark-base-database/references/design/scenes/analysis-report.md +66 -0
- package/skills/lark-base-database/references/design/scenes/brand-showcase.md +70 -0
- package/skills/lark-base-database/references/design/scenes/business-operations.md +85 -0
- package/skills/lark-base-database/references/design/scenes/campaign-report.md +66 -0
- package/skills/lark-base-database/references/design/scenes/dashboard.md +77 -0
- package/skills/lark-base-database/references/design/scenes/festive-campaign.md +69 -0
- package/skills/lark-base-database/references/design/theme.md +27 -0
- package/skills/lark-base-database/references/design/typography.md +56 -0
- package/skills/lark-base-database/references/development.md +165 -32
- package/skills/lark-base-database/references/environment-variables.md +55 -0
- package/skills/lark-base-database/references/faas.md +41 -48
- package/skills/lark-base-database/references/file-transfer.md +25 -25
- package/skills/lark-base-database/references/frontend-design-guide.md +33 -77
- package/skills/lark-base-database/references/mutations.md +295 -0
- package/skills/lark-base-database/references/permission-design.md +24 -24
- package/skills/lark-base-database/references/release.md +54 -27
- package/skills/lark-base-database/references/style-guide.md +10 -67
- package/skills/lark-base-database/references/verification.md +17 -13
- package/skills/lark-base-database/references/workspace.md +71 -22
- package/templates/database-starter/README.md +34 -4
- package/templates/database-starter/database-functions/README.md +8 -0
- package/templates/database-starter/mutations/README.md +19 -0
- package/templates/database-starter/page/README.md +25 -19
- package/templates/database-starter/page/package-lock.json +8 -16
- package/templates/database-starter/page/package.json +2 -3
- package/templates/database-starter/page/src/App.tsx +23 -3
- package/templates/database-starter/page/src/components/UserSelectorEditor/index.tsx +32 -4
- package/templates/database-starter/page/src/components/UserSelectorPanel/index.tsx +104 -34
- package/templates/database-starter/page/src/components/UserSelectorPanel/user-search.test.ts +55 -11
- package/templates/database-starter/page/src/components/UserSelectorPanel/user-search.ts +68 -25
- package/templates/database-starter/page/src/components/database-runtime-ready.tsx +1 -1
- package/templates/database-starter/page/src/components/database-user-menu/index.tsx +4 -7
- package/templates/database-starter/page/src/components/feedback/page-state.tsx +40 -5
- package/templates/database-starter/page/src/components/floating-button/assets/edit-active.svg +3 -0
- package/templates/database-starter/page/src/components/floating-button/assets/edit-default.svg +3 -0
- package/templates/database-starter/page/src/components/floating-button/index.tsx +75 -112
- package/templates/database-starter/page/src/components/floating-button/utils/project-meta.test.ts +107 -37
- package/templates/database-starter/page/src/components/floating-button/utils/project-meta.ts +13 -50
- package/templates/database-starter/page/src/components/ui-language.test.tsx +101 -0
- package/templates/database-starter/page/src/examples/ai-function/ImageTaskOperation.tsx +202 -0
- package/templates/database-starter/page/src/examples/ai-function/README.md +14 -0
- package/templates/database-starter/page/src/examples/ai-function/TextStreamOperation.tsx +184 -0
- package/templates/database-starter/page/src/examples/ai-function/ai-copy.ts +173 -0
- package/templates/database-starter/page/src/examples/ai-function/ai-delta.test.ts +30 -0
- package/templates/database-starter/page/src/examples/ai-function/ai-delta.ts +26 -0
- package/templates/database-starter/page/src/examples/ai-function/ai-language.test.tsx +86 -0
- package/templates/database-starter/page/src/examples/ai-function/ai-media-panel.test.ts +201 -0
- package/templates/database-starter/page/src/examples/ai-function/ai-media-panel.tsx +382 -0
- package/templates/database-starter/page/src/lib/attachment-image.tsx +144 -0
- package/templates/database-starter/page/src/lib/database-function-inputs.generated.ts +4 -0
- package/templates/database-starter/page/src/lib/database-runtime-attachment.test.ts +180 -76
- package/templates/database-starter/page/src/lib/database-runtime.test.ts +130 -10
- package/templates/database-starter/page/src/lib/database-runtime.ts +484 -51
- package/templates/database-starter/page/src/lib/date-time.ts +61 -0
- package/templates/database-starter/page/src/lib/ui-language.ts +86 -0
- package/templates/database-starter/page/src/main.tsx +1 -1
- package/templates/database-starter/page/tsconfig.json +2 -2
- package/templates/database-starter/page/vite.config.ts +1 -2
- package/templates/database-starter/prettierignore +1 -1
- package/templates/database-starter/server-functions/README.md +2 -2
- package/templates/database-starter/server-functions/package-lock.json +4 -4
- package/templates/database-starter/server-functions/package.json +1 -1
- package/dist/agent-guide.d.ts +0 -19
- package/dist/agent-guide.d.ts.map +0 -1
- package/dist/agent-guide.js +0 -31
- package/dist/agent-guide.js.map +0 -1
- package/dist/database-skill.d.ts +0 -24
- package/dist/database-skill.d.ts.map +0 -1
- package/dist/database-skill.js +0 -151
- package/dist/database-skill.js.map +0 -1
- package/skills/lark-base-database/references/base-sql-unsupported.md +0 -42
- package/skills/lark-base-database/references/database-capability-skill.md +0 -40
- package/skills/lark-base-database/references/sql-function.md +0 -289
- package/templates/database-capability/SKILL.md.tmpl +0 -58
- package/templates/database-starter/page/src/components/floating-button/chatbot-entry.test.ts +0 -23
- package/templates/database-starter/page/src/components/floating-button/chatbot-entry.tsx +0 -873
- package/templates/database-starter/page/src/components/floating-button/local-chat-panel.test.ts +0 -25
- package/templates/database-starter/page/src/components/floating-button/local-chat-panel.tsx +0 -197
- package/templates/database-starter/page/src/components/floating-button/utils/env.ts +0 -18
- package/templates/database-starter/sql/README.md +0 -8
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-base-database
|
|
3
|
-
description: 使用飞书多维表格作为业务数据后端,创建、修改、恢复、发布、验收或排查 Base Database 业务系统。适用于 Base Database 的 Page、
|
|
3
|
+
description: 使用飞书多维表格作为业务数据后端,创建、修改、恢复、发布、验收或排查 Base Database 业务系统。适用于 Base Database 的 Page、Database Function、Mutation、FaaS 和原生 Base 集成;仅操作多维表格资源时使用 lark-base。
|
|
4
4
|
metadata:
|
|
5
|
-
compatibility: 需要 Node.js 20.19+、npm/npx、lark-cli
|
|
5
|
+
compatibility: 需要 Node.js 20.19+、npm/npx、lark-cli 及目标平台访问权限;优先使用本机安装的 Base Database CLI,托管环境使用宿主提供的 CLI。
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Lark Base Database
|
|
@@ -12,69 +12,85 @@ metadata:
|
|
|
12
12
|
CLI 使用 `--app-token`、配置字段 `appToken`、`base-database.jsonc` 和 `.base-database-cli/state/`,不读取旧配置或旧状态,不接受旧参数。服务端 `/sites/` 路径、SDK 的 `siteToken` 和宿主 `BASE_SITE_BUILDER_*` 环境变量保持原协议;将宿主提供的应用 token 传给 `--app-token`,不改造外部协议。
|
|
13
13
|
|
|
14
14
|
账号选择遵守[工程与环境的 profile 约定](references/workspace.md#账号选择);直接调用原生 lark-cli 时也使用同一个 profile。
|
|
15
|
+
`lark-cli` 的账号管理和文档命令按环境提供,不是所有宿主的必备能力;首次选择入口及缺少命令时按[环境与依赖](references/workspace.md#环境与依赖)处理。
|
|
15
16
|
|
|
16
|
-
###
|
|
17
|
-
|
|
18
|
-
本节的全局安装特指 `npm root -g` 对应的 CLI 包目录;不能仅凭 PATH 中存在同名命令就认定满足更新条件。
|
|
17
|
+
### Base Database 权限不足时重新授权
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
CLI 明确报告 `app_scope_not_applied`、`missing_scopes` 等 scope 权限不足错误时,向用户说明原因,并使用本任务已选定的 CLI 入口和同一 profile 执行 `base-database-cli auth login`,申请构建应用所需的权限。若错误另有应用权限开通或额外 scope 的处理要求,按错误提示处理。用户完成授权后只重试原命令一次;仍失败时停止并保留原错误,不循环授权。其他错误按其原因处理。
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
### 公开 CLI 版本预检
|
|
23
22
|
|
|
24
|
-
-
|
|
25
|
-
- `status=available`:先确认上述全局入口可用;不可用时按下文说明更新限制并继续任务。可用时说明当前版本和可更新版本,以及会同步已安装的用户级 Lark Base Database Skill,再询问是否升级。拒绝后继续已安装版,本会话不再询问;不要自动执行 npm 或更新命令。
|
|
26
|
-
- 确认全局安装入口且用户同意后,执行 `base-database-cli update --version <返回的 latest 精确版本> --skill-dir "<当前 Skill 目录>" --yes`,成功后重新读取该目录的 SKILL.md 和所需 references。升级会现场查找 Codex、Claude、通用 Agent 用户目录中已安装的本 Skill,并同步这些副本及显式传入的当前目录;不扫描项目或历史自定义目录,不补装已删除的副本。
|
|
27
|
-
- `update` 只允许从全局安装的 CLI 执行,不从 npx 临时副本或项目副本执行,也不移除来源检查。全局命令的 PATH 异常时,通过 `npm root -g` 确认 `@lark-base-open/base-database-cli/dist/cli.js` 的实际位置,用 Node 执行该入口并核对版本。没有全局安装时说明更新限制,继续原有 npx 业务调用;只有用户明确要求全局安装时才进入安装流程,不将更新确认自动扩展为新建全局安装。
|
|
28
|
-
- `skill.status=mismatch`:简短提示当前 Skill 与 CLI 来自不同版本,可通过本次执行预检的同一 CLI 入口运行 `skill install --dir "<当前 Skill 的父目录>" --force` 同步后重读;不因版本号不同中断业务或自动覆盖。`unknown` 表示未找到有效记录,不推断一致,也不阻塞。
|
|
29
|
-
- 更新失败时按实际结果反馈。`skill-update-failed` 表示 CLI 已更新,但部分 Skill 未同步;说明 `installed` 中的成功目录和 `failed` 中的失败目录,按每项 `repair` 参数数组修复后重读,不宣称整体升级成功,不自动降级或反复重试。
|
|
30
|
-
- 首次使用先确认当前调用入口支持 `check-update`(读取其 `--help`);旧 CLI 没有该子命令时跳过预检,继续业务,不为预检自动升级。
|
|
31
|
-
- 非托管环境没有全局命令时,使用 `npx @lark-base-open/base-database-cli` 调用;需要固定版本时使用 `npx @lark-base-open/base-database-cli@<已确认的精确版本>`。不猜 npm scope,不全盘搜索或反复安装。已知全局安装存在但 PATH 异常时,可使用确认过的可执行路径;不自动修改 shell 配置。
|
|
23
|
+
本地使用 `@lark-base-open/base-database-cli` 时,在本会话首次业务操作前按[工程与环境](references/workspace.md#公开-cli-版本预检)确认入口与版本;托管 Builder 和 CI 跳过。预检失败或旧 CLI 不支持时继续当前任务,升级及覆盖 Skill 须取得相应授权。
|
|
32
24
|
|
|
33
25
|
## 任务路由
|
|
34
26
|
|
|
35
|
-
| 用户任务
|
|
36
|
-
|
|
|
37
|
-
| 新建系统
|
|
38
|
-
| 修改已有系统
|
|
39
|
-
| 恢复远端工程
|
|
40
|
-
| 设计或评审
|
|
41
|
-
| 排查故障
|
|
42
|
-
| 补齐新建 Base 的示例数据 | 读取字段与人员 → CLI 写入 → 页面
|
|
43
|
-
| 专项验收
|
|
44
|
-
| 发布当前工程或已验证版本 | 检查工程、制品及授权 → 发布 → 必要收尾 → 交付
|
|
27
|
+
| 用户任务 | 执行路径 | 主要命令 | 进入阶段前读取 |
|
|
28
|
+
| ------------------------ | ------------------------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
|
29
|
+
| 新建系统 | 明确需求与访问模型 → 确定 Base 来源 → 初始化 → 开发 → Preview 交付 | `init` → `deploy` | [工程与环境](references/workspace.md)、[权限设计](references/permission-design.md) |
|
|
30
|
+
| 修改已有系统 | 确认现有工程 → 判断影响范围 → 增量修改 → 验证与交付 | 按影响范围修改,必要时 `deploy` | [工程与环境](references/workspace.md),再读取受影响的协议 |
|
|
31
|
+
| 恢复远端工程 | 确认本地状态和 应用 → 恢复源码与 Catalog → 继续原任务 | 按来源选择 `pull` 或 `init` | [工程与环境](references/workspace.md) |
|
|
32
|
+
| 设计或评审 | 按评审范围分析并输出,不创建资源或发布 | 只读分析 | [工程质量](references/style-guide.md),涉及权限、查询或视觉时读取对应专项 |
|
|
33
|
+
| 排查故障 | 收集证据 → 定位失败阶段 → 按用户要求诊断或修复 | `deployments status`、`doctor` 或项目级 `lark-cli -- ...` | [诊断与验收](references/verification.md),再读取失败链路的协议 |
|
|
34
|
+
| 补齐新建 Base 的示例数据 | 读取字段与人员 → CLI 写入 → 页面 Database Function 回读 → 交付 | `lark-cli -- base +record-batch-create`,再按协议调用 Database Function | [示例数据验收](references/release.md#从零建站示例数据验收),即使 Preview 已发布也先读此节 |
|
|
35
|
+
| 专项验收 | 确定检查范围 → 执行已授权检查 → 报告证据与未验证项 | 按契约调用 Database Function 或执行已授权检查 | [诊断与验收](references/verification.md) |
|
|
36
|
+
| 发布当前工程或已验证版本 | 检查工程、制品及授权 → 发布 → 必要收尾 → 交付 | `deploy`;确认后 `deploy --production --yes` | [发布与交付](references/release.md) |
|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
表格和 references 的示例默认使用本机 `base-database-cli`;需要回退时只替换命令前缀,保留其余参数。托管环境使用宿主 CLI。完整参数见对应 reference。
|
|
47
39
|
|
|
48
40
|
新建默认创建 Base;用户明确指定已有 Base 时复用,不额外询问数据来源选择题。只有目标资源、数据所有权、权限或核心流程存在实质歧义时才询问。用户提供的工程、技术选择和已明确授权在后续步骤中持续有效。
|
|
49
41
|
|
|
50
42
|
## 开发阶段路由
|
|
51
43
|
|
|
52
|
-
| 需要完成的工作
|
|
53
|
-
|
|
|
54
|
-
| 首次实现页面、整体视觉改版或视觉评审
|
|
55
|
-
| 修改布局、颜色、排版或控件样式
|
|
56
|
-
| Page runtime、组件接入或 Function 调用
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
| 需要完成的工作 | 必读协议 |
|
|
45
|
+
| ----------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
|
46
|
+
| 首次实现页面、整体视觉改版或视觉评审 | [前端设计风格指导](references/frontend-design-guide.md) |
|
|
47
|
+
| 修改布局、颜色、排版或控件样式 | 上述设计指导的相关章节,沿用现有设计系统;与视觉无关的修改不重读 |
|
|
48
|
+
| Page runtime、组件接入或 Function 调用 | [Page 开发](references/development.md) |
|
|
49
|
+
| AI 对话、生成、分类、总结、文生图、文生视频或模型调用 | [AI Function](references/ai-function.md),并结合 [Page 开发](references/development.md) |
|
|
50
|
+
| AI Function 使用本地图片或 Base 附件作为参考图 | 同时读取 [AI Function](references/ai-function.md) 与 [文件传输](references/file-transfer.md),先得到模型可访问的 URL 或 Data URL,再传入 `input.image` |
|
|
51
|
+
| Database Function 查询、参数和结果解析 | [Database Function](references/database-function.md) |
|
|
52
|
+
| 日期表单、到期日、事件时间或时间筛选 | [日期与时区](references/development.md#日期与时区) |
|
|
53
|
+
| 判断查询支持集之外的形态或处理兼容错误 | [查询能力边界](references/database-function-limitations.md) |
|
|
54
|
+
| FaaS 引用自定义环境变量,或用户要求查询、配置环境变量或第三方凭证 | [第三方 Agent 环境变量](references/environment-variables.md) |
|
|
55
|
+
| FaaS 输入 Schema、写入、一致性和下游错误 | [FaaS 与记录协议](references/faas.md) |
|
|
56
|
+
| 为 Page 或 FaaS 添加、升级第三方 npm 依赖 | [Page 开发中的依赖策略](references/development.md#第三方依赖策略) |
|
|
57
|
+
| 附件上传、展示、下载、追加或移除 | [文件传输](references/file-transfer.md),实现前核对目标环境能力 |
|
|
58
|
+
| binding、身份过滤、角色或数据可见性 | [权限设计](references/permission-design.md) |
|
|
59
|
+
| 自动化、表单、仪表盘等原生能力,或能力归属不明 | [原生 Base 能力路由](references/base-capability-routing.md) |
|
|
60
|
+
| 原生 workflow 通知与站内入口 | [通知集成](references/notifications.md) |
|
|
61
|
+
| 固定单表的基础创建、更新、删除、附件增量或批量写入 | [Mutation Function](references/mutations.md) |
|
|
62
|
+
|
|
63
|
+
新建或整体改版先在内部规划中确定视觉方案,再实现设计变量和组件。业务建模与通用工程取舍按[工程质量](references/style-guide.md)执行;默认不创建额外设计文件。新建站点或修改业务能力时,按[站点 README](references/release.md#站点-readme)维护随源码制品上传的项目说明;用户要求其他文档时按要求交付。
|
|
64
|
+
|
|
65
|
+
AI 能力路由统一使用版本化托管的 AI Function。Page 从 `database-runtime` 导入 `callSiteAIFunction` 或 `invokeSiteAIFunctionStream`,并按 [AI Function](references/ai-function.md) 的能力类型选择聚合、流式或媒体任务调用。
|
|
66
|
+
|
|
67
|
+
需要模型参与当前页面业务流程时,AI Function 是默认选择。例如点餐系统根据口味、预算、用餐人数和菜单生成点餐推荐,应建模为 AI Function,不创建 FaaS 模型代理。
|
|
68
|
+
|
|
69
|
+
修改已有应用前,先读取远端 AI Function 列表和每项完整配置并恢复到本地 `ai/`。`deploy` 时空 `ai/` 会跳过 AI Function 同步(`no_local_ai_functions`),本地全集非空时按全量覆盖写入草稿;`ai-functions sync` 是不管本地是否为空都立即全量覆盖,因此显式 `sync` 空集合会把远端 AI Function 全部删除。创建、配置、调用、调试 AI Function 的完整流程见 [AI Function](references/ai-function.md)。
|
|
70
|
+
|
|
71
|
+
### 增量绑定新 Table
|
|
72
|
+
|
|
73
|
+
修改已有应用时需要使用当前已绑定 Base 中的新 Table,不重新执行 `init` 或 `pull`。先用 `lark-cli base +table-list/get` 的真实返回取得 Table ID,再在项目根目录执行:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
base-database-cli lark-cli -- api POST /open-apis/base/v3/sites/Prjxxxxxxxx/bind_base --data '{"baseToken":"basxxxxxxxx","tableIds":["tbl_new"]}' --json
|
|
77
|
+
base-database-cli lark-cli -- api GET /open-apis/base/v3/sites/Prjxxxxxxxx/catalog --json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`bind_base` 只向同一 Base 追加并去重 Table ID,不覆盖原绑定。成功后把 Catalog 返回 envelope 的 `data` 对象写入 `catalog.json`,并在 `base-database.jsonc` 保留原 binding 的前提下把新 ID 合并进 `tableIds`。删除本地 Table ID 不会触发远程解绑;解绑须另行调用 unbind 接口并先取得用户授权。
|
|
67
81
|
|
|
68
82
|
## 关键约束
|
|
69
83
|
|
|
70
|
-
1. 应用
|
|
84
|
+
1. 应用 资源与发布优先使用本机 `base-database-cli`;原生 Base 配置使用 `lark-cli base +...`。托管环境使用宿主提供的 CLI,不切换环境。命令选择与工程恢复见[工程与环境](references/workspace.md)。
|
|
71
85
|
2. Base 是业务数据事实源,`catalog.json` 是已绑定表的 schema 事实源。表、字段、ID、类型、选项和关系来自真实结果,不由名称或建模输入猜测。
|
|
72
|
-
3. **权限边界**:应用 以 owner 身份访问 Base
|
|
73
|
-
4. Page 读取走
|
|
74
|
-
5.
|
|
75
|
-
6.
|
|
76
|
-
7.
|
|
77
|
-
8.
|
|
86
|
+
3. **权限边界**:应用 以 owner 身份访问 Base。访问者通过已发布 Function 使用业务能力;浏览器直接记录 CRUD 已关闭,固定写入由 Mutation 声明约束。FaaS ticket 内部记录回调保留兼容,需单独约束其输入。读取身份通过 Database Function 中的 `CURRENT_USER_ID()` 获取,Mutation 使用服务端 `current_user`。自定义角色和统一行列权限尚未接入。绑定与权限设计必须遵守[权限边界](references/permission-design.md)。
|
|
87
|
+
4. Page 读取走 Database Function;普通单表创建、按记录 ID 更新和删除(含批量及附件写入)优先使用 Mutation;需要声明之外的服务端业务校验、计算或编排时使用 FaaS,边界见[写入方式选择](references/mutations.md#写入方式选择)。Database Function 必须引用至少一个已绑定 Catalog 真实表;纯常量与无表依赖计算在 Page/FaaS 处理。输入只能进入声明的业务参数,不能决定查询语句、URL、method、Base token、table ID、字段名、Function ID 或凭证。
|
|
88
|
+
5. Database Function、Mutation 与 FaaS 的参数、返回值不同。Page 使用 `invokeDatabaseFunction<TData>`,`TData` 只描述顶层 `data`,不二次解包;协议见[Page 开发](references/development.md#function-调用契约)。部分成功与重试按 [Mutation 结果](references/mutations.md#调用与结果)或 [FaaS 记录协议](references/faas.md#应用记录-写入协议)处理。
|
|
89
|
+
6. AI 对话、生成、分类、总结、文生图或文生视频使用 Page 侧 AI Function 调用平台 AI 能力,不创建 FaaS 模型代理,不直连模型域名;完整契约见[AI Function](references/ai-function.md)。
|
|
90
|
+
7. 修改保留需求外源码、Base schema、metadata、bindings 和 Function。Functions 更新为全量覆盖,不能以只提交本次新增 Function 的方式更新已有 应用。
|
|
91
|
+
8. 保留 starter 的 ready 上报及宿主组件接入。附件能力取决于目标环境的父页面、所选写入方式和服务端协议;按[文件传输](references/file-transfer.md)实现,不以模拟成功代替真实能力。
|
|
92
|
+
9. 第三方 npm 依赖必须使用目标应用的服务端依赖策略判断;普通 registry 版本默认可用,受限来源只有被 `allowedValues` 中某条正则完整匹配时可用。详见[第三方依赖策略](references/development.md#第三方依赖策略)。
|
|
93
|
+
10. **交付边界**:常规发布先 Preview。新建 Base 的示例记录必须写入真实 Base,并用页面实际调用的 Database Function 回读;不以静态 fixture、`localStorage` 或页面自动播种代替。之后完成相关通知配置再交付。完整顺序只在[发布与交付](references/release.md)维护。
|
|
78
94
|
|
|
79
95
|
## 外部操作与授权
|
|
80
96
|
|
|
@@ -82,7 +98,7 @@ CLI 使用 `--app-token`、配置字段 `appToken`、`base-database.jsonc` 和 `
|
|
|
82
98
|
|
|
83
99
|
删除或不可恢复地覆盖资源、业务记录、Function 或 binding,关闭 workflow/高级权限、改变已有角色权限,以及 Prod 发布前,确认用户授权覆盖具体目标、动作和实质影响。缺少授权时,先准备可审阅的对象和影响说明,提出确认请求后等待用户明确回复;等待期间不得调用该动作对应的外部变更工具。默认选项、超时、登录授权和工具提示本身不构成该业务动作的授权。
|
|
84
100
|
|
|
85
|
-
非文字确认只有在宿主文档明确声明单次业务动作确认机制、且其回执绑定具体目标、动作、实质影响和用户确认结果时才可采用;生产发布还须绑定本次 Preview
|
|
101
|
+
非文字确认只有在宿主文档明确声明单次业务动作确认机制、且其回执绑定具体目标、动作、实质影响和用户确认结果时才可采用;生产发布还须绑定本次 Preview 制品。没有该契约时,不推断卡片点击或工具执行审批具有相同效力。没有明确的业务确认契约时,只接受用户针对本次动作的明确文字回复;device-flow 登录授权不能代替业务确认。
|
|
86
102
|
|
|
87
103
|
Prod 还要求用户已体验本次 Preview 并明确同意发布同一制品。“部署正式版”是有效表达的示例,不是唯一口令;任务开始时笼统的“搭建并发布”不能代替本次制品确认。目标、制品或实质影响变化时重新确认;无影响的格式变化不使已有授权失效。
|
|
88
104
|
|
|
@@ -92,15 +108,16 @@ workflow 启停及失败补偿按[通知集成](references/notifications.md#状
|
|
|
92
108
|
|
|
93
109
|
完成条件由当前任务决定,不能把“发布成功”当作“整体完成”。常规 Preview 交付后等待用户体验;用户继续要求修改、排障或验收时进入相应路径,不受上一轮停止条件限制。
|
|
94
110
|
|
|
95
|
-
-
|
|
96
|
-
-
|
|
111
|
+
- **完成**:约定功能已实现,约定验证已通过;其他未执行的验证明确列出。
|
|
112
|
+
- **部分完成**:已有成果可交付,但存在已知功能缺失、违反需求的实现、平台不支持的要求,或约定验证、外部配置未完成;即使 Preview 发布成功,也逐项列出缺口。
|
|
97
113
|
- **阻塞**:必需步骤受认证、权限、平台能力或缺失输入等外部条件限制,记录阻塞及恢复条件。
|
|
98
114
|
|
|
99
115
|
默认交付访问链接、业务变更、体验步骤、实际验证结果和影响使用的限制。仅使用发布命令返回的顶层 `baseAppUrl` 作为应用访问入口;不猜测地址或展示内部静态资源 `staticUrl`。技术清单与诊断信息按研发、排障或审计需要提供;不输出凭证,也不要求普通业务用户检查协议字段。
|
|
100
116
|
|
|
101
117
|
## 术语
|
|
102
118
|
|
|
119
|
+
- **Database Function**:通过固定查询语句读取 Base 数据的函数;查询定义位于 `database-functions/<functionId>/main.sql`。
|
|
103
120
|
- **应用 appToken**:应用标识;协议字段 `appToken`、FaaS 的 `projectId` 与示例中的工程常量 `PROJECT_ID` 在相应入口指向该应用,不是 Base token。`PROJECT_ID` 由示例调用方定义,不是 starter 提供的标识。
|
|
104
121
|
- **Catalog**:已绑定数据表的 schema;本地快照为 `catalog.json`,更新从 应用 catalog 接口获取。Base 的业务记录不保存在 Catalog。
|
|
105
|
-
- **operation**:业务动作及其固定输入输出契约,例如查询任务或审批申请;不是任意 URL
|
|
106
|
-
-
|
|
122
|
+
- **operation**:业务动作及其固定输入输出契约,例如查询任务或审批申请;不是任意 URL 或查询语句的代理。
|
|
123
|
+
- **托管环境**:平台提供 CLI、登录态或工程的建站环境;使用其已提供的入口。自行安装 CLI 的本地环境按公开安装流程执行。
|