@lovrabet/rabetbase-cli 2.3.16-beta.7 → 2.4.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 (435) hide show
  1. package/README.md +4 -10
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/index.js +1 -1
  21. package/lib/commands/app/list.js +1 -1
  22. package/lib/commands/app/members-list.js +1 -1
  23. package/lib/commands/app/remote-directory.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app-config/delete.js +1 -1
  26. package/lib/commands/app-config/get.js +1 -1
  27. package/lib/commands/app-config/index.js +1 -1
  28. package/lib/commands/app-config/list.js +1 -1
  29. package/lib/commands/app-config/set.js +1 -1
  30. package/lib/commands/app-config/shared.js +1 -1
  31. package/lib/commands/auth/index.js +1 -1
  32. package/lib/commands/bff/create.js +1 -1
  33. package/lib/commands/bff/delete.js +1 -1
  34. package/lib/commands/bff/detail.js +1 -1
  35. package/lib/commands/bff/index.js +1 -1
  36. package/lib/commands/bff/list.js +1 -1
  37. package/lib/commands/bff/pull.js +1 -1
  38. package/lib/commands/bff/push.js +1 -1
  39. package/lib/commands/bff/status.js +1 -1
  40. package/lib/commands/cli-skill/index.js +1 -1
  41. package/lib/commands/cli-update.js +1 -1
  42. package/lib/commands/codegen/index.js +1 -1
  43. package/lib/commands/codegen/sdk.js +1 -1
  44. package/lib/commands/codegen/sql.js +1 -1
  45. package/lib/commands/common/app-registry.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/async-task.js +1 -1
  48. package/lib/commands/common/dry-run.js +1 -1
  49. package/lib/commands/common/flags.js +1 -1
  50. package/lib/commands/common/local-file.js +1 -1
  51. package/lib/commands/common/validate.js +1 -1
  52. package/lib/commands/config/get.js +1 -1
  53. package/lib/commands/config/index.js +1 -1
  54. package/lib/commands/config/list.js +1 -1
  55. package/lib/commands/config/set.js +1 -1
  56. package/lib/commands/config/shared.js +1 -1
  57. package/lib/commands/data/filter.js +1 -1
  58. package/lib/commands/data/getOne.js +1 -1
  59. package/lib/commands/data/index.js +1 -1
  60. package/lib/commands/data/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/dataset/capability.js +1 -1
  63. package/lib/commands/dataset/delete.js +1 -1
  64. package/lib/commands/dataset/detail.js +1 -1
  65. package/lib/commands/dataset/extend-update.js +1 -1
  66. package/lib/commands/dataset/field-update.js +1 -1
  67. package/lib/commands/dataset/generate.js +1 -1
  68. package/lib/commands/dataset/index.js +1 -1
  69. package/lib/commands/dataset/list.js +1 -1
  70. package/lib/commands/dataset/operations.js +1 -1
  71. package/lib/commands/dataset/relation-audit.js +1 -1
  72. package/lib/commands/dataset/relation-create.js +1 -1
  73. package/lib/commands/dataset/relation-delete.js +1 -1
  74. package/lib/commands/dataset/relation-shared.js +1 -1
  75. package/lib/commands/dataset/relation-update.js +1 -1
  76. package/lib/commands/dataset/relations.js +1 -1
  77. package/lib/commands/dataset/rename.js +1 -1
  78. package/lib/commands/dataset/restore.js +1 -1
  79. package/lib/commands/db/analysis-batching.js +1 -1
  80. package/lib/commands/db/analyze-batch-plan.js +1 -1
  81. package/lib/commands/db/analyze-cancel.js +1 -1
  82. package/lib/commands/db/analyze-start.js +1 -1
  83. package/lib/commands/db/analyze-status.js +1 -1
  84. package/lib/commands/db/create.js +1 -1
  85. package/lib/commands/db/delete.js +1 -1
  86. package/lib/commands/db/detail.js +1 -1
  87. package/lib/commands/db/diff.js +1 -1
  88. package/lib/commands/db/index.js +1 -1
  89. package/lib/commands/db/list.js +1 -1
  90. package/lib/commands/db/shared.js +1 -1
  91. package/lib/commands/db/tables.js +1 -1
  92. package/lib/commands/db/test.js +1 -1
  93. package/lib/commands/db/update.js +1 -1
  94. package/lib/commands/doctor.js +1 -1
  95. package/lib/commands/file/index.js +1 -1
  96. package/lib/commands/init/index.js +1 -1
  97. package/lib/commands/issue/index.js +1 -1
  98. package/lib/commands/issue/nudge.js +1 -1
  99. package/lib/commands/issue/report.js +1 -1
  100. package/lib/commands/issue/shared.js +1 -1
  101. package/lib/commands/kb/create.js +1 -1
  102. package/lib/commands/kb/delete.js +1 -1
  103. package/lib/commands/kb/detail.js +1 -1
  104. package/lib/commands/kb/index.js +1 -1
  105. package/lib/commands/kb/list.js +1 -1
  106. package/lib/commands/kb/shared.js +1 -1
  107. package/lib/commands/kb/update.js +1 -1
  108. package/lib/commands/logs/index.js +1 -1
  109. package/lib/commands/menu/asset-update.js +1 -1
  110. package/lib/commands/menu/delete.js +1 -1
  111. package/lib/commands/menu/external-link-create.js +1 -1
  112. package/lib/commands/menu/external-link-update.js +1 -1
  113. package/lib/commands/menu/group-create.js +1 -1
  114. package/lib/commands/menu/group-update.js +1 -1
  115. package/lib/commands/menu/index.js +1 -1
  116. package/lib/commands/menu/list.js +1 -1
  117. package/lib/commands/menu/move.js +1 -1
  118. package/lib/commands/menu/regroup-start.js +1 -1
  119. package/lib/commands/menu/rename.js +1 -1
  120. package/lib/commands/menu/shared/compare-table.js +1 -1
  121. package/lib/commands/menu/shared/delete-plan.js +1 -1
  122. package/lib/commands/menu/shared/facts.js +1 -1
  123. package/lib/commands/menu/shared/index.js +1 -1
  124. package/lib/commands/menu/shared/inquirer.js +1 -1
  125. package/lib/commands/menu/shared/local-pages.js +1 -1
  126. package/lib/commands/menu/shared/logic.js +1 -1
  127. package/lib/commands/menu/shared/mutations.js +1 -1
  128. package/lib/commands/menu/shared/service.js +1 -1
  129. package/lib/commands/menu/shared/sync-core.js +1 -1
  130. package/lib/commands/menu/shared/update-core.js +1 -1
  131. package/lib/commands/menu/shared/valid-url.js +1 -1
  132. package/lib/commands/menu/sync.js +1 -1
  133. package/lib/commands/notification/config-list.js +1 -1
  134. package/lib/commands/notification/index.js +1 -1
  135. package/lib/commands/ocr/index.js +1 -1
  136. package/lib/commands/page/generate-start.js +1 -1
  137. package/lib/commands/page/generate-status.js +1 -1
  138. package/lib/commands/page/index.js +1 -1
  139. package/lib/commands/page/pull.js +1 -1
  140. package/lib/commands/page/push.js +1 -1
  141. package/lib/commands/page/react/create.d.ts +2 -0
  142. package/lib/commands/page/react/create.js +1 -0
  143. package/lib/commands/page/react/detail.d.ts +2 -0
  144. package/lib/commands/page/react/detail.js +1 -0
  145. package/lib/commands/page/react/list.d.ts +2 -0
  146. package/lib/commands/page/react/list.js +1 -0
  147. package/lib/commands/page/react/publish.d.ts +2 -0
  148. package/lib/commands/page/react/publish.js +1 -0
  149. package/lib/commands/page/react/shared.d.ts +78 -0
  150. package/lib/commands/page/react/shared.js +1 -0
  151. package/lib/commands/page/react/syntax.d.ts +18 -0
  152. package/lib/commands/page/react/syntax.js +1 -0
  153. package/lib/commands/page/react/template.d.ts +8 -0
  154. package/lib/commands/page/react/template.js +1 -0
  155. package/lib/commands/page/react/update.d.ts +2 -0
  156. package/lib/commands/page/react/update.js +1 -0
  157. package/lib/commands/page/relation-audit.js +1 -1
  158. package/lib/commands/page/restore.js +1 -1
  159. package/lib/commands/page/shared.d.ts +1 -0
  160. package/lib/commands/page/shared.js +1 -1
  161. package/lib/commands/page/standard-page-status.js +1 -1
  162. package/lib/commands/page/sync.js +1 -1
  163. package/lib/commands/permit/index.js +1 -1
  164. package/lib/commands/permit/page-get.js +1 -1
  165. package/lib/commands/permit/page-set.js +1 -1
  166. package/lib/commands/permit/role-apis-set.js +1 -1
  167. package/lib/commands/permit/role-menus-set.js +1 -1
  168. package/lib/commands/permit/role-menus.js +1 -1
  169. package/lib/commands/permit/shared.js +1 -1
  170. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  171. package/lib/commands/project/create/format-elapsed.js +1 -1
  172. package/lib/commands/project/create/main.js +1 -1
  173. package/lib/commands/project/create/non-interactive.js +1 -1
  174. package/lib/commands/project/create/project-template-path.js +1 -1
  175. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  176. package/lib/commands/project/create/use-format-code.js +1 -1
  177. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  178. package/lib/commands/project/index.js +1 -1
  179. package/lib/commands/project/upgrade.js +1 -1
  180. package/lib/commands/registry.js +1 -1
  181. package/lib/commands/role/create.js +1 -1
  182. package/lib/commands/role/delete.js +1 -1
  183. package/lib/commands/role/detail.js +1 -1
  184. package/lib/commands/role/index.js +1 -1
  185. package/lib/commands/role/list.js +1 -1
  186. package/lib/commands/role/shared.js +1 -1
  187. package/lib/commands/role/update.js +1 -1
  188. package/lib/commands/role/user-add.js +1 -1
  189. package/lib/commands/role/user-remove.js +1 -1
  190. package/lib/commands/role/user-resolve.js +1 -1
  191. package/lib/commands/run/index.js +1 -1
  192. package/lib/commands/schema.js +1 -1
  193. package/lib/commands/sql/create.js +1 -1
  194. package/lib/commands/sql/delete.js +1 -1
  195. package/lib/commands/sql/detail.js +1 -1
  196. package/lib/commands/sql/exec.js +1 -1
  197. package/lib/commands/sql/index.js +1 -1
  198. package/lib/commands/sql/list.js +1 -1
  199. package/lib/commands/sql/pull.js +1 -1
  200. package/lib/commands/sql/push.js +1 -1
  201. package/lib/commands/sql/shared.js +1 -1
  202. package/lib/commands/sql/status.js +1 -1
  203. package/lib/commands/sql/validate.js +1 -1
  204. package/lib/commands/task/index.js +1 -1
  205. package/lib/commands/task/status.js +1 -1
  206. package/lib/commands/tenant/index.js +1 -1
  207. package/lib/commands/tenant/members-list.js +1 -1
  208. package/lib/commands/tenant/shared.js +1 -1
  209. package/lib/commands/user-account/dingding-sandbox-bind.d.ts +2 -0
  210. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -0
  211. package/lib/commands/user-account/index.d.ts +2 -0
  212. package/lib/commands/user-account/index.js +1 -0
  213. package/lib/commands/workspace/add.js +1 -1
  214. package/lib/commands/workspace/index.js +1 -1
  215. package/lib/commands/workspace/remove.js +1 -1
  216. package/lib/config/schema.js +1 -1
  217. package/lib/constant/cdn.js +1 -1
  218. package/lib/constant/cli.js +1 -1
  219. package/lib/constant/defaults.js +1 -1
  220. package/lib/constant/domain.js +1 -1
  221. package/lib/constant/env.js +1 -1
  222. package/lib/constant/output.js +1 -1
  223. package/lib/constant/paths.js +1 -1
  224. package/lib/constant/risk.js +1 -1
  225. package/lib/context/app-resolver.js +1 -1
  226. package/lib/context/auth-resolver.js +1 -1
  227. package/lib/context/config-loader.js +1 -1
  228. package/lib/context.js +1 -1
  229. package/lib/core/alias-resolver.js +1 -1
  230. package/lib/core/api-client.d.ts +117 -0
  231. package/lib/core/api-client.js +1 -1
  232. package/lib/core/bff/config.js +1 -1
  233. package/lib/core/bff/file-system.js +1 -1
  234. package/lib/core/bff/hash.js +1 -1
  235. package/lib/core/bff/lock.js +1 -1
  236. package/lib/core/bff/utils.js +1 -1
  237. package/lib/core/db-resolver.js +1 -1
  238. package/lib/core/page/file-system.js +1 -1
  239. package/lib/core/page/hash.js +1 -1
  240. package/lib/core/page/lock.js +1 -1
  241. package/lib/core/sql-index-auditor.js +1 -1
  242. package/lib/core/sql-sync/config.js +1 -1
  243. package/lib/core/sql-sync/file-system.js +1 -1
  244. package/lib/core/sql-sync/hash.js +1 -1
  245. package/lib/core/sql-sync/lock.js +1 -1
  246. package/lib/core/sql-sync/utils.js +1 -1
  247. package/lib/core/sql-validator.js +1 -1
  248. package/lib/errors.js +1 -1
  249. package/lib/framework/build-all-flags.js +1 -1
  250. package/lib/framework/error-output.js +1 -1
  251. package/lib/framework/explicit-yes.js +1 -1
  252. package/lib/framework/flags.js +1 -1
  253. package/lib/framework/help.js +1 -1
  254. package/lib/framework/index.js +1 -1
  255. package/lib/framework/output.js +1 -1
  256. package/lib/framework/response.js +1 -1
  257. package/lib/framework/runner-alias.js +1 -1
  258. package/lib/framework/runner.js +1 -1
  259. package/lib/framework/schema-export.js +1 -1
  260. package/lib/framework/types.js +1 -1
  261. package/lib/generated/build-info.d.ts +4 -4
  262. package/lib/generated/build-info.js +1 -1
  263. package/lib/help.js +1 -1
  264. package/lib/postinstall.d.ts +3 -0
  265. package/lib/postinstall.js +1 -0
  266. package/lib/runtime/confirmation.js +1 -1
  267. package/lib/runtime/event.js +1 -1
  268. package/lib/runtime/index.js +1 -1
  269. package/lib/runtime/queue.js +1 -1
  270. package/lib/runtime/resolve.js +1 -1
  271. package/lib/skills/builtin-skill.d.ts +37 -0
  272. package/lib/skills/builtin-skill.js +1 -0
  273. package/lib/skills/main.js +1 -1
  274. package/lib/skills/npx-skills-add.d.ts +4 -2
  275. package/lib/skills/npx-skills-add.js +1 -1
  276. package/lib/skills/skill-presence.js +1 -1
  277. package/lib/telemetry/cli-command-trace.js +1 -1
  278. package/lib/telemetry/cli-help-trace.js +1 -1
  279. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  280. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  281. package/lib/telemetry/send-cli-trace-log.js +1 -1
  282. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  283. package/lib/utils/ai_config.js +1 -1
  284. package/lib/utils/apply-jq-filter.js +1 -1
  285. package/lib/utils/cdn-config.js +1 -1
  286. package/lib/utils/check-sdk-version.js +1 -1
  287. package/lib/utils/cli-version-check.js +1 -1
  288. package/lib/utils/cli-version-policy.js +1 -1
  289. package/lib/utils/config.js +1 -1
  290. package/lib/utils/copy-directory.js +1 -1
  291. package/lib/utils/entity-with-id.js +1 -1
  292. package/lib/utils/file-utils.js +1 -1
  293. package/lib/utils/guides-cdn.js +1 -1
  294. package/lib/utils/http-client.js +1 -1
  295. package/lib/utils/is-non-interactive.js +1 -1
  296. package/lib/utils/logger.js +1 -1
  297. package/lib/utils/params.js +1 -1
  298. package/lib/utils/platform.js +1 -1
  299. package/lib/utils/rules-cdn.js +1 -1
  300. package/lib/utils/sleep.js +1 -1
  301. package/lib/utils/template-replacer.js +1 -1
  302. package/lib/utils/update-notice.js +1 -1
  303. package/lib/utils/version.js +1 -1
  304. package/lib/utils/with-active-cookie.js +1 -1
  305. package/lib/utils/write-cli-side-channel.js +1 -1
  306. package/package.json +9 -3
  307. package/scripts/postinstall.mjs +24 -0
  308. package/skills/rabetbase/SKILL.md +493 -0
  309. package/skills/rabetbase/guides/backend-function.md +835 -0
  310. package/skills/rabetbase/guides/best-practices.md +137 -0
  311. package/skills/rabetbase/guides/bff-creation-workflow.md +148 -0
  312. package/skills/rabetbase/guides/conflict-detection.md +119 -0
  313. package/skills/rabetbase/guides/data-api-guidelines.md +414 -0
  314. package/skills/rabetbase/guides/database-connection-workflow.md +169 -0
  315. package/skills/rabetbase/guides/frontend-development.md +179 -0
  316. package/skills/rabetbase/guides/legacy-application-blueprint-workflow.md +495 -0
  317. package/skills/rabetbase/guides/menu-anomaly-manual-cleanup.md +137 -0
  318. package/skills/rabetbase/guides/page-development-workflow.md +187 -0
  319. package/skills/rabetbase/guides/react-custom-page-workflow.md +184 -0
  320. package/skills/rabetbase/guides/role-permit-workflow.md +127 -0
  321. package/skills/rabetbase/guides/sql-creation-workflow.md +173 -0
  322. package/skills/rabetbase/guides/sql-mybatis.md +126 -0
  323. package/skills/rabetbase/guides/troubleshooting.md +67 -0
  324. package/skills/rabetbase/guides/typescript-sdk.md +227 -0
  325. package/skills/rabetbase/knowledge/page-schema/LrSmartCreate.md +367 -0
  326. package/skills/rabetbase/knowledge/page-schema/LrSmartDetail.md +153 -0
  327. package/skills/rabetbase/knowledge/page-schema/LrSmartEcharts.md +291 -0
  328. package/skills/rabetbase/knowledge/page-schema/LrSmartFilter.md +478 -0
  329. package/skills/rabetbase/knowledge/page-schema/LrSmartJsx.md +119 -0
  330. package/skills/rabetbase/knowledge/page-schema/LrSmartStatistic.md +223 -0
  331. package/skills/rabetbase/knowledge/page-schema/LrSmartTable.md +632 -0
  332. package/skills/rabetbase/knowledge/page-schema/YtPage.md +172 -0
  333. package/skills/rabetbase/knowledge/page-schema/dataset-relations.md +126 -0
  334. package/skills/rabetbase/knowledge/page-schema/external-resources-usage.md +232 -0
  335. package/skills/rabetbase/knowledge/page-schema/field-components.md +312 -0
  336. package/skills/rabetbase/knowledge/page-schema/syntax-reference.md +278 -0
  337. package/skills/rabetbase/knowledge/react-page/components.md +225 -0
  338. package/skills/rabetbase/knowledge/react-page/generation-standards.md +385 -0
  339. package/skills/rabetbase/references/rabetbase-api-list.md +58 -0
  340. package/skills/rabetbase/references/rabetbase-api-pull.md +82 -0
  341. package/skills/rabetbase/references/rabetbase-app-config.md +95 -0
  342. package/skills/rabetbase/references/rabetbase-app-list.md +79 -0
  343. package/skills/rabetbase/references/rabetbase-app-members-list.md +64 -0
  344. package/skills/rabetbase/references/rabetbase-auth-login.md +53 -0
  345. package/skills/rabetbase/references/rabetbase-auth-logout.md +29 -0
  346. package/skills/rabetbase/references/rabetbase-bff-create.md +59 -0
  347. package/skills/rabetbase/references/rabetbase-bff-delete.md +42 -0
  348. package/skills/rabetbase/references/rabetbase-bff-detail.md +38 -0
  349. package/skills/rabetbase/references/rabetbase-bff-list.md +61 -0
  350. package/skills/rabetbase/references/rabetbase-bff-pull.md +42 -0
  351. package/skills/rabetbase/references/rabetbase-bff-push.md +65 -0
  352. package/skills/rabetbase/references/rabetbase-bff-save.md +63 -0
  353. package/skills/rabetbase/references/rabetbase-bff-status.md +37 -0
  354. package/skills/rabetbase/references/rabetbase-cli-skill-install.md +42 -0
  355. package/skills/rabetbase/references/rabetbase-codegen-sdk.md +35 -0
  356. package/skills/rabetbase/references/rabetbase-codegen-sql.md +33 -0
  357. package/skills/rabetbase/references/rabetbase-config.md +296 -0
  358. package/skills/rabetbase/references/rabetbase-dataset-business-group-update.md +84 -0
  359. package/skills/rabetbase/references/rabetbase-dataset-delete.md +54 -0
  360. package/skills/rabetbase/references/rabetbase-dataset-detail.md +106 -0
  361. package/skills/rabetbase/references/rabetbase-dataset-extend-update.md +70 -0
  362. package/skills/rabetbase/references/rabetbase-dataset-field-update.md +117 -0
  363. package/skills/rabetbase/references/rabetbase-dataset-generate.md +206 -0
  364. package/skills/rabetbase/references/rabetbase-dataset-list.md +42 -0
  365. package/skills/rabetbase/references/rabetbase-dataset-operations.md +34 -0
  366. package/skills/rabetbase/references/rabetbase-dataset-relation-audit.md +63 -0
  367. package/skills/rabetbase/references/rabetbase-dataset-relation-mutations.md +141 -0
  368. package/skills/rabetbase/references/rabetbase-dataset-relations.md +71 -0
  369. package/skills/rabetbase/references/rabetbase-dataset-rename.md +107 -0
  370. package/skills/rabetbase/references/rabetbase-dataset-restore.md +54 -0
  371. package/skills/rabetbase/references/rabetbase-db-analyze.md +135 -0
  372. package/skills/rabetbase/references/rabetbase-db-create.md +54 -0
  373. package/skills/rabetbase/references/rabetbase-db-delete.md +26 -0
  374. package/skills/rabetbase/references/rabetbase-db-detail.md +27 -0
  375. package/skills/rabetbase/references/rabetbase-db-diff.md +57 -0
  376. package/skills/rabetbase/references/rabetbase-db-list.md +37 -0
  377. package/skills/rabetbase/references/rabetbase-db-tables.md +25 -0
  378. package/skills/rabetbase/references/rabetbase-db-test.md +29 -0
  379. package/skills/rabetbase/references/rabetbase-db-update.md +29 -0
  380. package/skills/rabetbase/references/rabetbase-doctor.md +62 -0
  381. package/skills/rabetbase/references/rabetbase-file.md +35 -0
  382. package/skills/rabetbase/references/rabetbase-init.md +70 -0
  383. package/skills/rabetbase/references/rabetbase-issue-report.md +132 -0
  384. package/skills/rabetbase/references/rabetbase-kb.md +62 -0
  385. package/skills/rabetbase/references/rabetbase-menu-asset-update.md +135 -0
  386. package/skills/rabetbase/references/rabetbase-menu-delete.md +54 -0
  387. package/skills/rabetbase/references/rabetbase-menu-external-link-create.md +63 -0
  388. package/skills/rabetbase/references/rabetbase-menu-external-link-update.md +74 -0
  389. package/skills/rabetbase/references/rabetbase-menu-group-create.md +33 -0
  390. package/skills/rabetbase/references/rabetbase-menu-group-update.md +38 -0
  391. package/skills/rabetbase/references/rabetbase-menu-list.md +144 -0
  392. package/skills/rabetbase/references/rabetbase-menu-move.md +54 -0
  393. package/skills/rabetbase/references/rabetbase-menu-regroup-start.md +45 -0
  394. package/skills/rabetbase/references/rabetbase-menu-rename.md +48 -0
  395. package/skills/rabetbase/references/rabetbase-menu-sync.md +60 -0
  396. package/skills/rabetbase/references/rabetbase-notification-config-list.md +80 -0
  397. package/skills/rabetbase/references/rabetbase-ocr.md +86 -0
  398. package/skills/rabetbase/references/rabetbase-page-generate-start.md +32 -0
  399. package/skills/rabetbase/references/rabetbase-page-generate-status.md +32 -0
  400. package/skills/rabetbase/references/rabetbase-page-pull.md +47 -0
  401. package/skills/rabetbase/references/rabetbase-page-push.md +45 -0
  402. package/skills/rabetbase/references/rabetbase-page-react-create.md +29 -0
  403. package/skills/rabetbase/references/rabetbase-page-react-detail.md +26 -0
  404. package/skills/rabetbase/references/rabetbase-page-react-list.md +23 -0
  405. package/skills/rabetbase/references/rabetbase-page-react-publish.md +23 -0
  406. package/skills/rabetbase/references/rabetbase-page-react-update.md +24 -0
  407. package/skills/rabetbase/references/rabetbase-page-relation-binding.md +72 -0
  408. package/skills/rabetbase/references/rabetbase-page-restore.md +45 -0
  409. package/skills/rabetbase/references/rabetbase-page-sync.md +36 -0
  410. package/skills/rabetbase/references/rabetbase-permit-page-set.md +69 -0
  411. package/skills/rabetbase/references/rabetbase-permit-role-apis-set.md +53 -0
  412. package/skills/rabetbase/references/rabetbase-permit-role-menus-set.md +57 -0
  413. package/skills/rabetbase/references/rabetbase-project-create.md +46 -0
  414. package/skills/rabetbase/references/rabetbase-project-upgrade.md +57 -0
  415. package/skills/rabetbase/references/rabetbase-role-list.md +68 -0
  416. package/skills/rabetbase/references/rabetbase-role-user-add.md +54 -0
  417. package/skills/rabetbase/references/rabetbase-role-user-resolve.md +27 -0
  418. package/skills/rabetbase/references/rabetbase-run.md +53 -0
  419. package/skills/rabetbase/references/rabetbase-schema.md +22 -0
  420. package/skills/rabetbase/references/rabetbase-sql-create.md +41 -0
  421. package/skills/rabetbase/references/rabetbase-sql-delete.md +37 -0
  422. package/skills/rabetbase/references/rabetbase-sql-detail.md +32 -0
  423. package/skills/rabetbase/references/rabetbase-sql-exec.md +34 -0
  424. package/skills/rabetbase/references/rabetbase-sql-list.md +54 -0
  425. package/skills/rabetbase/references/rabetbase-sql-pull.md +54 -0
  426. package/skills/rabetbase/references/rabetbase-sql-push.md +46 -0
  427. package/skills/rabetbase/references/rabetbase-sql-status.md +39 -0
  428. package/skills/rabetbase/references/rabetbase-sql-validate.md +73 -0
  429. package/skills/rabetbase/references/rabetbase-standard-page-status.md +31 -0
  430. package/skills/rabetbase/references/rabetbase-task-status.md +40 -0
  431. package/skills/rabetbase/references/rabetbase-tenant-members-list.md +69 -0
  432. package/skills/rabetbase/references/rabetbase-update.md +56 -0
  433. package/skills/rabetbase/references/rabetbase-user-account.md +45 -0
  434. package/skills/rabetbase/references/rabetbase-workspace.md +60 -0
  435. package/skills/rabetbase.manifest.json +137 -0
@@ -0,0 +1,65 @@
1
+ # bff push
2
+
3
+ 把本地 BFF 脚本上传到远端。
4
+
5
+ > **风险等级:high-risk-write** — 必须显式 `--yes`。
6
+
7
+ ## 命令
8
+
9
+ ```bash
10
+ rabetbase bff push --yes --format json
11
+ rabetbase bff push --yes --type ENDPOINT --name getUserList --format json
12
+ rabetbase bff push --type ENDPOINT --name getUserList --dry-run --format json
13
+ rabetbase bff push --yes --type HOOK --name beforeFilter --format json
14
+ ```
15
+
16
+ ## 参数
17
+
18
+ | Flag | 类型 | 必填 | 默认 | 说明 |
19
+ |------|------|------|------|------|
20
+ | `--type <type>` | string | 否 | — | 仅推指定类型:`COMMON` / `ENDPOINT` / `HOOK` |
21
+ | `--name <name>` | string | 否 | — | 仅推指定函数名;传时必须搭配 `--type` |
22
+ | `--force` | boolean | 否 | — | 忽略 hash 保护强制推送 |
23
+ | `--dry-run` | boolean | 否 | — | 仅预览将要推送的本地脚本 |
24
+ | `--yes` | boolean | 是 | — | 跳过高风险确认 |
25
+ | `--format <fmt>` | string | 否 | `pretty` | 输出格式 |
26
+
27
+ ## 输出
28
+
29
+ 返回:
30
+ - `uploaded`
31
+ - `skipped`
32
+ - `failed`
33
+
34
+ 常见 `skipped` 原因:
35
+ - `unchanged`
36
+
37
+ `--dry-run` 时返回预览对象,包含本地 `filePath`、目标模式(`create` / `update`)和预期状态(如 `unchanged` / `would_push`)。
38
+
39
+ ## 推送前检查
40
+
41
+ `bff push` 负责同步脚本,不等价于业务逻辑验证。推送前按 [`backend-function.md`](../guides/backend-function.md) 自检,尤其确认:
42
+
43
+ - 数据集模型键使用 `"dataset_" + 32 位数据集 code`
44
+ - 写入字段、必填字段、枚举 `options[].value` 来自当前 `dataset detail`
45
+ - `filter()` 结果从 `.tableData` 读取
46
+ - `create()` 返回新记录 ID,不访问 `created.id`
47
+ - BFF 中没有使用前端 SDK 初始化能力,如 `createClient`、`registerModels`
48
+ - 通知型 BFF 只使用已确认的 `configCode` / `audiences` / `message`,没有渠道地址、密钥、旧 MANUAL 参数或 `${...}` 模板表达式
49
+
50
+ ## 提示
51
+
52
+ - 推送前先跑 `bff status`
53
+ - `--dry-run` 不会上传远端,也不会改 lock
54
+ - 精确推单个函数时用 `--type + --name`
55
+ - HOOK 推送依赖数据集 alias / datasetCode 和 operationType/functionNode
56
+ - HOOK 可挂载 `DB_TABLE` 或 `METADATA` 数据集;METADATA 不支持 SQL / aggregate 路径,脚本中使用平台返回的标准数据操作
57
+ - 推送成功只代表脚本配置已同步到平台;如需确认最终运行效果,使用运行验证(例如 `lovrabet bff exec --name <functionName> --params '<json>' --format compress`)
58
+ - 管理态已同步但运行态仍旧版本时,按传播延迟 / 缓存延迟处理:等待后重试,必要时对目标脚本精确执行 `--force` 推送;仍不生效时记录平台运行态缓存风险
59
+
60
+ ## 参考
61
+
62
+ - [SKILL.md](../SKILL.md)
63
+ - [bff-creation-workflow.md](../guides/bff-creation-workflow.md)
64
+ - [backend-function.md](../guides/backend-function.md)
65
+ - [conflict-detection.md](../guides/conflict-detection.md)
@@ -0,0 +1,63 @@
1
+ # bff save(已退出主工作流)
2
+
3
+ > `bff save` 不再作为当前 CLI 的主工作流命令使用。
4
+ >
5
+ > Agent 看到旧文档、旧脚本或用户口头提到 `bff save` 时,统一迁移到下面这套流程:
6
+ >
7
+ > - 本地创建:`rabetbase bff create`
8
+ > - 查看状态:`rabetbase bff status`
9
+ > - 预览上传:`rabetbase bff push --dry-run`
10
+ > - 推送远端:`rabetbase bff push --yes`
11
+ > - 拉取远端:`rabetbase bff pull`
12
+ > - 删除脚本:`rabetbase bff delete --yes --target ...`
13
+
14
+ ## 迁移规则
15
+
16
+ ### 旧“新建并保存”
17
+
18
+ 旧思路:
19
+
20
+ ```bash
21
+ rabetbase bff save --file ./scripts/getUserInfo.js --name getUserInfo --format json
22
+ ```
23
+
24
+ 迁移为:
25
+
26
+ ```bash
27
+ rabetbase bff create --type ENDPOINT --name getUserInfo --format json
28
+ # 编辑 .rabetbase/bff/<appCode>/ENDPOINT/getUserInfo.js
29
+ rabetbase bff push --dry-run --format json
30
+ rabetbase bff push --yes --format json
31
+ ```
32
+
33
+ ### 旧“更新已有脚本”
34
+
35
+ 旧思路:
36
+
37
+ ```bash
38
+ rabetbase bff save --file ./scripts/getUserInfo.js --id 42 --yes --format json
39
+ ```
40
+
41
+ 迁移为:
42
+
43
+ ```bash
44
+ rabetbase bff pull --format json
45
+ # 编辑同步目录中的本地文件
46
+ rabetbase bff status --format json
47
+ rabetbase bff push --dry-run --format json
48
+ rabetbase bff push --yes --format json
49
+ ```
50
+
51
+ ## Agent 规则
52
+
53
+ - 不要再基于 `bff save` 设计新流程
54
+ - 如果用户只是沿用旧术语,先解释“推荐路径是 `bff create + bff push`”,然后直接按新流程执行
55
+ - 如果用户贴出历史脚本,优先帮他改造成 `create/push/pull/status/delete`
56
+
57
+ ## 参考
58
+
59
+ - [SKILL.md](../SKILL.md)
60
+ - [bff-creation-workflow.md](../guides/bff-creation-workflow.md)
61
+ - [conflict-detection.md](../guides/conflict-detection.md)
62
+ - [rabetbase-bff-create.md](./rabetbase-bff-create.md)
63
+ - [rabetbase-bff-push.md](./rabetbase-bff-push.md)
@@ -0,0 +1,37 @@
1
+ # bff status
2
+
3
+ 检查本地 BFF 脚本与 `.rabetbase/bff.lock.json` 的同步状态。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ rabetbase bff status --format json
9
+ rabetbase bff status --remote --format json
10
+ ```
11
+
12
+ ## 参数
13
+
14
+ | Flag | 类型 | 必填 | 默认 | 说明 |
15
+ |------|------|------|------|------|
16
+ | `--remote` | boolean | 否 | — | 额外检查远端存在但本地不存在的脚本 |
17
+ | `--format <fmt>` | string | 否 | `pretty` | 输出格式 |
18
+
19
+ ## 输出字段
20
+
21
+ - `added`:本地新增、尚未写入 lock 的脚本
22
+ - `modified`:本地有变更、和 lock 中 hash 不一致
23
+ - `unchanged`:本地与 lock 一致
24
+ - `remoteOnly`:仅远端存在(需 `--remote`)
25
+
26
+ ## 提示
27
+
28
+ - `push` 前先看 `status`
29
+ - `pull` 后再次看 `status`,确认是否回到 `unchanged`
30
+ - `status` 只比较本地文件与 lock/远端同步状态,不检查脚本运行时语义;字段、返回值和 `context.client` 用法仍按 `backend-function.md` 自检
31
+ - 多应用项目建议带 `--app` 或 `--appcode`
32
+
33
+ ## 参考
34
+
35
+ - [SKILL.md](../SKILL.md)
36
+ - [conflict-detection.md](../guides/conflict-detection.md)
37
+ - [backend-function.md](../guides/backend-function.md)
@@ -0,0 +1,42 @@
1
+ # cli-skill install
2
+
3
+ 从当前 npm 包内安装、重装或刷新同版本 Rabetbase CLI Built-in Skill。命令通过 `npx --yes skills@latest` 使用包内本地路径作为安装源,由官方 Skills CLI 识别已安装的 Agent 并选择兼容目录;不会从外部 Skill 内容源下载文件。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ rabetbase cli-skill install
9
+ ```
10
+
11
+ ## 参数
12
+
13
+ 无。
14
+
15
+ ## 行为
16
+
17
+ - 安装源固定为当前 npm 包内的 `skills/rabetbase/`。
18
+ - 安装目录和多 Agent 兼容规则由最新版官方 Skills CLI 管理,Rabetbase 不自行选择或写入某个固定 Agent 目录。
19
+ - 每次安装请求都交给当前最新版 Skills CLI;若安装前后内容均为当前版本,结果标记为 `already current`。
20
+ - 安装前校验 npm 包内 Skill 的版本和整体摘要,安装后复验实际生效内容。
21
+ - 失败会返回稳定错误码和修复命令;不会回退到外部 Skill 内容源,也不自动修改 npm、Git 或网络配置。
22
+
23
+ 业务 Skill 安装属于 `lovrabet skill install`,不要迁移到 `rabetbase`。
24
+
25
+ ## 输出
26
+
27
+ - 首次安装或替换:输出 Skill 版本和目标路径。
28
+ - 已是当前版本:输出 `is already current`。
29
+ - 失败:输出本地错误码,并提示重新执行 `rabetbase cli-skill install`。
30
+
31
+ ## 提示
32
+
33
+ - 安装或升级 `@lovrabet/rabetbase-cli` 时,npm `postinstall` 会自动安装包内同版本 Skill。
34
+ - `rabetbase update` 的语义是 CLI 与 Built-in Skill 一体升级。
35
+ - Skill 丢失、被修改或 npm 安装时跳过 scripts 后,可用本命令修复;需要 npm registry 可访问,以获取最新版 `skills` 安装器。
36
+ - 修复后重新读取 `SKILL.md` 与所需 reference,再继续当前任务。
37
+
38
+ ## 参考
39
+
40
+ - [SKILL.md](../SKILL.md)
41
+ - [update](rabetbase-update.md)
42
+ - [doctor](rabetbase-doctor.md)
@@ -0,0 +1,35 @@
1
+ # codegen sdk
2
+
3
+ 根据 Dataset 操作定义生成 TypeScript SDK 调用代码。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ rabetbase codegen sdk --alias order --operation filter --format json
9
+ rabetbase codegen sdk --code 097b7361b76c42bcb12b923fa5a08861 --operation create --format json
10
+ rabetbase codegen sdk --alias productSku --operation getOne --skip-imports > ./src/api/getSku.ts
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | Flag | 类型 | 必填 | 默认 | 说明 |
16
+ |------|------|------|------|------|
17
+ | `--code <code>` | string | 与 alias 二选一 | — | Dataset code(32 位 hex UUID) |
18
+ | `--alias <name>` | string | 与 code 二选一 | — | `api.ts` 中定义的别名 |
19
+ | `--operation <name>` | string | 是 | — | 操作名(`filter` `getOne` `create` `update` `delete`) |
20
+ | `--skip-imports` | boolean | 否 | — | 不包含 import 语句 |
21
+ | `--format <fmt>` | string | 否 | `pretty` | 输出格式 |
22
+
23
+ ## 输出
24
+
25
+ 生成的 TypeScript 代码直接打印到 stdout,可重定向到文件。
26
+
27
+ ## 提示
28
+
29
+ - 生成前先用 `dataset operations --operation <name>` 确认操作存在
30
+ - `--skip-imports` 适合追加到已有文件
31
+ - 生成代码包含完整类型标注和注释
32
+
33
+ ## 参考
34
+
35
+ - [SKILL.md](../SKILL.md)
@@ -0,0 +1,33 @@
1
+ # codegen sql
2
+
3
+ 根据已保存的 SQL 查询生成 TypeScript 调用代码。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ rabetbase codegen sql --sqlcode 2305f915-dd48cd4c --format json
9
+ rabetbase codegen sql --sqlcode 2305f915-dd48cd4c --target bff --format json
10
+ rabetbase codegen sql --sqlcode 2305f915-dd48cd4c > ./src/api/getUserList.ts
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | Flag | 类型 | 必填 | 默认 | 说明 |
16
+ |------|------|------|------|------|
17
+ | `--sqlcode <code>` | string | 是 | — | SQL code 标识符(格式:`xxxxxxxx-xxxxxxxx`) |
18
+ | `--target <target>` | string | 否 | `sdk` | 生成目标:`sdk`(SDK 调用) / `bff`(BFF 脚本内调用) |
19
+ | `--no-imports` | boolean | 否 | — | 不包含 import 语句 |
20
+ | `--format <fmt>` | string | 否 | `pretty` | 输出格式 |
21
+
22
+ ## 输出
23
+
24
+ 生成的 TypeScript 代码直接打印到 stdout。`--target sdk` 生成前端 SDK 调用代码,`--target bff` 生成 BFF 脚本内调用代码。
25
+
26
+ ## 提示
27
+
28
+ - `--target bff` 生成的代码使用 `context.client.sql.execute()`,注意 BFF 中 SQL 返回直接是数组
29
+ - `--target sdk` 生成的代码使用 `client.sql.execute()`,返回 `{ execSuccess, execResult }`
30
+
31
+ ## 参考
32
+
33
+ - [SKILL.md](../SKILL.md)
@@ -0,0 +1,296 @@
1
+ # `.rabetbase.json` 配置参考
2
+
3
+ 项目级配置文件,放在项目根目录。CLI 启动时自动读取,全局配置(`~/.rabetbase.json`)作为 fallback。
4
+
5
+ 这份文件描述的是**本地配置模型**:默认应用、应用名到 `appcode`/`env`/`apiDir` 的映射,以及输出格式、风险等级、认证信息等本地偏好。
6
+
7
+ 它**不是**平台应用目录。若要查看当前登录账号在平台上能访问哪些应用,应使用 `rabetbase app list --remote`,而不是直接查看 `.rabetbase.json`。
8
+
9
+ 兼容旧名:`.lovrabet.json`、`.lovrabetrc`(按优先级 `.rabetbase.json` > `.lovrabet.json` > `.lovrabetrc`,首个存在的生效)。
10
+
11
+ ## 初始化
12
+
13
+ ```bash
14
+ rabetbase workspace init --appcode <code>
15
+ ```
16
+
17
+ 绑定当前目录到某个应用并写入 `.rabetbase.json`,采用 canonical 的 `apps + defaultApp` 结构;旧的顶层 `appcode` 仍兼容读取。首次安装后的全局引导用 `rabetbase init`。
18
+
19
+ ## canonical 主模型
20
+
21
+ 当前推荐、也是所有新写入默认采用的结构,是 **`apps + defaultApp`**:
22
+
23
+ ```json
24
+ {
25
+ "defaultApp": "main",
26
+ "apps": {
27
+ "main": {
28
+ "appcode": "app-xxxxxxxx",
29
+ "env": "daily"
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ CLI 对旧版顶层 `appcode` 仍兼容读取,但它已经不是推荐主模型。
36
+
37
+ ## 兼容读取的单应用模式
38
+
39
+ 兼容读取的最简配置只需 `appcode` 和 `env`:
40
+
41
+ ```json
42
+ {
43
+ "appcode": "app-xxxxxxxx",
44
+ "env": "daily"
45
+ }
46
+ ```
47
+
48
+ ### 完整字段
49
+
50
+ ```json
51
+ {
52
+ "appcode": "app-xxx",
53
+ "env": "production",
54
+ "locale": "en-US",
55
+ "cookie": "session-cookie-value",
56
+ "accessKey": "ak-xxx",
57
+ "format": "json",
58
+ "pageSize": 20,
59
+ "riskLevel": "high-risk-write",
60
+ "apiDir": "./src/api",
61
+ "template_base_url": "https://custom-cdn.example.com/dist",
62
+ "apiDomain": "https://custom-api.example.com",
63
+ "userDomain": "https://custom-user.example.com",
64
+ "runtimeDomain": "https://custom-runtime.example.com"
65
+ }
66
+ ```
67
+
68
+ ## 多应用模式
69
+
70
+ 一个项目对接多个 Lovrabet 应用时,使用 `apps` + `defaultApp`:
71
+
72
+ ```json
73
+ {
74
+ "defaultApp": "order",
75
+ "apps": {
76
+ "order": {
77
+ "appcode": "app-yyyyyyyy",
78
+ "env": "daily",
79
+ "riskLevel": "write"
80
+ },
81
+ "product": {
82
+ "appcode": "app-zzzzzzzz",
83
+ "env": "production",
84
+ "apiDir": "./src/api/product"
85
+ }
86
+ }
87
+ }
88
+ ```
89
+
90
+ 每个 app profile 可单独覆盖普通顶层字段。`riskLevel` 是安全例外:默认值为 `high-risk-write`,全局、项目、profile 与环境变量都作为 ceiling,最终取最严格值。CLI 运行时根据 `--app <name>` 或 `defaultApp` 选择激活的 profile。
91
+
92
+ 管理命令(声明式 flags,非位置参数):
93
+
94
+ ```bash
95
+ rabetbase workspace add order --appcode app-order-001 --env daily
96
+ rabetbase workspace add product --appcode app-product-002
97
+ rabetbase workspace use --app order
98
+ rabetbase app list
99
+ rabetbase workspace remove product --yes
100
+ ```
101
+
102
+ ## 字段说明
103
+
104
+ ### 顶层字段
105
+
106
+ | 字段 | 类型 | 默认值 | 说明 |
107
+ |------|------|--------|------|
108
+ | `appcode` | string | — | 顶层单应用兼容字段。新写入优先使用 `apps + defaultApp`。兼容旧名 `app` |
109
+ | `env` | string | `"production"` | 环境。可选值:`production`、`daily`(配置文件若仍为旧值 `online`,加载时会规范为 `production`) |
110
+ | `locale` | string | `"en-US"` | 语言设置 |
111
+ | `cookie` | string | — | 内联 session cookie。设置后优先于 `~/.lovrabet/cookie` 文件 |
112
+ | `accessKey` | string | — | Access Key 认证(预留,未来替代 cookie) |
113
+ | `format` | string | — | 默认输出格式。可选值:`json`、`pretty`、`compress`。不设则命令默认 `compress` |
114
+ | `pageSize` | number | — | 默认分页大小,用于 `sql list` 等分页命令 |
115
+ | `riskLevel` | string | `"high-risk-write"` | 允许执行的最高风险等级。可选值:`read`、`write`、`high-risk-write`。兼容旧名 `maxRisk` |
116
+ | `inherit` | boolean | 省略 | 配置继承模式。**省略**(默认):项目主导,仅从全局白名单继承 cookie/accessKey/locale/format/riskLevel/pageSize,不继承 apps/defaultApp/appcode。**`true`**:全量合并全局+项目(旧行为,需显式开启)。**`false`**:普通字段完全隔离;全局 `riskLevel` 仍作为不可绕过的上限 |
117
+ | `apiDir` | string | `"./src/api"` | `api pull` 生成代码的输出目录 |
118
+ | `template_base_url` | string | 平台默认 CDN | 模板 CDN 基础 URL,一般无需修改 |
119
+ | `defaultApp` | string | — | 多应用模式下的默认应用名称 |
120
+ | `apps` | object | — | 多应用配置。key 为应用名,value 为 AppProfile(见下方) |
121
+ | `apiDomain` | string | 平台默认 | 自定义 API 域名(独立部署场景)。覆盖后所有 API 请求使用此域名 |
122
+ | `userDomain` | string | 平台默认 | 自定义用户域名 |
123
+ | `runtimeDomain` | string | 平台默认 | 自定义运行时域名 |
124
+
125
+ ### AppProfile 字段(`apps.*` 内的每个应用)
126
+
127
+ | 字段 | 类型 | 说明 |
128
+ |------|------|------|
129
+ | `appcode` | string | **必填**。该应用的 appcode |
130
+ | `env` | string | 覆盖顶层 `env` |
131
+ | `apiDir` | string | 覆盖顶层 `apiDir` |
132
+ | `cookie` | string | 覆盖顶层 `cookie` |
133
+ | `accessKey` | string | 覆盖顶层 `accessKey` |
134
+ | `format` | string | 覆盖顶层 `format` |
135
+ | `pageSize` | number | 覆盖顶层 `pageSize` |
136
+ | `riskLevel` | string | 只能继续收紧顶层 `riskLevel`,不能提权 |
137
+ | `locale` | string | 覆盖顶层 `locale` |
138
+
139
+ ## 优先级
140
+
141
+ 每个配置项的解析优先级从高到低(`appcode` 不从环境变量自动解析,必须来自 `--appcode` 或配置文件):
142
+
143
+ ```
144
+ CLI flag (--appcode, --env, --format, --app ...)
145
+ ↓
146
+ 当前项目 app profile / 顶层字段
147
+ ↓
148
+ 环境变量 (RABETBASE_ENV, RABETBASE_FORMAT ...)
149
+ ↓
150
+ 全局级 ~/.rabetbase.json app profile / 顶层字段
151
+ ↓
152
+ 内置默认值
153
+ ```
154
+
155
+ 业务落点类字段以当前项目为主。`appcode` 不允许从 shell 残留环境变量自动推断;CI 或一次性脚本如需使用环境变量,必须显式传 `--appcode "$RABETBASE_APPCODE"`。对需要 App Code 的业务命令,如果检测到 `RABETBASE_APPCODE` / `LOVRABET_APPCODE` 已设置但未显式传 `--appcode`,且当前解析结果为空或与环境变量不同,CLI 会直接拒绝执行,避免误操作其他应用。`RABETBASE_APP`、`RABETBASE_ENV` 仍只作为无项目配置时的显式选择 / 环境 fallback。
156
+
157
+ ## 环境变量
158
+
159
+ 所有环境变量以 `RABETBASE_` 为前缀,兼容旧前缀 `LOVRABET_`。
160
+
161
+ | 环境变量 | 对应配置项 | 说明 |
162
+ |----------|-----------|------|
163
+ | `RABETBASE_APPCODE` | — | 仅作为 shell 变量供脚本显式传给 `--appcode`;业务命令检测到冲突时会拒绝执行 |
164
+ | `RABETBASE_ENV` | `env` | 无项目 env 时的环境 fallback |
165
+ | `RABETBASE_COOKIE` | `cookie` | Session cookie |
166
+ | `RABETBASE_ACCESS_KEY` | `accessKey` | Access Key |
167
+ | `RABETBASE_FORMAT` | `format` | 输出格式 |
168
+ | `RABETBASE_PAGE_SIZE` | `pageSize` | 分页大小 |
169
+ | `RABETBASE_RISK_LEVEL` | `riskLevel` | 临时风险上限,只能收紧,不能提权 |
170
+ | `RABETBASE_VERBOSE` | — | 全局 verbose 开关(`1` 或 `true` 启用),仅环境变量,不支持配置文件 |
171
+ | `RABETBASE_APP` | — | 无项目显式选择时的临时应用名 fallback(显式切换优先用 `--app`) |
172
+
173
+ ## 配置文件查找规则
174
+
175
+ | 作用域 | 查找目录 | 文件名优先级 |
176
+ |--------|---------|------------|
177
+ | 项目级 | `process.cwd()` | `.rabetbase.json` > `.lovrabet.json` > `.lovrabetrc` |
178
+ | 全局级 | `~`(用户 HOME) | 同上 |
179
+
180
+ 合并策略由项目级 `inherit` 字段控制(三态):
181
+
182
+ - **省略 `inherit`(默认,项目主导)**:项目级配置自给自足;仅从全局白名单继承 `cookie`、`accessKey`、`locale`、`format`、`riskLevel`、`pageSize`,**不继承** `apps` / `defaultApp` / `appcode` / `env` 等业务字段。普通字段由项目级显式值覆盖;`riskLevel` 始终取全局与项目顶层的更严格值。
183
+ - **`inherit: true`(显式全量合并)**:标量字段项目级覆盖全局级;`apps` 深度合并(项目同名覆盖全局同名,其余保留);`defaultApp` 仅当项目级显式声明时才覆盖全局级。等价于历史默认行为,需要跨项目共享全局 `apps` 时显式开启。
184
+ - **`inherit: false`(普通字段完全隔离)**:业务与偏好字段只使用项目级值;安全例外是全局 `riskLevel` 仍参与最严格上限计算,项目不能借此提权。
185
+
186
+ > **为什么默认改成项目主导**:避免 `~/.lovrabet.json` 中的 `defaultApp` / `apps` 在用户进入空白目录或新项目时被无声继承(曾导致 menu asset-update 误改其他应用资源)。`api list` / `api pull` / `app list` 仍可通过 `--global` 显式查看合并视图。
187
+
188
+ ## 示例
189
+
190
+ ### 最小化(CI 环境用环境变量)
191
+
192
+ ```json
193
+ {}
194
+ ```
195
+
196
+ ```bash
197
+ export RABETBASE_APPCODE=app-xxx
198
+ export RABETBASE_ENV=daily
199
+ rabetbase dataset list --appcode "$RABETBASE_APPCODE"
200
+ ```
201
+
202
+ ### 开发环境单应用
203
+
204
+ ```json
205
+ {
206
+ "appcode": "app-xxxxxxxx",
207
+ "env": "daily",
208
+ "riskLevel": "high-risk-write"
209
+ }
210
+ ```
211
+
212
+ ### 多应用 + 限制风险
213
+
214
+ ```json
215
+ {
216
+ "riskLevel": "write",
217
+ "defaultApp": "order",
218
+ "apps": {
219
+ "order": {
220
+ "appcode": "app-order-001",
221
+ "env": "daily"
222
+ },
223
+ "product": {
224
+ "appcode": "app-product-002",
225
+ "env": "production",
226
+ "riskLevel": "read"
227
+ }
228
+ }
229
+ }
230
+ ```
231
+
232
+ ```bash
233
+ rabetbase sql list --app order
234
+ rabetbase dataset list --app product
235
+ ```
236
+
237
+ ## config 命令
238
+
239
+ ### config set
240
+
241
+ 写入配置项:
242
+
243
+ ```bash
244
+ # 写入项目级配置(默认;须在能解析到项目 .rabetbase.json 的目录下执行)
245
+ rabetbase config set apiDomain https://custom-api.example.com
246
+ rabetbase config set env daily
247
+
248
+ # 写入全局配置(任意目录)
249
+ rabetbase config set apiDomain https://custom-api.example.com --global
250
+ ```
251
+
252
+ `config set` **默认写入项目**配置文件(当前工作目录能解析到 `.rabetbase.json` 等);加 **`--global`** 则写入 **`~/.rabetbase.json`**。
253
+
254
+ 若当前目录**没有**项目配置文件且**未**指定 `--global`,CLI **拒绝执行**并提示使用 `--global` 或先 `rabetbase init`,**不会**静默改全局。
255
+
256
+ ### config get
257
+
258
+ 读取配置项(读取合并后的值):
259
+
260
+ ```bash
261
+ rabetbase config get apiDomain
262
+ # 输出: https://custom-api.example.com
263
+ ```
264
+
265
+ ### config list
266
+
267
+ 以 JSON 格式输出当前合并后的完整配置:
268
+
269
+ ```bash
270
+ rabetbase config list
271
+ ```
272
+
273
+ ## 诊断命令
274
+
275
+ 遇到配置问题时,用 `rabetbase doctor` 快速定位问题:
276
+
277
+ ```bash
278
+ rabetbase doctor
279
+ ```
280
+
281
+ 输出包括:CLI 版本、配置文件路径、**各侧配置文件 JSON 语法是否合法**(非法则该侧内容在合并时会被忽略)、合并后的所有配置项(appCode / env / cookie / apiDomain 等)、API 域名、认证状态。
282
+
283
+ 多应用列表与来源说明见 [`rabetbase app list`](rabetbase-app-list.md)(`items` / `meta` / `definedIn`)。
284
+
285
+ ## 独立部署场景
286
+
287
+ 如果 Lovrabet 部署在自定义域名下,通过 `apiDomain` / `userDomain` / `runtimeDomain` 覆盖默认域名:
288
+
289
+ ```bash
290
+ # 写入全局配置(所有项目生效)
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
294
+ ```
295
+
296
+ 优先级:配置文件中显式设置 > 环境变量 > 默认平台域名。项目级配置可覆盖全局配置。
@@ -0,0 +1,84 @@
1
+ # dataset business-group-update
2
+
3
+ 安全更新业务场景分组(`businessGroup`)。
4
+
5
+ 本命令用于修改业务场景分组。它不同于 `dataset extend-update`:`extend-update` 当前可写 key 白名单为空,且不支持修改 `businessGroup`。
6
+
7
+ ## 命令
8
+
9
+ ```bash
10
+ rabetbase dataset business-group-update \
11
+ --appcode app-64e32817 \
12
+ --code 1a90dbff5f094a9a89936fa99b10984c \
13
+ --business-group "数据智能---AI任务与平台配置" \
14
+ --expect-business-group "旧分组" \
15
+ --dry-run \
16
+ --format compress
17
+ ```
18
+
19
+ 确认 dry-run 结果无误后再去掉 `--dry-run` 执行。
20
+
21
+ ## 参数
22
+
23
+ | Flag | 必填 | 说明 |
24
+ | --- | --- | --- |
25
+ | `--appcode <code>` | 否 | 目标应用编码;未配置默认 app 时必填 |
26
+ | `--code <code>` | 是 | Dataset code,32 位 hex UUID |
27
+ | `--business-group <name>` | 是 | 目标业务场景分组;空字符串表示清空 |
28
+ | `--expect-business-group <name>` | 否 | 当前业务场景分组保护;不匹配即中止且不写入 |
29
+ | `--dry-run` | 否 | 只返回 before/after 预览,不执行写入 |
30
+ | `--format <fmt>` | 否 | 输出格式,AI Agent 优先用 `compress` |
31
+
32
+ ## 行为
33
+
34
+ - 命令用 `--code` 定位 Dataset。
35
+ - 当前值和写后校验都按 Dataset code 读取业务场景分组;不需要 `dblinkId`、`tableName` 或 `sourceType`。
36
+ - `--business-group` 为空字符串时表示清空业务场景分组。
37
+ - 回读到 `businessGroup` 为空字符串时表示未分组,是合法当前值。
38
+ - `--expect-business-group` 用于保护当前值;不匹配时中止且不写入。
39
+ - `--dry-run` 只预览 before/after,不执行写入。
40
+ - 正式写入后会校验目标值已生效。
41
+ - 当目标值和当前值一致时,命令返回 `changed=false`,不会执行写入。
42
+
43
+ ## 输出
44
+
45
+ 返回结构包含:
46
+
47
+ ```json
48
+ {
49
+ "operation": "update",
50
+ "appCode": "app-64e32817",
51
+ "selector": {
52
+ "code": "1a90dbff5f094a9a89936fa99b10984c"
53
+ },
54
+ "dataset": {
55
+ "code": "1a90dbff5f094a9a89936fa99b10984c",
56
+ "name": "保单条款"
57
+ },
58
+ "before": {
59
+ "businessGroup": "旧分组"
60
+ },
61
+ "after": {
62
+ "businessGroup": "数据智能---AI任务与平台配置"
63
+ },
64
+ "changed": true,
65
+ "dryRun": true,
66
+ "submitted": false
67
+ }
68
+ ```
69
+
70
+ ## 提示
71
+
72
+ - 写入前必须先运行 `--dry-run`。
73
+ - `businessGroup` 用于按业务场景组织 Dataset,而不是按数据库、表类型或服务名等技术结构分组。优先按业务场景命名并复用当前应用已有分组;需要跨领域消歧或沿用既有两级分组体系时,可使用 `<业务领域>---<业务场景>`,否则使用 `<业务场景>`。表数量不决定是否拆分层级。建议最多两级,层级不得为空或带首尾空白;空字符串表示清空。CLI 仅描述推荐格式并保持兼容,不额外拒绝历史非标准值。
74
+ - 推荐用 `--expect-business-group` 保护当前值。
75
+ - 不确定 Dataset code 时,先用 `rabetbase dataset list --name <name> --format compress` 定位。
76
+ - 业务场景分组只能使用本命令更新,不要通过 `dataset extend-update` 或 `/smartapi/dataset/update-driven-data` 修改。
77
+ - `dataset extend-update` 当前可写 key 白名单为空;未来如开放其他 Dataset 顶层 `extend` 字段,以 `dataset extend-update` reference 为准。
78
+
79
+ ## 参考
80
+
81
+ - [dataset detail](rabetbase-dataset-detail.md)
82
+ - [dataset list](rabetbase-dataset-list.md)
83
+ - [dataset extend-update](rabetbase-dataset-extend-update.md)
84
+ - [SKILL.md](../SKILL.md)