@lovrabet/rabetbase-cli 2.5.1 → 2.5.2-beta.2

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.js +1 -1
  4. package/lib/api/generate-sdk-config-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/delete.js +1 -1
  53. package/lib/commands/config/get.js +1 -1
  54. package/lib/commands/config/index.js +1 -1
  55. package/lib/commands/config/init.js +1 -1
  56. package/lib/commands/config/list.js +1 -1
  57. package/lib/commands/config/set.js +1 -1
  58. package/lib/commands/config/shared.js +1 -1
  59. package/lib/commands/dataset/business-group-update.js +1 -1
  60. package/lib/commands/dataset/business-groups.js +1 -1
  61. package/lib/commands/dataset/capability.js +1 -1
  62. package/lib/commands/dataset/delete.js +1 -1
  63. package/lib/commands/dataset/detail.js +1 -1
  64. package/lib/commands/dataset/extend-update.js +1 -1
  65. package/lib/commands/dataset/field-restore.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/dataset/user-deleted-field-list.js +1 -1
  80. package/lib/commands/db/analysis-batching.js +1 -1
  81. package/lib/commands/db/analyze-batch-plan.js +1 -1
  82. package/lib/commands/db/analyze-cancel.js +1 -1
  83. package/lib/commands/db/analyze-start.js +1 -1
  84. package/lib/commands/db/analyze-status.js +1 -1
  85. package/lib/commands/db/create.js +1 -1
  86. package/lib/commands/db/delete.js +1 -1
  87. package/lib/commands/db/detail.js +1 -1
  88. package/lib/commands/db/diff-refresh-start.js +1 -1
  89. package/lib/commands/db/diff-refresh-status.js +1 -1
  90. package/lib/commands/db/diff.js +1 -1
  91. package/lib/commands/db/index.js +1 -1
  92. package/lib/commands/db/list.js +1 -1
  93. package/lib/commands/db/shared.js +1 -1
  94. package/lib/commands/db/table-diff-shared.js +1 -1
  95. package/lib/commands/db/tables.js +1 -1
  96. package/lib/commands/db/test.js +1 -1
  97. package/lib/commands/db/update.js +1 -1
  98. package/lib/commands/deployment/auto-sync.d.ts +3 -11
  99. package/lib/commands/deployment/auto-sync.js +1 -1
  100. package/lib/commands/deployment/index.js +1 -1
  101. package/lib/commands/deployment/sync-all.d.ts +2 -0
  102. package/lib/commands/deployment/sync-all.js +1 -0
  103. package/lib/commands/deployment/sync-jobs.d.ts +2 -0
  104. package/lib/commands/deployment/sync-jobs.js +1 -0
  105. package/lib/commands/deployment/sync-status.d.ts +2 -0
  106. package/lib/commands/deployment/sync-status.js +1 -0
  107. package/lib/commands/deployment/sync.js +1 -1
  108. package/lib/commands/doctor.js +1 -1
  109. package/lib/commands/file/index.js +1 -1
  110. package/lib/commands/instant-api-policy/current.d.ts +2 -0
  111. package/lib/commands/instant-api-policy/current.js +1 -0
  112. package/lib/commands/instant-api-policy/index.d.ts +2 -0
  113. package/lib/commands/instant-api-policy/index.js +1 -0
  114. package/lib/commands/instant-api-policy/init.d.ts +2 -0
  115. package/lib/commands/instant-api-policy/init.js +1 -0
  116. package/lib/commands/instant-api-policy/publish.d.ts +2 -0
  117. package/lib/commands/instant-api-policy/publish.js +1 -0
  118. package/lib/commands/instant-api-policy/pull.d.ts +2 -0
  119. package/lib/commands/instant-api-policy/pull.js +1 -0
  120. package/lib/commands/instant-api-policy/revision.d.ts +2 -0
  121. package/lib/commands/instant-api-policy/revision.js +1 -0
  122. package/lib/commands/instant-api-policy/revisions.d.ts +2 -0
  123. package/lib/commands/instant-api-policy/revisions.js +1 -0
  124. package/lib/commands/instant-api-policy/rollback.d.ts +2 -0
  125. package/lib/commands/instant-api-policy/rollback.js +1 -0
  126. package/lib/commands/instant-api-policy/shared.d.ts +82 -0
  127. package/lib/commands/instant-api-policy/shared.js +1 -0
  128. package/lib/commands/instant-api-policy/validate.d.ts +2 -0
  129. package/lib/commands/instant-api-policy/validate.js +1 -0
  130. package/lib/commands/issue/index.js +1 -1
  131. package/lib/commands/issue/nudge.js +1 -1
  132. package/lib/commands/issue/report.js +1 -1
  133. package/lib/commands/issue/shared.js +1 -1
  134. package/lib/commands/kb/create.js +1 -1
  135. package/lib/commands/kb/delete.js +1 -1
  136. package/lib/commands/kb/detail.js +1 -1
  137. package/lib/commands/kb/index.js +1 -1
  138. package/lib/commands/kb/list.js +1 -1
  139. package/lib/commands/kb/search.js +1 -1
  140. package/lib/commands/kb/shared.js +1 -1
  141. package/lib/commands/kb/update.js +1 -1
  142. package/lib/commands/logs/index.js +1 -1
  143. package/lib/commands/menu/asset-update.js +1 -1
  144. package/lib/commands/menu/delete.js +1 -1
  145. package/lib/commands/menu/external-link-create.js +1 -1
  146. package/lib/commands/menu/external-link-update.js +1 -1
  147. package/lib/commands/menu/group-create.js +1 -1
  148. package/lib/commands/menu/group-update.js +1 -1
  149. package/lib/commands/menu/index.js +1 -1
  150. package/lib/commands/menu/list.js +1 -1
  151. package/lib/commands/menu/move.js +1 -1
  152. package/lib/commands/menu/regroup-start.js +1 -1
  153. package/lib/commands/menu/rename.js +1 -1
  154. package/lib/commands/menu/shared/compare-table.js +1 -1
  155. package/lib/commands/menu/shared/delete-plan.js +1 -1
  156. package/lib/commands/menu/shared/facts.js +1 -1
  157. package/lib/commands/menu/shared/index.js +1 -1
  158. package/lib/commands/menu/shared/inquirer.js +1 -1
  159. package/lib/commands/menu/shared/local-pages.js +1 -1
  160. package/lib/commands/menu/shared/logic.js +1 -1
  161. package/lib/commands/menu/shared/mutations.js +1 -1
  162. package/lib/commands/menu/shared/service.js +1 -1
  163. package/lib/commands/menu/shared/sync-core.js +1 -1
  164. package/lib/commands/menu/shared/update-core.js +1 -1
  165. package/lib/commands/menu/shared/valid-url.js +1 -1
  166. package/lib/commands/menu/sync.js +1 -1
  167. package/lib/commands/menu/visibility-update.js +1 -1
  168. package/lib/commands/notification/config-create.js +1 -1
  169. package/lib/commands/notification/config-delete.js +1 -1
  170. package/lib/commands/notification/config-list.js +1 -1
  171. package/lib/commands/notification/config-update.js +1 -1
  172. package/lib/commands/notification/index.js +1 -1
  173. package/lib/commands/notification/shared.js +1 -1
  174. package/lib/commands/ocr/index.js +1 -1
  175. package/lib/commands/page/create.js +1 -1
  176. package/lib/commands/page/custom/detail.js +1 -1
  177. package/lib/commands/page/custom/list.js +1 -1
  178. package/lib/commands/page/custom/publish.js +1 -1
  179. package/lib/commands/page/custom/shared.js +1 -1
  180. package/lib/commands/page/custom/syntax.js +1 -1
  181. package/lib/commands/page/custom/template.js +1 -1
  182. package/lib/commands/page/custom/update.js +1 -1
  183. package/lib/commands/page/data-list-status.js +1 -1
  184. package/lib/commands/page/generate-start.js +1 -1
  185. package/lib/commands/page/generate-status.js +1 -1
  186. package/lib/commands/page/index.js +1 -1
  187. package/lib/commands/page/pull.js +1 -1
  188. package/lib/commands/page/push.js +1 -1
  189. package/lib/commands/page/relation-audit.js +1 -1
  190. package/lib/commands/page/restore.js +1 -1
  191. package/lib/commands/page/shared.js +1 -1
  192. package/lib/commands/page/sync.js +1 -1
  193. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  194. package/lib/commands/project/create/format-elapsed.js +1 -1
  195. package/lib/commands/project/create/main.js +1 -1
  196. package/lib/commands/project/create/materialize-project-template.js +1 -1
  197. package/lib/commands/project/create/project-name.js +1 -1
  198. package/lib/commands/project/create/project-template-archive.js +1 -1
  199. package/lib/commands/project/create/project-template-path.js +1 -1
  200. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  201. package/lib/commands/project/create/use-format-code.js +1 -1
  202. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  203. package/lib/commands/project/domain-routing-sync.js +1 -1
  204. package/lib/commands/project/index.js +1 -1
  205. package/lib/commands/project/upgrade.js +1 -1
  206. package/lib/commands/registry.js +1 -1
  207. package/lib/commands/role/delete.js +1 -1
  208. package/lib/commands/role/detail.js +1 -1
  209. package/lib/commands/role/index.js +1 -1
  210. package/lib/commands/role/list.js +1 -1
  211. package/lib/commands/role/shared.js +1 -1
  212. package/lib/commands/role/update.js +1 -1
  213. package/lib/commands/role/user-add.js +1 -1
  214. package/lib/commands/role/user-remove.js +1 -1
  215. package/lib/commands/role/user-resolve.js +1 -1
  216. package/lib/commands/rule/get.js +1 -1
  217. package/lib/commands/rule/index.js +1 -1
  218. package/lib/commands/rule/list.js +1 -1
  219. package/lib/commands/rule/set.js +1 -1
  220. package/lib/commands/rule/shared.js +1 -1
  221. package/lib/commands/run/index.js +1 -1
  222. package/lib/commands/schema.js +1 -1
  223. package/lib/commands/sql/create.js +1 -1
  224. package/lib/commands/sql/delete.js +1 -1
  225. package/lib/commands/sql/detail.js +1 -1
  226. package/lib/commands/sql/exec.js +1 -1
  227. package/lib/commands/sql/index.js +1 -1
  228. package/lib/commands/sql/list.js +1 -1
  229. package/lib/commands/sql/pull.js +1 -1
  230. package/lib/commands/sql/push.js +1 -1
  231. package/lib/commands/sql/shared.js +1 -1
  232. package/lib/commands/sql/status.js +1 -1
  233. package/lib/commands/sql/validate.js +1 -1
  234. package/lib/commands/task/index.js +1 -1
  235. package/lib/commands/task/status.js +1 -1
  236. package/lib/commands/tenant/index.js +1 -1
  237. package/lib/commands/tenant/members-list.js +1 -1
  238. package/lib/commands/tenant/shared.js +1 -1
  239. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  240. package/lib/commands/user-account/index.js +1 -1
  241. package/lib/commands/workspace/add.js +1 -1
  242. package/lib/commands/workspace/index.js +1 -1
  243. package/lib/commands/workspace/remove.js +1 -1
  244. package/lib/config/domain-config.js +1 -1
  245. package/lib/config/project-domain-routing.js +1 -1
  246. package/lib/config/schema.js +1 -1
  247. package/lib/constant/cdn.js +1 -1
  248. package/lib/constant/cli.js +1 -1
  249. package/lib/constant/defaults.js +1 -1
  250. package/lib/constant/domain.js +1 -1
  251. package/lib/constant/env.js +1 -1
  252. package/lib/constant/output.js +1 -1
  253. package/lib/constant/paths.js +1 -1
  254. package/lib/constant/region.js +1 -1
  255. package/lib/constant/risk.js +1 -1
  256. package/lib/constant/routing-profile.js +1 -1
  257. package/lib/context/app-resolver.d.ts +0 -2
  258. package/lib/context/app-resolver.js +1 -1
  259. package/lib/context/auth-resolver.js +1 -1
  260. package/lib/context/config-loader.js +1 -1
  261. package/lib/context.js +1 -1
  262. package/lib/core/alias-resolver.js +1 -1
  263. package/lib/core/api-client.d.ts +113 -2
  264. package/lib/core/api-client.js +1 -1
  265. package/lib/core/bff/config.js +1 -1
  266. package/lib/core/bff/file-system.js +1 -1
  267. package/lib/core/bff/hash.js +1 -1
  268. package/lib/core/bff/lock.js +1 -1
  269. package/lib/core/bff/utils.js +1 -1
  270. package/lib/core/db-resolver.js +1 -1
  271. package/lib/core/instant-api-policy/config.d.ts +23 -0
  272. package/lib/core/instant-api-policy/config.js +1 -0
  273. package/lib/core/kb-search-client.js +1 -1
  274. package/lib/core/page/file-system.js +1 -1
  275. package/lib/core/page/hash.js +1 -1
  276. package/lib/core/page/lock.js +1 -1
  277. package/lib/core/sql-index-auditor.js +1 -1
  278. package/lib/core/sql-sync/config.js +1 -1
  279. package/lib/core/sql-sync/file-system.js +1 -1
  280. package/lib/core/sql-sync/hash.js +1 -1
  281. package/lib/core/sql-sync/lock.js +1 -1
  282. package/lib/core/sql-sync/utils.js +1 -1
  283. package/lib/core/sql-validator.js +1 -1
  284. package/lib/errors.js +1 -1
  285. package/lib/framework/build-all-flags.js +1 -1
  286. package/lib/framework/error-output.js +1 -1
  287. package/lib/framework/explicit-yes.js +1 -1
  288. package/lib/framework/flags.js +1 -1
  289. package/lib/framework/help.js +1 -1
  290. package/lib/framework/index.js +1 -1
  291. package/lib/framework/output.js +1 -1
  292. package/lib/framework/response.js +1 -1
  293. package/lib/framework/runner-alias.js +1 -1
  294. package/lib/framework/runner.js +1 -1
  295. package/lib/framework/schema-export.js +1 -1
  296. package/lib/framework/supported-flags.d.ts +2 -0
  297. package/lib/framework/supported-flags.js +1 -0
  298. package/lib/framework/types.d.ts +2 -4
  299. package/lib/framework/types.js +1 -1
  300. package/lib/generated/build-info.d.ts +4 -4
  301. package/lib/generated/build-info.js +1 -1
  302. package/lib/generated/official-routing.js +1 -1
  303. package/lib/generated/routing-contract.js +1 -1
  304. package/lib/help.js +1 -1
  305. package/lib/postinstall.js +1 -1
  306. package/lib/runtime/confirmation.js +1 -1
  307. package/lib/runtime/event.js +1 -1
  308. package/lib/runtime/index.js +1 -1
  309. package/lib/runtime/queue.js +1 -1
  310. package/lib/runtime/resolve.js +1 -1
  311. package/lib/skills/builtin-skill.js +1 -1
  312. package/lib/skills/main.js +1 -1
  313. package/lib/skills/npx-skills-add.js +1 -1
  314. package/lib/skills/skill-presence.js +1 -1
  315. package/lib/telemetry/cli-command-trace.js +1 -1
  316. package/lib/telemetry/cli-help-trace.js +1 -1
  317. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  318. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  319. package/lib/telemetry/send-cli-trace-log.js +1 -1
  320. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  321. package/lib/utils/ai_config.js +1 -1
  322. package/lib/utils/apply-jq-filter.js +1 -1
  323. package/lib/utils/cdn-config.js +1 -1
  324. package/lib/utils/check-sdk-version.js +1 -1
  325. package/lib/utils/cli-version-check.js +1 -1
  326. package/lib/utils/cli-version-policy.js +1 -1
  327. package/lib/utils/config.js +1 -1
  328. package/lib/utils/entity-with-id.js +1 -1
  329. package/lib/utils/file-utils.js +1 -1
  330. package/lib/utils/guides-cdn.js +1 -1
  331. package/lib/utils/http-client.js +1 -1
  332. package/lib/utils/is-non-interactive.js +1 -1
  333. package/lib/utils/logger.js +1 -1
  334. package/lib/utils/params.js +1 -1
  335. package/lib/utils/platform.js +1 -1
  336. package/lib/utils/sleep.js +1 -1
  337. package/lib/utils/template-replacer.js +1 -1
  338. package/lib/utils/update-notice.js +1 -1
  339. package/lib/utils/version.js +1 -1
  340. package/lib/utils/with-active-cookie.js +1 -1
  341. package/lib/utils/write-cli-side-channel.js +1 -1
  342. package/package.json +1 -1
  343. package/skills/rabetbase/SKILL.md +12 -6
  344. package/skills/rabetbase/references/rabetbase-deployment-sync.md +51 -43
  345. package/skills/rabetbase/references/rabetbase-instant-api-policy.md +92 -0
  346. package/skills/rabetbase.manifest.json +4 -3
  347. package/lib/config/deployment-sync.d.ts +0 -10
  348. package/lib/config/deployment-sync.js +0 -1
@@ -1,44 +1,29 @@
1
1
  # rabetbase deployment sync
2
2
 
3
- 将当前应用中指定数据库连接下的少量研发元数据同步到独立部署目标。命令只同步显式给出的业务编码,支持 `dataset`、`bff`、`sql`。
3
+ 将当前应用中的少量研发元数据同步到独立部署系统。命令只同步显式给出的业务编码,支持 `dataset`、`bff`、`sql`。
4
+
5
+ 需要同步当前应用中服务端支持的全部研发元数据时,不要猜测或枚举资源类型和编码,改用本文后半部分的 `deployment sync-all`。
4
6
 
5
7
  ## 使用前确认
6
8
 
7
9
  - 已完成 rabetbase 认证,并明确目标应用的 `appCode`。
8
- - 从可信事实中取得基础 dblink/环境连接组 ID 和业务编码,不猜测 ID 或编码。
9
- - `--target-env` 只选择服务端维护的环境连接映射;CLI 不保存数据库 URL、账号、密码或环境到连接 ID 的映射。
10
- - 服务端同步接口会检查目标 appCode 的一键部署开关;未开启时正常跳过,不属于异常或无权限。
11
- - 同一批最多 100 个编码;需要分批时逐批确认结果,不并发执行。
10
+ - 从可信事实中取得业务编码,不猜测 DatasetCode、function name sqlCode。
11
+ - Agent 只提供下方列出的业务参数。
12
+ - 服务端会检查 appCode 白名单;未开启时正常跳过,不属于异常或无权限。
13
+ - 一次命令最多 100 个编码;CLI 串行处理,不并发执行。
12
14
 
13
15
  ## 先预览
14
16
 
15
- 环境部署:
16
-
17
17
  ```sh
18
18
  rabetbase deployment sync \
19
19
  --appcode <appCode> \
20
- --db-id <dbLinkId> \
21
- --target-env test \
22
20
  --type dataset \
23
21
  --codes <code1,code2> \
24
22
  --dry-run \
25
23
  --format compress
26
24
  ```
27
25
 
28
- 直连部署:
29
-
30
- ```sh
31
- rabetbase deployment sync \
32
- --appcode <appCode> \
33
- --db-id <dbLinkId> \
34
- --direct \
35
- --type bff \
36
- --codes <code1> \
37
- --dry-run \
38
- --format compress
39
- ```
40
-
41
- 检查输出中的 `data.selector.targetMode`、`data.selector.targetEnv`、`data.selector.bizType`、`data.selector.bizCodes` 和 `data.selector.dbLinkId`。dry-run 不发起同步请求。
26
+ 检查 `data.selector.bizType` 和 `data.selector.bizCodes`;dry-run 不发起同步请求。
42
27
 
43
28
  ## 正式执行
44
29
 
@@ -47,8 +32,6 @@ rabetbase deployment sync \
47
32
  ```sh
48
33
  rabetbase deployment sync \
49
34
  --appcode <appCode> \
50
- --db-id <dbLinkId> \
51
- --target-env test \
52
35
  --type dataset \
53
36
  --codes <code1,code2> \
54
37
  --confirm \
@@ -58,35 +41,60 @@ rabetbase deployment sync \
58
41
 
59
42
  ## 参数约束
60
43
 
61
- - `--db-id`:正整数基础 dblink/环境连接组 ID;不是某个环境的最终连接 ID。
62
- - `--target-env dev|test|pre|prod`:服务端环境连接映射选择器;与 `--direct` 必须且只能选择一个。
63
44
  - `--type dataset|bff|sql`:同步资源类型。
64
45
  - `--codes`:逗号分隔;命令 trim、过滤空项并按首次出现顺序去重,最多 100 个。
65
- - 全局 `--env production|daily` 只决定 CLI 服务域,不是部署目标;不要用它替代 `--target-env`。
46
+ - Agent 只提供 `--type`、`--codes` 和执行确认。
66
47
 
67
48
  ## 结果与失败处理
68
49
 
69
50
  - 退出码 `0`:服务端没有返回 `FAILED`;`SKIPPED`、`UNCHANGED` 等 no-op action 或空 items 均表示无需执行,不作为异常。
70
- - 退出码 `1`:至少一个条目为 `FAILED`。读取结构化输出的 `data.items[]`,保留成功项和失败项的完整事实,不要把整批误报为失败或成功,也不要自动重提整批。
71
- - 退出码 `2`:写请求响应丢失或响应无法证明结果。同步可能已经生效;先人工核对目标部署,再决定是否处理未完成项,禁止直接重试。
51
+ - 退出码 `1`:至少一个条目为 `FAILED`。读取结构化输出的 `data.items[]`,只人工处理明确失败的 code,不自动重提整批。
52
+ - 退出码 `2`:写请求响应丢失或响应无法证明结果。同步可能已经生效;先人工核对目标部署,再决定后续处理,禁止直接重试。
72
53
 
73
- Dataset 同步会先确保目标数据库连接存在,再逐项同步 Dataset,不是跨资源原子事务。命令当前不提供目标端只读回查;部署后的业务可用性仍需单独验收。
54
+ Dataset 同步会逐项处理 Dataset 元数据,不是跨资源原子事务。命令当前不提供目标端只读回查;部署后的业务可用性仍需单独验收。
74
55
 
75
56
  ## 日常 BFF / SQL push 自动同步
76
57
 
77
- 只有用户明确要求将日常开发变更持续同步到独立部署测试环境时,才写入 app profile:
58
+ 存在实际变更且主 push 成功后,CLI 自动提交精确同步意图;服务端原子检查 appCode 白名单并处理目标。未开启时返回成功空结果,表示无需执行,不是异常或无权限。
59
+
60
+ - `bff push` 只同步当前 push 中上传成功且完成缓存清理的 function name。
61
+ - `sql push` 只同步当前 push 中成功写入的 sqlCode;未变化项不触发同步。
62
+ - 主 push 或 BFF 缓存清理失败时不调用同步接口。
63
+ - dry-run 展示服务端托管的同步意图和精确 code,但不调用 `/sync`。
64
+ - Dataset 没有统一 push 入口,继续使用显式 `deployment sync --type dataset`;不要在 `dataset generate-status` 等只读命令中触发同步。
65
+ - 主 push 成功但后置同步失败时,不声称回滚主操作;按 `data.deploymentSync.recoveryCommand` 人工处理。
66
+ - `partial_failure`、`failed`、`outcome_unknown` 均不得自动重试。
67
+
68
+ ## 应用范围同步
69
+
70
+ 用户明确要求同步当前应用全部已支持研发元数据时,先预览:
78
71
 
79
72
  ```sh
80
- rabetbase workspace use --app <appName> --appcode <appCode> \
81
- --deployment-db-id <dbLinkId> --deployment-target-env dev
73
+ rabetbase deployment sync-all \
74
+ --appcode <appCode> \
75
+ --dry-run \
76
+ --format compress
82
77
  ```
83
78
 
84
- - 自动目标仅允许 `dev`、`test`、`pre`;生产和直连仍用显式命令并要求确认。
85
- - 每个 app profile 只保存一个明确的自动目标,不根据 Git 分支、CLI 服务域或登录状态推断环境。
86
- - 存在实际变更且主 push 成功后调用一次同步接口,由服务端检查 appCode 开关并按 `(dbLinkId, targetEnv)` 解析真实连接;未开启时正常 no-op,环境映射缺失则是配置错误。
87
- - `bff push` 只同步本次上传成功且完成缓存清理的 function name。
88
- - `sql push` 只同步本次 pushed sqlCode;未变化项不触发同步。
89
- - Dataset 没有统一 push 入口,暂不自动同步。
90
- - dry-run 展示配置目标和精确 code,但不发请求。
91
- - 主 push 成功但后置同步失败时,不声称回滚主操作;只有同步请求已提交后才按 `data.deploymentSync.recoveryCommand` 人工处理。
92
- - `partial_failure`、`failed`、`outcome_unknown` 均不得自动重试。
79
+ 经用户确认后,复用预览中的 appCode 提交:
80
+
81
+ ```sh
82
+ rabetbase deployment sync-all \
83
+ --appcode <appCode> \
84
+ --confirm \
85
+ --yes \
86
+ --format compress
87
+ ```
88
+
89
+ - `outcome=not_needed`:服务端判定当前应用无需同步,属于正常完成,不解释为异常或无权限。
90
+ - `outcome=submitted`:保存 `jobId`,再用 `deployment sync-status` 查询同一任务。
91
+ - 提交结果未知:不得再次执行 `sync-all`;先用 `deployment sync-jobs` 查找近期任务。
92
+
93
+ 任务查询:
94
+
95
+ ```sh
96
+ rabetbase deployment sync-status --job-id <jobId> --format compress
97
+ rabetbase deployment sync-jobs --appcode <appCode> --format compress
98
+ ```
99
+
100
+ 只根据 `isTerminal` 判断是否已知终态;若为 `null`,保留服务端状态并交给用户判断。逐项资源类型和 action 都是服务端开放字符串,Agent 不建立枚举闭集,也不因新值自动重提。
@@ -0,0 +1,92 @@
1
+ # rabetbase instant-api-policy
2
+
3
+ 管理应用级 Instant API 数据集访问策略。策略可以按 `datasetCode + api` 放行、禁止,或路由到同一应用的普通 Backend Function ENDPOINT。
4
+
5
+ ## 固定本地文件
6
+
7
+ 每个应用只有一个 CLI 策略源文件:
8
+
9
+ ```text
10
+ .rabetbase/instant-api-policy/<appCode>/policy.json
11
+ ```
12
+
13
+ `init`、`pull`、`validate` 和 `publish` 只使用该路径,不提供 `--file`。目标应用来自当前工作区、`--app <name>` 或 `--appcode <code>`。策略不存入 `.rabetbase.json` 或运行态 app-config。
14
+
15
+ `version` 固定为字符串 `"1"`,表示 JSON 结构版本。`revision` 是服务端发布历史版本,首次发布为 1,后续发布和回滚递增;两者含义不同。
16
+
17
+ ## 配置结构
18
+
19
+ ```json
20
+ {
21
+ "version": "1",
22
+ "appCode": "app-example",
23
+ "defaults": {
24
+ "instantApi": "allow"
25
+ },
26
+ "rules": [
27
+ {
28
+ "name": "route-student-filter",
29
+ "description": "学生筛选交给业务 Backend Function",
30
+ "datasets": [
31
+ {
32
+ "datasetCode": "student23"
33
+ }
34
+ ],
35
+ "apis": ["filter"],
36
+ "action": "route",
37
+ "backendFunction": "filterStudents"
38
+ }
39
+ ]
40
+ }
41
+ ```
42
+
43
+ - `defaults.instantApi` 只允许 `allow` 或 `deny`,不能是 `route`。
44
+ - `rules[].action` 允许 `allow`、`deny`、`route`。
45
+ - `route` 必须填写 `backendFunction`;其他 action 禁止填写。
46
+ - `datasets[]` 至少填写 `datasetCode` 或 `tableName`;建议优先使用稳定的 `datasetCode`。两者同时填写时必须指向同一 Dataset。
47
+ - 同一个 `datasetCode + api` 只能命中一条规则;重复覆盖会校验失败。
48
+ - `apis` 的每个元素是一个独立值。`["filter,create"]` 或包含中文逗号的 `["filter,create"]` 都不是两个 API。
49
+ - 支持的 API:`getSelectOptions`、`getList`、`excelExport`、`filter`、`aggregate`、`getOne`、`getOneOrigin`、`create`、`batchCreate`、`update`、`delete`。
50
+
51
+ 路由目标必须属于同一应用、类型为 `ENDPOINT`、不是 Personal Backend Function,并且函数配置可被 Runtime 解析。命中 route 后直接执行 Backend Function,原 Dataset 操作、Dynamic Hook 和通知链路不执行。策略判定优先于 Dynamic Hook。
52
+
53
+ ## 本地配置工作流
54
+
55
+ ```bash
56
+ # 没有远端策略时创建默认放行草稿
57
+ rabetbase instant-api-policy init --format compress
58
+
59
+ # 已有远端策略时拉到固定文件;本地不同内容不会被静默覆盖
60
+ rabetbase instant-api-policy pull --format compress
61
+ rabetbase instant-api-policy pull --force --yes --format compress
62
+
63
+ # 编辑固定 policy.json 后进行服务端校验
64
+ rabetbase instant-api-policy validate --format compress
65
+
66
+ # 预览发布;0 表示预期当前尚未配置
67
+ rabetbase instant-api-policy publish --expected-revision 0 --change-summary "initial policy" --dry-run --format compress
68
+
69
+ # 人工确认高风险影响后发布
70
+ rabetbase instant-api-policy publish --expected-revision 0 --change-summary "initial policy" --yes --format compress
71
+ ```
72
+
73
+ `init --default-action deny` 可以创建默认禁止草稿。`init` 和 `pull` 遇到不同的既有文件时停止;只有 `--force --yes` 可以替换。
74
+
75
+ `validate` 调用服务端完整校验,返回 `configHash` 和 `normalizedConfig`,但不发布、不生成 revision。Dataset、API、规则重叠以及 Backend Function 合法性以该结果为准。
76
+
77
+ `publish` 和 `rollback` 是 `high-risk-write`。它们受 CLI `riskLevel` 门禁约束;Agent 和自动化脚本不得修改 `riskLevel` 提权。正式执行需要 `--yes`,建议使用 `--expected-revision` 做写前漂移检查。该检查是非原子的,因为服务端 mutation 请求没有 revision 条件。
78
+
79
+ ## 查询与回滚
80
+
81
+ ```bash
82
+ rabetbase instant-api-policy current --format compress
83
+ rabetbase instant-api-policy revisions --format compress
84
+ rabetbase instant-api-policy revision --revision 2 --format compress
85
+
86
+ rabetbase instant-api-policy rollback --revision 2 --expected-revision 5 --dry-run --format compress
87
+ rabetbase instant-api-policy rollback --revision 2 --expected-revision 5 --change-summary "restore revision 2" --yes --format compress
88
+ ```
89
+
90
+ 回滚不会把 revision 倒退,也不会覆盖历史。例如当前 revision 为 5,恢复 revision 2 后会生成新的 revision 6。
91
+
92
+ 发布和回滚最多提交一次。CLI 随后读取当前策略,要求 configHash 匹配且 revision 推进。响应丢失但回读可以证明结果时返回 verified;证据不足时停止并提示执行 `current`,不得自动重提。Runtime 最迟约 30 秒感知新策略。
@@ -2,8 +2,8 @@
2
2
  "schemaVersion": 1,
3
3
  "name": "rabetbase",
4
4
  "packageName": "@lovrabet/rabetbase-cli",
5
- "packageVersion": "2.5.1",
6
- "skillVersion": "2.5.1",
5
+ "packageVersion": "2.5.2-beta.2",
6
+ "skillVersion": "2.5.2-beta.2",
7
7
  "files": [
8
8
  "SKILL.md",
9
9
  "guides/backend-function.md",
@@ -85,6 +85,7 @@
85
85
  "references/rabetbase-doctor.md",
86
86
  "references/rabetbase-file.md",
87
87
  "references/rabetbase-init.md",
88
+ "references/rabetbase-instant-api-policy.md",
88
89
  "references/rabetbase-issue-report.md",
89
90
  "references/rabetbase-kb.md",
90
91
  "references/rabetbase-menu-asset-update.md",
@@ -138,5 +139,5 @@
138
139
  "references/rabetbase-user-account.md",
139
140
  "references/rabetbase-workspace.md"
140
141
  ],
141
- "digest": "e7dfbbba5a00b0bd70afeea096c0484a3c13b1abbffc3418d1d31e4cf8143dad"
142
+ "digest": "0367fd969de461022c6e87709aa5802f1c1403aaec8165599f0c49716d438912"
142
143
  }
@@ -1,10 +0,0 @@
1
- import type { FlagDef } from "../framework/types.js";
2
- export declare const AUTO_DEPLOYMENT_TARGET_ENVS: readonly ["dev", "test", "pre"];
3
- export type AutoDeploymentTargetEnv = typeof AUTO_DEPLOYMENT_TARGET_ENVS[number];
4
- export interface DeploymentSyncProfile {
5
- dbLinkId: number;
6
- targetEnv: AutoDeploymentTargetEnv;
7
- }
8
- export declare function getDeploymentSyncProfileFlagDefs(): FlagDef[];
9
- export declare function collectDeploymentSyncProfile(getFlagValue: (name: string) => string): DeploymentSyncProfile | undefined;
10
- export declare function validateDeploymentSyncProfile(value: unknown): DeploymentSyncProfile;
@@ -1 +0,0 @@
1
- const a217_0x340a1c=a217_0x15a5;(function(_0x178fcf,_0x1bca70){const _0x28e996=a217_0x15a5,_0xf12f2=_0x178fcf();while(!![]){try{const _0x5282b0=parseInt(_0x28e996(0x158))/0x1*(parseInt(_0x28e996(0x14e))/0x2)+parseInt(_0x28e996(0x154))/0x3+-parseInt(_0x28e996(0x156))/0x4+parseInt(_0x28e996(0x14a))/0x5*(parseInt(_0x28e996(0x15a))/0x6)+parseInt(_0x28e996(0x157))/0x7+-parseInt(_0x28e996(0x15b))/0x8+-parseInt(_0x28e996(0x150))/0x9*(parseInt(_0x28e996(0x15e))/0xa);if(_0x5282b0===_0x1bca70)break;else _0xf12f2['push'](_0xf12f2['shift']());}catch(_0x4f0a61){_0xf12f2['push'](_0xf12f2['shift']());}}}(a217_0x4d10,0x9f67a));function a217_0x4d10(){const _0x15dca6=['isSafeInteger','deployment-db-id','1186029ALyMSK','dev','2006224pcWXau','7477323wOzRVU','634526vUBTuI','trim','1565796zSkHWL','6091248lTyhtZ','includes','deployment-target-env','30TmvdPA','Base\x20dblink\x20ID\x20whose\x20server-side\x20environment\x20mapping\x20selects\x20the\x20automatic\x20sync\x20target','targetEnv','object','validation','Non-production\x20target\x20selected\x20by\x20the\x20server-side\x20environment\x20mapping','20pPURDK','test','string','dbLinkId','4FtBmkU','deploymentSync\x20must\x20contain\x20dbLinkId\x20and\x20targetEnv.','5581692zUUipB','number'];a217_0x4d10=function(){return _0x15dca6;};return a217_0x4d10();}import{CliErrors}from'../errors.js';export const AUTO_DEPLOYMENT_TARGET_ENVS=[a217_0x340a1c(0x155),a217_0x340a1c(0x14b),'pre'];function a217_0x15a5(_0x3691e1,_0x1a519c){_0x3691e1=_0x3691e1-0x145;const _0x4d1098=a217_0x4d10();let _0x15a513=_0x4d1098[_0x3691e1];return _0x15a513;}export function getDeploymentSyncProfileFlagDefs(){const _0x539c5a=a217_0x340a1c;return[{'name':'deployment-db-id','type':_0x539c5a(0x151),'description':_0x539c5a(0x145)},{'name':_0x539c5a(0x15d),'type':_0x539c5a(0x14c),'enum':[...AUTO_DEPLOYMENT_TARGET_ENVS],'description':_0x539c5a(0x149)}];}export function collectDeploymentSyncProfile(_0x393fc1){const _0x261b59=a217_0x340a1c,_0x50f040=_0x393fc1(_0x261b59(0x153))['trim'](),_0x51b9f4=_0x393fc1(_0x261b59(0x15d))[_0x261b59(0x159)]();if(!_0x50f040&&!_0x51b9f4)return undefined;return validateDeploymentSyncProfile({'dbLinkId':_0x50f040?Number(_0x50f040):undefined,'targetEnv':_0x51b9f4||undefined});}export function validateDeploymentSyncProfile(_0x291bcf){const _0x349eb1=a217_0x340a1c;if(!_0x291bcf||typeof _0x291bcf!==_0x349eb1(0x147)||Array['isArray'](_0x291bcf))throw CliErrors[_0x349eb1(0x148)](_0x349eb1(0x14f));const _0x13975c=_0x291bcf,_0x1661d5=Number(_0x13975c[_0x349eb1(0x14d)]);if(!Number[_0x349eb1(0x152)](_0x1661d5)||_0x1661d5<=0x0)throw CliErrors[_0x349eb1(0x148)]('--deployment-db-id\x20must\x20be\x20a\x20positive\x20safe\x20integer.');const _0xfe77b5=typeof _0x13975c['targetEnv']==='string'?_0x13975c[_0x349eb1(0x146)]['trim']():'';if(!AUTO_DEPLOYMENT_TARGET_ENVS[_0x349eb1(0x15c)](_0xfe77b5))throw CliErrors['validation']('--deployment-target-env\x20must\x20be\x20one\x20of:\x20'+AUTO_DEPLOYMENT_TARGET_ENVS['join'](',\x20')+'.','Production\x20and\x20direct\x20targets\x20must\x20use\x20`rabetbase\x20deployment\x20sync`\x20with\x20explicit\x20confirmation.');return{'dbLinkId':_0x1661d5,'targetEnv':_0xfe77b5};}