@newbeebox/newbeebox-app-engine-cli 1.0.2 → 1.1.0
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.
- package/README.md +4 -4
- package/package.json +2 -3
- package/src/config.js +1 -1
- package/src/index.js +21 -3
- package/src/output.js +2 -2
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# nae —— NewBee App Engine CLI
|
|
2
2
|
|
|
3
|
-
平台命令行客户端。**参数直达、默认人类可读**,加 `-o json` 即出 JSON
|
|
3
|
+
平台命令行客户端。**参数直达、默认人类可读**,加 `-o json` 即出 JSON,便于脚本/管道里解析。
|
|
4
4
|
|
|
5
|
-
> 📖
|
|
5
|
+
> 📖 **完整文档(含用法范例 / 调试技巧)**:<https://workshop.newbeebox.com/app_engine/documents/nae-cli/>
|
|
6
6
|
> markdown 原文:<https://workshop.newbeebox.com/app_engine/documents/nae-cli/md/>
|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -31,7 +31,7 @@ nae login
|
|
|
31
31
|
nae login --token nae_xxxxxxxx
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
CI /
|
|
34
|
+
CI / 脚本场景免登录,直接用环境变量(优先级高于本地配置):
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
export NAE_TOKEN=nae_xxxxxxxx
|
|
@@ -49,7 +49,7 @@ nae apps
|
|
|
49
49
|
- **stderr**:只放给人看的提示、进度、错误。
|
|
50
50
|
- **退出码**:`0` 成功;`1` 业务错误;`2` 未登录/密钥失效;`3` 网络不可达。
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
所以脚本里可以安全地 `nae apps -o json 2>/dev/null | jq '.[].AppID'`。
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newbeebox/newbeebox-app-engine-cli",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "NewBee App Engine 命令行客户端(nae)——参数直达、默认人类可读(加 -o json 出 JSON
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "NewBee App Engine 命令行客户端(nae)——参数直达、默认人类可读(加 -o json 出 JSON),便于在终端使用与脚本/管道里解析。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"nae": "src/index.js"
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"paas",
|
|
21
21
|
"kubernetes",
|
|
22
22
|
"deploy",
|
|
23
|
-
"codeagent",
|
|
24
23
|
"nae"
|
|
25
24
|
],
|
|
26
25
|
"homepage": "https://workshop.newbeebox.com/app_engine/documents/nae-cli/",
|
package/src/config.js
CHANGED
|
@@ -10,7 +10,7 @@ const CONFIG_DIR = join(homedir(), '.nae')
|
|
|
10
10
|
const CONFIG_FILE = join(CONFIG_DIR, 'config.json')
|
|
11
11
|
|
|
12
12
|
// load 读配置;文件不存在/损坏一律回落到默认(不抛错,让首次使用顺畅)。
|
|
13
|
-
// 环境变量优先级最高:NAE_BASE_URL / NAE_TOKEN 覆盖文件值(CI
|
|
13
|
+
// 环境变量优先级最高:NAE_BASE_URL / NAE_TOKEN 覆盖文件值(CI/脚本 免登录直跑)。
|
|
14
14
|
export function load() {
|
|
15
15
|
let cfg = { baseUrl: DEFAULT_BASE_URL, token: '' }
|
|
16
16
|
try {
|
package/src/index.js
CHANGED
|
@@ -13,8 +13,8 @@ const program = new Command()
|
|
|
13
13
|
|
|
14
14
|
program
|
|
15
15
|
.name('nae')
|
|
16
|
-
.description('NewBee App Engine CLI —— 默认人类可读,-o json 输出 JSON
|
|
17
|
-
.version('1.0
|
|
16
|
+
.description('NewBee App Engine CLI —— 默认人类可读,-o json 输出 JSON 供脚本解析')
|
|
17
|
+
.version('1.1.0')
|
|
18
18
|
.option('--base-url <url>', '覆盖平台地址(也可用环境变量 NAE_BASE_URL)')
|
|
19
19
|
.option('--token <token>', '覆盖访问密钥(也可用环境变量 NAE_TOKEN)')
|
|
20
20
|
.option('-o, --output <format>', '输出格式:text(默认,人类可读)| json', 'text')
|
|
@@ -176,7 +176,7 @@ program
|
|
|
176
176
|
.option('--env <json>', '环境变量 JSON,如 \'{"KEY":"val"}\'')
|
|
177
177
|
.option(
|
|
178
178
|
'--config <json>',
|
|
179
|
-
"模板应用的服务特性参数 JSON。可用字段随模板而定,运行 'nae templates' 看每个模板的 ConfigSchema(key/类型/默认值/可选项)。redis: {\"password\",\"persistence\":\"rdb|aof|none\"};milvus: {\"root_password\"}"
|
|
179
|
+
"模板应用的服务特性参数 JSON。可用字段随模板而定,运行 'nae templates' 看每个模板的 ConfigSchema(key/类型/默认值/可选项)。redis: {\"password\",\"persistence\":\"rdb|aof|none\"};postgres: {\"database\",\"username\",\"password\"};milvus: {\"root_password\"}"
|
|
180
180
|
)
|
|
181
181
|
.option('--owner <uid>', '管理员代他人创建时的归属用户 ID', (v) => parseInt(v, 10))
|
|
182
182
|
.addHelpText(
|
|
@@ -193,6 +193,10 @@ program
|
|
|
193
193
|
nae create --kind template --app-id myredis --template redis --storage 2Gi \\
|
|
194
194
|
--config '{"password":"s3cret","persistence":"rdb"}'
|
|
195
195
|
|
|
196
|
+
# 模板应用 PostgreSQL 14:持久化 + 库名/用户名/密码
|
|
197
|
+
nae create --kind template --app-id mypg --template postgres --storage 5Gi \\
|
|
198
|
+
--config '{"database":"appdb","username":"appuser","password":"s3cret"}'
|
|
199
|
+
|
|
196
200
|
# 模板应用 Milvus
|
|
197
201
|
nae create --kind template --app-id myvec --template milvus --storage 10Gi \\
|
|
198
202
|
--config '{"root_password":"s3cret"}'
|
|
@@ -247,6 +251,20 @@ program
|
|
|
247
251
|
.description('滚动重启应用')
|
|
248
252
|
.action(run(async (id) => emit(await request(cfg(), 'POST', `/apps/${id}/restart`))))
|
|
249
253
|
|
|
254
|
+
program
|
|
255
|
+
.command('reset-password <appid>')
|
|
256
|
+
.description('重置模板应用连接密码(不清数据;当前支持 Redis/PostgreSQL)。留空 --password 则随机生成')
|
|
257
|
+
.option('--password <pw>', '指定新密码(留空=平台随机生成;可打印 ASCII,1-128 位)')
|
|
258
|
+
.action(
|
|
259
|
+
run(async (id, opts) => {
|
|
260
|
+
emit(
|
|
261
|
+
await request(cfg(), 'POST', `/apps/${id}/reset-credential`, {
|
|
262
|
+
body: { password: opts.password ?? '' },
|
|
263
|
+
})
|
|
264
|
+
)
|
|
265
|
+
})
|
|
266
|
+
)
|
|
267
|
+
|
|
250
268
|
program
|
|
251
269
|
.command('scale <appid> <replicas>')
|
|
252
270
|
.description('扩缩容到指定副本数')
|
package/src/output.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// 输出契约:
|
|
2
|
-
// - 默认输出「人类可读」文本到 stdout;加 `-o json`(或 `-c` 紧凑)才出 JSON
|
|
2
|
+
// - 默认输出「人类可读」文本到 stdout;加 `-o json`(或 `-c` 紧凑)才出 JSON,供脚本解析。
|
|
3
3
|
// - stderr 只放「给人看的」:提示、进度、错误。
|
|
4
4
|
// - 退出码:成功 0,失败非 0。
|
|
5
|
-
//
|
|
5
|
+
// 人读默认、机读按需——人直接看懂,脚本用 `nae … -o json 2>/dev/null | jq …`。
|
|
6
6
|
|
|
7
7
|
// data 把结果写到 stdout(JSON)。pretty=false 时输出紧凑单行。
|
|
8
8
|
export function data(value, { pretty = true } = {}) {
|