@lovrabet/rabetbase-cli 2.3.4-beta.1 → 2.3.4-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 (219) hide show
  1. package/README.md +99 -560
  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/add.js +1 -1
  21. package/lib/commands/app/discover.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/remove.js +1 -1
  25. package/lib/commands/app/shared.js +1 -1
  26. package/lib/commands/app-config/delete.js +1 -1
  27. package/lib/commands/app-config/get.js +1 -1
  28. package/lib/commands/app-config/index.js +1 -1
  29. package/lib/commands/app-config/list.js +1 -1
  30. package/lib/commands/app-config/set.js +1 -1
  31. package/lib/commands/app-config/shared.js +1 -1
  32. package/lib/commands/auth/index.js +1 -1
  33. package/lib/commands/bff/create.js +1 -1
  34. package/lib/commands/bff/delete.js +1 -1
  35. package/lib/commands/bff/detail.js +1 -1
  36. package/lib/commands/bff/index.js +1 -1
  37. package/lib/commands/bff/list.js +1 -1
  38. package/lib/commands/bff/pull.js +1 -1
  39. package/lib/commands/bff/push.js +1 -1
  40. package/lib/commands/bff/status.js +1 -1
  41. package/lib/commands/cli-skill/index.js +1 -1
  42. package/lib/commands/cli-update.js +1 -1
  43. package/lib/commands/codegen/index.js +1 -1
  44. package/lib/commands/codegen/sdk.js +1 -1
  45. package/lib/commands/codegen/sql.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/flags.js +1 -1
  48. package/lib/commands/common/validate.js +1 -1
  49. package/lib/commands/config/get.js +1 -1
  50. package/lib/commands/config/index.js +1 -1
  51. package/lib/commands/config/list.js +1 -1
  52. package/lib/commands/config/set.js +1 -1
  53. package/lib/commands/config/shared.js +1 -1
  54. package/lib/commands/data/filter.js +1 -1
  55. package/lib/commands/data/getOne.js +1 -1
  56. package/lib/commands/data/index.js +1 -1
  57. package/lib/commands/data/shared.js +1 -1
  58. package/lib/commands/dataset/business-group-update.js +1 -1
  59. package/lib/commands/dataset/capability.js +1 -1
  60. package/lib/commands/dataset/delete.js +1 -1
  61. package/lib/commands/dataset/detail.js +1 -1
  62. package/lib/commands/dataset/extend-update.js +1 -1
  63. package/lib/commands/dataset/field-update.js +1 -1
  64. package/lib/commands/dataset/generate.js +1 -1
  65. package/lib/commands/dataset/index.js +1 -1
  66. package/lib/commands/dataset/list.js +1 -1
  67. package/lib/commands/dataset/operations.js +1 -1
  68. package/lib/commands/dataset/relation-audit.js +1 -1
  69. package/lib/commands/dataset/relation-create.js +1 -1
  70. package/lib/commands/dataset/relation-delete.js +1 -1
  71. package/lib/commands/dataset/relation-shared.js +1 -1
  72. package/lib/commands/dataset/relation-update.js +1 -1
  73. package/lib/commands/dataset/relations.js +1 -1
  74. package/lib/commands/dataset/rename.js +1 -1
  75. package/lib/commands/dataset/restore.js +1 -1
  76. package/lib/commands/db/analyze-cancel.js +1 -1
  77. package/lib/commands/db/analyze-start.js +1 -1
  78. package/lib/commands/db/analyze-status.js +1 -1
  79. package/lib/commands/db/create.js +1 -1
  80. package/lib/commands/db/delete.js +1 -1
  81. package/lib/commands/db/detail.js +1 -1
  82. package/lib/commands/db/diff.js +1 -1
  83. package/lib/commands/db/index.js +1 -1
  84. package/lib/commands/db/list.js +1 -1
  85. package/lib/commands/db/shared.js +1 -1
  86. package/lib/commands/db/tables.js +1 -1
  87. package/lib/commands/db/test.js +1 -1
  88. package/lib/commands/db/update.js +1 -1
  89. package/lib/commands/doctor.js +1 -1
  90. package/lib/commands/init/index.js +1 -1
  91. package/lib/commands/issue/index.js +1 -1
  92. package/lib/commands/issue/nudge.js +1 -1
  93. package/lib/commands/issue/report.js +1 -1
  94. package/lib/commands/issue/shared.js +1 -1
  95. package/lib/commands/logs/index.js +1 -1
  96. package/lib/commands/menu/index.js +1 -1
  97. package/lib/commands/menu/list.js +1 -1
  98. package/lib/commands/menu/shared/compare-table.js +1 -1
  99. package/lib/commands/menu/shared/index.js +1 -1
  100. package/lib/commands/menu/shared/inquirer.js +1 -1
  101. package/lib/commands/menu/shared/local-pages.js +1 -1
  102. package/lib/commands/menu/shared/logic.js +1 -1
  103. package/lib/commands/menu/shared/service.js +1 -1
  104. package/lib/commands/menu/shared/sync-core.js +1 -1
  105. package/lib/commands/menu/shared/update-core.js +1 -1
  106. package/lib/commands/menu/shared/valid-url.js +1 -1
  107. package/lib/commands/menu/sync.js +1 -1
  108. package/lib/commands/menu/update.js +1 -1
  109. package/lib/commands/page/generate-start.js +1 -1
  110. package/lib/commands/page/generate-status.js +1 -1
  111. package/lib/commands/page/index.js +1 -1
  112. package/lib/commands/page/pull.js +1 -1
  113. package/lib/commands/page/push.js +1 -1
  114. package/lib/commands/page/relation-audit.js +1 -1
  115. package/lib/commands/page/shared.js +1 -1
  116. package/lib/commands/page/standard-page-status.js +1 -1
  117. package/lib/commands/page/sync.js +1 -1
  118. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  119. package/lib/commands/project/create/format-elapsed.js +1 -1
  120. package/lib/commands/project/create/main.js +1 -1
  121. package/lib/commands/project/create/non-interactive.js +1 -1
  122. package/lib/commands/project/create/project-template-path.js +1 -1
  123. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  124. package/lib/commands/project/create/use-format-code.js +1 -1
  125. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  126. package/lib/commands/project/index.js +1 -1
  127. package/lib/commands/project/init.js +1 -1
  128. package/lib/commands/project/upgrade.js +1 -1
  129. package/lib/commands/registry.js +1 -1
  130. package/lib/commands/run/index.js +1 -1
  131. package/lib/commands/schema.js +1 -1
  132. package/lib/commands/sql/create.js +1 -1
  133. package/lib/commands/sql/delete.js +1 -1
  134. package/lib/commands/sql/detail.js +1 -1
  135. package/lib/commands/sql/exec.js +1 -1
  136. package/lib/commands/sql/index.js +1 -1
  137. package/lib/commands/sql/list.js +1 -1
  138. package/lib/commands/sql/pull.js +1 -1
  139. package/lib/commands/sql/push.js +1 -1
  140. package/lib/commands/sql/save.js +1 -1
  141. package/lib/commands/sql/shared.js +1 -1
  142. package/lib/commands/sql/status.js +1 -1
  143. package/lib/commands/sql/validate.js +1 -1
  144. package/lib/commands/workspace/index.js +1 -1
  145. package/lib/config/schema.js +1 -1
  146. package/lib/constant/cdn.js +1 -1
  147. package/lib/constant/cli.js +1 -1
  148. package/lib/constant/defaults.js +1 -1
  149. package/lib/constant/domain.js +1 -1
  150. package/lib/constant/env.js +1 -1
  151. package/lib/constant/output.js +1 -1
  152. package/lib/constant/paths.js +1 -1
  153. package/lib/constant/risk.js +1 -1
  154. package/lib/context/app-resolver.js +1 -1
  155. package/lib/context/auth-resolver.js +1 -1
  156. package/lib/context/config-loader.js +1 -1
  157. package/lib/context.js +1 -1
  158. package/lib/core/alias-resolver.js +1 -1
  159. package/lib/core/api-client.js +1 -1
  160. package/lib/core/bff/config.js +1 -1
  161. package/lib/core/bff/file-system.js +1 -1
  162. package/lib/core/bff/hash.js +1 -1
  163. package/lib/core/bff/lock.js +1 -1
  164. package/lib/core/bff/utils.js +1 -1
  165. package/lib/core/db-resolver.js +1 -1
  166. package/lib/core/page/file-system.js +1 -1
  167. package/lib/core/page/hash.js +1 -1
  168. package/lib/core/page/lock.js +1 -1
  169. package/lib/core/sql-sync/config.js +1 -1
  170. package/lib/core/sql-sync/file-system.js +1 -1
  171. package/lib/core/sql-sync/hash.js +1 -1
  172. package/lib/core/sql-sync/lock.js +1 -1
  173. package/lib/core/sql-sync/utils.js +1 -1
  174. package/lib/core/sql-validator.js +1 -1
  175. package/lib/errors.js +1 -1
  176. package/lib/framework/build-all-flags.js +1 -1
  177. package/lib/framework/flags.js +1 -1
  178. package/lib/framework/help.js +1 -1
  179. package/lib/framework/index.js +1 -1
  180. package/lib/framework/output.js +1 -1
  181. package/lib/framework/response.js +1 -1
  182. package/lib/framework/runner-alias.js +1 -1
  183. package/lib/framework/runner.js +1 -1
  184. package/lib/framework/schema-export.js +1 -1
  185. package/lib/framework/types.js +1 -1
  186. package/lib/generated/build-info.js +1 -1
  187. package/lib/help.js +1 -1
  188. package/lib/skills/main.js +1 -1
  189. package/lib/skills/npx-skills-add.js +1 -1
  190. package/lib/telemetry/cli-command-trace.js +1 -1
  191. package/lib/telemetry/cli-help-trace.js +1 -1
  192. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  193. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  194. package/lib/telemetry/send-cli-trace-log.js +1 -1
  195. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  196. package/lib/utils/ai_config.js +1 -1
  197. package/lib/utils/apply-jq-filter.js +1 -1
  198. package/lib/utils/cdn-config.js +1 -1
  199. package/lib/utils/check-sdk-version.js +1 -1
  200. package/lib/utils/cli-version-check.js +1 -1
  201. package/lib/utils/cli-version-policy.js +1 -1
  202. package/lib/utils/config.js +1 -1
  203. package/lib/utils/copy-directory.js +1 -1
  204. package/lib/utils/entity-with-id.js +1 -1
  205. package/lib/utils/file-utils.js +1 -1
  206. package/lib/utils/guides-cdn.js +1 -1
  207. package/lib/utils/http-client.js +1 -1
  208. package/lib/utils/is-non-interactive.js +1 -1
  209. package/lib/utils/logger.js +1 -1
  210. package/lib/utils/params.js +1 -1
  211. package/lib/utils/platform.js +1 -1
  212. package/lib/utils/rules-cdn.js +1 -1
  213. package/lib/utils/sleep.js +1 -1
  214. package/lib/utils/template-replacer.js +1 -1
  215. package/lib/utils/update-notice.js +1 -1
  216. package/lib/utils/version.js +1 -1
  217. package/lib/utils/with-active-cookie.js +1 -1
  218. package/lib/utils/write-cli-side-channel.js +1 -1
  219. package/package.json +18 -2
package/README.md CHANGED
@@ -1,627 +1,166 @@
1
- # Rabetbase CLI(`@lovrabet/rabetbase-cli`)
1
+ # Rabetbase CLI
2
2
 
3
- 一个强大的前端开发脚手架工具,专为 [Lovrabet](https://www.lovrabet.com) 开放平台应用开发而设计。提供项目创建、页面生成、API 集成、开发调试等全套开发工具链。全局安装后的默认可执行文件名为 **`rabetbase`**(仍提供 **`lovrabet`** 作为兼容别名)。
3
+ Rabetbase CLI is the developer command-line interface for Lovrabet
4
+ applications. It helps developers, delivery teams, and AI agents create
5
+ projects, bind workspaces, inspect developer-side app contracts, manage
6
+ datasets, generate API files, synchronize smart list pages, publish SQL and BFF
7
+ assets, manage database connections, and prepare agent-ready development
8
+ workflows from a stable terminal surface.
4
9
 
5
- ## 特性
10
+ The CLI is designed for development-time operations. Use it to configure and
11
+ publish Lovrabet app assets before they become runtime capabilities. For
12
+ runtime business data queries, runtime SQL or BFF execution, and app-specific
13
+ business Skills, use the Lovrabet runtime CLI (`@lovrabet/lovrabet-cli`).
6
14
 
7
- - 🚀 **快速创建项目** - 基于模板快速生成完整的前端应用项目
8
- - 📄 **智能页面生成** - 自动生成页面组件和路由配置
9
- - 🔐 **统一身份认证** - 集成 Lovrabet 平台登录和权限管理
10
- - 🌐 **API 自动生成** - 根据数据集自动生成 API 配置文件
11
- - 📋 **菜单智能同步** - 自动扫描本地页面并同步菜单到平台,支持多种命名策略
12
- - ⚡ **开发服务器** - 内置热更新开发服务器
13
- - 🏗️ **智能构建** - 优化的生产环境构建配置
14
- - 📦 **模板管理** - 丰富的项目模板和组件模板
15
- - 📝 **日志管理** - 完整的开发日志记录和查看
15
+ ## Requirements
16
16
 
17
- ## 📦 安装
17
+ - Node.js 20 or later
18
+ - A Lovrabet account with access to the target developer app
19
+ - Browser login for commands that call the Lovrabet platform
20
+ - An existing Lovrabet frontend project, or a new project created by this CLI
18
21
 
19
- ### 全局安装(推荐)
20
-
21
- ```bash
22
- # 使用 npm
23
- npm install -g @lovrabet/rabetbase-cli
24
-
25
- # 使用 bun(推荐)
26
- bun install -g @lovrabet/rabetbase-cli
27
- ```
28
-
29
- ### 验证安装
22
+ ## Install
30
23
 
31
24
  ```bash
25
+ npm install -g @lovrabet/rabetbase-cli@latest
26
+ rabetbase --version
32
27
  rabetbase --help
33
28
  ```
34
29
 
35
- ## 🚀 快速上手
36
-
37
- ### 1. 登录认证
38
-
39
- 首先需要登录 Lovrabet 平台获取访问权限:
40
-
41
- ```bash
42
- rabetbase auth
43
- ```
44
-
45
- 这会打开浏览器登录页面,完成登录后 CLI 会自动保存认证信息。
46
-
47
- ### 2. 创建项目
48
-
49
- ```bash
50
- rabetbase create
51
- ```
52
-
53
- CLI 会引导您选择项目模板并创建完整的项目结构。
54
-
55
- ### 3. 启动开发
56
-
57
- 进入项目目录并启动开发服务器:
58
-
59
- ```bash
60
- cd your-project
61
- rabetbase start
62
- ```
63
-
64
- ### 4. 生成 API 配置[可选]
65
-
66
- 如果在create的时候未选择自动更新API列表,或者API已经发生变化,可以手动根据应用的appcode自动生成 API 配置:
30
+ You can also run a specific version with npm tooling:
67
31
 
68
32
  ```bash
69
- rabetbase api pull --appcode <app-code>
33
+ npx @lovrabet/rabetbase-cli@latest --help
70
34
  ```
71
35
 
72
- ### 5. 添加页面
73
-
74
- 在项目中快速添加新页面:
75
-
76
- ```bash
77
- rabetbase add page
78
- ```
79
-
80
- ## 🤖 Agent Runtime 智能发布
81
-
82
- 在支持仓库 Agent Skill 的 Agent Runtime terminal 中,可以输入发布意图。Agent 会加载并遵循本仓 repo-local deploy skill:`.agents/skills/flow-rabetbase-cli-deploy/SKILL.md`,该 skill 会引用 `wiki/policies/cli-deploy-policy.md`,并最终调用受保护的 npm 发布脚本:
83
-
84
- | 输入 | Agent 执行动作 |
85
- | --- | --- |
86
- | `deploy beta` | 按 `flow-rabetbase-cli-deploy` 的 beta 流程执行门禁,临时写 beta 版本并发布 npm beta;不创建 MR、不把 beta 版本提交回 `main` |
87
- | `deploy latest` | 按 `flow-rabetbase-cli-deploy` 的 latest 流程执行门禁,临时写 stable 版本并发布 npm latest / Open Skill;不创建 MR、不把 latest 版本提交回 `main` |
88
-
89
- `deploy beta` / `deploy latest` 是 Agent 意图短语,不是普通 shell 命令;也不是直接在 shell 中执行 `SKILL.md` 文件。普通终端中请直接使用 `npm run beta-release` 或 `npm run release`。裸 `deploy` 不作为推荐发布入口;Agent 收到时应先要求用户明确 `beta` 或 `latest` 通道,不能默认执行正式发布。
90
-
91
- 发布硬规则:
92
-
93
- - `deploy beta` / `deploy latest` 不要求 MR,也不写 `main`;可在干净的 `main` 或 release 工作区执行,但脚本不得提交或推送当前分支。
94
- - 修改代码、文档、Skill、脚本、测试等仓库持久化内容必须走 CodeUp MR。
95
- - 发布前必须完成本地验证,并确认当前 npmjs 发布身份。
96
- - npm 发布认证以 npm CLI 提供的 WebAuthn / Security Key 链路为主;OTP 仅在 npm CLI 明确要求时作为兜底。
97
-
98
- ## 分场景使用教程
99
-
100
- 由浅入深的说明见 **[docs/user-guide/README.md](./docs/user-guide/README.md)**(安装与登录、配置与多应用、API/数据集、自定义 SQL、BFF 同步、代码生成与菜单、排障等)。逐项参数仍以 [docs/commands.md](./docs/commands.md) 为准。
101
-
102
- ## 📚 命令详解
103
-
104
- ### 项目管理
105
-
106
- #### `rabetbase create [项目名]`
107
-
108
- 创建新的前端应用项目
109
-
110
- - **功能**: 基于预设模板创建完整的项目结构
111
- - **模板类型**:
112
- - React 单页应用
113
- - 多页面应用
114
- - 组件库项目
115
- - **自动配置**: 路由、状态管理、API 集成、构建配置
116
-
117
- #### `rabetbase add page`
118
-
119
- 添加新页面到当前项目
120
-
121
- - **功能**: 自动生成页面组件、样式文件和路由配置
122
- - **支持**: 嵌套路由、动态路由、页面模板选择
123
- - **自动更新**: 路由配置文件和导航菜单
124
-
125
- ### 开发调试
126
-
127
- #### `rabetbase start`
36
+ ## Quick Start
128
37
 
129
- 启动开发服务器
130
-
131
- - **热更新**: 文件变化自动刷新
132
- - **代理配置**: 自动配置 API 代理
133
- - **错误提示**: 友好的错误信息和调试提示
134
-
135
- #### `rabetbase build`
136
-
137
- 构建生产版本
138
-
139
- - **代码压缩**: 自动压缩 JS、CSS、HTML
140
- - **资源优化**: 图片压缩、字体子集化
141
- - **缓存优化**: 文件名哈希、分包策略
142
-
143
- #### `rabetbase preview [--watch]`
144
-
145
- 预览构建结果
146
-
147
- - **本地服务**: 启动本地预览服务器
148
- - **监听模式**: `--watch` 参数自动重新构建
149
-
150
- ### API 集成
151
-
152
- #### `rabetbase api pull`
153
-
154
- 拉取并生成 API 配置文件
155
-
156
- - **自动发现**: 扫描应用数据集和接口
157
- - **类型生成**: 自动生成 TypeScript 类型定义
158
- - **配置生成**: 生成 SDK 配置文件
159
- - **可用参数**: `--appcode`、`--output`、`--env`(v1.1.7+)
160
-
161
- ### 身份认证
162
-
163
- #### `rabetbase auth`
164
-
165
- 登录 Lovrabet 平台
166
-
167
- - **浏览器登录**: 打开浏览器进行 OAuth 登录
168
- - **令牌管理**: 自动保存和刷新访问令牌
169
- - **权限验证**: 验证项目访问权限
170
-
171
- #### `rabetbase logout`
172
-
173
- 退出登录
174
-
175
- - **清理令牌**: 清除本地保存的认证信息
176
- - **安全退出**: 通知服务器撤销令牌
177
-
178
- ### 菜单管理
179
-
180
- #### `rabetbase menu sync`
181
-
182
- 同步本地页面到 Lovrabet 平台菜单
38
+ Authenticate first:
183
39
 
184
40
  ```bash
185
- rabetbase menu sync
41
+ rabetbase auth login
186
42
  ```
187
43
 
188
- - **自动扫描**: 扫描 `src/pages` 目录下的所有页面
189
- - **智能对比**: 对比本地和平台菜单,找出缺失项
190
- - **智能命名**: 支持多种菜单名称提取策略(详见文档)
191
- - **批量创建**: 一键创建所有缺失的菜单项
192
-
193
- **菜单名称提取优先级**:
194
-
195
- 1. **Title 注释**(最高优先级)- 在文件顶部注释中添加 `Title: 菜单名称`
196
- 2. **displayName 属性** - 组件的 `displayName` 属性
197
- 3. **组件名** - `export default` 的组件名(PascalCase)
198
- 4. **文件路径**(兜底)- 使用相对路径作为菜单名
199
-
200
- > 💡 **推荐做法**:使用 `Title:` 注释,可以设置中文菜单名,更加清晰易懂。
201
-
202
- ### 配置管理
203
-
204
- #### `rabetbase init`
205
-
206
- 在现有项目中初始化 Lovrabet 配置文件(v1.1.12+)
44
+ Create a new Lovrabet frontend project:
207
45
 
208
46
  ```bash
209
- rabetbase init # 交互式初始化
210
- rabetbase init --appcode my-app-code # 直接指定 appcode
211
- rabetbase init --appcode my-app --env daily # 指定环境
47
+ rabetbase project create my-app
48
+ cd my-app
212
49
  ```
213
50
 
214
- - **交互式输入**: 支持交互式输入 appcode,带实时格式验证
215
- - **智能验证**: 自动验证 appcode 格式(字母、数字、- 和 \_)
216
- - **安全保护**: 检测并防止覆盖现有配置文件
217
- - **配置继承**: 自动继承全局配置(如环境设置)
218
- - **版本记录**: 生成的配置包含创建时间和 CLI 版本
219
-
220
- **使用场景**:为已有的前端项目添加 Lovrabet 支持,无需重新创建项目。
221
-
222
- #### `rabetbase config`
223
-
224
- 项目配置管理
225
-
226
- - **应用绑定**: 绑定 Lovrabet 应用
227
- - **环境配置**: 开发/生产环境切换
228
- - **API 配置**: 数据集和接口配置
229
-
230
- ### 日志管理
231
-
232
- #### `rabetbase logs`
233
-
234
- 查看开发日志
51
+ Initialize or update the current workspace app binding:
235
52
 
236
53
  ```bash
237
- rabetbase logs # 查看最新日志
238
- rabetbase logs --clear # 清空日志记录
54
+ rabetbase workspace init --appcode <app-code>
55
+ rabetbase doctor
239
56
  ```
240
57
 
241
- ## 🏗️ 项目结构
242
-
243
- CLI 创建的项目具有以下标准结构:
244
-
245
- ```
246
- your-project/
247
- ├── src/
248
- │ ├── components/ # 公共组件
249
- │ ├── pages/ # 页面组件
250
- │ ├── layouts/ # 布局组件
251
- │ ├── api/ # API 配置
252
- │ ├── utils/ # 工具函数
253
- │ ├── router/ # 路由配置
254
- │ └── main.tsx # 入口文件
255
- ├── public/ # 静态资源
256
- ├── docs/ # 项目文档
257
- ├── package.json # 项目配置
258
- ├── vite.config.ts # 构建配置
259
- ├── tsconfig.json # TypeScript 配置
260
- └── .rabetbase.json # Rabetbase CLI 配置
261
- ```
262
-
263
- ## ⚙️ 配置文件
264
-
265
- ### `.rabetbase.json`
266
-
267
- 项目根目录的配置文件(JSON 格式),用于配置应用基本信息:
268
-
269
- ```json
270
- {
271
- "appcode": "your-app-code",
272
- "env": "production",
273
- "createdAt": "2025/1/5 10:30:00",
274
- "version": "1.1.15"
275
- }
276
- ```
277
-
278
- **配置说明:**
279
-
280
- | 字段 | 说明 | 可选值 |
281
- |------|------|--------|
282
- | `appcode` | 应用代码,用于标识您的应用 | 字母、数字、`-` 和 `_` |
283
- | `env` | 运行环境 | `"production"` 或 `"daily"` |
284
- | `createdAt` | 配置创建时间(自动生成) | - |
285
- | `version` | CLI 版本(自动生成) | - |
286
-
287
- **生成方式:**
58
+ Pull developer-side dataset contracts and generate local API files:
288
59
 
289
60
  ```bash
290
- # 通过 init 命令生成
291
- rabetbase init --appcode your-app-code
292
-
293
- # 或通过 create 命令自动生成
294
- rabetbase create
295
- ```
296
-
297
- > 💡 **注意**:`.rabetbase.json` 是 CLI 工具的配置文件(兼容旧名 `.lovrabet.json` / `.lovrabetrc`)。SDK 的 API 配置(models)由 `rabetbase api pull` 命令自动生成到 `src/api/` 目录。
298
-
299
- ## 🔧 环境要求
300
-
301
- - **Node.js**: >= 20.0.0
302
- - **包管理器**: npm、yarn 或 bun
303
- - **浏览器**: Chrome、Firefox、Safari、Edge 等现代浏览器
304
-
305
- ## 🎯 使用场景
306
-
307
- ### 快速原型开发
308
-
309
- ```bash
310
- rabetbase create prototype-app
311
- cd prototype-app
312
- rabetbase api pull --appcode your-app-code
313
- rabetbase start
314
- ```
315
-
316
- ### 为现有项目添加 Lovrabet 支持(v1.1.12+)
317
-
318
- ```bash
319
- # 进入现有项目目录
320
- cd existing-project
321
-
322
- # 初始化 Lovrabet 配置
323
- rabetbase init --appcode your-app-code
324
-
325
- # 拉取 API 配置
326
- rabetbase api pull
327
-
328
- # 生成 API 文档
329
- rabetbase api doc
330
- ```
331
-
332
- ### 企业级应用开发
333
-
334
- ```bash
335
- rabetbase create enterprise-app
336
- cd enterprise-app
337
- rabetbase config # 配置生产环境
338
- rabetbase add page # 添加业务页面
339
- rabetbase build # 构建生产版本
61
+ rabetbase api pull --appcode <app-code>
340
62
  ```
341
63
 
342
- ### 组件库开发
64
+ Inspect a dataset before changing its structure or generated assets:
343
65
 
344
66
  ```bash
345
- rabetbase create component-library
346
- cd component-library
347
- # 开发和测试组件...
348
- rabetbase build
67
+ rabetbase dataset list --name customer --format pretty
68
+ rabetbase dataset detail --code <dataset-code> --format compress
69
+ rabetbase dataset operations --code <dataset-code> --format compress
349
70
  ```
350
71
 
351
- ## 🆘 故障排查
72
+ Use `--format pretty` for human-readable output and `--format json` or
73
+ `--format compress` for scripts and agents.
352
74
 
353
- ### 常见问题
75
+ ## AI Agent Skill
354
76
 
355
- **Q: 登录失败或权限不足?**
356
- A: 确保您有 Lovrabet 平台的访问权限,尝试重新登录:
77
+ If your coding environment supports the `skills` CLI, install the Rabetbase CLI
78
+ Built-in Skill so the agent can follow the correct app resolution, dataset
79
+ inspection, page, SQL, BFF, and risk-control workflow:
357
80
 
358
81
  ```bash
359
- rabetbase logout
360
- rabetbase auth
82
+ rabetbase cli-skill install
361
83
  ```
362
84
 
363
- **Q: API 拉取失败?**
364
- A: 检查应用代码是否正确,确认您有该应用的访问权限:
85
+ Equivalent direct installation:
365
86
 
366
87
  ```bash
367
- rabetbase api pull --appcode correct-app-code
88
+ npx skills add lovrabet/rabetbase -g -y
368
89
  ```
369
90
 
370
- **Q: 构建错误?**
371
- A: 查看详细错误信息:
91
+ Runtime business Skills are installed with the Lovrabet runtime CLI after
92
+ selecting the target runtime app:
372
93
 
373
94
  ```bash
374
- rabetbase logs
95
+ lovrabet skill install
375
96
  ```
376
97
 
377
- **Q: 开发服务器启动失败?**
378
- A: 检查端口是否被占用,或指定其他端口。
379
-
380
- ### 日志和调试
381
-
382
- 查看详细的操作日志:
383
-
384
- ```bash
385
- rabetbase logs
386
- ```
387
-
388
- 清空日志记录:
389
-
390
- ```bash
391
- rabetbase logs --clear
392
- ```
393
-
394
- ## 📝 What's New
395
-
396
- ### v1.1.15 (2025-01-05)
397
-
398
- **新增功能 (New Features):**
399
-
400
- - ✨ **菜单同步智能标题提取** - `rabetbase menu sync` 命令一键将二开应用工程自动同步到Lovrabet生成的业务系统,瞬间完成主子应用合并,无需执行繁琐的手动配置。
401
- **核心特性:**
402
- - 🎯 **支持中文菜单名** - 使用 Title 注释可以直接写中文,用户体验更友好
403
- - 📋 **优先级清晰** - Title > displayName > 组件名 > 文件路径
404
- - 🔧 **灵活配置** - 支持多种命名策略,满足不同团队习惯
405
- - ✅ **自动回退** - 即使没有设置,也能自动使用文件路径作为兜底
406
- - 🛡️ **格式容错** - Title 支持大小写、单双星号注释等多种格式
407
-
408
- 详情点击此处 [rabetbase menu sync](https://open.lovrabet.com/docs/lovrabet-cli/menu-sync)
409
-
410
- ---
411
-
412
- ### v1.1.12 (2025-10-17)
413
-
414
- **新增功能 (New Features):**
415
-
416
- - ✨ **新增 `rabetbase init` 命令** - 在现有项目中快速初始化配置
417
-
418
- 为已有项目添加 Lovrabet 配置支持:
419
-
420
- ```bash
421
- # 交互式初始化
422
- rabetbase init
423
-
424
- # 直接指定 appcode
425
- rabetbase init --appcode my-app-code
426
-
427
- # 指定环境
428
- rabetbase init --appcode my-app-code --env daily
429
- ```
430
-
431
- - 🔍 智能验证 appcode 格式(只允许字母、数字、- 和 \_)
432
- - 🛡️ 自动检测并防止覆盖现有配置文件
433
- - 🔄 继承全局配置,无需重复设置
434
- - 📝 配置文件包含创建时间和 CLI 版本信息
435
- - 💬 友好的交互式输入体验
436
-
437
- - ✨ **`rabetbase api doc` 增强** - 支持按需生成和自定义参数
438
-
439
- ```bash
440
- # 只生成指定数据集的文档
441
- rabetbase api doc --datasetcode ds_001
442
-
443
- # 生成多个指定数据集的文档(用逗号分隔)
444
- rabetbase api doc --datasetcode ds_001,ds_002,ds_003
445
-
446
- # 传递额外参数到文档生成 API
447
- rabetbase api doc --params '{"customField": "value"}'
448
- ```
98
+ ## Common Commands
449
99
 
450
- - 🎯 **按需生成文档** - 通过 `--datasetcode` 参数指定要生成的数据集
451
- - **智能验证** - 自动检查指定的数据集代码是否存在
452
- - 📊 **统计反馈** - 显示匹配的数据集数量和无效的代码
453
- - 🔧 **自定义参数** - 支持通过 JSON 格式传递额外参数
454
-
455
- **改进优化 (Improvements):**
456
-
457
- - 📊 **优化文件命名策略** - 提高文件名唯一性
458
- - 短代码从 4 位扩展到 6
459
- - 减少文件名冲突的可能性
460
-
461
- **使用场景:**
462
-
463
- ```bash
464
- # 场景1: 为现有项目添加 Lovrabet 支持
465
- cd existing-project
466
- rabetbase init --appcode my-app
467
- rabetbase api pull
468
-
469
- # 场景2: 只生成指定数据集的文档
470
- rabetbase api doc --datasetcode dataset_abc123
471
-
472
- # 场景3: 批量生成多个数据集的文档
473
- rabetbase api doc --datasetcode dataset_abc123,dataset_def456,dataset_ghi789
474
- ```
475
-
476
- ---
477
-
478
- ### v1.1.11 (2025-10-16)
479
-
480
- **新增功能 (New Features):**
481
-
482
- - ✨ **API 文档自动生成** - 全新的文档生成工具,让 API 使用更清晰
483
-
484
- 现在可以一键生成所有数据集的 API 使用文档(Markdown 格式):
485
-
486
- ```bash
487
- rabetbase api doc
488
- ```
489
-
490
- - 📚 自动生成完整的 API 使用说明
491
- - 📊 包含数据字段、请求示例、响应格式等
492
- - 🎯 支持批量生成,自动处理所有数据集
493
- - 📁 输出为标准 Markdown 格式,便于团队共享
494
-
495
- **改进优化 (Improvements):**
496
-
497
- - 📦 **升级项目模板 SDK** - 提升开发体验和类型安全
498
- - 项目模板中的 `@lovrabet/sdk` 升级至 v1.1.16
499
- - 新增 `SortOrder` 类型支持,提供更好的类型提示
500
- - 优化代码规范和格式,提升生成代码质量
501
-
502
- - 🔧 **数据集智能去重** - API 拉取更精准
503
- - 自动识别并过滤重复的数据集(相同 `tableName`)
504
- - 显示详细的去重统计信息
505
- - 避免配置文件中出现重复项
506
-
507
- - 🎨 **SDK 数据获取页面模板优化** - 生成的页面更简洁高效
508
- - 精简 UI 组件代码,提升可维护性
509
- - 增强表格数据处理能力
510
- - 改进数据展示性能
511
- - 优化代码结构和注释
512
-
513
- - 🎯 **API 配置管理优化**
514
- - 优化用户交互提示信息
515
- - 改进错误处理和提示
516
- - 提升整体用户体验
100
+ | Area | Commands |
101
+ | --- | --- |
102
+ | Authentication | `rabetbase auth login`, `rabetbase auth logout` |
103
+ | Project and workspace | `rabetbase project create`, `rabetbase project init`, `rabetbase project upgrade`, `rabetbase workspace init`, `rabetbase workspace use` |
104
+ | App profiles | `rabetbase app list`, `rabetbase app add`, `rabetbase app remove` |
105
+ | Dataset contracts | `rabetbase dataset list`, `rabetbase dataset detail`, `rabetbase dataset operations`, `rabetbase dataset relations`, `rabetbase dataset relation-audit` |
106
+ | Dataset changes | `rabetbase dataset generate-start`, `rabetbase dataset generate-status`, `rabetbase dataset field-update`, `rabetbase dataset extend-update`, `rabetbase dataset business-group-update` |
107
+ | API generation | `rabetbase api list`, `rabetbase api pull`, `rabetbase api generate`, `rabetbase codegen sdk`, `rabetbase codegen sql` |
108
+ | Smart list pages | `rabetbase page generate-start`, `rabetbase page generate-status`, `rabetbase page pull`, `rabetbase page push`, `rabetbase page sync`, `rabetbase page relation-audit` |
109
+ | SQL and BFF assets | `rabetbase sql list`, `rabetbase sql detail`, `rabetbase sql create`, `rabetbase sql push`, `rabetbase sql validate`, `rabetbase bff list`, `rabetbase bff detail`, `rabetbase bff push` |
110
+ | Database connections | `rabetbase db list`, `rabetbase db detail`, `rabetbase db create`, `rabetbase db test`, `rabetbase db analyze-start`, `rabetbase db analyze-status` |
111
+ | Menu and app config | `rabetbase menu list`, `rabetbase menu sync`, `rabetbase menu update`, `rabetbase app-config list`, `rabetbase app-config get`, `rabetbase app-config set` |
112
+ | Diagnostics | `rabetbase doctor`, `rabetbase schema`, `rabetbase logs show`, `rabetbase update` |
517
113
 
518
- **使用示例:**
114
+ Run command-level help for flags and prerequisites:
519
115
 
520
116
  ```bash
521
- # 创建新项目(自动使用最新模板)
522
- rabetbase create my-app
523
-
524
- # 生成 API 配置文件
525
- rabetbase api pull --appcode my-app
526
-
527
- # 生成 API 文档(新功能)
528
- rabetbase api doc
529
-
530
- # 查看详细日志
531
- rabetbase logs
117
+ rabetbase <service> --help
118
+ rabetbase <service> <command> --help
532
119
  ```
533
120
 
534
- ---
535
-
536
- ### v1.1.7 (2025-10-10)
537
-
538
- **重大变更 (Breaking Changes):**
539
-
540
- - 🔴 **`rabetbase api pull` 命令参数调整**
541
- - ❌ **不再支持**位置参数方式(如 `rabetbase api pull my-app-code`)
542
- - ✅ **改用** `--appcode` 参数(如 `rabetbase api pull --appcode my-app-code`)
543
- - 迁移指南:将 `rabetbase api pull <app-code>` 改为 `rabetbase api pull --appcode <app-code>`
544
-
545
- **新增功能 (New Features):**
546
-
547
- - ✨ **新增 `--output` 参数** - 支持自定义 API 文件输出目录
548
- ```bash
549
- rabetbase api pull --output ./lib/api
550
- ```
551
- - ✨ **新增 `--env` 参数** - 支持指定环境拉取 API(内部使用)
552
- ```bash
553
- rabetbase api pull --env <env>
554
- ```
121
+ ## Output and Automation
555
122
 
556
- **改进 (Improvements):**
557
-
558
- - 📚 优化命令行帮助信息,参数说明更加清晰
559
- - 🔧 统一命令行参数风格,所有参数均使用 `--` 前缀
560
- - 📖 更新文档,添加版本标识和迁移说明
561
-
562
- **使用示例:**
123
+ Global options are available across commands:
563
124
 
564
125
  ```bash
565
- # 推荐用法
566
- rabetbase api pull # 使用配置的 appcode
567
- rabetbase api pull --appcode my-app # 指定 appcode
568
- rabetbase api pull --output ./lib/api # 自定义输出目录
569
- rabetbase api pull --appcode my-app --output ./api # 组合使用
570
-
571
- # ❌ 不再支持
572
- rabetbase api pull my-app # 位置参数方式已废弃
126
+ rabetbase dataset list --format json
127
+ rabetbase dataset detail --code <dataset-code> --format compress
128
+ rabetbase sql push --sqlcode <sql-code> --dry-run
129
+ rabetbase bff push --type ENDPOINT --name <function-name> --dry-run
573
130
  ```
574
131
 
575
- ---
576
-
577
- ### v1.1.6 (2025-09-30)
578
-
579
- **改进 (Improvements):**
580
-
581
- - 📦 **升级模板 SDK** - 项目模板中的 SDK 升级到最新版本,支持更多特性
582
-
583
- ---
584
-
585
- ### v1.1.4 (2025-09-27)
586
-
587
- **重大变更 (Breaking Changes):**
588
-
589
- - 🔴 **统一模型配置字段命名** - 重构模型配置字段命名规范(可能影响现有配置)
590
- - 请查阅文档更新配置文件中的字段名称
591
-
592
- ---
593
-
594
- ## 📖 更多资源
595
-
596
- - [Lovrabet SDK 使用指南](https://www.npmjs.com/package/@lovrabet/sdk)
597
- - [示例项目](https://github.com/lovrabet/sub-app-react-demo)
598
- - [完整文档](https://docs.lovrabet.com)
599
-
600
- ---
601
-
602
- ## 📎 源码仓库
603
-
604
- - Git(阿里云 Codeup):`git@codeup.aliyun.com:yuntoo/open/rabetbase-cli.git`
605
- - 从旧仓库 `lovrabet-cli` 迁移后,请更新本地 `remote`:`git remote set-url origin git@codeup.aliyun.com:yuntoo/open/rabetbase-cli.git`
606
-
607
- ## 🤝 反馈
608
-
609
- 如遇到问题或有功能建议,欢迎提交 Issue!
132
+ Important options:
610
133
 
611
- ## 📄 许可证
134
+ - `--app <name>`: select an app profile by name
135
+ - `--appcode <code>`: override the target app code
136
+ - `--env production|daily`: choose the target environment
137
+ - `--format json|pretty|compress`: choose output format
138
+ - `--jq <expr>`: filter JSON output
139
+ - `--dry-run`: preview supported write operations
140
+ - `--yes`: skip confirmation for high-risk writes
141
+ - `--non-interactive`: force CI-friendly behavior
142
+ - `--global`: write or read global configuration when the command supports it
143
+ - `--project`: restrict configuration reads to the current project when supported
612
144
 
613
- **专有软件(Proprietary)** - 详见 [LICENSE](./LICENSE) 文件
145
+ ## Safety Notes
614
146
 
615
- 本软件为 Lovrabet 开放平台的专有工具:
147
+ - Inspect developer-side contracts with `dataset detail`, `dataset operations`,
148
+ or resource-specific `detail` commands before writing changes.
149
+ - Prefer `--dry-run` before SQL, BFF, dataset, page, menu, app-config, or
150
+ database write operations when supported.
151
+ - Use `--yes` only when the target app, selector, parameters, and impact are
152
+ already verified.
153
+ - Project-scoped writes are the default for configuration workflows. Use
154
+ `--global` only when you intentionally want to change global CLI state.
155
+ - Do not commit cookies, access keys, generated credentials, or local user
156
+ configuration files.
616
157
 
617
- - ✅ **允许使用** - 可以安装和使用本工具开发 Lovrabet 应用
618
- - ✅ **生成内容归您** - 使用本工具生成的代码和项目归您所有
619
- - ❌ **不得修改** - 不得修改、反编译或逆向工程
620
- - ❌ **不得再分发** - 不得复制或分发本软件
621
- - ❌ **源代码不公开** - 本软件为闭源软件
158
+ ## Documentation
622
159
 
623
- 如需商业授权或有疑问,请访问 [lovrabet.com](https://www.lovrabet.com)
160
+ - Website: <https://www.lovrabet.com>
161
+ - Developer documentation: <https://open.lovrabet.com/>
162
+ - CLI help: `rabetbase --help`
624
163
 
625
- ---
164
+ ## License
626
165
 
627
- **开始您的 Lovrabet 应用开发之旅!** 🎉
166
+ Licensed under the terms in `LICENSE`.