cloudcc-cli 2.3.4 → 2.3.6
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/.claude/settings.json +22 -1
- package/.cursor/skills/cloudcc-cli-dev/SKILL.md +175 -0
- package/.cursor/skills/cloudcc-dev-skill/SKILL.md +71 -0
- package/README.md +81 -6
- package/bin/cc.js +106 -28
- package/bin/index.js +54 -55
- package/mcp/cliRunner.js +11 -4
- package/mcp/index.js +12 -2
- package/mcp/tools/Application Creator/handler.js +1 -1
- package/mcp/tools/Approval/handler.js +3 -3
- package/mcp/tools/Class Creator/handler.js +2 -2
- package/mcp/tools/Class Detail Retriever/handler.js +1 -1
- package/mcp/tools/Class Editor Guide/handler.js +1 -1
- package/mcp/tools/Class List Retriever/handler.js +1 -1
- package/mcp/tools/Class Publisher/handler.js +1 -1
- package/mcp/tools/Class Puller/handler.js +1 -1
- package/mcp/tools/Client Script Detail Retriever/handler.js +1 -1
- package/mcp/tools/Client Script Editor Guide/handler.js +1 -1
- package/mcp/tools/Client Script List Retriever/handler.js +1 -1
- package/mcp/tools/Client Script Publisher/handler.js +1 -1
- package/mcp/tools/Client Script Puller/handler.js +2 -2
- package/mcp/tools/CloudCC Development Overview/handler.js +2 -2
- package/mcp/tools/Component Creator/handler.js +1 -1
- package/mcp/tools/Component Detail Retriever/handler.js +1 -1
- package/mcp/tools/Component Editor Guide/handler.js +1 -1
- package/mcp/tools/Component List Retriever/handler.js +1 -1
- package/mcp/tools/Component Publisher/handler.js +2 -2
- package/mcp/tools/Component Puller/handler.js +1 -1
- package/mcp/tools/Dev Environment Creator/handler.js +1 -1
- package/mcp/tools/Dev Environment Validator/handler.js +1 -1
- package/mcp/tools/Developer Key Setup Guide/handler.js +1 -1
- package/mcp/tools/JSP Migrator/handler.js +46 -0
- package/mcp/tools/Menu Creator/handler.js +1 -1
- package/mcp/tools/Object Creator/handler.js +2 -2
- package/mcp/tools/Object Fields Creator/handler.js +1 -1
- package/mcp/tools/Object Fields Retriever/handler.js +1 -1
- package/mcp/tools/Object List Retriever/handler.js +1 -1
- package/mcp/tools/Scheduled Class Creator/handler.js +1 -1
- package/mcp/tools/Scheduled Class Detail Retriever/handler.js +1 -1
- package/mcp/tools/Scheduled Class List Retriever/handler.js +1 -1
- package/mcp/tools/Scheduled Class Publisher/handler.js +1 -1
- package/mcp/tools/Scheduled Class Puller/handler.js +1 -1
- package/mcp/tools/Trigger Creator/handler.js +1 -1
- package/mcp/tools/Trigger Detail Retriever/handler.js +1 -1
- package/mcp/tools/Trigger Editor Guide/handler.js +1 -1
- package/mcp/tools/Trigger List Retriever/handler.js +1 -1
- package/mcp/tools/Trigger Publisher/handler.js +1 -1
- package/mcp/tools/Trigger Puller/handler.js +1 -1
- package/package.json +3 -3
- package/src/application/create.js +2 -2
- package/src/application/delete.js +2 -2
- package/src/application/doc.js +2 -2
- package/src/application/docs/devguide.md +25 -25
- package/src/application/docs/introduction.md +2 -2
- package/src/button/create.js +169 -0
- package/src/button/delete.js +35 -0
- package/src/button/doc.js +36 -0
- package/src/button/docs/devguide.md +133 -0
- package/src/button/docs/introduction.md +60 -0
- package/src/button/get.js +60 -0
- package/src/button/index.js +20 -0
- package/src/classes/create.js +1 -1
- package/src/classes/delete.js +1 -1
- package/src/classes/detail.js +1 -1
- package/src/classes/doc.js +2 -2
- package/src/classes/docs/devguide.md +21 -21
- package/src/classes/docs/introduction.md +0 -20
- package/src/classes/get.js +1 -1
- package/src/classes/publish.js +1 -1
- package/src/classes/pull.js +1 -1
- package/src/classes/pullList.js +1 -1
- package/src/config/doc.js +2 -2
- package/src/config/docs/devguide.md +15 -15
- package/src/customPage/create.js +2 -2
- package/src/customPage/delete.js +2 -2
- package/src/customPage/doc.js +2 -2
- package/src/customPage/docs/devguide.md +27 -27
- package/src/customPage/get.js +1 -1
- package/src/customSetting/create.js +1 -1
- package/src/customSetting/delete.js +1 -1
- package/src/customSetting/deleteCustomSettingField.js +1 -1
- package/src/customSetting/detail.js +1 -1
- package/src/customSetting/docs/devguide.md +9 -9
- package/src/customSetting/editCustomSettingField.js +1 -1
- package/src/customSetting/get.js +1 -1
- package/src/customSetting/modify.js +1 -1
- package/src/customSetting/saveCustomSettingField.js +1 -1
- package/src/fields/delete.js +2 -2
- package/src/fields/docs/devguide.md +14 -14
- package/src/fields/docs/introduction.md +3 -3
- package/src/globalSelectList/create.js +1 -1
- package/src/globalSelectList/delete.js +1 -1
- package/src/globalSelectList/detail.js +1 -1
- package/src/globalSelectList/doc.js +2 -2
- package/src/globalSelectList/docs/devguide.md +7 -7
- package/src/globalSelectList/get.js +1 -1
- package/src/identityProvider/create.js +78 -0
- package/src/identityProvider/delete.js +61 -0
- package/src/identityProvider/doc.js +46 -0
- package/src/identityProvider/docs/devguide.md +107 -0
- package/src/identityProvider/docs/introduction.md +31 -0
- package/src/identityProvider/download.js +105 -0
- package/src/identityProvider/get.js +70 -0
- package/src/identityProvider/index.js +12 -0
- package/src/menu/create-object.js +2 -2
- package/src/menu/create-page.js +2 -2
- package/src/menu/create-script.js +2 -2
- package/src/menu/create-site.js +2 -2
- package/src/menu/create.js +11 -11
- package/src/menu/delete.js +2 -2
- package/src/menu/doc.js +2 -2
- package/src/menu/docs/devguide.md +13 -13
- package/src/menu/docs/introduction.md +3 -3
- package/src/menu/get.js +1 -1
- package/src/object/create.js +2 -2
- package/src/object/delete.js +2 -2
- package/src/object/docs/devguide.md +11 -11
- package/src/pagelayout/create.js +6 -6
- package/src/pagelayout/delete.js +4 -4
- package/src/pagelayout/doc.js +2 -2
- package/src/pagelayout/docs/devguide.md +9 -9
- package/src/pagelayout/docs/introduction.md +1 -1
- package/src/pagelayout/get.js +4 -4
- package/src/permission/add.js +164 -0
- package/src/permission/assign.js +84 -0
- package/src/permission/docs/devguide.md +238 -0
- package/src/permission/docs/introduction.md +200 -0
- package/src/permission/get.js +107 -0
- package/src/permission/index.js +10 -0
- package/src/permission/remove.js +145 -0
- package/src/plugin/delete.js +2 -2
- package/src/plugin/doc.js +2 -2
- package/src/plugin/docs/devguide.md +29 -29
- package/src/profile/create.js +5 -5
- package/src/profile/delete.js +2 -2
- package/src/profile/doc.js +2 -2
- package/src/profile/docs/devguide.md +8 -8
- package/src/profile/docs/introduction.md +12 -12
- package/src/profile/get.js +1 -1
- package/src/project/docs/devguide.md +9 -8
- package/src/recordType/create.js +1 -1
- package/src/recordType/delete.js +1 -1
- package/src/recordType/doc.js +2 -2
- package/src/recordType/docs/devguide.md +10 -10
- package/src/recordType/editInfo.js +1 -1
- package/src/recordType/editSave.js +1 -1
- package/src/recordType/getList.js +1 -1
- package/src/recordType/newInfo.js +1 -1
- package/src/recordType/validDelete.js +1 -1
- package/src/res.md +1 -1
- package/src/role/create.js +6 -6
- package/src/role/delete.js +2 -2
- package/src/role/doc.js +2 -2
- package/src/role/docs/devguide.md +9 -9
- package/src/role/docs/introduction.md +13 -13
- package/src/role/get.js +1 -1
- package/src/scheduleJob/doc.js +1 -1
- package/src/scheduleJob/docs/devguide.md +6 -6
- package/src/scheduleJob/docs/introduction.md +6 -6
- package/src/script/docs/devguide.md +18 -18
- package/src/singleSignOn/delete.js +61 -0
- package/src/singleSignOn/doc.js +46 -0
- package/src/singleSignOn/docs/devguide.md +61 -0
- package/src/singleSignOn/docs/introduction.md +3 -0
- package/src/singleSignOn/get.js +70 -0
- package/src/singleSignOn/index.js +10 -0
- package/src/staticResource/count.js +1 -1
- package/src/staticResource/create.js +1 -1
- package/src/staticResource/delete.js +1 -1
- package/src/staticResource/detail.js +1 -1
- package/src/staticResource/docs/devguide.md +11 -11
- package/src/staticResource/docs/introduction.md +44 -1
- package/src/staticResource/get.js +1 -1
- package/src/timer/create.js +1 -1
- package/src/timer/delete.js +1 -1
- package/src/timer/detail.js +1 -1
- package/src/timer/doc.js +2 -2
- package/src/timer/docs/devguide.md +19 -19
- package/src/timer/get.js +1 -1
- package/src/timer/publish.js +1 -1
- package/src/timer/pull.js +1 -1
- package/src/timer/pullList.js +1 -1
- package/src/triggers/detail.js +1 -1
- package/src/triggers/doc.js +2 -2
- package/src/triggers/docs/devguide.md +23 -23
- package/src/triggers/get.js +1 -1
- package/src/triggers/pullList.js +1 -1
- package/src/user/create.js +2 -2
- package/src/user/delete.js +2 -2
- package/src/user/doc.js +2 -2
- package/src/user/docs/devguide.md +13 -13
- package/src/user/docs/introduction.md +12 -12
- package/src/user/get.js +1 -1
- package/src/user/update.js +3 -3
- package/src/user/view.js +2 -2
- package/src/validationRule/create.js +7 -7
- package/src/validationRule/delete.js +2 -2
- package/src/validationRule/doc.js +2 -2
- package/src/validationRule/docs/devguide.md +7 -7
- package/src/validationRule/docs/introduction.md +11 -11
- package/src/validationRule/get.js +1 -1
- package/src/version/actionHelp.js +25 -0
- package/src/version/docs.js +26 -0
- package/src/version/doctor.js +25 -0
- package/src/version/get.js +1 -1
- package/src/version/help.js +48 -0
- package/src/version/index.js +9 -2
- package/src/version/initHelp.js +13 -0
- package/src/version/listModuleCommands.js +241 -0
- package/src/version/stats.js +44 -0
- package/src/version/uninstall.js +30 -0
- package/src/version/update.js +13 -0
- package/test/application.cli.test.js +1 -1
- package/test/classes.cli.test.js +1 -1
- package/test/customSetting.cli.test.js +1 -1
- package/test/fields.cli.test.js +2 -2
- package/test/globalSelectList.cli.test.js +1 -1
- package/test/menu-script.cli.test.js +1 -1
- package/test/menu.cli.test.js +1 -1
- package/test/object.cli.test.js +1 -1
- package/test/plugin.cli.test.js +1 -1
- package/test/scheduleJob.cli.test.js +1 -1
- package/test/script.cli.test.js +1 -1
- package/test/staticResource.cli.test.js +1 -1
- package/test/timer.cli.test.js +1 -1
- package/test/trigger.cli.test.js +1 -1
- package/utils/checkVersion.js +27 -2
- package/utils/commandStats.js +94 -0
- package/utils/formatReleaseNotes.js +312 -0
- package/utils/readmeReleases.js +69 -0
- package/.cloudcc-cache.json +0 -54
- package/.cursor/skills/cloudcc-cli-dev.zip +0 -0
- package/.cursor/skills/cloudcc-dev-usage/SKILL.md +0 -68
- package/build/component-cc-cc-dd.common.js +0 -831
- package/build/component-cc-cc-dd.common.js.map +0 -1
- package/build/component-cc-cc-dd.css +0 -1
- package/build/component-cc-cc-dd.umd.js +0 -874
- package/build/component-cc-cc-dd.umd.js.map +0 -1
- package/build/component-cc-cc-dd.umd.min.js +0 -8
- package/build/component-cc-cc-dd.umd.min.js.map +0 -1
- package/build/demo.html +0 -1
- package/plugins/cc-cc-dd/cc-cc-dd.vue +0 -32
- package/plugins/cc-cc-dd/components/HelloWorld.vue +0 -11
- package/plugins/cc-cc-dd/config.json +0 -6
package/src/timer/detail.js
CHANGED
package/src/timer/doc.js
CHANGED
|
@@ -32,14 +32,14 @@ function getDevGuideDoc() {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* cloudcc doc timer <introduction|devguide>
|
|
36
36
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
37
37
|
*/
|
|
38
38
|
function doc(argvs) {
|
|
39
39
|
const subType = argvs[2];
|
|
40
40
|
const key = String(subType || "").trim().toLowerCase();
|
|
41
41
|
if (!key) {
|
|
42
|
-
throw new Error("
|
|
42
|
+
throw new Error("cloudcc doc timer 需要子命令:introduction 或 devguide");
|
|
43
43
|
}
|
|
44
44
|
if (key === "introduction") {
|
|
45
45
|
const content = getIntroductionDoc();
|
|
@@ -10,20 +10,20 @@
|
|
|
10
10
|
|
|
11
11
|
**允许的做法**:在 CLI 已生成的主类中,仅在上述 SOURCE 标记之间编写业务逻辑;与云端列表、详情、拉取、删除、发布相关的操作一律走命令。
|
|
12
12
|
|
|
13
|
-
执行命令前请确认:已完成 `
|
|
13
|
+
执行命令前请确认:已完成 `cloudcc doc project devguide` 中的环境初始化,项目根目录配置可用且包含 `accessToken`。
|
|
14
14
|
|
|
15
15
|
### 命令总览(以代码实现为准)
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
cloudcc create timer <name>
|
|
19
|
+
cloudcc publish timer <name>
|
|
20
|
+
cloudcc pull timer <name>
|
|
21
|
+
cloudcc get timer [listQueryJson] [projectPath]
|
|
22
|
+
cloudcc detail timer <name>
|
|
23
|
+
cloudcc detail timer "" <id>
|
|
24
|
+
cloudcc pullList timer <id> <projectPath>
|
|
25
|
+
cloudcc delete timer <nameOrId> [projectPath]
|
|
26
|
+
cloudcc doc timer <introduction|devguide>
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
参数约定:
|
|
@@ -31,7 +31,7 @@ cc doc timer <introduction|devguide>
|
|
|
31
31
|
- `name`:定时类名,与 `schedule/<name>/` 目录名一致。
|
|
32
32
|
- `listQueryJson`:可选;列表查询 JSON 经 `encodeURI(JSON.stringify(...))` 编码后传入;不传则使用默认分页参数。
|
|
33
33
|
- `projectPath`:项目根路径,可选。
|
|
34
|
-
- `id`:线上定时类 ID。`detail` 仅查服务器时:`
|
|
34
|
+
- `id`:线上定时类 ID。`detail` 仅查服务器时:`cloudcc detail timer "" <id>`。`pullList` 必填。
|
|
35
35
|
- `nameOrId`:本地目录名或类 ID;若本地 `config.json` 含 `id`,删除时优先使用该 ID。
|
|
36
36
|
|
|
37
37
|
### 命令作用摘要
|
|
@@ -51,29 +51,29 @@ cc doc timer <introduction|devguide>
|
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
53
|
# 1) 查看线上已有定时类(可选)
|
|
54
|
-
|
|
54
|
+
cloudcc get timer
|
|
55
55
|
|
|
56
56
|
# 2) 新建定时类(仅通过 create 生成目录与模板)
|
|
57
|
-
|
|
57
|
+
cloudcc create timer MySchedule
|
|
58
58
|
|
|
59
59
|
# 3) 编辑 schedule/MySchedule/MySchedule.java 中 SOURCE 区域后发布
|
|
60
|
-
|
|
60
|
+
cloudcc publish timer MySchedule
|
|
61
61
|
|
|
62
62
|
# 4) 与服务器对齐时拉取
|
|
63
|
-
|
|
63
|
+
cloudcc pull timer MySchedule
|
|
64
64
|
|
|
65
65
|
# 5) 按已知线上 ID 拉到指定项目
|
|
66
|
-
|
|
66
|
+
cloudcc pullList timer <线上类ID> <projectPath>
|
|
67
67
|
|
|
68
68
|
# 6) 删除
|
|
69
|
-
|
|
69
|
+
cloudcc delete timer MySchedule
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
### 文档子命令
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
cloudcc doc timer introduction
|
|
76
|
+
cloudcc doc timer devguide
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
仅支持 `introduction` 与 `devguide`。
|
package/src/timer/get.js
CHANGED
|
@@ -2,7 +2,7 @@ const { getPackageJson } = require("../../utils/config")
|
|
|
2
2
|
const { postClass } = require("../../utils/http")
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* cloudcc get timer [listQueryJson] [projectPath]
|
|
6
6
|
* @param {string[]} argvs
|
|
7
7
|
*/
|
|
8
8
|
async function get(argvs, isMcp = false) {
|
package/src/timer/publish.js
CHANGED
|
@@ -8,7 +8,7 @@ const { javaContentRegular } = require("../../utils/utils")
|
|
|
8
8
|
const { getPackageJson } = require("../../utils/config")
|
|
9
9
|
const { postClass } = require("../../utils/http")
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* cloudcc publish timer <name>
|
|
12
12
|
* @param {string[]} argvs
|
|
13
13
|
*/
|
|
14
14
|
async function publish(argvs) {
|
package/src/timer/pull.js
CHANGED
package/src/timer/pullList.js
CHANGED
|
@@ -4,7 +4,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
4
4
|
const { postClass } = require("../../utils/http");
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* cloudcc pullList timer <id> <projectPath>
|
|
8
8
|
* @param {string[]} argvs
|
|
9
9
|
*/
|
|
10
10
|
async function pullList(argvs, isMcp = false) {
|
package/src/triggers/detail.js
CHANGED
|
@@ -5,7 +5,7 @@ const { getPackageJson } = require("../../utils/config")
|
|
|
5
5
|
const { postClass } = require("../../utils/http")
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* cloudcc detail triggers <namePath> <id>
|
|
9
9
|
* @param {string[]} argvs [detail, type, namePath?, id?]
|
|
10
10
|
*/
|
|
11
11
|
async function detail(argvs) {
|
package/src/triggers/doc.js
CHANGED
|
@@ -38,14 +38,14 @@ function getDevGuideDoc() {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* cloudcc doc triggers <introduction|devguide>
|
|
42
42
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
43
43
|
*/
|
|
44
44
|
function doc(argvs) {
|
|
45
45
|
const subType = argvs[2];
|
|
46
46
|
const key = String(subType || "").trim().toLowerCase();
|
|
47
47
|
if (!key) {
|
|
48
|
-
throw new Error("
|
|
48
|
+
throw new Error("cloudcc doc triggers 需要子命令:introduction 或 devguide");
|
|
49
49
|
}
|
|
50
50
|
if (key === "introduction") {
|
|
51
51
|
const content = getIntroductionDoc();
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
|
|
13
13
|
**允许的做法**:在 CLI 已生成的主类中,仅在上述 SOURCE 标记之间编写业务逻辑;与云端列表、详情、拉取、删除、发布相关的操作一律走命令。
|
|
14
14
|
|
|
15
|
-
执行命令前请确认:已完成 `
|
|
15
|
+
执行命令前请确认:已完成 `cloudcc doc project devguide` 中的环境初始化,项目根目录配置可用且包含 `accessToken`。创建触发器前通常需要先通过 `cloudcc get object ...` 等拿到目标对象的 `schemetableName`、`targetObjectId`(见下文物「创建」示例)。
|
|
16
16
|
|
|
17
17
|
### 命令总览(以代码实现为准)
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
cloudcc create triggers <encodedCreateJson>
|
|
21
|
+
cloudcc publish triggers <namePath>
|
|
22
|
+
cloudcc pull triggers <namePath>
|
|
23
|
+
cloudcc get triggers <listQueryJson> [projectPath]
|
|
24
|
+
cloudcc detail triggers <namePath>
|
|
25
|
+
cloudcc detail triggers "" <id>
|
|
26
|
+
cloudcc pullList triggers <id> <projectPath>
|
|
27
|
+
cloudcc delete triggers <namePathOrId> [projectPath]
|
|
28
|
+
cloudcc doc triggers <introduction|devguide>
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
参数约定:
|
|
@@ -39,7 +39,7 @@ cc doc triggers <introduction|devguide>
|
|
|
39
39
|
- `namePath`:**对象目录/触发器名**,与本地路径一致,例如 `account/MyTrigger`(`schemetableName` 小写 + `/` + `name`)。`publish`、`pull`、`delete`(按路径删除时)均使用该形式。
|
|
40
40
|
- `listQueryJson`:列表查询 JSON,经 `encodeURI(JSON.stringify(...))` 编码后传入(**必填**,实现上无默认空查询)。
|
|
41
41
|
- `projectPath`:项目根路径,可选。
|
|
42
|
-
- `id`:线上触发器 ID。`detail` 仅查服务器:`
|
|
42
|
+
- `id`:线上触发器 ID。`detail` 仅查服务器:`cloudcc detail triggers "" <id>`。
|
|
43
43
|
- `namePathOrId`:可为 `对象小写/触发器名` 形式的路径;若本地 `config.json` 含 `id`,删除时优先用该 ID。
|
|
44
44
|
|
|
45
45
|
### 命令作用摘要
|
|
@@ -57,7 +57,7 @@ cc doc triggers <introduction|devguide>
|
|
|
57
57
|
|
|
58
58
|
### 创建示例(需先准备对象信息)
|
|
59
59
|
|
|
60
|
-
先构造对象(字段与平台约定一致),再整段做 `encodeURI(JSON.stringify(...))`,作为 `
|
|
60
|
+
先构造对象(字段与平台约定一致),再整段做 `encodeURI(JSON.stringify(...))`,作为 `cloudcc create triggers` 的**唯一参数**:
|
|
61
61
|
|
|
62
62
|
```json
|
|
63
63
|
{
|
|
@@ -75,38 +75,38 @@ cc doc triggers <introduction|devguide>
|
|
|
75
75
|
node -p "encodeURI(JSON.stringify({schemetableName:'Account',targetObjectId:'<对象ID>',triggerTime:'beforeInsert',name:'MyTrigger',apiname:'NTrigger_xxx'}))"
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
将命令输出的**一整行**传给:`
|
|
78
|
+
将命令输出的**一整行**传给:`cloudcc create triggers '<粘贴>'`。
|
|
79
79
|
|
|
80
80
|
### 推荐操作顺序
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
83
|
# 1) 查询自定义对象,取得 schemetableName、targetObjectId(示例)
|
|
84
|
-
|
|
84
|
+
cloudcc get object . custom
|
|
85
85
|
|
|
86
86
|
# 2) 创建本地触发器目录与模板(encodedCreateJson 见上文)
|
|
87
|
-
|
|
87
|
+
cloudcc create triggers '<encodedCreateJson>'
|
|
88
88
|
|
|
89
89
|
# 3) 编辑 triggers/<对象小写>/<name>/<name>.java 中 SOURCE 后发布
|
|
90
|
-
|
|
90
|
+
cloudcc publish triggers account/MyTrigger
|
|
91
91
|
|
|
92
92
|
# 4) 与服务器对齐
|
|
93
|
-
|
|
93
|
+
cloudcc pull triggers account/MyTrigger
|
|
94
94
|
|
|
95
95
|
# 5) 列表(查询 JSON 需 encodeURI)
|
|
96
|
-
|
|
96
|
+
cloudcc get triggers '<listQueryJson>' .
|
|
97
97
|
|
|
98
98
|
# 6) 按线上 ID 拉到指定项目
|
|
99
|
-
|
|
99
|
+
cloudcc pullList triggers <线上触发器ID> <projectPath>
|
|
100
100
|
|
|
101
101
|
# 7) 删除
|
|
102
|
-
|
|
102
|
+
cloudcc delete triggers account/MyTrigger
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
### 文档子命令
|
|
106
106
|
|
|
107
107
|
```bash
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
cloudcc doc triggers introduction
|
|
109
|
+
cloudcc doc triggers devguide
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
仅支持 `introduction` 与 `devguide`。
|
|
@@ -399,7 +399,7 @@ System.out.println("记录 ID:" + record.get("id"));
|
|
|
399
399
|
|
|
400
400
|
### 8.3 触发器开发 Checklist
|
|
401
401
|
|
|
402
|
-
- [ ] 本地 `triggers/` 目录仅通过 `
|
|
402
|
+
- [ ] 本地 `triggers/` 目录仅通过 `cloudcc create` / `cloudcc pull` / `cloudcc pullList` / `cloudcc publish` / `cloudcc delete` 等命令维护,不手造路径、不手改 `config.json` 的 `id`
|
|
403
403
|
- [ ] 明确触发时机(before/after/approval)
|
|
404
404
|
- [ ] 评估并规避递归触发风险
|
|
405
405
|
- [ ] 添加异常处理与关键日志
|
package/src/triggers/get.js
CHANGED
|
@@ -2,7 +2,7 @@ const { getPackageJson } = require("../../utils/config")
|
|
|
2
2
|
const { postClass } = require("../../utils/http")
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* cloudcc get triggers <listQueryJson> [projectPath]
|
|
6
6
|
* @param {string[]} argvs
|
|
7
7
|
*/
|
|
8
8
|
async function get(argvs, isMcp = false) {
|
package/src/triggers/pullList.js
CHANGED
|
@@ -7,7 +7,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
7
7
|
const { postClass } = require("../../utils/http");
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* cloudcc pullList triggers <id> <projectPath>
|
|
11
11
|
* @param {string[]} argvs
|
|
12
12
|
*/
|
|
13
13
|
async function pullList(argvs, isMcp = false) {
|
package/src/user/create.js
CHANGED
|
@@ -462,13 +462,13 @@ async function quickCreate(userName, profileId, email, config, fieldConfig) {
|
|
|
462
462
|
|
|
463
463
|
/**
|
|
464
464
|
* 创建用户
|
|
465
|
-
* 用法:
|
|
465
|
+
* 用法:cloudcc create user <path> [userName] [profileId] [email]
|
|
466
466
|
* @param {Array} argvs - 命令行参数数组
|
|
467
467
|
* @returns {Promise<Object>} 创建结果
|
|
468
468
|
*/
|
|
469
469
|
async function create(argvs) {
|
|
470
470
|
try {
|
|
471
|
-
// 命令行参数格式:
|
|
471
|
+
// 命令行参数格式:cloudcc create user <path> [userName] [profileId] [email]
|
|
472
472
|
const projectPath = argvs[2] || process.cwd();
|
|
473
473
|
const userName = argvs[3];
|
|
474
474
|
const profileId = argvs[4];
|
package/src/user/delete.js
CHANGED
|
@@ -4,7 +4,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 删除用户
|
|
7
|
-
* 用法:
|
|
7
|
+
* 用法:cloudcc delete user <projectPath> <userId>
|
|
8
8
|
*/
|
|
9
9
|
async function remove(argvs) {
|
|
10
10
|
try {
|
|
@@ -14,7 +14,7 @@ async function remove(argvs) {
|
|
|
14
14
|
if (!userId) {
|
|
15
15
|
console.error();
|
|
16
16
|
console.error(chalk.red("Error: 缺少用户 ID"));
|
|
17
|
-
console.error(chalk.yellow("用法:
|
|
17
|
+
console.error(chalk.yellow("用法: cloudcc delete user <projectPath> <userId>"));
|
|
18
18
|
console.error();
|
|
19
19
|
throw new Error("缺少必需参数: userId");
|
|
20
20
|
}
|
package/src/user/doc.js
CHANGED
|
@@ -21,14 +21,14 @@ function getDevGuideDoc() {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* cloudcc doc user <introduction|devguide>
|
|
25
25
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
26
26
|
*/
|
|
27
27
|
function doc(argvs) {
|
|
28
28
|
const subType = argvs[2];
|
|
29
29
|
const key = String(subType || "").trim().toLowerCase();
|
|
30
30
|
if (!key) {
|
|
31
|
-
throw new Error("
|
|
31
|
+
throw new Error("cloudcc doc user 需要子命令:introduction 或 devguide");
|
|
32
32
|
}
|
|
33
33
|
if (key === "introduction") {
|
|
34
34
|
const content = getIntroductionDoc();
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
### 创建用户
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
cloudcc create user <path> <userName> <profileId> [email]
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
**参数说明:**
|
|
@@ -31,16 +31,16 @@ cc create user <path> <userName> <profileId> [email]
|
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
# 创建用户
|
|
34
|
-
|
|
34
|
+
cloudcc create user . "张三" a0I9D000000XXXXUAI
|
|
35
35
|
|
|
36
36
|
# 创建带邮箱的用户
|
|
37
|
-
|
|
37
|
+
cloudcc create user . "李四" a0I9D000000XXXXUAI "lisi@example.com"
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
### 查询用户列表
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
|
|
43
|
+
cloudcc get user <projectPath> [encodedCondJson]
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
**参数说明:**
|
|
@@ -62,28 +62,28 @@ cc get user <projectPath> [encodedCondJson]
|
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
64
|
# 获取所有用户
|
|
65
|
-
|
|
65
|
+
cloudcc get user .
|
|
66
66
|
|
|
67
67
|
# 带查询条件(搜索关键词)
|
|
68
|
-
|
|
68
|
+
cloudcc get user . '%7B%22keyword%22%3A%22张三%22%2C%22limit%22%3A50%7D'
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
### 查看单个用户详情
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
|
|
74
|
+
cloudcc view user <projectPath> <userId>
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
**示例:**
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
|
-
|
|
80
|
+
cloudcc view user . 00520260C00C6FEfsMnT
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
### 编辑/禁用用户
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
|
|
86
|
+
cloudcc update user <projectPath> <userDataJson>
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
**userDataJson 关键字段:**
|
|
@@ -103,20 +103,20 @@ cc update user <projectPath> <userDataJson>
|
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
# 禁用用户
|
|
106
|
-
|
|
106
|
+
cloudcc update user . '%7B%22id%22%3A%22xxx%22%2C%22loginName%22%3A%22test%40cloudcc.com%22%2C%22isusing%22%3A%22false%22%7D'
|
|
107
107
|
|
|
108
108
|
# 启用用户
|
|
109
|
-
|
|
109
|
+
cloudcc update user . '%7B%22id%22%3A%22xxx%22%2C%22loginName%22%3A%22test%40cloudcc.com%22%2C%22isusing%22%3A%22true%22%7D'
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
### 删除用户
|
|
113
113
|
|
|
114
114
|
```bash
|
|
115
|
-
|
|
115
|
+
cloudcc delete user <projectPath> <userId>
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
**示例:**
|
|
119
119
|
|
|
120
120
|
```bash
|
|
121
|
-
|
|
121
|
+
cloudcc delete user . 00520260C00C6FEfsMnT
|
|
122
122
|
```
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
创建一个新的 CloudCC 用户。
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
|
|
26
|
+
cloudcc create user <path> <userName> <profileId> [email]
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
**参数说明:**
|
|
@@ -39,10 +39,10 @@ cc create user <path> <userName> <profileId> [email]
|
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
41
|
# 创建用户
|
|
42
|
-
|
|
42
|
+
cloudcc create user . "张三" a0I9D000000XXXXUAI
|
|
43
43
|
|
|
44
44
|
# 创建带邮箱的用户
|
|
45
|
-
|
|
45
|
+
cloudcc create user . "李四" a0I9D000000XXXXUAI "lisi@example.com"
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
---
|
|
@@ -52,7 +52,7 @@ cc create user . "李四" a0I9D000000XXXXUAI "lisi@example.com"
|
|
|
52
52
|
获取当前环境中的所有用户列表。
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
|
|
55
|
+
cloudcc get user <projectPath> [encodedCondJson]
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
**参数说明:**
|
|
@@ -66,10 +66,10 @@ cc get user <projectPath> [encodedCondJson]
|
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
68
|
# 获取所有用户
|
|
69
|
-
|
|
69
|
+
cloudcc get user .
|
|
70
70
|
|
|
71
71
|
# 带查询条件
|
|
72
|
-
|
|
72
|
+
cloudcc get user . '%7B%22status%22%3A%22active%22%7D'
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -79,7 +79,7 @@ cc get user . '%7B%22status%22%3A%22active%22%7D'
|
|
|
79
79
|
删除指定的用户。
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
|
|
82
|
+
cloudcc delete user <projectPath> <userId>
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
**参数说明:**
|
|
@@ -93,7 +93,7 @@ cc delete user <projectPath> <userId>
|
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
95
|
# 删除指定用户
|
|
96
|
-
|
|
96
|
+
cloudcc delete user . a0I9D000000XXXXUAI
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
---
|
|
@@ -107,16 +107,16 @@ cc delete user . a0I9D000000XXXXUAI
|
|
|
107
107
|
cat cloudcc-cli.config.js
|
|
108
108
|
|
|
109
109
|
# 2. 查询可用简档,确定要分配的权限
|
|
110
|
-
|
|
110
|
+
cloudcc get profile .
|
|
111
111
|
|
|
112
112
|
# 3. 创建新用户
|
|
113
|
-
|
|
113
|
+
cloudcc create user . "王五" a0I9D000000XXXXUAI "wangwu@example.com"
|
|
114
114
|
|
|
115
115
|
# 4. 验证用户创建成功
|
|
116
|
-
|
|
116
|
+
cloudcc get user .
|
|
117
117
|
|
|
118
118
|
# 5. 如需删除
|
|
119
|
-
#
|
|
119
|
+
# cloudcc delete user . <userId>
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
---
|
package/src/user/get.js
CHANGED
|
@@ -41,7 +41,7 @@ async function getUserViewId(config) {
|
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* 查询用户列表
|
|
44
|
-
* 用法:
|
|
44
|
+
* 用法:cloudcc get user <projectPath> [encodedCondJson]
|
|
45
45
|
*/
|
|
46
46
|
async function get(argvs, isMcp = false) {
|
|
47
47
|
const projectPath = argvs[2] || process.cwd();
|
package/src/user/update.js
CHANGED
|
@@ -4,7 +4,7 @@ const chalk = require("chalk");
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 编辑/禁用用户
|
|
7
|
-
* 用法:
|
|
7
|
+
* 用法:cloudcc update user <projectPath> <userDataJson>
|
|
8
8
|
* @param {Array} argvs - 命令行参数数组
|
|
9
9
|
* @returns {Promise<Object>} 更新结果
|
|
10
10
|
*/
|
|
@@ -16,8 +16,8 @@ async function update(argvs) {
|
|
|
16
16
|
if (!userDataArg) {
|
|
17
17
|
console.error();
|
|
18
18
|
console.error(chalk.red("Error: 缺少用户数据"));
|
|
19
|
-
console.error(chalk.yellow("用法:
|
|
20
|
-
console.error(chalk.yellow("示例:
|
|
19
|
+
console.error(chalk.yellow("用法: cloudcc update user <projectPath> <userDataJson>"));
|
|
20
|
+
console.error(chalk.yellow("示例: cloudcc update user . '{\"id\":\"xxx\",\"loginName\":\"test@example.com\",\"isusing\":\"false\"}'"));
|
|
21
21
|
console.error();
|
|
22
22
|
throw new Error("缺少必需参数: userDataJson");
|
|
23
23
|
}
|
package/src/user/view.js
CHANGED
|
@@ -4,7 +4,7 @@ const chalk = require("chalk");
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 查看单个用户详情
|
|
7
|
-
* 用法:
|
|
7
|
+
* 用法:cloudcc view user <projectPath> <userId>
|
|
8
8
|
*/
|
|
9
9
|
async function view(argvs, isMcp = false) {
|
|
10
10
|
try {
|
|
@@ -14,7 +14,7 @@ async function view(argvs, isMcp = false) {
|
|
|
14
14
|
if (!userId) {
|
|
15
15
|
console.error();
|
|
16
16
|
console.error(chalk.red("Error: 缺少用户 ID"));
|
|
17
|
-
console.error(chalk.yellow("用法:
|
|
17
|
+
console.error(chalk.yellow("用法: cloudcc view user <projectPath> <userId>"));
|
|
18
18
|
console.error();
|
|
19
19
|
throw new Error("缺少必需参数: userId");
|
|
20
20
|
}
|
|
@@ -5,7 +5,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* 创建验证规则
|
|
8
|
-
* 用法:
|
|
8
|
+
* 用法:cloudcc create validationRule <path> <objectPrefix> [ruleName] [ruleContent] [errorMessage]
|
|
9
9
|
* 流程:
|
|
10
10
|
* 1. 调用 validateRule/queryByPrefix 获取对象ID和现有规则列表
|
|
11
11
|
* 2. 交互式输入规则名称、规则内容、错误信息(未指定时)
|
|
@@ -15,7 +15,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
15
15
|
*/
|
|
16
16
|
async function create(argvs) {
|
|
17
17
|
try {
|
|
18
|
-
// 命令行参数格式:
|
|
18
|
+
// 命令行参数格式:cloudcc create validationRule <path> <objectPrefix> [ruleName] [ruleContent] [errorMessage]
|
|
19
19
|
const projectPath = argvs[2] || process.cwd();
|
|
20
20
|
const objectPrefix = argvs[3];
|
|
21
21
|
let ruleName = argvs[4] || '';
|
|
@@ -25,10 +25,10 @@ async function create(argvs) {
|
|
|
25
25
|
if (!objectPrefix) {
|
|
26
26
|
console.error();
|
|
27
27
|
console.error(chalk.red('Error: 缺少对象前缀'));
|
|
28
|
-
console.error('用法:
|
|
28
|
+
console.error('用法: cloudcc create validationRule <path> <objectPrefix> [ruleName] [ruleContent] [errorMessage]');
|
|
29
29
|
console.error('示例:');
|
|
30
|
-
console.error('
|
|
31
|
-
console.error('
|
|
30
|
+
console.error(' cloudcc create validationRule . "b00" # 交互式输入所有信息');
|
|
31
|
+
console.error(' cloudcc create validationRule . "b00" "规则1" "Batch_Size__c__f==5" "数量必须是5"');
|
|
32
32
|
console.error();
|
|
33
33
|
throw new Error('缺少必需参数: objectPrefix');
|
|
34
34
|
}
|
|
@@ -121,12 +121,12 @@ async function create(argvs) {
|
|
|
121
121
|
};
|
|
122
122
|
|
|
123
123
|
const saveRes = await postClass(
|
|
124
|
-
config.setupSvc + "/api/validateRule/
|
|
124
|
+
config.setupSvc + "/api/validateRule/save",
|
|
125
125
|
validateData,
|
|
126
126
|
config.accessToken
|
|
127
127
|
);
|
|
128
128
|
|
|
129
|
-
if (saveRes && saveRes.result) {
|
|
129
|
+
if (saveRes && (saveRes.result === true || saveRes.result === "true" || saveRes.returnCode === "1")) {
|
|
130
130
|
console.error();
|
|
131
131
|
console.error(chalk.green('Success! Validation rule created.'));
|
|
132
132
|
console.error(` 规则名称: ${ruleName}`);
|
|
@@ -4,7 +4,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 删除验证规则
|
|
7
|
-
* 用法:
|
|
7
|
+
* 用法:cloudcc delete validationRule <projectPath> <ruleId>
|
|
8
8
|
*/
|
|
9
9
|
async function remove(argvs) {
|
|
10
10
|
try {
|
|
@@ -14,7 +14,7 @@ async function remove(argvs) {
|
|
|
14
14
|
if (!ruleId) {
|
|
15
15
|
console.error();
|
|
16
16
|
console.error(chalk.red("Error: 缺少规则 ID"));
|
|
17
|
-
console.error(chalk.yellow("用法:
|
|
17
|
+
console.error(chalk.yellow("用法: cloudcc delete validationRule <projectPath> <ruleId>"));
|
|
18
18
|
console.error();
|
|
19
19
|
throw new Error("缺少必需参数: ruleId");
|
|
20
20
|
}
|
|
@@ -21,14 +21,14 @@ function getDevGuideDoc() {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* cloudcc doc validationRule <introduction|devguide>
|
|
25
25
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
26
26
|
*/
|
|
27
27
|
function doc(argvs) {
|
|
28
28
|
const subType = argvs[2];
|
|
29
29
|
const key = String(subType || "").trim().toLowerCase();
|
|
30
30
|
if (!key) {
|
|
31
|
-
throw new Error("
|
|
31
|
+
throw new Error("cloudcc doc validationRule 需要子命令:introduction 或 devguide");
|
|
32
32
|
}
|
|
33
33
|
if (key === "introduction") {
|
|
34
34
|
const content = getIntroductionDoc();
|