@lovrabet/rabetbase-cli 2.5.2 → 2.5.3-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 +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/api/generate-sdk-config-file.d.ts +2 -1
- package/lib/api/generate-sdk-config-file.js +1 -1
- 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.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.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/init.js +1 -1
- 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-restore.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/dataset/user-deleted-field-list.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/table-diff-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/deployment/index.js +1 -1
- package/lib/commands/deployment/sync-all.js +1 -1
- package/lib/commands/deployment/sync-jobs.js +1 -1
- package/lib/commands/deployment/sync-status.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/instant-api-policy/current.js +1 -1
- package/lib/commands/instant-api-policy/index.js +1 -1
- package/lib/commands/instant-api-policy/init.js +1 -1
- package/lib/commands/instant-api-policy/publish.js +1 -1
- package/lib/commands/instant-api-policy/pull.js +1 -1
- package/lib/commands/instant-api-policy/revision.js +1 -1
- package/lib/commands/instant-api-policy/revisions.js +1 -1
- package/lib/commands/instant-api-policy/rollback.js +1 -1
- package/lib/commands/instant-api-policy/shared.js +1 -1
- package/lib/commands/instant-api-policy/validate.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/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.js +1 -1
- 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.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/domain-routing-sync.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- 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.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/rule/get.js +1 -1
- package/lib/commands/rule/index.js +1 -1
- package/lib/commands/rule/list.js +1 -1
- package/lib/commands/rule/set.js +1 -1
- package/lib/commands/rule/shared.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.js +1 -1
- package/lib/config/project-domain-routing.js +1 -1
- package/lib/config/region-config.d.ts +23 -0
- package/lib/config/region-config.js +1 -0
- package/lib/config/schema.d.ts +15 -0
- 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.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.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/routing-profile.js +1 -1
- package/lib/context/app-resolver.d.ts +6 -0
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.d.ts +13 -0
- 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/instant-api-policy/config.js +1 -1
- package/lib/core/kb-search-client.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/page/lr-smart-jsx.d.ts +6 -0
- package/lib/core/page/lr-smart-jsx.js +1 -0
- 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.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.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/supported-flags.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/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.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 +1 -1
- 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.d.ts +2 -8
- 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.d.ts +2 -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 -1
- package/skills/rabetbase/SKILL.md +6 -5
- package/skills/rabetbase/guides/page-development-workflow.md +3 -0
- package/skills/rabetbase/guides/sdk-client-generation.md +5 -5
- package/skills/rabetbase/knowledge/page-schema/LrSmartJsx.md +11 -3
- package/skills/rabetbase/references/rabetbase-api-pull.md +5 -4
- package/skills/rabetbase/references/rabetbase-app-list.md +3 -0
- package/skills/rabetbase/references/rabetbase-bff-list.md +1 -1
- package/skills/rabetbase/references/rabetbase-bff-pull.md +2 -0
- package/skills/rabetbase/references/rabetbase-bff-status.md +2 -0
- package/skills/rabetbase/references/rabetbase-config.md +10 -9
- package/skills/rabetbase/references/rabetbase-doctor.md +2 -2
- package/skills/rabetbase/references/rabetbase-page-push.md +5 -1
- package/skills/rabetbase/references/rabetbase-workspace.md +4 -2
- package/skills/rabetbase.manifest.json +3 -3
- package/templates/generate-api/client.ts.tpl +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 目标:根据 `rabetbase api pull` 返回的数据集事实,生成或更新浏览器子应用的 `src/api/api.ts` 与 `src/api/client.ts`,并保留项目已有的自定义写法。
|
|
4
4
|
>
|
|
5
|
-
> CLI 默认不覆盖 TypeScript。`api pull` 只保证:刷新 `
|
|
5
|
+
> CLI 默认不覆盖 TypeScript。`api pull` 只保证:刷新 `data.files.sdkConfig.path` 指向的应用级 SDK 路由文件、返回 `data.models`,并在文件缺失时写入 Cookie-first 脚手架。已有文件由本指南更新;只有用户明确要求放弃本地定制并完整重建时,才使用 `--force --yes`。
|
|
6
6
|
|
|
7
7
|
## 何时执行
|
|
8
8
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
rabetbase api pull --format compress
|
|
22
22
|
→ 单应用读 data;项目应用清单逐项读 data.apps[]
|
|
23
23
|
→ 读取每项的 models / configName / isDefaultConfig / files / needsAgentMerge
|
|
24
|
-
→ 读已有 api.ts、client.ts
|
|
24
|
+
→ 读已有 api.ts、client.ts 与 files.sdkConfig.path(含 {prefix}-api.ts / {prefix}-client.ts / {prefix}-sdk-config.ts)
|
|
25
25
|
→ 按事实更新 models,保留本地 extras
|
|
26
26
|
→ 不要改已经正确的 createClient({ apiConfigName, ...LOVRABET_SDK_CONFIG })
|
|
27
27
|
```
|
|
@@ -32,8 +32,8 @@ rabetbase api pull --format compress
|
|
|
32
32
|
2. 直接单应用结果使用 `data.models`;项目应用清单结果逐项使用 `data.apps[].models`。不要手写或猜测 `datasetCode`。也可用 `rabetbase api list --format compress` 核对目录,但写文件以 pull 返回的 models 为准。
|
|
33
33
|
3. 先读现有文件再写:
|
|
34
34
|
- 默认单应用:`src/api/api.ts`、`src/api/client.ts`、`src/api/sdk-config.ts`
|
|
35
|
-
- 多应用非 default:`{name}-api.ts` / `{name}-client.ts
|
|
36
|
-
4.
|
|
35
|
+
- 多应用非 default:`{name}-api.ts` / `{name}-client.ts` / `{name}-sdk-config.ts`(以 `data.files.*.path` 为准)
|
|
36
|
+
4. SDK 路由文件由 CLI 维护(`data.files.sdkConfig.action === "refreshed"`),不要往里面写 `cookie` / `accessKey` / `token`。若保留的旧 `{name}-client.ts` 仍导入共享 `./sdk-config`,只把该 import 改为 `./{name}-sdk-config`,其余本地定制保持不变。
|
|
37
37
|
5. 看 `data.needsAgentMerge` 和 `data.files.*.action`,**不要**用已删除的 `wroteScaffold`:
|
|
38
38
|
- `needsAgentMerge === false` 且 `api`/`client` 均为 `created` 或 `overwritten`:脚手架已按当前 `models` 写好,只需检查项目 extras。
|
|
39
39
|
- `needsAgentMerge === true`:至少有一个 TypeScript 文件被 **preserved**。先比较本地配置与返回事实,只在有差异时合并;即使 `client` 刚 `created`,也不能据此跳过对已保留 `api.ts` 的检查。
|
|
@@ -44,7 +44,7 @@ rabetbase api pull --format compress
|
|
|
44
44
|
|
|
45
45
|
浏览器子应用的权威形态与 `templates/projects/sub-app-react-demo/src/api/` 一致。脚手架模板是 `templates/generate-api/*.tpl`,生成结果应对齐 demo,而不是另造一套。
|
|
46
46
|
|
|
47
|
-
### sdk-config.ts(路由,无凭证)
|
|
47
|
+
### sdk-config.ts / {name}-sdk-config.ts(路由,无凭证)
|
|
48
48
|
|
|
49
49
|
```typescript
|
|
50
50
|
/**
|
|
@@ -21,7 +21,13 @@ tags: [jsx, custom-component, page-schema]
|
|
|
21
21
|
|
|
22
22
|
## 机制
|
|
23
23
|
|
|
24
|
-
`render` 只写 `source
|
|
24
|
+
`render` 只写 `source`,不手工写编译后的 `value`。`source` 按 React 组件源码编写,固定使用 `function render(props)`;页面上下文从 `props.env` 读取。Agent 只维护 `source`。
|
|
25
|
+
|
|
26
|
+
页面编辑器与 `rabetbase page push` 都使用平台正式 JSX 编译器把 `source` 包装为运行时函数,并在调用源码组件时注入 `{ env, sdkClient }`。因此:
|
|
27
|
+
|
|
28
|
+
- `props.env` / `props.sdkClient` 是源码 React 组件的 props,不是原始 `render.value` 函数的直接参数
|
|
29
|
+
- 不要根据运行时外层 `function render(env)` 手工拼装 `value`,也不要在源码中改用 `this`
|
|
30
|
+
- 通过 CLI 推送时,缺失或变化的 `value` 会自动生成;编译失败时页面不会更新
|
|
25
31
|
|
|
26
32
|
推荐固定写法:
|
|
27
33
|
|
|
@@ -45,6 +51,7 @@ function render(props) {
|
|
|
45
51
|
|------|------|------|
|
|
46
52
|
| `props.render.type` | 是 | 固定为 `JSFunction` |
|
|
47
53
|
| `props.render.source` | 是 | JSX 源码 |
|
|
54
|
+
| `props._context` | 是 | 页面运行时上下文,固定为 `{ "type": "JSExpression", "value": "this" }`;`rabetbase page push` 会自动补齐或规范化 |
|
|
48
55
|
|
|
49
56
|
### source 可用参数
|
|
50
57
|
|
|
@@ -114,6 +121,7 @@ function render(props) {
|
|
|
114
121
|
|
|
115
122
|
| 要点 | 说明 |
|
|
116
123
|
|------|------|
|
|
117
|
-
|
|
|
118
|
-
| source 中访问上下文 | 使用 `props.env
|
|
124
|
+
| 只需维护 `source` | `value` 由页面编辑器或 `rabetbase page push` 使用平台正式编译器生成 |
|
|
125
|
+
| source 中访问上下文 | 使用 `props.env` / `props.sdkClient`;不要手写编译后的函数参数,不要改用 `this` |
|
|
126
|
+
| `_context` 固定 | 运行时需要页面上下文;CLI 推送时会自动规范为 `JSExpression: this` |
|
|
119
127
|
| `setState` 触发刷新的前提 | 数据源 params 必须绑定 `this.state.xxx` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# api pull
|
|
2
2
|
|
|
3
|
-
拉取当前 App 下所有数据集(Dataset
|
|
3
|
+
拉取当前 App 下所有数据集(Dataset)的元信息,刷新对应 SDK 路由配置,并在 `api.ts` / `client.ts` **缺失时**写入 Cookie-first 脚手架。默认应用使用 `src/api/sdk-config.ts`,非默认应用使用 `<name>-sdk-config.ts`。项目公开 Domain 路由由 [`project domain-routing-sync`](rabetbase-project-domain-routing-sync.md) 独立维护。
|
|
4
4
|
|
|
5
5
|
已有 TypeScript 默认**不会被覆盖**。Agent 必须用返回的 `data.models` 按 [`sdk-client-generation.md`](../guides/sdk-client-generation.md) 更新 `api.ts` / `client.ts`。人类明确要放弃本地定制并重新生成完整脚手架时,可使用 `--force --yes`。
|
|
6
6
|
|
|
@@ -40,7 +40,8 @@ rabetbase api pull --appcode app-order-001 --format compress
|
|
|
40
40
|
多应用模式下:
|
|
41
41
|
- **不加 `--app` / `--appcode`**:遍历已配置应用(默认仅 **项目** `.rabetbase.json` 中的 `apps`;若需包含全局里合并进来的应用,加 **`--global`**)
|
|
42
42
|
- **加 `--app <name>`**:仅拉取指定应用
|
|
43
|
-
- **加 `--appcode <code>`**:反查到对应 app profile
|
|
43
|
+
- **加 `--appcode <code>`**:反查到对应 app profile 时,使用其 `region`、cookie 和 apiDir;没有匹配 profile 时使用顶层国家/地区回退
|
|
44
|
+
- 每个应用请求前都会切换到其有效 `region`,不会沿用上一个应用的官方服务地址
|
|
44
45
|
|
|
45
46
|
## 配置作用域
|
|
46
47
|
|
|
@@ -52,11 +53,11 @@ rabetbase api pull --appcode app-order-001 --format compress
|
|
|
52
53
|
|
|
53
54
|
| 文件 | 行为 |
|
|
54
55
|
|------|------|
|
|
55
|
-
| `sdk-config.ts` |
|
|
56
|
+
| `sdk-config.ts` / `<prefix>-sdk-config.ts` | **每次刷新**。默认应用无前缀,非默认应用使用应用名前缀;只含必要的最终 `runtimeDomain`,不含凭证 |
|
|
56
57
|
| `<prefix>-api.ts` | 文件缺失时写入脚手架(含当前 `models`);已存在时默认跳过,`--force` 时整体替换 |
|
|
57
58
|
| `<prefix>-client.ts` | 文件缺失时写入 Cookie-first `createClient`;已存在时默认跳过,`--force` 时整体替换 |
|
|
58
59
|
|
|
59
|
-
默认 `prefix`
|
|
60
|
+
默认 `prefix` 为空(单应用或默认应用),多应用非 default 应用使用应用名作为 prefix;生成的 `<prefix>-client.ts` 导入同前缀 SDK 路由文件。
|
|
60
61
|
|
|
61
62
|
`project create` 在拷贝空 demo 脚手架后会覆盖写入一次 TypeScript,以便带上真实 models。首次拉取失败时,恢复提示会要求执行 `rabetbase api pull --force --yes`,避免占位脚手架被继续保留。日常 `api pull` 遇到已有 `api.ts` / `client.ts` 时跳过,只刷新 `sdk-config.ts` 并返回 Dataset 事实。
|
|
62
63
|
|
|
@@ -48,6 +48,9 @@ rabetbase app list --remote
|
|
|
48
48
|
| `definedIn` | `global` / `project` / `both`(合并视图下;单边视图下为对应侧) |
|
|
49
49
|
| `isDefault` | 是否为当前解析出的默认应用 |
|
|
50
50
|
| `isCurrent` | 是否为当前激活应用(合并视图) |
|
|
51
|
+
| `region` | profile 中显式保存的国家/地区;未配置时为 `null` |
|
|
52
|
+
| `effectiveRegion` | 当前应用最终使用的国家/地区 |
|
|
53
|
+
| `regionSource` | `app` / `project` / `global` / `default`,表示有效值来源 |
|
|
51
54
|
|
|
52
55
|
**jq 示例**(只取命名应用名):`--format json --jq '.data.items[] | select(.named) | .name'`
|
|
53
56
|
|
|
@@ -33,6 +33,8 @@ rabetbase workspace init --appcode <code>
|
|
|
33
33
|
|
|
34
34
|
CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模型。
|
|
35
35
|
|
|
36
|
+
CLI 新写入或重写配置时不会持久化默认内部路由字段;历史文件仍保持读取兼容。若顶层存在非默认值,而某个应用显式回到默认值,写入时会把非默认值下沉到实际继承它的应用,再省略默认标记,确保配置精简且生效语义不变。
|
|
37
|
+
|
|
36
38
|
## 兼容读取的单应用模式
|
|
37
39
|
|
|
38
40
|
兼容读取的最简配置只需 `appcode` 和 `env`:
|
|
@@ -59,7 +61,6 @@ CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模
|
|
|
59
61
|
```json
|
|
60
62
|
{
|
|
61
63
|
"appcode": "app-xxx",
|
|
62
|
-
"env": "production",
|
|
63
64
|
"locale": "en-US",
|
|
64
65
|
"cookie": "session-cookie-value",
|
|
65
66
|
"accessKey": "ak-xxx",
|
|
@@ -94,20 +95,20 @@ CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模
|
|
|
94
95
|
},
|
|
95
96
|
"product": {
|
|
96
97
|
"appcode": "app-zzzzzzzz",
|
|
97
|
-
"
|
|
98
|
+
"region": "id",
|
|
98
99
|
"apiDir": "./src/api/product"
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
```
|
|
103
104
|
|
|
104
|
-
每个 app profile
|
|
105
|
+
每个 app profile 可单独覆盖普通顶层字段。顶层 `region` 是共享国家/地区回退值,`apps.<name>.region` 优先;因此同一个项目可以同时登记中国大陆与印尼应用。唯一 app 自动激活;两个及以上 app 必须通过 `--app <name>` 临时选择,或用 `defaultApp` 持久选择,CLI 不按 JSON key 顺序猜测。`riskLevel` 是安全例外:默认值为 `write`,全局、项目与 profile 决定基础上限并取最严格值。权限不足时停止执行并请求授权人员处理;Agent 和自动化脚本不得自行修改 `riskLevel`、配置文件、环境变量或尝试提权。
|
|
105
106
|
|
|
106
107
|
管理命令(声明式 flags,非位置参数):
|
|
107
108
|
|
|
108
109
|
```bash
|
|
109
110
|
rabetbase workspace add order --appcode app-order-001 --env daily
|
|
110
|
-
rabetbase workspace add product --appcode app-product-002
|
|
111
|
+
rabetbase workspace add product --appcode app-product-002 --region id
|
|
111
112
|
rabetbase workspace use --app order
|
|
112
113
|
rabetbase app list
|
|
113
114
|
rabetbase workspace remove product --yes
|
|
@@ -120,7 +121,7 @@ rabetbase workspace remove product --yes
|
|
|
120
121
|
| 字段 | 类型 | 默认值 | 说明 |
|
|
121
122
|
|------|------|--------|------|
|
|
122
123
|
| `appcode` | string | — | 顶层单应用兼容字段。新写入优先使用 `apps`。兼容旧名 `app` |
|
|
123
|
-
| `env` | string |
|
|
124
|
+
| `env` | string | — | 历史兼容字段;默认连接不落盘,读取旧配置时仍兼容 |
|
|
124
125
|
| `locale` | string | `"en-US"` | 应用本地化设置(不是 CLI 语言;目前命令尚未消费) |
|
|
125
126
|
| `cookie` | string | — | 内联 session cookie。设置后优先于 `~/.lovrabet/cookie` 文件 |
|
|
126
127
|
| `accessKey` | string | — | Access Key 认证(预留,未来替代 cookie) |
|
|
@@ -146,7 +147,8 @@ rabetbase workspace remove product --yes
|
|
|
146
147
|
| 字段 | 类型 | 说明 |
|
|
147
148
|
|------|------|------|
|
|
148
149
|
| `appcode` | string | **必填**。该应用的 appcode |
|
|
149
|
-
| `
|
|
150
|
+
| `region` | string | 覆盖顶层国家/地区;当前可写 `cn`、`id`。显式 `cn` 会保留,以便覆盖顶层 `id` |
|
|
151
|
+
| `env` | string | 历史兼容字段;默认连接不落盘 |
|
|
150
152
|
| `apiDir` | string | 覆盖顶层 `apiDir` |
|
|
151
153
|
| `cookie` | string | 覆盖顶层 `cookie` |
|
|
152
154
|
| `accessKey` | string | 覆盖顶层 `accessKey` |
|
|
@@ -160,9 +162,9 @@ rabetbase workspace remove product --yes
|
|
|
160
162
|
每个配置项的解析优先级从高到低(`appcode` 不从环境变量自动解析,必须来自 `--appcode` 或配置文件):
|
|
161
163
|
|
|
162
164
|
```
|
|
163
|
-
CLI flag (--appcode, --
|
|
165
|
+
CLI flag (--appcode, --format, --app ...)
|
|
164
166
|
↓
|
|
165
|
-
当前项目 app profile
|
|
167
|
+
当前项目 app profile(包括 `region`)/ 顶层字段
|
|
166
168
|
↓
|
|
167
169
|
环境变量 (RABETBASE_ENV, RABETBASE_FORMAT ...)
|
|
168
170
|
↓
|
|
@@ -243,7 +245,6 @@ rabetbase dataset list --appcode "$RABETBASE_APPCODE"
|
|
|
243
245
|
},
|
|
244
246
|
"product": {
|
|
245
247
|
"appcode": "app-product-002",
|
|
246
|
-
"env": "production",
|
|
247
248
|
"riskLevel": "read"
|
|
248
249
|
}
|
|
249
250
|
}
|
|
@@ -22,9 +22,9 @@ rabetbase doctor check
|
|
|
22
22
|
| Built-in Skill | 目标路径、包版本、Skill 版本、内容状态;不一致时给出 `rabetbase cli-skill install` 修复命令 |
|
|
23
23
|
| Config Files | 全局和项目级配置文件路径 |
|
|
24
24
|
| Config JSON | 分别检测全局/项目配置文件是否为**合法 JSON**;非法时标红并给出解析错误(常见于尾随逗号、注释等,会导致该侧配置在合并时被忽略) |
|
|
25
|
-
| Country/Region Configuration |
|
|
25
|
+
| Country/Region Configuration | 检查项目、全局和各 app profile 的 `region`;显式未知值会标明来源与修复位置 |
|
|
26
26
|
| Merged Config | 合并后的所有配置项(appCode / env / cookie / apiDir 等) |
|
|
27
|
-
| Apps |
|
|
27
|
+
| Apps | 多应用模式下的应用列表及各自显式或继承的 `region` |
|
|
28
28
|
| API Endpoints | 最终生效的 region 与域名(user / api / runtime / skill / kb / app);KB 管理与 search 共用 SmartCode Java origin |
|
|
29
29
|
| Auth | 登录状态及 cookie 有效性 |
|
|
30
30
|
|
|
@@ -31,7 +31,11 @@ rabetbase page push --id 1020286 --dry-run --format json
|
|
|
31
31
|
## 行为说明
|
|
32
32
|
|
|
33
33
|
- 单页模式:校验本地文件、读取 lock、比对远端版本,再调用更新接口
|
|
34
|
-
-
|
|
34
|
+
- 批量模式:先完成远端版本检查与 `LrSmartJsx` 编译准备,再只推送结果 hash 与 lock 不同的页面;无基线时会 fail-fast,提示先执行 `page pull`
|
|
35
|
+
- 遇到 `LrSmartJsx` 时,以 `props.render.source` 为唯一手工维护内容;源码变化、`render.value` 缺失或远端无编译值时,CLI 调用平台正式编译器生成 `value`
|
|
36
|
+
- CLI 会把 `LrSmartJsx.props._context` 规范为 `{ "type": "JSExpression", "value": "this" }`;`source` 组件仍通过 `props.env` / `props.sdkClient` 消费平台注入能力
|
|
37
|
+
- `--dry-run` 同样执行编译校验,但不会更新页面;任一组件编译失败时整页不提交
|
|
38
|
+
- 不要手写或直接修改 `render.value`;当 `source` 未变化但本地 `value` 与远端不一致时,命令会拒绝推送并提示修改 `source`
|
|
35
39
|
- 推送后会再次拉取远端 canonical schema,并覆盖本地文件和 lock,避免本地保留非 canonical 版本
|
|
36
40
|
|
|
37
41
|
## 提示
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
## 命令
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
rabetbase workspace init --appcode <code> [--
|
|
12
|
+
rabetbase workspace init --appcode <code> [--region cn|id]
|
|
13
13
|
rabetbase workspace init --app <name> --appcode <code>
|
|
14
14
|
rabetbase workspace use --app <name>
|
|
15
15
|
rabetbase workspace use --app <name> --appcode <code>
|
|
@@ -23,7 +23,8 @@ rabetbase workspace remove <name> [--global]
|
|
|
23
23
|
|------|------|
|
|
24
24
|
| `--app <name>` | 工作空间里的应用名,如 `crm`、`order` |
|
|
25
25
|
| `--appcode <code>` | 应用 App Code;不知道本地应用名时可直接使用 |
|
|
26
|
-
| `--
|
|
26
|
+
| `--region <region>` | 写入该 app profile 的国家/地区:`cn` / `id` |
|
|
27
|
+
| `--env <env>` | 历史兼容参数;默认内部路由值不会写入 app profile |
|
|
27
28
|
| `--apiDir <dir>` | 写入该 app profile 的 API 目录 |
|
|
28
29
|
| `--defaultFormat <format>` | 写入该 app profile 的默认输出格式 |
|
|
29
30
|
| `--pageSize <n>` | 写入该 app profile 的分页大小 |
|
|
@@ -39,6 +40,7 @@ rabetbase workspace remove <name> [--global]
|
|
|
39
40
|
- `workspace use --app crm`:切换当前目录默认应用;如果 `crm` 只存在于全局配置,会复制非敏感 profile 字段到当前目录。
|
|
40
41
|
- `workspace use --app crm --appcode app-xxx`:直接在当前目录新增或更新 `crm`,并设为默认应用。
|
|
41
42
|
- `workspace add crm --appcode app-xxx`:登记应用 profile(默认写当前项目,`--global` 写全局)。第一个应用不写 `defaultApp`;增加第二个应用时保留原应用为默认。已存在则更新。
|
|
43
|
+
- `region` 省略时继承项目顶层、再继承全局回退;显式传 `--region cn` 或 `--region id` 时只作用于该应用。
|
|
42
44
|
- `workspace remove crm`:移除本地应用 profile。默认按「项目优先、其次全局」定位要删的那一层,`--global` 强制删全局;只剩一个应用时删除冗余的 `defaultApp`,仍有多个应用时才自动切换;若该应用在项目与全局都有定义,只删单侧并在结果里提示另一侧仍存在。
|
|
43
45
|
|
|
44
46
|
`workspace init` / `workspace use` 不会从全局配置复制 `cookie` / `accessKey` 到项目文件。若当前项目文件里原本已有这些字段,更新应用时会保留它们。
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "rabetbase",
|
|
4
4
|
"packageName": "@lovrabet/rabetbase-cli",
|
|
5
|
-
"packageVersion": "2.5.
|
|
6
|
-
"skillVersion": "2.5.
|
|
5
|
+
"packageVersion": "2.5.3-beta.1",
|
|
6
|
+
"skillVersion": "2.5.3-beta.1",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/backend-function.md",
|
|
@@ -140,5 +140,5 @@
|
|
|
140
140
|
"references/rabetbase-user-account.md",
|
|
141
141
|
"references/rabetbase-workspace.md"
|
|
142
142
|
],
|
|
143
|
-
"digest": "
|
|
143
|
+
"digest": "737d15dee0512e879514bb4ab5e657b2e817656ba483dd285f5fbfe59adabc05"
|
|
144
144
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import { createClient, CONFIG_NAMES } from "@lovrabet/sdk";
|
|
11
11
|
import "./{ApiFileName}"; // 导入配置文件,执行 registerModels() 注册
|
|
12
|
-
import { LOVRABET_SDK_CONFIG } from "./
|
|
12
|
+
import { LOVRABET_SDK_CONFIG } from "./{SdkConfigFileName}";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* 主要的客户端实例
|