@lovrabet/rabetbase-cli 2.5.2-beta.7 → 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.
Files changed (348) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.d.ts +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/api/generate-sdk-config-file.d.ts +2 -1
  6. package/lib/api/generate-sdk-config-file.js +1 -1
  7. package/lib/auth/auth-server-ui.js +1 -1
  8. package/lib/auth/auth-server.js +1 -1
  9. package/lib/auth/constant.js +1 -1
  10. package/lib/auth/get-cookie.js +1 -1
  11. package/lib/auth/get-session-user.js +1 -1
  12. package/lib/auth/is-session-valid.js +1 -1
  13. package/lib/auth/login-success-html.js +1 -1
  14. package/lib/auth/logout.js +1 -1
  15. package/lib/cli-flags.js +1 -1
  16. package/lib/cli.js +1 -1
  17. package/lib/commands/api/generate.js +1 -1
  18. package/lib/commands/api/index.js +1 -1
  19. package/lib/commands/api/list.js +1 -1
  20. package/lib/commands/api/pull.js +1 -1
  21. package/lib/commands/api/shared.js +1 -1
  22. package/lib/commands/app/index.js +1 -1
  23. package/lib/commands/app/list.js +1 -1
  24. package/lib/commands/app/members-list.js +1 -1
  25. package/lib/commands/app/remote-directory.js +1 -1
  26. package/lib/commands/app/shared.js +1 -1
  27. package/lib/commands/app-config/delete.js +1 -1
  28. package/lib/commands/app-config/get.js +1 -1
  29. package/lib/commands/app-config/index.js +1 -1
  30. package/lib/commands/app-config/list.js +1 -1
  31. package/lib/commands/app-config/set.js +1 -1
  32. package/lib/commands/app-config/shared.js +1 -1
  33. package/lib/commands/auth/index.js +1 -1
  34. package/lib/commands/bff/create.js +1 -1
  35. package/lib/commands/bff/delete.js +1 -1
  36. package/lib/commands/bff/detail.js +1 -1
  37. package/lib/commands/bff/index.js +1 -1
  38. package/lib/commands/bff/list.js +1 -1
  39. package/lib/commands/bff/pull.js +1 -1
  40. package/lib/commands/bff/push.js +1 -1
  41. package/lib/commands/bff/status.js +1 -1
  42. package/lib/commands/cli-skill/index.js +1 -1
  43. package/lib/commands/cli-update.js +1 -1
  44. package/lib/commands/codegen/index.js +1 -1
  45. package/lib/commands/codegen/sdk.js +1 -1
  46. package/lib/commands/codegen/sql.js +1 -1
  47. package/lib/commands/common/app-registry.js +1 -1
  48. package/lib/commands/common/app-selector.js +1 -1
  49. package/lib/commands/common/async-task.js +1 -1
  50. package/lib/commands/common/dry-run.js +1 -1
  51. package/lib/commands/common/flags.js +1 -1
  52. package/lib/commands/common/local-file.js +1 -1
  53. package/lib/commands/common/validate.js +1 -1
  54. package/lib/commands/config/delete.js +1 -1
  55. package/lib/commands/config/get.js +1 -1
  56. package/lib/commands/config/index.js +1 -1
  57. package/lib/commands/config/init.js +1 -1
  58. package/lib/commands/config/list.js +1 -1
  59. package/lib/commands/config/set.js +1 -1
  60. package/lib/commands/config/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/dataset/business-groups.js +1 -1
  63. package/lib/commands/dataset/capability.js +1 -1
  64. package/lib/commands/dataset/delete.js +1 -1
  65. package/lib/commands/dataset/detail.js +1 -1
  66. package/lib/commands/dataset/extend-update.js +1 -1
  67. package/lib/commands/dataset/field-restore.js +1 -1
  68. package/lib/commands/dataset/field-update.js +1 -1
  69. package/lib/commands/dataset/generate.js +1 -1
  70. package/lib/commands/dataset/index.js +1 -1
  71. package/lib/commands/dataset/list.js +1 -1
  72. package/lib/commands/dataset/operations.js +1 -1
  73. package/lib/commands/dataset/relation-audit.js +1 -1
  74. package/lib/commands/dataset/relation-create.js +1 -1
  75. package/lib/commands/dataset/relation-delete.js +1 -1
  76. package/lib/commands/dataset/relation-shared.js +1 -1
  77. package/lib/commands/dataset/relation-update.js +1 -1
  78. package/lib/commands/dataset/relations.js +1 -1
  79. package/lib/commands/dataset/rename.js +1 -1
  80. package/lib/commands/dataset/restore.js +1 -1
  81. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  82. package/lib/commands/db/analysis-batching.js +1 -1
  83. package/lib/commands/db/analyze-batch-plan.js +1 -1
  84. package/lib/commands/db/analyze-cancel.js +1 -1
  85. package/lib/commands/db/analyze-start.js +1 -1
  86. package/lib/commands/db/analyze-status.js +1 -1
  87. package/lib/commands/db/create.js +1 -1
  88. package/lib/commands/db/delete.js +1 -1
  89. package/lib/commands/db/detail.js +1 -1
  90. package/lib/commands/db/diff-refresh-start.js +1 -1
  91. package/lib/commands/db/diff-refresh-status.js +1 -1
  92. package/lib/commands/db/diff.js +1 -1
  93. package/lib/commands/db/index.js +1 -1
  94. package/lib/commands/db/list.js +1 -1
  95. package/lib/commands/db/shared.js +1 -1
  96. package/lib/commands/db/table-diff-shared.js +1 -1
  97. package/lib/commands/db/tables.js +1 -1
  98. package/lib/commands/db/test.js +1 -1
  99. package/lib/commands/db/update.js +1 -1
  100. package/lib/commands/deployment/index.js +1 -1
  101. package/lib/commands/deployment/sync-all.js +1 -1
  102. package/lib/commands/deployment/sync-jobs.js +1 -1
  103. package/lib/commands/deployment/sync-status.js +1 -1
  104. package/lib/commands/doctor.js +1 -1
  105. package/lib/commands/file/index.js +1 -1
  106. package/lib/commands/instant-api-policy/current.js +1 -1
  107. package/lib/commands/instant-api-policy/index.js +1 -1
  108. package/lib/commands/instant-api-policy/init.js +1 -1
  109. package/lib/commands/instant-api-policy/publish.js +1 -1
  110. package/lib/commands/instant-api-policy/pull.js +1 -1
  111. package/lib/commands/instant-api-policy/revision.js +1 -1
  112. package/lib/commands/instant-api-policy/revisions.js +1 -1
  113. package/lib/commands/instant-api-policy/rollback.js +1 -1
  114. package/lib/commands/instant-api-policy/shared.js +1 -1
  115. package/lib/commands/instant-api-policy/validate.js +1 -1
  116. package/lib/commands/issue/index.js +1 -1
  117. package/lib/commands/issue/nudge.js +1 -1
  118. package/lib/commands/issue/report.js +1 -1
  119. package/lib/commands/issue/shared.js +1 -1
  120. package/lib/commands/kb/create.js +1 -1
  121. package/lib/commands/kb/delete.js +1 -1
  122. package/lib/commands/kb/detail.js +1 -1
  123. package/lib/commands/kb/index.js +1 -1
  124. package/lib/commands/kb/list.js +1 -1
  125. package/lib/commands/kb/search.js +1 -1
  126. package/lib/commands/kb/shared.js +1 -1
  127. package/lib/commands/kb/update.js +1 -1
  128. package/lib/commands/logs/index.js +1 -1
  129. package/lib/commands/menu/asset-update.js +1 -1
  130. package/lib/commands/menu/delete.js +1 -1
  131. package/lib/commands/menu/external-link-create.js +1 -1
  132. package/lib/commands/menu/external-link-update.js +1 -1
  133. package/lib/commands/menu/group-create.js +1 -1
  134. package/lib/commands/menu/group-update.js +1 -1
  135. package/lib/commands/menu/index.js +1 -1
  136. package/lib/commands/menu/list.js +1 -1
  137. package/lib/commands/menu/move.js +1 -1
  138. package/lib/commands/menu/regroup-start.js +1 -1
  139. package/lib/commands/menu/rename.js +1 -1
  140. package/lib/commands/menu/shared/compare-table.js +1 -1
  141. package/lib/commands/menu/shared/delete-plan.js +1 -1
  142. package/lib/commands/menu/shared/facts.js +1 -1
  143. package/lib/commands/menu/shared/index.js +1 -1
  144. package/lib/commands/menu/shared/inquirer.js +1 -1
  145. package/lib/commands/menu/shared/local-pages.js +1 -1
  146. package/lib/commands/menu/shared/logic.js +1 -1
  147. package/lib/commands/menu/shared/mutations.js +1 -1
  148. package/lib/commands/menu/shared/service.js +1 -1
  149. package/lib/commands/menu/shared/sync-core.js +1 -1
  150. package/lib/commands/menu/shared/update-core.js +1 -1
  151. package/lib/commands/menu/shared/valid-url.js +1 -1
  152. package/lib/commands/menu/sync.js +1 -1
  153. package/lib/commands/menu/visibility-update.js +1 -1
  154. package/lib/commands/notification/config-create.js +1 -1
  155. package/lib/commands/notification/config-delete.js +1 -1
  156. package/lib/commands/notification/config-list.js +1 -1
  157. package/lib/commands/notification/config-update.js +1 -1
  158. package/lib/commands/notification/index.js +1 -1
  159. package/lib/commands/notification/shared.js +1 -1
  160. package/lib/commands/ocr/index.js +1 -1
  161. package/lib/commands/page/create.js +1 -1
  162. package/lib/commands/page/custom/detail.js +1 -1
  163. package/lib/commands/page/custom/list.js +1 -1
  164. package/lib/commands/page/custom/publish.js +1 -1
  165. package/lib/commands/page/custom/shared.js +1 -1
  166. package/lib/commands/page/custom/syntax.js +1 -1
  167. package/lib/commands/page/custom/update.js +1 -1
  168. package/lib/commands/page/data-list-status.js +1 -1
  169. package/lib/commands/page/generate-start.js +1 -1
  170. package/lib/commands/page/generate-status.js +1 -1
  171. package/lib/commands/page/index.js +1 -1
  172. package/lib/commands/page/pull.js +1 -1
  173. package/lib/commands/page/push.js +1 -1
  174. package/lib/commands/page/relation-audit.js +1 -1
  175. package/lib/commands/page/restore.js +1 -1
  176. package/lib/commands/page/shared.js +1 -1
  177. package/lib/commands/page/sync.js +1 -1
  178. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  179. package/lib/commands/project/create/format-elapsed.js +1 -1
  180. package/lib/commands/project/create/main.js +1 -1
  181. package/lib/commands/project/create/materialize-project-template.js +1 -1
  182. package/lib/commands/project/create/project-name.js +1 -1
  183. package/lib/commands/project/create/project-template-archive.js +1 -1
  184. package/lib/commands/project/create/project-template-path.js +1 -1
  185. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  186. package/lib/commands/project/create/use-format-code.js +1 -1
  187. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  188. package/lib/commands/project/domain-routing-sync.js +1 -1
  189. package/lib/commands/project/index.js +1 -1
  190. package/lib/commands/project/upgrade.js +1 -1
  191. package/lib/commands/registry.js +1 -1
  192. package/lib/commands/role/delete.js +1 -1
  193. package/lib/commands/role/detail.js +1 -1
  194. package/lib/commands/role/index.js +1 -1
  195. package/lib/commands/role/list.js +1 -1
  196. package/lib/commands/role/shared.js +1 -1
  197. package/lib/commands/role/update.js +1 -1
  198. package/lib/commands/role/user-add.js +1 -1
  199. package/lib/commands/role/user-remove.js +1 -1
  200. package/lib/commands/role/user-resolve.js +1 -1
  201. package/lib/commands/rule/get.js +1 -1
  202. package/lib/commands/rule/index.js +1 -1
  203. package/lib/commands/rule/list.js +1 -1
  204. package/lib/commands/rule/set.js +1 -1
  205. package/lib/commands/rule/shared.js +1 -1
  206. package/lib/commands/run/index.js +1 -1
  207. package/lib/commands/schema.js +1 -1
  208. package/lib/commands/sql/create.js +1 -1
  209. package/lib/commands/sql/delete.js +1 -1
  210. package/lib/commands/sql/detail.js +1 -1
  211. package/lib/commands/sql/exec.js +1 -1
  212. package/lib/commands/sql/index.js +1 -1
  213. package/lib/commands/sql/list.js +1 -1
  214. package/lib/commands/sql/pull.js +1 -1
  215. package/lib/commands/sql/push.js +1 -1
  216. package/lib/commands/sql/shared.js +1 -1
  217. package/lib/commands/sql/status.js +1 -1
  218. package/lib/commands/sql/validate.js +1 -1
  219. package/lib/commands/task/index.js +1 -1
  220. package/lib/commands/task/status.js +1 -1
  221. package/lib/commands/tenant/index.js +1 -1
  222. package/lib/commands/tenant/members-list.js +1 -1
  223. package/lib/commands/tenant/shared.js +1 -1
  224. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  225. package/lib/commands/user-account/index.js +1 -1
  226. package/lib/commands/workspace/add.js +1 -1
  227. package/lib/commands/workspace/index.js +1 -1
  228. package/lib/commands/workspace/remove.js +1 -1
  229. package/lib/config/domain-config.js +1 -1
  230. package/lib/config/project-domain-routing.js +1 -1
  231. package/lib/config/region-config.d.ts +23 -0
  232. package/lib/config/region-config.js +1 -0
  233. package/lib/config/schema.d.ts +15 -0
  234. package/lib/config/schema.js +1 -1
  235. package/lib/constant/cdn.js +1 -1
  236. package/lib/constant/cli.js +1 -1
  237. package/lib/constant/defaults.js +1 -1
  238. package/lib/constant/domain.js +1 -1
  239. package/lib/constant/env.js +1 -1
  240. package/lib/constant/output.js +1 -1
  241. package/lib/constant/paths.js +1 -1
  242. package/lib/constant/region.js +1 -1
  243. package/lib/constant/risk.js +1 -1
  244. package/lib/constant/routing-profile.js +1 -1
  245. package/lib/context/app-resolver.d.ts +6 -0
  246. package/lib/context/app-resolver.js +1 -1
  247. package/lib/context/auth-resolver.js +1 -1
  248. package/lib/context/config-loader.js +1 -1
  249. package/lib/context.d.ts +13 -0
  250. package/lib/context.js +1 -1
  251. package/lib/core/alias-resolver.js +1 -1
  252. package/lib/core/api-client.d.ts +2 -0
  253. package/lib/core/api-client.js +1 -1
  254. package/lib/core/bff/config.js +1 -1
  255. package/lib/core/bff/file-system.js +1 -1
  256. package/lib/core/bff/hash.js +1 -1
  257. package/lib/core/bff/lock.js +1 -1
  258. package/lib/core/bff/utils.js +1 -1
  259. package/lib/core/db-resolver.js +1 -1
  260. package/lib/core/instant-api-policy/config.js +1 -1
  261. package/lib/core/kb-search-client.js +1 -1
  262. package/lib/core/page/file-system.js +1 -1
  263. package/lib/core/page/hash.js +1 -1
  264. package/lib/core/page/lock.js +1 -1
  265. package/lib/core/page/lr-smart-jsx.d.ts +6 -0
  266. package/lib/core/page/lr-smart-jsx.js +1 -0
  267. package/lib/core/sql-index-auditor.js +1 -1
  268. package/lib/core/sql-sync/config.js +1 -1
  269. package/lib/core/sql-sync/file-system.js +1 -1
  270. package/lib/core/sql-sync/hash.js +1 -1
  271. package/lib/core/sql-sync/lock.js +1 -1
  272. package/lib/core/sql-sync/utils.js +1 -1
  273. package/lib/core/sql-validator.js +1 -1
  274. package/lib/errors.js +1 -1
  275. package/lib/framework/build-all-flags.js +1 -1
  276. package/lib/framework/error-output.js +1 -1
  277. package/lib/framework/explicit-yes.js +1 -1
  278. package/lib/framework/flags.js +1 -1
  279. package/lib/framework/help.js +1 -1
  280. package/lib/framework/index.js +1 -1
  281. package/lib/framework/output.js +1 -1
  282. package/lib/framework/response.js +1 -1
  283. package/lib/framework/runner-alias.js +1 -1
  284. package/lib/framework/runner.js +1 -1
  285. package/lib/framework/schema-export.js +1 -1
  286. package/lib/framework/supported-flags.js +1 -1
  287. package/lib/framework/types.js +1 -1
  288. package/lib/generated/build-info.d.ts +4 -4
  289. package/lib/generated/build-info.js +1 -1
  290. package/lib/generated/official-routing.js +1 -1
  291. package/lib/generated/routing-contract.js +1 -1
  292. package/lib/help.js +1 -1
  293. package/lib/postinstall.js +1 -1
  294. package/lib/runtime/confirmation.js +1 -1
  295. package/lib/runtime/event.js +1 -1
  296. package/lib/runtime/index.js +1 -1
  297. package/lib/runtime/queue.js +1 -1
  298. package/lib/runtime/resolve.js +1 -1
  299. package/lib/skills/builtin-skill.js +1 -1
  300. package/lib/skills/main.js +1 -1
  301. package/lib/skills/npx-skills-add.js +1 -1
  302. package/lib/skills/skill-presence.js +1 -1
  303. package/lib/telemetry/cli-command-trace.js +1 -1
  304. package/lib/telemetry/cli-help-trace.js +1 -1
  305. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  306. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  307. package/lib/telemetry/send-cli-trace-log.js +1 -1
  308. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  309. package/lib/types/index.d.ts +1 -1
  310. package/lib/utils/ai_config.js +1 -1
  311. package/lib/utils/apply-jq-filter.js +1 -1
  312. package/lib/utils/cdn-config.js +1 -1
  313. package/lib/utils/check-sdk-version.js +1 -1
  314. package/lib/utils/cli-version-check.js +1 -1
  315. package/lib/utils/cli-version-policy.js +1 -1
  316. package/lib/utils/config.d.ts +2 -8
  317. package/lib/utils/config.js +1 -1
  318. package/lib/utils/entity-with-id.js +1 -1
  319. package/lib/utils/file-utils.js +1 -1
  320. package/lib/utils/guides-cdn.js +1 -1
  321. package/lib/utils/http-client.js +1 -1
  322. package/lib/utils/is-non-interactive.js +1 -1
  323. package/lib/utils/logger.js +1 -1
  324. package/lib/utils/params.js +1 -1
  325. package/lib/utils/platform.js +1 -1
  326. package/lib/utils/sleep.js +1 -1
  327. package/lib/utils/template-replacer.d.ts +2 -1
  328. package/lib/utils/template-replacer.js +1 -1
  329. package/lib/utils/update-notice.js +1 -1
  330. package/lib/utils/version.js +1 -1
  331. package/lib/utils/with-active-cookie.js +1 -1
  332. package/lib/utils/write-cli-side-channel.js +1 -1
  333. package/package.json +1 -1
  334. package/skills/rabetbase/SKILL.md +6 -5
  335. package/skills/rabetbase/guides/page-development-workflow.md +3 -0
  336. package/skills/rabetbase/guides/sdk-client-generation.md +5 -5
  337. package/skills/rabetbase/knowledge/page-schema/LrSmartJsx.md +11 -3
  338. package/skills/rabetbase/references/rabetbase-api-pull.md +5 -4
  339. package/skills/rabetbase/references/rabetbase-app-list.md +3 -0
  340. package/skills/rabetbase/references/rabetbase-bff-list.md +1 -1
  341. package/skills/rabetbase/references/rabetbase-bff-pull.md +2 -0
  342. package/skills/rabetbase/references/rabetbase-bff-status.md +2 -0
  343. package/skills/rabetbase/references/rabetbase-config.md +10 -9
  344. package/skills/rabetbase/references/rabetbase-doctor.md +2 -2
  345. package/skills/rabetbase/references/rabetbase-page-push.md +5 -1
  346. package/skills/rabetbase/references/rabetbase-workspace.md +4 -2
  347. package/skills/rabetbase.manifest.json +3 -3
  348. package/templates/generate-api/client.ts.tpl +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/rabetbase-cli",
3
- "version": "2.5.2-beta.7",
3
+ "version": "2.5.3-beta.1",
4
4
  "description": "Developer CLI for Lovrabet apps, datasets, pages, SQL, Backend Function, database connections, skills, and AI agent workflows.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rabetbase
3
- version: 2.5.2-beta.7
3
+ version: 2.5.3-beta.1
4
4
  description: "Use for Lovrabet development work through the rabetbase CLI: create or bind projects (including creating an AppCode project in the current folder), pull Dataset/API facts and maintain SDK clients, or manage datasets, Instant API access policies, database connections, pages, SQL, Backend Functions, menus, notifications, knowledge bases and kb search, Agent Context Rules, roles, files, OCR, deployment metadata, platform issues, and 钉钉沙箱账号绑定. Trigger when the user mentions rabetbase, Lovrabet development, AppCode, Dataset, Instant API allow/deny/route policy, project creation, api pull/codegen, dblink, page, SQL, BFF, menu, notification, knowledge base, kb search, Agent Context Rules, RULES.md, DATABASE.md, rule list/get/set, role, file/OCR, or related development workflows."
5
5
  metadata:
6
6
  requires:
@@ -22,7 +22,7 @@ metadata:
22
22
  2. **AppCode**:确保 `.rabetbase.json` 中设置了 `apps`(单应用自动选中;多应用再配 `defaultApp`),或兼容读取的顶层 `appcode`,或通过 `--appcode <code>` / `--app <name>` 传入。旧 `.lovrabet.json` 不会自动读取
23
23
  3. **配置文件**:`rabetbase config init` 默认写当前项目 `.rabetbase.json`,显式 `--global` 时写 `~/.rabetbase.json`;默认节点不落冗余 `region`。官方节点模式清理显式和遗留 Domain,独立部署模式清理旧 `region`/Domain 后写入路由配置。完整字段说明见 [`.rabetbase.json` 配置参考](references/rabetbase-config.md)。当前目录应用绑定使用下方 `workspace init`
24
24
  4. **工作目录应用绑定**:当前目录要固定使用某个应用时,使用 `rabetbase workspace init --appcode <code>` 或 `rabetbase workspace use --app <name>`(选型见「app vs workspace 职责边界」)
25
- 5. **多应用场景**:一个项目有多个应用时,先 `rabetbase workspace add <name> --appcode …` 登记各应用,再用 `--app <name>` 临时切换,或 `workspace use --app <name>` 修改当前工作目录默认应用
25
+ 5. **多应用场景**:一个项目有多个应用时,先 `rabetbase workspace add <name> --appcode … [--region cn|id]` 登记各应用;profile 的 `region` 高于顶层国家/地区回退值。再用 `--app <name>` 临时切换,或 `workspace use --app <name>` 修改当前工作目录默认应用
26
26
  6. **平台发现**:当你不知道当前登录账号能访问哪些应用时,先 `rabetbase app list --remote`;它查询平台目录,不修改本地配置
27
27
  7. **本地配置视图**:当你要确认当前项目或全局已经登记了哪些应用、默认应用是谁时,用 `rabetbase app list`。`rabetbase app` 本身只显示帮助,不等价于 `app list`
28
28
  8. **人员目录查询**:查询某租户的人员用 `rabetbase tenant members-list --tenant-code <code>`;查询某应用的人员及其角色归属用 `rabetbase app members-list --appcode <code>`。两者均为只读全量查询,不提供分页、模糊搜索或写入能力。
@@ -84,6 +84,7 @@ metadata:
84
84
  - 遇到“关联数据带不出 / 数据列表页没有生成关联关系 / 页面关联绑定异常”类问题,固定顺序是:`dataset relations` 只读确认关系事实 → `dataset relation-audit` 审计关系事实风险 → `page data-list-status` 判断页面是否存在 → `page relation-audit` 审计页面绑定;若关系事实本身不对,先按 [`dataset relation-create/update/delete`](references/rabetbase-dataset-relation-mutations.md) 做 `--dry-run` 方案并等用户确认;已有页面再 `page sync --dry-run`,无页面走 `page generate-start --dry-run`
85
85
  - `page sync` 只负责同步已有数据列表页,不是数据集关系修复命令,也不能承诺自动修复所有 `wrong_code` / `wrong_label` / `missing`
86
86
  - 本地 schema 开发:[`page pull`](references/rabetbase-page-pull.md) → IDE 编辑 → [`page push`](references/rabetbase-page-push.md)
87
+ - 编辑 `LrSmartJsx` 时只维护 `props.render.source`,不要手写 `render.value` 或把运行时上下文改成自定义函数参数;`page push` 会使用平台正式编译器生成 `value` 并补齐 `_context`
87
88
  - 恢复已删除页面:先读 [`page restore`](references/rabetbase-page-restore.md),CLI 产品类型只使用 `DATA_LIST|CUSTOM`;默认按 ID 自动识别,存在跨类型同 ID 时显式传 `--page-type`
88
89
  - 需要理解 formal schema 组件语义时,再按需阅读 `knowledge/page-schema/` 下的 PageSchema 组件资料;不要把它与 `rabetbase page` 命令 reference 混淆
89
90
  7. **自定义页面工作流**
@@ -162,7 +163,7 @@ metadata:
162
163
  - **不要**在用户未要求时给命令加 `--global`** — 默认行为已是「项目优先」;只有用户明确要改全局配置或不在项目内且意图写全局时才使用。
163
164
  - **`config set`**:在**没有**项目配置文件(当前目录未解析到 `.rabetbase.json`)且**未**传 `--global` 时,CLI **拒绝执行**并提示使用 `--global` 或先 `rabetbase workspace init --appcode <code>`,**不会**静默写入全局。
164
165
  - **`project create`** 生成的新项目 `.rabetbase.json` **只继承**少量全局偏好(如 `cookie` / `locale` / `format` / `riskLevel` 等),**不会**把全局 `apps` / `defaultApp` 带入新项目文件;同时生成浏览器安全的 `src/api/sdk-config.ts` 与 `rabetbase.domain-routing.json`。每个官方节点直接声明自己的第三方库 CDN 与 Lovrabet 自有资源 Domain;项目文件始终包含解析后的完整地址,企业独立部署从共用清单读取显式 CDN。两个生成文件都不下发认证配置;`rabetbase run start|dev|build|preview` 会在执行脚本前刷新公开 Domain 快照,也可用 `project domain-routing-sync` 立即显式刷新;`api pull` 只刷新 SDK/API 文件。
165
- - **`api pull` / `api list`**:默认仅针对**项目** `apps`;需要合并全局已登记应用时加 `--global`(见各命令 reference)。
166
+ - **`api pull` / `api list`**:默认仅针对**项目** `apps`;需要合并全局已登记应用时加 `--global`。多应用遍历会在每个请求前应用该 profile 的有效 `region`;`api pull` 为非默认应用生成独立 `<name>-sdk-config.ts`(见各命令 reference)。
166
167
  - **`app list`**:默认展示**合并**后的全量;`--global` 仅全局、`--project` 仅项目(见 [`rabetbase app list`](references/rabetbase-app-list.md))。
167
168
 
168
169
  ## app vs workspace 职责边界
@@ -369,11 +370,11 @@ const result = await client.bff.execute<DashboardData>({
369
370
  | 审计数据列表页关系绑定 | [`rabetbase page relation-audit --datasetcode <code>`](references/rabetbase-page-relation-binding.md) | 只读检查数据列表页 options 绑定是否匹配 `dataset relations` |
370
371
  | 同步已有数据列表页 | [`rabetbase page sync --datasetcode <code>`](references/rabetbase-page-sync.md) | 数据集字段变更后同步到关联数据列表页 |
371
372
  | 拉取数据列表页 schema 到本地 | [`rabetbase page pull --id <pageId>`](references/rabetbase-page-pull.md) | 写入 `.rabetbase/page/<appCode>/`,进入本地编辑工作流 |
372
- | 推送本地数据列表页 schema | [`rabetbase page push --id <pageId>`](references/rabetbase-page-push.md) | 推送后自动回拉 canonical schema 覆盖本地 |
373
+ | 推送本地数据列表页 schema | [`rabetbase page push --id <pageId>`](references/rabetbase-page-push.md) | `LrSmartJsx` 只维护 `render.source`,CLI 写前生成 `render.value`;推送后自动回拉 canonical schema 覆盖本地 |
373
374
  | 恢复已删除页面 | [`rabetbase page restore --id <pageId>`](references/rabetbase-page-restore.md) | 支持 `DATA_LIST|CUSTOM` 自动识别;跨类型同 ID 时显式传 `--page-type` |
374
375
  | 数据库连接(dblink)/ 测连 / 结构分析 | [`rabetbase db list`](references/rabetbase-db-list.md) 起 | **`id`**、**trace/plan id** 与“终态 + 复跑 diff”完成口径见 [database-connection-workflow.md](guides/database-connection-workflow.md);各子命令见 `references/rabetbase-db-*.md` |
375
376
  | 独立部署应用范围补偿同步 | [`rabetbase deployment sync-all`](references/rabetbase-deployment-sync-all.md) | 管理员首次初始化、历史回填或故障恢复时使用;`write`,只提交 appCode;在停止编辑的安静窗口执行,保存 jobId 后查询状态,结果未知时用 `sync-jobs` 恢复任务事实,不自动重提;不是精确镜像 |
376
- | 生成 / 更新 API 客户端代码 | [`rabetbase api pull`](references/rabetbase-api-pull.md) → [`sdk-client-generation.md`](guides/sdk-client-generation.md) | `api pull` 拉 Dataset 事实并刷新 `sdk-config.ts`;已有 `api.ts`/`client.ts` 按 guide 合并更新 |
377
+ | 生成 / 更新 API 客户端代码 | [`rabetbase api pull`](references/rabetbase-api-pull.md) → [`sdk-client-generation.md`](guides/sdk-client-generation.md) | `api pull` 拉 Dataset 事实并刷新匹配应用的 SDK 路由文件;已有 `api.ts`/`client.ts` 按 guide 合并更新 |
377
378
  | 查看生成的 API 模型 | [`rabetbase api list`](references/rabetbase-api-list.md) | 列出已生成的数据模型 |
378
379
  | 查看现有 SQL | [`rabetbase sql list --name "xxx"`](references/rabetbase-sql-list.md) | 分页,按名称过滤;默认查当前决议到的单个应用 |
379
380
  | 查看 SQL 详情 | [`rabetbase sql detail --sqlcode xxx`](references/rabetbase-sql-detail.md) | 含完整 SQL 内容和参数定义 |
@@ -113,6 +113,8 @@ rabetbase page pull --datasetcode <datasetCode> --version-tag <versionTag> --for
113
113
  1. 先 `pull` 建立基线,不要手工从零伪造页面文件
114
114
  2. 如需理解 PageSchema 组件语义,再按需查看 `knowledge/page-schema/`;那是组件知识,不是 CLI 命令 reference
115
115
 
116
+ 若页面包含 `LrSmartJsx`,只编辑 `props.render.source`。不要手写 `render.value`,也不要把平台渲染函数的内部参数模型复制进源码;`page push` 会调用平台正式编译器生成 `value`,补齐 `_context`,并在编译失败时阻止页面更新。
117
+
116
118
  ### 6. 推送前先做 `push --dry-run`
117
119
 
118
120
  真实推送前,先执行 [`page push`](../references/rabetbase-page-push.md) 的预演:
@@ -127,6 +129,7 @@ rabetbase page push --datasetcode <datasetCode> --version-tag <tag> --dry-run --
127
129
  - 本地是否存在基线
128
130
  - 远端页面版本是否已变化
129
131
  - 批量模式下目标页面组是否正确
132
+ - `LrSmartJsx.render.source` 是否能被平台正式编译器成功编译
130
133
 
131
134
  若命令提示先重新 `pull`,不要盲推覆盖。
132
135
 
@@ -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` 只保证:刷新 `sdk-config.ts`、返回 `data.models`,并在文件缺失时写入 Cookie-first 脚手架。已有文件由本指南更新;只有用户明确要求放弃本地定制并完整重建时,才使用 `--force --yes`。
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、sdk-config.ts(含 {prefix}-api.ts / {prefix}-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`(`data.files.api.path` / `data.files.client.path`)
36
- 4. `sdk-config.ts` 由 CLI 维护(`data.files.sdkConfig.action === "refreshed"`),不要往里面写 `cookie` / `accessKey` / `token`。
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`,不写编译后的 `value`。`source` 按 React 组件源码编写,固定使用 `function render(props)`;页面上下文从 `props.env` 读取。Agent 只维护 `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
- | 只需提供 `source` | `value` 由系统自动生成 |
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)的元信息,刷新 `src/api/sdk-config.ts`,并在 `api.ts` / `client.ts` **缺失时**写入 Cookie-first 脚手架。项目公开 Domain 路由由 [`project domain-routing-sync`](rabetbase-project-domain-routing-sync.md) 独立维护。
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,使用其 cookie/env/apiDir
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` | **每次刷新**。只含必要的最终 `runtimeDomain`,不含凭证 |
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` 为空(单应用),多应用非 default 应用使用应用名作为 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
 
@@ -38,7 +38,7 @@ rabetbase bff list --appcode app-xxxxxxxx
38
38
 
39
39
  ## 输出
40
40
 
41
- 默认返回精简列表(id, functionName, description, scriptType)。`--verbose` 返回完整对象。
41
+ CLI 自动聚合服务端全部分页。默认返回精简列表(id, functionName, description, scriptType)。`--verbose` 返回完整对象。
42
42
 
43
43
  ## Backend Function 脚本类型
44
44
 
@@ -29,6 +29,8 @@ rabetbase bff pull --type HOOK --force --format json
29
29
 
30
30
  `--dry-run` 时返回预览对象,包含远端脚本、目标 `filePath` 和预期状态(如 `would_pull` / `conflict`)。
31
31
 
32
+ 远端脚本列表会自动聚合服务端全部分页;不会只同步第一页。
33
+
32
34
  ## 提示
33
35
 
34
36
  - 默认会保护本地未同步改动,冲突时进入 `skipped: local unsynced changes`
@@ -23,6 +23,8 @@ rabetbase bff status --remote --format json
23
23
  - `unchanged`:本地与 lock 一致
24
24
  - `remoteOnly`:仅远端存在(需 `--remote`)
25
25
 
26
+ 启用 `--remote` 时,CLI 会自动聚合远端 Backend Function 的全部分页后再计算 `remoteOnly`。
27
+
26
28
  ## 提示
27
29
 
28
30
  - `push` 前先看 `status`
@@ -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
- "env": "production",
98
+ "region": "id",
98
99
  "apiDir": "./src/api/product"
99
100
  }
100
101
  }
101
102
  }
102
103
  ```
103
104
 
104
- 每个 app profile 可单独覆盖普通顶层字段。唯一 app 自动激活;两个及以上 app 必须通过 `--app <name>` 临时选择,或用 `defaultApp` 持久选择,CLI 不按 JSON key 顺序猜测。`riskLevel` 是安全例外:默认值为 `write`,全局、项目与 profile 决定基础上限并取最严格值。权限不足时停止执行并请求授权人员处理;Agent 和自动化脚本不得自行修改 `riskLevel`、配置文件、环境变量或尝试提权。
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 | `"production"` | 环境。可选值:`production`、`daily`(配置文件若仍为旧值 `online`,加载时会规范为 `production`) |
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
- | `env` | string | 覆盖顶层 `env` |
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, --env, --format, --app ...)
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 | 检查项目与全局 `region`;显式未知值会标明来源,并给出对应作用域的 `config delete region` 修复命令 |
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
- - 批量模式:只推送本地 hash 有变更的页面;无基线时会 fail-fast,提示先执行 `page pull`
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> [--env daily|production]
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
- | `--env <env>` | 写入该 app profile 的环境:`daily` / `production` |
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.2-beta.7",
6
- "skillVersion": "2.5.2-beta.7",
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": "c398ae461dd9b549c11a2cde8ebf8848beb3a93a478ba765d00b8ebfdbbe77aa"
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 "./sdk-config";
12
+ import { LOVRABET_SDK_CONFIG } from "./{SdkConfigFileName}";
13
13
 
14
14
  /**
15
15
  * 主要的客户端实例