@nocobase/cli 2.1.0-alpha.46 → 2.1.0-alpha.47

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 (77) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +63 -380
  3. package/assets/env-proxy/nginx/app.conf.tpl +23 -0
  4. package/assets/env-proxy/nginx/nocobase.conf.tpl +5 -0
  5. package/assets/env-proxy/nginx/snippets/dist-location.conf +5 -0
  6. package/assets/env-proxy/nginx/snippets/gzip.conf +17 -0
  7. package/assets/env-proxy/nginx/snippets/log-format-http.conf +13 -0
  8. package/assets/env-proxy/nginx/snippets/maps-http.conf +14 -0
  9. package/assets/env-proxy/nginx/snippets/mime-types.conf +98 -0
  10. package/assets/env-proxy/nginx/snippets/proxy-location.conf +17 -0
  11. package/assets/env-proxy/nginx/snippets/spa-location.conf +6 -0
  12. package/assets/env-proxy/nginx/snippets/uploads-location.conf +21 -0
  13. package/bin/run.js +40 -3
  14. package/dist/commands/app/autostart/disable.js +55 -0
  15. package/dist/commands/app/autostart/enable.js +55 -0
  16. package/dist/commands/app/autostart/list.js +37 -0
  17. package/dist/commands/app/autostart/run.js +84 -0
  18. package/dist/commands/app/autostart/shared.js +49 -0
  19. package/dist/commands/app/destroy.js +21 -12
  20. package/dist/commands/app/down.js +2 -2
  21. package/dist/commands/app/logs.js +2 -1
  22. package/dist/commands/app/restart.js +89 -24
  23. package/dist/commands/app/shared.js +3 -2
  24. package/dist/commands/app/start.js +142 -38
  25. package/dist/commands/app/stop.js +31 -2
  26. package/dist/commands/app/upgrade.js +9 -5
  27. package/dist/commands/config/delete.js +6 -1
  28. package/dist/commands/config/get.js +6 -1
  29. package/dist/commands/config/set.js +7 -2
  30. package/dist/commands/env/add.js +24 -44
  31. package/dist/commands/env/info.js +3 -2
  32. package/dist/commands/env/proxy/caddy.js +28 -0
  33. package/dist/commands/env/proxy/index.js +353 -0
  34. package/dist/commands/env/proxy/nginx.js +28 -0
  35. package/dist/commands/env/remove.js +112 -22
  36. package/dist/commands/env/shared.js +17 -9
  37. package/dist/commands/env/update.js +385 -21
  38. package/dist/commands/init.js +350 -98
  39. package/dist/commands/install.js +218 -75
  40. package/dist/commands/license/activate.js +63 -244
  41. package/dist/commands/license/plugins/shared.js +64 -13
  42. package/dist/commands/plugin/import.js +108 -0
  43. package/dist/commands/revision/create.js +89 -0
  44. package/dist/commands/source/test.js +13 -14
  45. package/dist/lib/app-health.js +5 -5
  46. package/dist/lib/app-managed-resources.js +24 -8
  47. package/dist/lib/app-public-path.js +80 -0
  48. package/dist/lib/app-runtime.js +10 -1
  49. package/dist/lib/auth-store.js +119 -4
  50. package/dist/lib/cli-config.js +191 -3
  51. package/dist/lib/cli-entry-error.js +8 -0
  52. package/dist/lib/command-log.js +284 -0
  53. package/dist/lib/docker-env-file.js +10 -2
  54. package/dist/lib/env-auth.js +4 -1
  55. package/dist/lib/env-command-config.js +45 -0
  56. package/dist/lib/env-config.js +7 -2
  57. package/dist/lib/env-guard.js +9 -10
  58. package/dist/lib/env-paths.js +101 -0
  59. package/dist/lib/env-proxy.js +1295 -0
  60. package/dist/lib/inquirer.js +4 -5
  61. package/dist/lib/managed-env-file.js +98 -0
  62. package/dist/lib/plugin-import.js +279 -0
  63. package/dist/lib/prompt-catalog-core.js +3 -2
  64. package/dist/lib/prompt-validators.js +14 -0
  65. package/dist/lib/prompt-web-ui.js +8 -1
  66. package/dist/lib/run-npm.js +56 -12
  67. package/dist/lib/skills-manager.js +3 -1
  68. package/dist/lib/source-publish.js +18 -1
  69. package/dist/lib/ui.js +2 -1
  70. package/dist/locale/en-US.json +116 -22
  71. package/dist/locale/zh-CN.json +113 -19
  72. package/package.json +5 -7
  73. package/scripts/build.mjs +34 -0
  74. package/scripts/clean.mjs +9 -0
  75. package/tsconfig.json +19 -0
  76. package/LICENSE.txt +0 -107
  77. package/README.zh-CN.md +0 -355
package/README.zh-CN.md DELETED
@@ -1,355 +0,0 @@
1
- # NocoBase CLI
2
-
3
- NocoBase CLI (`nb`) 是用于在本地工作区初始化、连接和管理 NocoBase 应用的命令行工具。它可以帮助你准备 NocoBase 应用、保存 CLI env 配置,并提供启动、停止、查看日志、升级和清理等日常管理命令,让 coding agent 可以连接并使用 NocoBase。
4
-
5
- CLI 支持两种常见的初始化方式:
6
-
7
- - 连接已有的 NocoBase 应用,让 coding agent 直接使用。
8
- - 通过 Docker、npm 或 Git 安装一个新的 NocoBase 应用,并保存为 CLI env。
9
-
10
- ## 前提条件
11
-
12
- - Node.js v20+
13
- - Yarn 1.x
14
- - Git:选择 Git 源码安装时需要
15
- - Docker:使用 Docker 方式安装,或使用内置数据库时需要
16
-
17
- ## 安装
18
-
19
- 全局安装 CLI:
20
-
21
- ```bash
22
- npm install -g @nocobase/cli@alpha
23
- ```
24
-
25
- 查看可用命令:
26
-
27
- ```bash
28
- nb --help
29
- nb init --help
30
- ```
31
-
32
- ## 核心概念
33
-
34
- - **Workspace**:当前项目目录,CLI 会在这里保存 `.nocobase` 配置。
35
- - **Env**:CLI 保存的一个 NocoBase 连接配置。在 `nb init` 中,app name 也就是 env name。
36
- - **Source**:本地应用的来源,支持 `docker`、`npm` 和 `git`。
37
- - **Remote env**:只保存已有 NocoBase 应用 API 连接的 env。
38
- - **Runtime resources**:由 CLI 管理的本地运行资源,包括应用进程、Docker 应用容器、内置数据库容器、源码目录和存储目录。
39
-
40
- ## 快速开始
41
-
42
- ### 交互式初始化
43
-
44
- 在终端中启动引导式初始化:
45
-
46
- ```bash
47
- nb init
48
- ```
49
-
50
- 使用浏览器表单完成初始化:
51
-
52
- ```bash
53
- nb init --ui
54
- ```
55
-
56
- `nb init` 可以连接已有的 NocoBase 应用,也可以安装一个新的 NocoBase 应用。创建新应用时,还可以全局安装 NocoBase AI coding skills (`nocobase/skills`)。
57
-
58
- 如果已经自行管理 skills,或在 CI、离线环境中运行,不希望 `nb init` 安装 skills,可以传入 `--skip-skills`。
59
-
60
- ### 非交互式初始化
61
-
62
- 跳过交互提示时,必须提供 app/env name:
63
-
64
- ```bash
65
- nb init --env app1 --yes
66
- nb init --env app1 --yes --skip-skills
67
- ```
68
-
69
- 使用 Docker 安装:
70
-
71
- ```bash
72
- nb init --env app1 --yes --source docker --version alpha
73
- ```
74
-
75
- 使用 npm 安装:
76
-
77
- ```bash
78
- nb init --env app1 --yes --source npm --version alpha --app-port 13080
79
- ```
80
-
81
- 使用 Git 源码安装:
82
-
83
- ```bash
84
- nb init --env app1 --yes --source git --version alpha
85
- ```
86
-
87
- 对于 Git 源码安装,`--version alpha` 实际会解析为 `develop` 分支。
88
-
89
- 使用 Git 分支安装:
90
-
91
- ```bash
92
- nb init --env app1 --yes --source git --version fix/cli-v2
93
- ```
94
-
95
- `--version` 是三种 source 共用的版本参数:
96
-
97
- - npm:包版本号
98
- - Docker:镜像 tag
99
- - Git:git ref,例如 branch 或 tag
100
-
101
- 默认情况下,新建本地应用会使用以下目录:
102
-
103
- - 源码目录:`./<envName>/source/`
104
- - 存储目录:`./<envName>/storage/`
105
-
106
- ### 恢复中断的初始化
107
-
108
- 如果 `nb init` 在 env 配置已经保存之后中断了,可以继续上一次初始化流程:
109
-
110
- ```bash
111
- nb init --env app1 --resume
112
- nb init --env app1 --resume --skip-skills
113
- ```
114
-
115
- `--resume` 会复用工作区里已保存的 env config,包括应用、source、数据库和 env 连接相关配置。在交互模式下,只会继续补齐缺失的初始化参数。
116
-
117
- 在非交互恢复模式下,如果没有显式传入这些参数,`nb init --resume --yes` 会使用默认初始化值:
118
-
119
- - `--lang`
120
- - `--root-username`
121
- - `--root-email`
122
- - `--root-password`
123
- - `--root-nickname`
124
-
125
- ## 常用命令
126
-
127
- | 命令 | 说明 |
128
- | --- | --- |
129
- | `nb init` | 初始化 NocoBase,并连接为 coding agent 可使用的 CLI env。 |
130
- | `nb app` | 管理应用运行态:启动、停止、重启、日志、状态、清理和升级。 |
131
- | `nb source` | 管理本地源码工程:下载、开发、构建和测试。 |
132
- | `nb db` | 查看或管理本地 env 的内置数据库运行状态。 |
133
- | `nb env` | 管理已保存的 CLI env 连接。 |
134
- | `nb api` | 通过 CLI 调用 NocoBase API 资源。 |
135
- | `nb plugin` | 管理选中 NocoBase env 的插件。 |
136
-
137
- 推荐在操作指定 env 时显式传入 env 名称。运行时命令支持 `--env`,`nb env info` 也支持位置参数:
138
-
139
- ```bash
140
- nb app start --env app1
141
- nb app restart --env app1
142
- nb app logs --env app1
143
- nb env info app1
144
- nb db ps --env app1
145
- ```
146
-
147
- 等价的简写示例:
148
-
149
- ```bash
150
- nb app start -e app1
151
- nb app restart -e app1
152
- nb app logs -e app1
153
- nb app upgrade -e app1
154
- nb db start -e app1
155
- ```
156
-
157
- ## 运行方式
158
-
159
- ### Docker
160
-
161
- Docker env 会通过已保存的 Docker 容器和镜像进行管理:
162
-
163
- ```bash
164
- nb init --env app1 --yes --source docker --version alpha
165
- nb app start --env app1
166
- nb app restart --env app1
167
- nb app logs --env app1
168
- nb app stop --env app1
169
- ```
170
-
171
- Docker 下载支持指定平台:
172
-
173
- ```bash
174
- nb source download --source docker --version alpha --docker-platform auto
175
- nb source download --source docker --version alpha --docker-platform linux/amd64
176
- nb source download --source docker --version alpha --docker-platform linux/arm64
177
- ```
178
-
179
- ### npm 和 Git
180
-
181
- npm 和 Git env 会使用本地源码目录,并支持开发模式:
182
-
183
- ```bash
184
- nb init --env app1 --yes --source git --version alpha
185
- nb source dev --env app1
186
- ```
187
-
188
- `nb source dev` 只支持 npm/Git 源码 env。Docker env 可以通过 `nb app logs` 查看日志,remote env 只支持 API 和 env 相关操作。
189
-
190
- ### 已有 NocoBase 应用
191
-
192
- 如果要连接已有应用,可以运行 `nb init` 并选择已有应用流程,也可以直接添加 env:
193
-
194
- ```bash
195
- nb env add app1 --api-base-url http://localhost:13000/api
196
- ```
197
-
198
- `nb env add` 会在需要时自动进入认证流程。
199
-
200
- ## 升级
201
-
202
- 升级会更新已保存的源码或镜像,然后重启应用:
203
-
204
- ```bash
205
- nb app upgrade --env app1
206
- ```
207
-
208
- 如果只想使用当前已保存的本地源码或 Docker 镜像重启应用,可以使用 `--skip-code-update` 或 `-s`:
209
-
210
- ```bash
211
- nb app upgrade --env app1 -s
212
- ```
213
-
214
- ## 数据库命令
215
-
216
- 可以使用 `nb db` 查看或管理本地 env 的内置数据库运行状态:
217
-
218
- ```bash
219
- nb db ps
220
- nb db ps --env app1
221
- nb db start --env app1
222
- nb db stop --env app1
223
- nb db logs --env app1
224
- ```
225
-
226
- 说明:
227
-
228
- - `nb db start` 在内置数据库容器已被删除时,也可以根据已保存的 env 配置自动恢复它。
229
- - `nb db start` 和 `nb db stop` 只适用于启用了内置数据库的 env。
230
- - `nb db logs` 只适用于启用了内置数据库的 env。
231
- - 对于没有 CLI 托管数据库容器的 env,`nb db ps` 也会显示 `external` 或 `remote` 状态。
232
-
233
- ## 清理
234
-
235
- 只停止应用运行态:
236
-
237
- ```bash
238
- nb app stop --env app1
239
- ```
240
-
241
- 如果还要一并移除 CLI 托管的内置数据库运行态,可以使用:
242
-
243
- ```bash
244
- nb app stop --env app1 --with-db
245
- ```
246
-
247
- - `nb app stop` 会保留 storage 数据和已保存的 CLI env 配置。
248
- - Docker env 停止时会移除已保存的 app container。
249
- - `--with-db` 只会影响 CLI 托管的内置数据库,external db 不会被处理。
250
-
251
- 销毁该 env 的本地托管资源:
252
-
253
- ```bash
254
- nb app destroy --env app1
255
- nb app destroy --env app1 --force
256
- ```
257
-
258
- - `nb app destroy` 会删除托管的运行时资源、storage 数据以及已保存的 CLI env 配置。
259
- - 对于通过 npm/Git 下载的 env,`nb app destroy` 还会删除已保存的本地 app 文件。自定义的本地源码目录会被保留。
260
- - 在交互终端中,`nb app destroy` 需要强确认;在非交互模式下,需要显式传入 `--env <name> --force`。
261
- - `nb app down` 已废弃。运行态清理请使用 `nb app stop --with-db`,彻底销毁请使用 `nb app destroy`。
262
-
263
- ## Env 管理
264
-
265
- 查看当前 env:
266
-
267
- ```bash
268
- nb env
269
- ```
270
-
271
- 只查看当前 env 名称:
272
-
273
- ```bash
274
- nb env current
275
- ```
276
-
277
- 配置 `NB_SESSION_ID` 的 shell session 集成:
278
-
279
- ```bash
280
- nb session setup
281
- nb session id
282
- nb session remove
283
- ```
284
-
285
- 查看已配置的 env 及 Token 验证后的 API 状态:
286
-
287
- ```bash
288
- nb env list
289
- ```
290
-
291
- 查看某个 env 的详情:
292
-
293
- ```bash
294
- nb env info app1
295
- ```
296
-
297
- 切换当前 env:
298
-
299
- ```bash
300
- nb env use app1
301
- ```
302
-
303
- 当凭证需要刷新时,重新认证某个 env:
304
-
305
- ```bash
306
- nb env auth app1
307
- ```
308
-
309
- 从选中的应用更新运行时命令元数据:
310
-
311
- ```bash
312
- nb env update app1
313
- ```
314
-
315
- ## API 命令
316
-
317
- CLI 可以通过已配置的 env 调用 NocoBase 资源 API:
318
-
319
- ```bash
320
- nb api resource list --resource users -e app1
321
- nb api resource get --resource users --filter-by-tk 1 -e app1
322
- nb api resource create --resource users --values '{"nickname":"Ada"}' -e app1
323
- ```
324
-
325
- 如果需要输出原始 JSON,可以使用 `-j, --json-output`:
326
-
327
- ```bash
328
- nb api resource list --resource users -e app1 -j
329
- ```
330
-
331
- 可用的 API 命令分类:
332
-
333
- | 命令 | 说明 |
334
- | --- | --- |
335
- | `nb api acl` | 基于角色、资源和操作管理访问控制。 |
336
- | `nb api api-keys` | 管理用于 HTTP API 访问的 API keys。 |
337
- | `nb api app` | 管理应用相关资源。 |
338
- | `nb api authenticators` | 管理用户认证,包括密码认证、短信认证、SSO 协议和可扩展认证方式。 |
339
- | `nb api data-modeling` | 管理数据源、数据表和数据库建模资源。 |
340
- | `nb api file-manager` | 管理文件存储服务、文件集合和附件字段。 |
341
- | `nb api flow-surfaces` | 组合和更新页面、标签页、区块、字段和操作等界面结构。 |
342
- | `nb api pm` | 通过 API 命令管理插件。 |
343
- | `nb api resource` | 操作通用集合资源。 |
344
- | `nb api system-settings` | 调整系统标题、Logo、语言和其他全局设置。 |
345
- | `nb api theme-editor` | 自定义 UI 颜色和尺寸,保存并切换主题。 |
346
- | `nb api workflow` | 管理用于业务自动化的工作流资源。 |
347
-
348
- ## 本地数据
349
-
350
- CLI 会在工作区的 `.nocobase` 中保存配置:
351
-
352
- - `config.json`:env 定义、当前 env 和工作区级配置。
353
- - `versions/<version>/commands.json`:从目标应用生成并缓存的运行时命令。
354
-
355
- 源码文件、storage 文件、Docker 容器和数据库数据等运行时数据,会根据 env 的 source 和安装选项分别管理。