@lovrabet/rabetbase-cli 2.4.7 → 2.5.0-beta.1
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/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.d.ts +13 -3
- package/lib/api/generate-api-file.js +1 -1
- package/lib/api/generate-sdk-config-file.d.ts +7 -0
- package/lib/api/generate-sdk-config-file.js +1 -0
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.d.ts +2 -5
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/delete.d.ts +5 -0
- package/lib/commands/config/delete.js +1 -0
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/init.d.ts +12 -0
- package/lib/commands/config/init.js +1 -0
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/business-groups.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff-refresh-start.js +1 -1
- package/lib/commands/db/diff-refresh-status.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/search.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/visibility-update.js +1 -1
- package/lib/commands/notification/config-create.js +1 -1
- package/lib/commands/notification/config-delete.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/config-update.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/create.js +1 -1
- package/lib/commands/page/custom/detail.js +1 -1
- package/lib/commands/page/custom/list.js +1 -1
- package/lib/commands/page/custom/publish.js +1 -1
- package/lib/commands/page/custom/shared.js +1 -1
- package/lib/commands/page/custom/syntax.js +1 -1
- package/lib/commands/page/custom/template.js +1 -1
- package/lib/commands/page/custom/update.js +1 -1
- package/lib/commands/page/data-list-status.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.d.ts +1 -0
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/materialize-project-template.d.ts +6 -2
- package/lib/commands/project/create/materialize-project-template.js +1 -1
- package/lib/commands/project/create/project-name.js +1 -1
- package/lib/commands/project/create/project-template-archive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.d.ts +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.d.ts +2 -2
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.d.ts +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/domain-config.d.ts +10 -0
- package/lib/config/domain-config.js +1 -0
- package/lib/config/schema.d.ts +3 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.d.ts +23 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/region.d.ts +9 -0
- package/lib/constant/region.js +1 -0
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.d.ts +4 -6
- package/lib/context/config-loader.js +1 -1
- package/lib/context.d.ts +2 -2
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.d.ts +2 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.d.ts +11 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.d.ts +2 -2
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/types/index.d.ts +28 -0
- package/lib/utils/ai_config.d.ts +1 -2
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -3
- package/skills/rabetbase/SKILL.md +33 -28
- package/skills/rabetbase/guides/backend-function.md +41 -12
- package/skills/rabetbase/guides/bff-creation-workflow.md +6 -4
- package/skills/rabetbase/guides/custom-page-workflow.md +1 -1
- package/skills/rabetbase/guides/data-api-guidelines.md +8 -8
- package/skills/rabetbase/guides/database-connection-workflow.md +8 -16
- package/skills/rabetbase/guides/menu-anomaly-manual-cleanup.md +1 -6
- package/skills/rabetbase/guides/sdk-client-generation.md +146 -0
- package/skills/rabetbase/guides/sql-creation-workflow.md +1 -1
- package/skills/rabetbase/guides/troubleshooting.md +1 -1
- package/skills/rabetbase/guides/typescript-sdk.md +46 -10
- package/skills/rabetbase/references/rabetbase-api-list.md +4 -4
- package/skills/rabetbase/references/rabetbase-api-pull.md +44 -29
- package/skills/rabetbase/references/rabetbase-app-list.md +2 -2
- package/skills/rabetbase/references/rabetbase-auth-login.md +4 -2
- package/skills/rabetbase/references/rabetbase-bff-push.md +3 -1
- package/skills/rabetbase/references/rabetbase-codegen-sql.md +3 -1
- package/skills/rabetbase/references/rabetbase-config.md +75 -30
- package/skills/rabetbase/references/rabetbase-dataset-detail.md +1 -1
- package/skills/rabetbase/references/rabetbase-db-analyze.md +3 -3
- package/skills/rabetbase/references/rabetbase-db-detail.md +2 -2
- package/skills/rabetbase/references/rabetbase-db-diff-refresh.md +4 -4
- package/skills/rabetbase/references/rabetbase-db-diff.md +6 -9
- package/skills/rabetbase/references/rabetbase-doctor.md +1 -1
- package/skills/rabetbase/references/rabetbase-init.md +57 -51
- package/skills/rabetbase/references/rabetbase-kb.md +2 -0
- package/skills/rabetbase/references/rabetbase-page-create.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-custom-detail.md +3 -3
- package/skills/rabetbase/references/rabetbase-page-custom-list.md +2 -2
- package/skills/rabetbase/references/rabetbase-project-create.md +12 -3
- package/skills/rabetbase/references/rabetbase-project-upgrade.md +2 -2
- package/skills/rabetbase/references/rabetbase-role-user-resolve.md +2 -2
- package/skills/rabetbase/references/rabetbase-user-account.md +1 -1
- package/skills/rabetbase/references/rabetbase-workspace.md +6 -6
- package/skills/rabetbase.manifest.json +4 -3
- package/templates/README.md +17 -28
- package/templates/generate-api/api.ts.tpl +3 -3
- package/templates/generate-api/client.ts.tpl +10 -37
- package/lib/commands/data/filter.d.ts +0 -7
- package/lib/commands/data/filter.js +0 -1
- package/lib/commands/data/getOne.d.ts +0 -7
- package/lib/commands/data/getOne.js +0 -1
- package/lib/commands/data/index.d.ts +0 -8
- package/lib/commands/data/index.js +0 -1
- package/lib/commands/data/shared.d.ts +0 -33
- package/lib/commands/data/shared.js +0 -1
- package/lib/commands/init/index.d.ts +0 -11
- package/lib/commands/init/index.js +0 -1
- package/lib/utils/rules-cdn.d.ts +0 -38
- package/lib/utils/rules-cdn.js +0 -1
- package/templates/rules/lovrabet_rules.mdc.tpl +0 -893
- package/templates/skill/SKILL.md.tpl +0 -120
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# api pull
|
|
2
2
|
|
|
3
|
-
拉取当前 App 下所有数据集(Dataset
|
|
3
|
+
拉取当前 App 下所有数据集(Dataset)的元信息,刷新 `src/api/sdk-config.ts`,并在 `api.ts` / `client.ts` **缺失时**写入 Cookie-first 脚手架。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
已有 TypeScript **不会被覆盖**。Agent 必须用返回的 `data.models` 按 [`sdk-client-generation.md`](../guides/sdk-client-generation.md) 更新 `api.ts` / `client.ts`。人类若要重新得到脚手架,删除对应文件后再跑本命令。
|
|
6
6
|
|
|
7
7
|
## 命令
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
#
|
|
11
|
-
rabetbase api pull
|
|
10
|
+
# 拉取事实并刷新 sdk-config.ts(默认 ./src/api/)
|
|
11
|
+
rabetbase api pull --format compress
|
|
12
12
|
|
|
13
13
|
# 指定输出目录
|
|
14
|
-
rabetbase api pull --output ./src/generated/api/
|
|
14
|
+
rabetbase api pull --output ./src/generated/api/ --format compress
|
|
15
15
|
|
|
16
16
|
# 多应用:默认只解析「项目级」apps;与全局合并配置一起拉取时加 --global
|
|
17
|
-
rabetbase api pull --global
|
|
17
|
+
rabetbase api pull --global --format compress
|
|
18
18
|
|
|
19
19
|
# 多应用模式:指定某个应用
|
|
20
|
-
rabetbase api pull --app order
|
|
21
|
-
rabetbase api pull --appcode app-order-001
|
|
20
|
+
rabetbase api pull --app order --format compress
|
|
21
|
+
rabetbase api pull --appcode app-order-001 --format compress
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## 参数
|
|
@@ -26,9 +26,10 @@ rabetbase api pull --appcode app-order-001
|
|
|
26
26
|
| 参数 | 说明 |
|
|
27
27
|
|------|------|
|
|
28
28
|
| `--output <dir>` | 输出目录,默认 `./src/api/` |
|
|
29
|
-
| `--global` |
|
|
29
|
+
| `--global` | 多应用时显式从「全局+项目」双层解析 `apps`;默认仅项目级 `apps` |
|
|
30
30
|
| `--app <name>` | 多应用模式下,指定应用名称 |
|
|
31
31
|
| `--appcode <code>` | 直接指定 appcode,跳过配置查找 |
|
|
32
|
+
| `--format compress\|json` | 结构化信封。Agent 应读 `data.models`,不要刮 stderr |
|
|
32
33
|
|
|
33
34
|
## 多应用过滤
|
|
34
35
|
|
|
@@ -37,31 +38,43 @@ rabetbase api pull --appcode app-order-001
|
|
|
37
38
|
- **加 `--app <name>`**:仅拉取指定应用
|
|
38
39
|
- **加 `--appcode <code>`**:反查到对应 app profile,使用其 cookie/env/apiDir
|
|
39
40
|
|
|
40
|
-
##
|
|
41
|
+
## 配置作用域
|
|
41
42
|
|
|
42
|
-
|
|
43
|
+
- 默认只从项目文件解析 `apps`,同时可从全局白名单继承 cookie/accessKey 等标量配置。
|
|
44
|
+
- `--global` 显式从全局和项目双层读取 apps;项目同名项覆盖全局同名项。
|
|
45
|
+
- `inherit` 不是受支持的配置项。
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
- **`true`**:全量合并全局+项目(旧行为,需显式开启)。
|
|
46
|
-
- **`false`**:完全隔离,不继承任何全局字段。
|
|
47
|
+
## CLI 实际写入
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
| 文件 | 行为 |
|
|
50
|
+
|------|------|
|
|
51
|
+
| `sdk-config.ts` | **每次刷新**。只含 `region` / `runtimeDomain`,不含凭证 |
|
|
52
|
+
| `<prefix>-api.ts` | 文件缺失时写入脚手架(含当前 `models`);已存在则跳过 |
|
|
53
|
+
| `<prefix>-client.ts` | 文件缺失时写入 Cookie-first `createClient`;已存在则跳过 |
|
|
49
54
|
|
|
50
|
-
|
|
51
|
-
- **`--global` 多应用列表**始终从全局+项目双层取 apps,不受 inherit 限制。
|
|
55
|
+
默认 `prefix` 为空(单应用),多应用非 default 应用使用应用名作为 prefix。
|
|
52
56
|
|
|
53
|
-
|
|
57
|
+
`project create` 在拷贝空 demo 脚手架后会覆盖写入一次 TypeScript,以便带上真实 models。日常 `api pull` 遇到已有 `api.ts` / `client.ts` 时跳过,只刷新 `sdk-config.ts` 并返回 `data.models`。
|
|
54
58
|
|
|
55
|
-
|
|
56
|
-
|------|------|
|
|
57
|
-
| `<prefix>-api.ts` | 数据模型定义(datasetCode → Model 映射) |
|
|
58
|
-
| `<prefix>-client.ts` | SDK 客户端初始化代码 |
|
|
59
|
+
## 输出(单应用 `data`)
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
| 字段 | 说明 |
|
|
62
|
+
|------|------|
|
|
63
|
+
| `appCode` | 当前应用 |
|
|
64
|
+
| `configName` | `"default"` 或具名应用名(不含 TS 引号) |
|
|
65
|
+
| `isDefaultConfig` | 默认应用为 `true` |
|
|
66
|
+
| `models[]` | `datasetCode` / `tableName` / `name` / `alias` |
|
|
67
|
+
| `sdkRouting` | `{ region?: "id", runtimeDomain?: string }` |
|
|
68
|
+
| `files.api` / `files.client` / `files.sdkConfig` | `{ path, action }`:`created` / `overwritten` / `preserved` / `refreshed` |
|
|
69
|
+
| `needsAgentMerge` | 任一 TypeScript 被 `preserved` 时为 `true` |
|
|
70
|
+
| `apiFilePath` / `clientFilePath` / `sdkConfigPath` | 与 `files.*.path` 相同 |
|
|
71
|
+
| `modelCount` / `datasetCount` | 模型数量 |
|
|
72
|
+
|
|
73
|
+
多应用时 `data` 为 `{ apps, succeeded, failed }`。
|
|
61
74
|
|
|
62
75
|
## 生成标识符
|
|
63
76
|
|
|
64
|
-
|
|
77
|
+
脚手架路径遵循 [`best-practices.md`](../guides/best-practices.md) 的动态标识符原则。数字开头的 App Namespace 使用 `APP` 领域前缀,运行时 AppCode 保持不变。
|
|
65
78
|
|
|
66
79
|
## 前置条件
|
|
67
80
|
|
|
@@ -71,12 +84,14 @@ rabetbase api pull --appcode app-order-001
|
|
|
71
84
|
## 示例
|
|
72
85
|
|
|
73
86
|
```bash
|
|
74
|
-
#
|
|
75
|
-
rabetbase api pull
|
|
87
|
+
# 单应用:刷新 sdk-config.ts;缺失则写 api.ts/client.ts
|
|
88
|
+
rabetbase api pull --format compress
|
|
76
89
|
|
|
77
|
-
# 多应用 order
|
|
78
|
-
rabetbase api pull --app order
|
|
90
|
+
# 多应用 order
|
|
91
|
+
rabetbase api pull --app order --format compress
|
|
79
92
|
|
|
80
93
|
# 独立输出目录
|
|
81
|
-
rabetbase api pull --output ./src/generated/api/
|
|
94
|
+
rabetbase api pull --output ./src/generated/api/ --format compress
|
|
82
95
|
```
|
|
96
|
+
|
|
97
|
+
更新已有 TypeScript:见 [`sdk-client-generation.md`](../guides/sdk-client-generation.md)。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
列出应用。
|
|
4
4
|
|
|
5
|
-
默认列出**本地配置视图**,与 CLI 运行时一致:合并全局 `~/.rabetbase.json
|
|
5
|
+
默认列出**本地配置视图**,与 CLI 运行时一致:合并全局 `~/.rabetbase.json` 与从当前目录向父目录解析到的项目 `.rabetbase.json`。旧 `.lovrabet.json` / `.lovrabetrc` 不会自动参与配置发现。
|
|
6
6
|
加 `--remote` 时改为查询**平台目录视图**:当前登录账号在平台上可访问的应用,不读取或修改本地 app 配置。
|
|
7
7
|
|
|
8
8
|
- **不加 flag**:合并视图(global + project)。
|
|
@@ -38,7 +38,7 @@ rabetbase app list --remote
|
|
|
38
38
|
| 字段 | 说明 |
|
|
39
39
|
|------|------|
|
|
40
40
|
| `items` | 应用条目数组 |
|
|
41
|
-
| `meta` | **合并视图**:`globalPath`、`projectPath`、`defaultApp
|
|
41
|
+
| `meta` | **合并视图**:`globalPath`、`projectPath`、`defaultApp`(唯一 app 时为其 alias)、`defaultAppSource`(显式配置来源;隐式单应用为 `null`)。**`--global` / `--project`**:`scope`、`configPath` |
|
|
42
42
|
|
|
43
43
|
每个 `items[]` 元素除 `name`、`appcode`、`env` 等外,另有:
|
|
44
44
|
|
|
@@ -25,12 +25,14 @@ rabetbase auth login --help
|
|
|
25
25
|
|
|
26
26
|
## 行为
|
|
27
27
|
|
|
28
|
-
1.
|
|
29
|
-
2.
|
|
28
|
+
1. 使用 `rabetbase config init` 已配置的节点与 Domain。
|
|
29
|
+
2. 检查本机是否已有有效 session,无有效 session 时启动本地 OAuth 回调服务。
|
|
30
30
|
3. 交互式模式会自动打开浏览器;非交互 `--yes` 模式只打印登录 URL。
|
|
31
31
|
4. 用户授权成功后,CLI 保存 cookie 并输出登录成功。
|
|
32
32
|
5. 10 分钟内未完成授权时,登录服务退出,需要重新执行命令。
|
|
33
33
|
|
|
34
|
+
`auth login` 只负责认证,不接受 region 或 Domain 参数。节点调整统一使用 `config init/set/delete`。
|
|
35
|
+
|
|
34
36
|
## 常见错误
|
|
35
37
|
|
|
36
38
|
```text
|
|
@@ -39,7 +39,9 @@ rabetbase bff push --type HOOK --name beforeFilter --format json
|
|
|
39
39
|
|
|
40
40
|
`bff push` 负责同步脚本,不等价于业务逻辑验证。推送前按 [`backend-function.md`](../guides/backend-function.md) 自检,尤其确认:
|
|
41
41
|
|
|
42
|
-
-
|
|
42
|
+
- `DB_TABLE` 数据集优先通过 `context.client.models.byTable("<物理表名>")` 访问;同名表跨 dblink 时传入已确认的 `{ dblinkId }`
|
|
43
|
+
- `METADATA` 数据集使用 `"dataset_" + 数据集 code`;`DB_TABLE` 使用该形式时属于兼容路径
|
|
44
|
+
- Backend Function 的 Custom SQL 默认使用 `context.client.sql.byName("<唯一 SQL 名>").execute({ params })`;名称不存在或重名时先处理 `SQL_NAME_NOT_FOUND` / `SQL_NAME_AMBIGUOUS`
|
|
43
45
|
- 写入字段、必填字段、枚举 `options[].value` 来自当前 `dataset detail`
|
|
44
46
|
- `filter()` 结果从 `.tableData` 读取
|
|
45
47
|
- `create()` 返回新记录 ID,不访问 `created.id`
|
|
@@ -25,8 +25,10 @@ rabetbase codegen sql --sqlcode 2305f915-dd48cd4c > ./src/api/getUserList.ts
|
|
|
25
25
|
|
|
26
26
|
## 提示
|
|
27
27
|
|
|
28
|
-
- `--target bff` 生成的代码使用 `context.client.sql.execute()
|
|
28
|
+
- `--target bff` 生成的代码使用 `context.client.sql.byName(sqlName).execute({ params })`;生成时仍以 `--sqlcode` 定位 SQL 元数据,但产物不硬编码 `sqlCode`。Backend Function 中 SQL 返回直接是数组
|
|
29
29
|
- `--target sdk` 生成的代码使用 `client.sql.execute()`,返回 `{ execSuccess, execResult }`
|
|
30
|
+
- `sqlName` 在当前应用内必须唯一;未找到或重名时,运行时返回 `SQL_NAME_NOT_FOUND` 或 `SQL_NAME_AMBIGUOUS`,不会任选一个 SQL
|
|
31
|
+
- `--target bff` 产物默认使用语义 SQL 名,`sql.execute({ sqlCode, params })` 是 Backend Function 的兼容调用方式;前端 SDK 产物使用 `sqlCode`
|
|
30
32
|
|
|
31
33
|
## 参考
|
|
32
34
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
它**不是**平台应用目录。若要查看当前登录账号在平台上能访问哪些应用,应使用 `rabetbase app list --remote`,而不是直接查看 `.rabetbase.json`。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
只自动读取 `.rabetbase.json`,不会把 `.lovrabet.json` 或 `.lovrabetrc` 当作 Rabetbase 配置。旧文件需要迁移时,显式执行 `rabetbase project upgrade`。
|
|
10
10
|
|
|
11
11
|
## 初始化
|
|
12
12
|
|
|
@@ -14,15 +14,14 @@
|
|
|
14
14
|
rabetbase workspace init --appcode <code>
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
绑定当前目录到某个应用并写入 `.rabetbase.json`,采用 canonical 的 `apps
|
|
17
|
+
绑定当前目录到某个应用并写入 `.rabetbase.json`,采用 canonical 的 `apps` 结构;单应用自动选中且省略 `defaultApp`,旧的顶层 `appcode` 仍兼容读取。首次安装后的全局引导用 `rabetbase config init`。
|
|
18
18
|
|
|
19
19
|
## canonical 主模型
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
当前推荐、也是单应用新写入默认采用的结构,是只有一个 profile 的 **`apps`**:
|
|
22
22
|
|
|
23
23
|
```json
|
|
24
24
|
{
|
|
25
|
-
"defaultApp": "main",
|
|
26
25
|
"apps": {
|
|
27
26
|
"main": {
|
|
28
27
|
"appcode": "app-xxxxxxxx",
|
|
@@ -47,6 +46,16 @@ CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模
|
|
|
47
46
|
|
|
48
47
|
### 完整字段
|
|
49
48
|
|
|
49
|
+
下面分别展示字段形态;官方 `region` 模式与企业显式 Domain 模式不要混写。官方印尼节点只需:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"region": "id"
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
企业独立部署才显式提供 Domain:
|
|
58
|
+
|
|
50
59
|
```json
|
|
51
60
|
{
|
|
52
61
|
"appcode": "app-xxx",
|
|
@@ -61,13 +70,16 @@ CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模
|
|
|
61
70
|
"template_base_url": "https://custom-cdn.example.com/dist",
|
|
62
71
|
"apiDomain": "https://custom-api.example.com",
|
|
63
72
|
"userDomain": "https://custom-user.example.com",
|
|
64
|
-
"runtimeDomain": "https://custom-runtime.example.com"
|
|
73
|
+
"runtimeDomain": "https://custom-runtime.example.com",
|
|
74
|
+
"skillDomain": "https://custom-skills.example.com",
|
|
75
|
+
"kbDomain": "https://custom-kb.example.com",
|
|
76
|
+
"appDomain": "https://custom-app.example.com"
|
|
65
77
|
}
|
|
66
78
|
```
|
|
67
79
|
|
|
68
80
|
## 多应用模式
|
|
69
81
|
|
|
70
|
-
一个项目对接多个 Lovrabet
|
|
82
|
+
一个项目对接多个 Lovrabet 应用时,才使用 `apps` + `defaultApp`:
|
|
71
83
|
|
|
72
84
|
```json
|
|
73
85
|
{
|
|
@@ -87,7 +99,7 @@ CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模
|
|
|
87
99
|
}
|
|
88
100
|
```
|
|
89
101
|
|
|
90
|
-
每个 app profile
|
|
102
|
+
每个 app profile 可单独覆盖普通顶层字段。唯一 app 自动激活;两个及以上 app 必须通过 `--app <name>` 临时选择,或用 `defaultApp` 持久选择,CLI 不按 JSON key 顺序猜测。`riskLevel` 是安全例外:默认值为 `write`,全局、项目与 profile 决定基础上限并取最严格值;环境变量只能继续收紧,不能提权。权限不足时只能提醒用户手动编辑配置;Agent 和自动化脚本不得自行修改 `riskLevel` 或尝试提权。
|
|
91
103
|
|
|
92
104
|
管理命令(声明式 flags,非位置参数):
|
|
93
105
|
|
|
@@ -105,22 +117,25 @@ rabetbase workspace remove product --yes
|
|
|
105
117
|
|
|
106
118
|
| 字段 | 类型 | 默认值 | 说明 |
|
|
107
119
|
|------|------|--------|------|
|
|
108
|
-
| `appcode` | string | — | 顶层单应用兼容字段。新写入优先使用 `apps
|
|
120
|
+
| `appcode` | string | — | 顶层单应用兼容字段。新写入优先使用 `apps`。兼容旧名 `app` |
|
|
109
121
|
| `env` | string | `"production"` | 环境。可选值:`production`、`daily`(配置文件若仍为旧值 `online`,加载时会规范为 `production`) |
|
|
110
|
-
| `locale` | string | `"en-US"` |
|
|
122
|
+
| `locale` | string | `"en-US"` | 应用本地化设置(不是 CLI 语言;目前命令尚未消费) |
|
|
111
123
|
| `cookie` | string | — | 内联 session cookie。设置后优先于 `~/.lovrabet/cookie` 文件 |
|
|
112
124
|
| `accessKey` | string | — | Access Key 认证(预留,未来替代 cookie) |
|
|
113
125
|
| `format` | string | — | 默认输出格式。可选值:`json`、`pretty`、`compress`。不设则命令默认 `compress` |
|
|
114
126
|
| `pageSize` | number | — | 默认分页大小,用于 `sql list` 等分页命令 |
|
|
115
127
|
| `riskLevel` | string | `"write"` | 允许执行的最高风险等级。可选值:`read`、`write`、`high-risk-write`。兼容旧名 `maxRisk` |
|
|
116
|
-
| `inherit` | boolean | 省略 | 配置继承模式。**省略**(默认):项目主导,仅从全局白名单继承 cookie/accessKey/locale/format/riskLevel/pageSize,不继承 apps/defaultApp/appcode。**`true`**:全量合并全局+项目(旧行为,需显式开启)。**`false`**:普通字段完全隔离;全局 `riskLevel` 仍作为不可绕过的上限 |
|
|
117
128
|
| `apiDir` | string | `"./src/api"` | `api pull` 生成代码的输出目录 |
|
|
129
|
+
| `region` | string | `"cn"`(省略) | 当前开放的官方节点快捷配置:`cn`、`id` |
|
|
118
130
|
| `template_base_url` | string | 平台默认 CDN | 模板 CDN 基础 URL,一般无需修改 |
|
|
119
|
-
| `defaultApp` | string | — |
|
|
131
|
+
| `defaultApp` | string | — | 多应用模式下的默认应用名称;单应用省略 |
|
|
120
132
|
| `apps` | object | — | 多应用配置。key 为应用名,value 为 AppProfile(见下方) |
|
|
121
|
-
| `apiDomain` | string |
|
|
133
|
+
| `apiDomain` | string | 节点默认 | 普通研发平台 API 域名 |
|
|
122
134
|
| `userDomain` | string | 平台默认 | 自定义用户域名 |
|
|
123
135
|
| `runtimeDomain` | string | 平台默认 | 自定义运行时域名 |
|
|
136
|
+
| `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
|
|
137
|
+
| `kbDomain` | string | 节点默认 | 企业知识库 HTTPS origin 覆盖 |
|
|
138
|
+
| `appDomain` | string | 节点默认 | 工作台、页面编辑器和发布页面域名 |
|
|
124
139
|
|
|
125
140
|
### AppProfile 字段(`apps.*` 内的每个应用)
|
|
126
141
|
|
|
@@ -134,7 +149,7 @@ rabetbase workspace remove product --yes
|
|
|
134
149
|
| `format` | string | 覆盖顶层 `format` |
|
|
135
150
|
| `pageSize` | number | 覆盖顶层 `pageSize` |
|
|
136
151
|
| `riskLevel` | string | 只能继续收紧顶层 `riskLevel`,不能提权 |
|
|
137
|
-
| `locale` | string | 覆盖顶层 `locale
|
|
152
|
+
| `locale` | string | 覆盖顶层 `locale`(应用本地化;目前命令尚未消费) |
|
|
138
153
|
|
|
139
154
|
## 优先级
|
|
140
155
|
|
|
@@ -174,16 +189,19 @@ CLI flag (--appcode, --env, --format, --app ...)
|
|
|
174
189
|
|
|
175
190
|
| 作用域 | 查找目录 | 文件名优先级 |
|
|
176
191
|
|--------|---------|------------|
|
|
177
|
-
| 项目级 | `process.cwd()` | `.rabetbase.json`
|
|
178
|
-
| 全局级 | `~`(用户 HOME) |
|
|
192
|
+
| 项目级 | 从 `process.cwd()` 向父目录查找 | 仅 `.rabetbase.json` |
|
|
193
|
+
| 全局级 | `~`(用户 HOME) | 仅 `.rabetbase.json` |
|
|
179
194
|
|
|
180
|
-
|
|
195
|
+
配置合并使用固定模型,`inherit` 不是受支持的配置项:
|
|
181
196
|
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
197
|
+
- 项目显式值覆盖全局显式值。
|
|
198
|
+
- 项目存在时,仅从全局白名单继承 `cookie`、`accessKey`、`locale`、`format`、`riskLevel`、`pageSize`、`region` 和六个 Domain(`userDomain` / `apiDomain` / `runtimeDomain` / `skillDomain` / `kbDomain` / `appDomain`);不继承 `apps` / `defaultApp` / `appcode` / `env`。
|
|
199
|
+
- `apps` / `defaultApp` 始终项目隔离,避免研发写操作落到全局应用。
|
|
200
|
+
- `region` 是 Domain fallback profile;显式 Domain 按普通 key 继承和覆盖,不会被 `region` 清除或屏蔽。
|
|
201
|
+
- `riskLevel` 始终取全局与项目顶层的更严格值,项目不能借配置覆盖提权。
|
|
202
|
+
- 旧配置中的 `inherit` 会被忽略,可用 `rabetbase config delete inherit` 清理。
|
|
185
203
|
|
|
186
|
-
>
|
|
204
|
+
> **为什么固定为项目主导**:避免全局 `.rabetbase.json` 中的 `defaultApp` / `apps` 在用户进入项目后被无声继承(曾导致写操作误选应用)。`api list` / `api pull` 仍可通过 `--global` 显式读取双层 apps。
|
|
187
205
|
|
|
188
206
|
## 示例
|
|
189
207
|
|
|
@@ -242,26 +260,36 @@ rabetbase dataset list --app product
|
|
|
242
260
|
|
|
243
261
|
```bash
|
|
244
262
|
# 写入项目级配置(默认;须在能解析到项目 .rabetbase.json 的目录下执行)
|
|
245
|
-
rabetbase config set apiDomain https://custom-api.example.com
|
|
246
|
-
rabetbase config set env daily
|
|
263
|
+
rabetbase config set --key apiDomain --value https://custom-api.example.com
|
|
264
|
+
rabetbase config set --key env --value daily
|
|
247
265
|
|
|
248
266
|
# 写入全局配置(任意目录)
|
|
249
|
-
rabetbase config set apiDomain https://custom-api.example.com --global
|
|
267
|
+
rabetbase config set --key apiDomain --value https://custom-api.example.com --global
|
|
250
268
|
```
|
|
251
269
|
|
|
252
270
|
`config set` **默认写入项目**配置文件(当前工作目录能解析到 `.rabetbase.json` 等);加 **`--global`** 则写入 **`~/.rabetbase.json`**。
|
|
253
271
|
|
|
254
|
-
若当前目录**没有**项目配置文件且**未**指定 `--global`,CLI **拒绝执行**并提示使用 `--global` 或先 `rabetbase init
|
|
272
|
+
若当前目录**没有**项目配置文件且**未**指定 `--global`,CLI **拒绝执行**并提示使用 `--global` 或先 `rabetbase workspace init --appcode <code>`,**不会**静默改全局。
|
|
255
273
|
|
|
256
274
|
### config get
|
|
257
275
|
|
|
258
276
|
读取配置项(读取合并后的值):
|
|
259
277
|
|
|
260
278
|
```bash
|
|
261
|
-
rabetbase config get apiDomain
|
|
279
|
+
rabetbase config get --key apiDomain
|
|
262
280
|
# 输出: https://custom-api.example.com
|
|
263
281
|
```
|
|
264
282
|
|
|
283
|
+
### config delete
|
|
284
|
+
|
|
285
|
+
删除当前作用域显式配置的 key;命令幂等,key 已不存在时仍成功返回。默认删除项目层,`--global` 删除全局层。`riskLevel` 受保护,不能通过 CLI 删除。
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
rabetbase config delete apiDomain
|
|
289
|
+
rabetbase config delete apiDomain --global
|
|
290
|
+
rabetbase config delete inherit # 清理已移除的旧字段
|
|
291
|
+
```
|
|
292
|
+
|
|
265
293
|
### config list
|
|
266
294
|
|
|
267
295
|
以 JSON 格式输出当前合并后的完整配置:
|
|
@@ -284,13 +312,30 @@ rabetbase doctor
|
|
|
284
312
|
|
|
285
313
|
## 独立部署场景
|
|
286
314
|
|
|
287
|
-
|
|
315
|
+
官方节点使用内置完整映射,默认 `cn` 可省略:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
rabetbase config set --key region --value id --global
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
企业独立部署推荐通过连接配置入口一次性初始化:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
rabetbase config init --domain-config ./lovrabet-domains.json
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
该文件只接收 `userDomain`、`apiDomain`、`runtimeDomain`、`skillDomain`、`kbDomain`、`appDomain`;值必须是无 path/query/fragment 的 HTTPS origin。完整行为与命令行 flags 见 [`rabetbase config init`](rabetbase-init.md)。
|
|
328
|
+
|
|
329
|
+
也可以逐项覆盖:
|
|
288
330
|
|
|
289
331
|
```bash
|
|
290
332
|
# 写入全局配置(所有项目生效)
|
|
291
|
-
rabetbase config set apiDomain https://your-api.example.com --global
|
|
292
|
-
rabetbase config set userDomain https://your-user.example.com --global
|
|
293
|
-
rabetbase config set runtimeDomain https://your-runtime.example.com --global
|
|
333
|
+
rabetbase config set --key apiDomain --value https://your-api.example.com --global
|
|
334
|
+
rabetbase config set --key userDomain --value https://your-user.example.com --global
|
|
335
|
+
rabetbase config set --key runtimeDomain --value https://your-runtime.example.com --global
|
|
336
|
+
rabetbase config set --key skillDomain --value https://your-skills.example.com --global
|
|
337
|
+
rabetbase config set --key kbDomain --value https://your-kb.example.com --global
|
|
338
|
+
rabetbase config set --key appDomain --value https://your-app.example.com --global
|
|
294
339
|
```
|
|
295
340
|
|
|
296
|
-
|
|
341
|
+
官方模式:`region` 内置完整 Domain 映射,默认 `cn`,配置文件可省略;`id` 只需保存 `"region": "id"`。企业独立部署模式才保存显式 Domain。项目级配置可覆盖全局配置;默认项目合并会继承全局节点配置。
|
|
@@ -97,7 +97,7 @@ rabetbase dataset detail --code <数据集编码> --format json --jq '.data.oper
|
|
|
97
97
|
## 提示
|
|
98
98
|
|
|
99
99
|
- 写 SQL / Backend Function 前先调用此命令确认真实字段名、类型与枚举;关联关系统一看 **`dataset relations`**
|
|
100
|
-
- `--alias`
|
|
100
|
+
- `--alias` 需要本地 `api.ts` 已有对应 alias(`api pull` 取事实后按 [`sdk-client-generation.md`](../guides/sdk-client-generation.md) 更新)
|
|
101
101
|
- 横切数据访问流程、外键与性能:见 [`guides/data-api-guidelines.md`](../guides/data-api-guidelines.md)
|
|
102
102
|
|
|
103
103
|
## 参考
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 何时用
|
|
6
6
|
|
|
7
|
-
- **analyze-batch-plan
|
|
7
|
+
- **analyze-batch-plan**:只要增量表清单非空,就先预览确定性安全批次;不因表少而跳过,也不创建服务端任务
|
|
8
8
|
- **analyze-start**:接入新库或表结构大变后,同步到 Lovrabet(一次调用只启动一个任务)
|
|
9
9
|
- **analyze-cancel**:任务卡住或误触,需要停掉当前分析
|
|
10
10
|
- **analyze-status**:轮询任务状态,并读取 CLI 派生的终态、重试和耗时字段
|
|
@@ -70,7 +70,7 @@ rabetbase db analyze-status --id 10157 --plan <traceId> --format compress
|
|
|
70
70
|
|
|
71
71
|
必须按 `index` 严格串行:每批独立调用一次 `analyze-start`,并保存一个独立 `planId`。当前批次为 `PENDING / RUNNING / RETRYING / CANCELING` 时继续查询同一 planId;`SUCCESS` 才直接进入下一批;`PARTIAL_SUCCESS` 记录失败事实后继续;`FAILED / CANCELLED` 停止整个批次编排;未知状态停止自动推进。
|
|
72
72
|
|
|
73
|
-
如果 `analyze-start` 没有明确返回 `data.planId
|
|
73
|
+
如果 `analyze-start` 没有明确返回 `data.planId`,停止自动推进且不得盲目重试,因为请求结果可能不确定。全部批次结束后默认执行 `db diff-refresh-start/status`,再执行完整 `db diff --all --changed-only`,不根据 `tableCount` 跳过异步刷新;只有用户明确要求不分析、不刷新或只看现有结果时才直接读取。只对仍在 `data.toAnalyzeTables` 的非删除表逐表串行恢复一次,最后按同一策略再读取一次完整 diff。
|
|
74
74
|
|
|
75
75
|
显式单批 `analyze-start --tables` 的持久化参数超过 1024 UTF-8 bytes 时,CLI 会在调用 API 前返回 validation error 并提示先运行 `db analyze-batch-plan`。960 是规划安全预算;960 至 1024 bytes 的显式单批仍允许启动。未传 `--tables` 的全量分析不受此保护影响。
|
|
76
76
|
|
|
@@ -101,7 +101,7 @@ rabetbase db analyze-status --id 10157 --plan <traceId> --format compress
|
|
|
101
101
|
| `data.totalElapsedMs` | 从 `firstStartTime` 到 `endTime` 或当前查询时刻的 plan 墙钟耗时;缺少可靠时间戳时为 `null` |
|
|
102
102
|
| `data.hasMultipleAttempts` | `firstStartTime` 与 `startTime` 都有效且不相同时为 `true`,表示服务端开启过后续执行尝试 |
|
|
103
103
|
|
|
104
|
-
`PENDING / RUNNING / RETRYING / CANCELING` 与未知状态都不是终态。不要根据 `failedTables`、`retryCount` 或错误文案推测状态。`PARTIAL_SUCCESS`
|
|
104
|
+
`PENDING / RUNNING / RETRYING / CANCELING` 与未知状态都不是终态。不要根据 `failedTables`、`retryCount` 或错误文案推测状态。`PARTIAL_SUCCESS` 只表示任务已到终态;默认必须异步刷新后复跑 `db diff --all --changed-only` 验证目标差异收敛,只有用户明确要求跳过分析/刷新时才直接读取现有结果,之后才能得出本轮分析完成结论。
|
|
105
105
|
|
|
106
106
|
`analyze-status` 每次只查询一次。轮询时必须继续使用当前任务的同一 `planId`;查询超时、断网或临时 API 失败不等于分析失败,也不得触发新的 `analyze-start`。当前稳定任务状态中没有独立的 `TIMEOUT` 终态。
|
|
107
107
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## 何时用
|
|
6
6
|
|
|
7
7
|
- 已用 `db list` 拿到 `id`,需要比列表更全的字段
|
|
8
|
-
- 读取 `tableCount
|
|
8
|
+
- 读取 `tableCount` 作为连接规模事实;不再用它决定是否先刷新差异结果
|
|
9
9
|
- 需要当前 **`latestAnalysisTraceId`** 查询最新分析状态;取消已知任务时仍使用正在跟踪的原 planId
|
|
10
10
|
|
|
11
11
|
## 命令
|
|
@@ -24,7 +24,7 @@ rabetbase db detail --id 10157 --format compress
|
|
|
24
24
|
|
|
25
25
|
## 参考
|
|
26
26
|
|
|
27
|
-
输出中的 `tableCount`
|
|
27
|
+
输出中的 `tableCount` 是当前连接表数量,仅用于展示和排期。DBAgent 增量分析默认先执行 `db diff-refresh-start/status`,无论该字段大小或是否缺失;只有用户明确要求跳过分析/刷新时才直接读取现有 `db diff`。
|
|
28
28
|
|
|
29
29
|
`datasetDependency.hasDependencies` 表示当前连接是否仍有有效 Dataset 依赖,`activeDatasetCount` 是依赖数量;明细见同级 `datasets`。
|
|
30
30
|
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
## 何时刷新
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
7
|
+
- DBAgent 增量分析工作流默认刷新,无论 `tableCount` 多少或是否缺失。
|
|
8
|
+
- 用户明确要求“实时刷新”或“强制刷新”时执行刷新。
|
|
9
|
+
- 只有用户明确要求“不需要分析”“不刷新”或“只看现有结果”时才跳过,并说明现有差异可能不是最新事实。
|
|
10
10
|
|
|
11
|
-
刷新只影响默认 `db diff` 差异视角;`db diff --view all`
|
|
11
|
+
刷新只影响默认 `db diff` 差异视角;`db diff --view all` 本身是实时全表分页,但在 DBAgent 增量分析工作流中仍默认先完成异步差异刷新,以形成一致、可跟踪的分析流程。
|
|
12
12
|
|
|
13
13
|
## 命令
|
|
14
14
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
| 视角 | 命令 | 服务端语义 |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| 差异表(默认) | `db diff` | 调用 `getDiffTableByPage
|
|
9
|
+
| 差异表(默认) | `db diff` | 调用 `getDiffTableByPage`。服务端可能实时计算或读取最近差异快照;Agent 不根据表数量推断新鲜度。 |
|
|
10
10
|
| 全部表 | `db diff --view all` | 调用实时分页接口,包含 `ALREADY_ANALYZED`,用于查看无差异表或手动选择重新分析。 |
|
|
11
11
|
|
|
12
12
|
`--all` 始终表示“聚合当前视角的全部分页”,不表示“全部表”。需要全部表必须显式传 `--view all`。
|
|
@@ -36,15 +36,12 @@ rabetbase db diff --id 10157 --view all --all --format compress
|
|
|
36
36
|
|
|
37
37
|
## 刷新决策
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
- DBAgent 增量分析工作流默认先按 [`db diff-refresh-start/status`](rabetbase-db-diff-refresh.md) 完成一次异步差异刷新,再读取 `db diff`。
|
|
40
|
+
- 不根据 `tableCount` 的大小或缺失状态跳过刷新。
|
|
41
|
+
- 只有用户明确要求“不需要分析”“不刷新”或“只看现有结果”时才直接读取,并说明结果可能不是最新事实。
|
|
42
|
+
- 用户明确要求“实时刷新/强制刷新”时,同样执行默认异步刷新流程。
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
- `tableCount > 200`:读取前建议按 [`db diff-refresh-start/status`](rabetbase-db-diff-refresh.md) 刷新差异快照。
|
|
43
|
-
- 用户明确要求“实时刷新/强制刷新”:不考虑表数量,执行刷新。
|
|
44
|
-
- 用户明确要求“不刷新/只看现有结果”:直接读取;大库需提示结果可能滞后。
|
|
45
|
-
- `tableCount` 缺失:直接读取并说明新鲜度未知,不要因为未知而隐式发起写任务。
|
|
46
|
-
|
|
47
|
-
`db diff` 是只读命令,绝不隐式启动刷新任务。
|
|
44
|
+
`db diff` 命令自身仍是只读命令,不会在实现内部隐式启动刷新任务;这里要求的是 Agent 在调用 `db diff` 前显式编排 `db diff-refresh-start/status`。
|
|
48
45
|
|
|
49
46
|
## 机器可读摘要
|
|
50
47
|
|
|
@@ -24,7 +24,7 @@ rabetbase doctor check
|
|
|
24
24
|
| Config JSON | 分别检测全局/项目配置文件是否为**合法 JSON**;非法时标红并给出解析错误(常见于尾随逗号、注释等,会导致该侧配置在合并时被忽略) |
|
|
25
25
|
| Merged Config | 合并后的所有配置项(appCode / env / cookie / apiDir 等) |
|
|
26
26
|
| Apps | 多应用模式下的应用列表及各自配置 |
|
|
27
|
-
| API Endpoints |
|
|
27
|
+
| API Endpoints | 最终生效的 region 与六个域名(user / api / runtime / skill / kb / app) |
|
|
28
28
|
| Auth | 登录状态及 cookie 有效性 |
|
|
29
29
|
|
|
30
30
|
## 典型场景
|