cloudcc-cli 2.3.5 → 2.3.7
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/.cursor/skills/cloudcc-cli-dev/SKILL.md +29 -23
- package/.cursor/skills/cloudcc-dev-skill/SKILL.md +26 -26
- package/README.md +68 -13
- package/bin/cc.js +6 -6
- package/mcp/cliRunner.js +2 -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 +1 -1
- 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/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 +4 -2
- 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 +1 -1
- package/src/button/delete.js +1 -1
- package/src/button/doc.js +2 -2
- package/src/button/docs/devguide.md +11 -11
- package/src/button/get.js +1 -1
- package/src/button/index.js +1 -1
- 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/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 +3 -3
- package/src/identityProvider/delete.js +3 -3
- package/src/identityProvider/doc.js +2 -2
- package/src/identityProvider/docs/devguide.md +10 -10
- package/src/identityProvider/download.js +1 -1
- package/src/identityProvider/get.js +1 -1
- 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 +4 -4
- package/src/permission/assign.js +3 -3
- package/src/permission/docs/devguide.md +20 -20
- package/src/permission/docs/introduction.md +18 -18
- package/src/permission/get.js +1 -1
- package/src/permission/remove.js +4 -4
- 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 +19 -6
- 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 +3 -3
- package/src/singleSignOn/doc.js +2 -2
- package/src/singleSignOn/docs/devguide.md +5 -5
- package/src/singleSignOn/get.js +1 -1
- 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/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 +5 -5
- 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 +3 -3
- package/src/version/doctor.js +1 -1
- package/src/version/get.js +0 -6
- package/src/version/help.js +15 -14
- package/src/version/initHelp.js +2 -2
- package/src/version/listModuleCommands.js +2 -2
- package/src/version/stats.js +1 -1
- 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 +9 -13
- package/utils/commandStats.js +7 -7
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
可通过以下命令读取文档:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
cloudcc doc fields introduction
|
|
11
|
+
cloudcc doc fields devguide
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
---
|
|
@@ -16,9 +16,9 @@ cc doc fields devguide
|
|
|
16
16
|
## 2. 当前支持的命令
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
cloudcc get fields <projectPath> <objPrefix>
|
|
20
|
+
cloudcc create fields <projectPath> <fieldType> <objid> <fieldLabel> [extraArg]
|
|
21
|
+
cloudcc delete fields <projectPath> <fieldId> <objid>
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
说明:
|
|
@@ -43,7 +43,7 @@ cc delete fields <projectPath> <fieldId> <objid>
|
|
|
43
43
|
### 3.1 基本命令
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
|
|
46
|
+
cloudcc get fields <projectPath> <objPrefix>
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
返回结果包含:
|
|
@@ -66,7 +66,7 @@ cc get fields <projectPath> <objPrefix>
|
|
|
66
66
|
### 4.1 基本命令
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
|
|
69
|
+
cloudcc create fields <projectPath> <fieldType> <objid> <fieldLabel> [extraArg]
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
建议:
|
|
@@ -119,8 +119,8 @@ cc create fields <projectPath> <fieldType> <objid> <fieldLabel> [extraArg]
|
|
|
119
119
|
这两类字段创建时都需要额外的选项值参数:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
cloudcc create fields <projectPath> L <objid> <fieldLabel> <ptext>
|
|
123
|
+
cloudcc create fields <projectPath> Q <objid> <fieldLabel> <ptext>
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
其中 `ptext` 表示选项内容,通常用于传入候选值集合。
|
|
@@ -144,9 +144,9 @@ cc create fields <projectPath> Q <objid> <fieldLabel> <ptext>
|
|
|
144
144
|
这三类字段创建时都需要额外传入目标对象参数:
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
cloudcc create fields <projectPath> Y <objid> <fieldLabel> <lookupObj>
|
|
148
|
+
cloudcc create fields <projectPath> MR <objid> <fieldLabel> <lookupObj>
|
|
149
|
+
cloudcc create fields <projectPath> M <objid> <fieldLabel> <lookupObj>
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
其中 `lookupObj` 表示被关联对象。
|
|
@@ -196,7 +196,7 @@ cc create fields <projectPath> M <objid> <fieldLabel> <lookupObj>
|
|
|
196
196
|
### 5.1 基本命令
|
|
197
197
|
|
|
198
198
|
```bash
|
|
199
|
-
|
|
199
|
+
cloudcc delete fields <projectPath> <fieldId> <objid>
|
|
200
200
|
```
|
|
201
201
|
|
|
202
202
|
删除前建议:
|
|
@@ -209,7 +209,7 @@ cc delete fields <projectPath> <fieldId> <objid>
|
|
|
209
209
|
|
|
210
210
|
## 6. 开发前检查
|
|
211
211
|
|
|
212
|
-
- 已完成 `
|
|
212
|
+
- 已完成 `cloudcc doc project devguide` 中的环境准备
|
|
213
213
|
- 项目根目录存在可用的 `cloudcc-cli.config.js`
|
|
214
214
|
- 当前环境密钥配置正确
|
|
215
215
|
- 已确认对象 API 名称、字段类型和命名规则
|
|
@@ -46,8 +46,8 @@ CloudCC 对象上的字段通常分为两类:
|
|
|
46
46
|
可通过以下命令读取文档:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
cloudcc doc fields introduction
|
|
50
|
+
cloudcc doc fields devguide
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
---
|
|
@@ -129,7 +129,7 @@ cc doc fields devguide
|
|
|
129
129
|
- CloudCC 平台支持的完整字段能力
|
|
130
130
|
- 当前 CLI 已实现的字段创建能力
|
|
131
131
|
|
|
132
|
-
命令开发与自动化脚本,应以 `
|
|
132
|
+
命令开发与自动化脚本,应以 `cloudcc doc fields devguide` 中列出的“当前 CLI
|
|
133
133
|
支持字段类型”为准。
|
|
134
134
|
|
|
135
135
|
---
|
|
@@ -3,7 +3,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
3
3
|
const { postClass } = require("../../utils/http");
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* cloudcc create globalSelectList [projectPath] [encodedBodyJson]
|
|
7
7
|
*
|
|
8
8
|
* encodedBodyJson 示例(URI 编码前):
|
|
9
9
|
* {
|
|
@@ -3,7 +3,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
3
3
|
const { postClass } = require("../../utils/http");
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* cloudcc delete globalSelectList [projectPath] [id]
|
|
7
7
|
*
|
|
8
8
|
* 删除逻辑:
|
|
9
9
|
* 1. 先以 deleteFromDisk=false 执行软删除
|
|
@@ -27,14 +27,14 @@ function getDevGuideDoc() {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* cloudcc doc globalSelectList <introduction|devguide>
|
|
31
31
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
32
32
|
*/
|
|
33
33
|
function doc(argvs) {
|
|
34
34
|
const subType = argvs[2];
|
|
35
35
|
const key = String(subType || "").trim().toLowerCase();
|
|
36
36
|
if (!key) {
|
|
37
|
-
throw new Error("
|
|
37
|
+
throw new Error("cloudcc doc globalSelectList 需要子命令:introduction 或 devguide");
|
|
38
38
|
}
|
|
39
39
|
if (key === "introduction") {
|
|
40
40
|
const content = getIntroductionDoc();
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
参数使用 `encodeURI` 编码后传入(保留 `"` 和 `:` 等 JSON 必要字符):
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
|
|
38
|
+
cloudcc create globalSelectList . '%7B%22label%22:%22%E5%AE%A2%E6%88%B7%E7%AD%89%E7%BA%A7%22,%22name%22:%22customer_level%22,%22description%22:%22%E5%AE%A2%E6%88%B7%E7%AD%89%E7%BA%A7%E5%88%86%E7%B1%BB%22,%22ptext%22:%22%E6%99%AE%E9%80%9A%5Cr%5Cn%E9%93%B6%E7%89%8C%5Cr%5Cn%E9%87%91%E7%89%8C%22,%22isPicklistSorted%22:%220%22,%22isFirstDefault%22:%220%22%7D'
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
原始 JSON(`encodeURI` 编码前):
|
|
@@ -59,10 +59,10 @@ cc create globalSelectList . '%7B%22label%22:%22%E5%AE%A2%E6%88%B7%E7%AD%89%E7%B
|
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
# 获取全部列表(默认分页 pageSize=10000)
|
|
62
|
-
|
|
62
|
+
cloudcc get globalSelectList
|
|
63
63
|
|
|
64
64
|
# 指定项目路径
|
|
65
|
-
|
|
65
|
+
cloudcc get globalSelectList /path/to/project
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
返回结果为 `globalSelectList` 数组,每条记录包含:
|
|
@@ -85,7 +85,7 @@ cc get globalSelectList /path/to/project
|
|
|
85
85
|
## 4. 查看详情
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
|
|
88
|
+
cloudcc detail globalSelectList . <id>
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
- `<id>`:全局选项列表的 ID,可从列表接口返回值中获取
|
|
@@ -129,7 +129,7 @@ cc detail globalSelectList . <id>
|
|
|
129
129
|
## 5. 删除全局选项列表
|
|
130
130
|
|
|
131
131
|
```bash
|
|
132
|
-
|
|
132
|
+
cloudcc delete globalSelectList . <id>
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
删除逻辑分两步自动处理:
|
|
@@ -144,10 +144,10 @@ cc delete globalSelectList . <id>
|
|
|
144
144
|
|
|
145
145
|
```bash
|
|
146
146
|
# 查看能力介绍
|
|
147
|
-
|
|
147
|
+
cloudcc doc globalSelectList introduction
|
|
148
148
|
|
|
149
149
|
# 查看操作指南(本文)
|
|
150
|
-
|
|
150
|
+
cloudcc doc globalSelectList devguide
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
|
|
@@ -2,7 +2,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
2
2
|
const { postClass } = require("../../utils/http");
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* cloudcc get globalSelectList [projectPath] [encodedCondJson]
|
|
6
6
|
* @param {string} projectPath
|
|
7
7
|
* @param {string} encodedCondJson
|
|
8
8
|
* @param {boolean} isMcp
|
|
@@ -5,7 +5,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
5
5
|
/**
|
|
6
6
|
* 创建身份提供商
|
|
7
7
|
* 接口: /samlSp/save
|
|
8
|
-
* 用法:
|
|
8
|
+
* 用法:cloudcc create identityProvider <path> <entityid> <acsurl>
|
|
9
9
|
*/
|
|
10
10
|
async function create(argvs) {
|
|
11
11
|
try {
|
|
@@ -16,8 +16,8 @@ async function create(argvs) {
|
|
|
16
16
|
if (!entityid || !acsurl) {
|
|
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 create identityProvider <path> <entityid> <acsurl>"));
|
|
20
|
+
console.error(chalk.yellow("示例: cloudcc create identityProvider . 'http://testdev.cloudcc.cn/ccdomaingateway/apisvc' 'http://testdev.cloudcc.cn/ccdomaingateway/apisvc/saml2/sp/sso/acs'"));
|
|
21
21
|
console.error();
|
|
22
22
|
throw new Error("缺少必需参数: entityid 和 acsurl");
|
|
23
23
|
}
|
|
@@ -5,7 +5,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
5
5
|
/**
|
|
6
6
|
* 删除身份提供商
|
|
7
7
|
* 接口: /samlSp/delete
|
|
8
|
-
* 用法:
|
|
8
|
+
* 用法:cloudcc delete identityProvider <projectPath> <appId>
|
|
9
9
|
*/
|
|
10
10
|
async function remove(argvs) {
|
|
11
11
|
try {
|
|
@@ -15,8 +15,8 @@ async function remove(argvs) {
|
|
|
15
15
|
if (!appId) {
|
|
16
16
|
console.error();
|
|
17
17
|
console.error(chalk.red("Error: 缺少身份提供商 app ID"));
|
|
18
|
-
console.error(chalk.yellow("用法:
|
|
19
|
-
console.error(chalk.yellow("示例:
|
|
18
|
+
console.error(chalk.yellow("用法: cloudcc delete identityProvider <projectPath> <appId>"));
|
|
19
|
+
console.error(chalk.yellow("示例: cloudcc delete identityProvider . QbjH30d9Oy"));
|
|
20
20
|
console.error();
|
|
21
21
|
throw new Error("缺少必需参数: appId");
|
|
22
22
|
}
|
|
@@ -21,14 +21,14 @@ function getDevGuideDoc() {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* cloudcc doc identityProvider <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 identityProvider 需要子命令:introduction 或 devguide");
|
|
32
32
|
}
|
|
33
33
|
if (key === "introduction") {
|
|
34
34
|
const content = getIntroductionDoc();
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
### 创建身份提供商
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
|
|
17
|
+
cloudcc create identityProvider <path> <entityid> <acsurl>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
**参数说明:**
|
|
@@ -29,13 +29,13 @@ cc create identityProvider <path> <entityid> <acsurl>
|
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
31
|
# 创建身份提供商
|
|
32
|
-
|
|
32
|
+
cloudcc create identityProvider . "http://testdev.cloudcc.cn/ccdomaingateway/apisvc" "http://testdev.cloudcc.cn/ccdomaingateway/apisvc/saml2/sp/sso/acs"
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
### 查询身份提供商列表
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
|
|
38
|
+
cloudcc get identityProvider <projectPath> [encodedCondJson]
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
**参数说明:**
|
|
@@ -57,16 +57,16 @@ cc get identityProvider <projectPath> [encodedCondJson]
|
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
59
|
# 获取所有身份提供商
|
|
60
|
-
|
|
60
|
+
cloudcc get identityProvider .
|
|
61
61
|
|
|
62
62
|
# 带查询条件(搜索关键词)
|
|
63
|
-
|
|
63
|
+
cloudcc get identityProvider . '%7B%22keyword%22%3A%22test%22%2C%22limit%22%3A50%7D'
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
### 删除身份提供商
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
|
|
69
|
+
cloudcc delete identityProvider <projectPath> <appId>
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
**参数说明:**
|
|
@@ -80,13 +80,13 @@ cc delete identityProvider <projectPath> <appId>
|
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
82
|
# 删除身份提供商
|
|
83
|
-
|
|
83
|
+
cloudcc delete identityProvider . QbjH30d9Oy
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
### 下载身份提供商证书
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
|
|
89
|
+
cloudcc download identityProvider <projectPath> [savePath]
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
**参数说明:**
|
|
@@ -100,8 +100,8 @@ cc download identityProvider <projectPath> [savePath]
|
|
|
100
100
|
|
|
101
101
|
```bash
|
|
102
102
|
# 下载证书到当前目录
|
|
103
|
-
|
|
103
|
+
cloudcc download identityProvider .
|
|
104
104
|
|
|
105
105
|
# 下载证书到指定路径
|
|
106
|
-
|
|
106
|
+
cloudcc download identityProvider . ./certificates
|
|
107
107
|
```
|
|
@@ -13,7 +13,7 @@ const httpsAgent = new https.Agent({
|
|
|
13
13
|
/**
|
|
14
14
|
* 下载身份提供商证书
|
|
15
15
|
* 接口: /LoginHistory/getExportReportURL 获取下载链接,然后下载文件
|
|
16
|
-
* 用法:
|
|
16
|
+
* 用法:cloudcc download identityProvider <projectPath> [savePath]
|
|
17
17
|
*/
|
|
18
18
|
async function download(argvs) {
|
|
19
19
|
try {
|
|
@@ -5,7 +5,7 @@ const chalk = require("chalk");
|
|
|
5
5
|
/**
|
|
6
6
|
* 查询身份提供商列表
|
|
7
7
|
* 接口: /samlSp/queryList
|
|
8
|
-
* 用法:
|
|
8
|
+
* 用法:cloudcc get identityProvider <projectPath> [encodedCondJson]
|
|
9
9
|
*/
|
|
10
10
|
async function get(argvs, isMcp = false) {
|
|
11
11
|
const projectPath = argvs[2] || process.cwd();
|
|
@@ -12,7 +12,7 @@ const { buildCommonMenuFields } = require('./common');
|
|
|
12
12
|
*/
|
|
13
13
|
async function createObjectMenu(argvs) {
|
|
14
14
|
try {
|
|
15
|
-
// 命令行参数格式:
|
|
15
|
+
// 命令行参数格式:cloudcc create menu object <path> <objectId> <tabName>
|
|
16
16
|
// argvs: ['create', 'menu', 'object', '.', 'objectId', 'tabName', ...]
|
|
17
17
|
let path = argvs[3]; // 路径 (argvs[3])
|
|
18
18
|
let objectId = argvs[4]; // 对象ID (p1)
|
|
@@ -24,7 +24,7 @@ async function createObjectMenu(argvs) {
|
|
|
24
24
|
if (!objectId || !tabName) {
|
|
25
25
|
console.error();
|
|
26
26
|
console.error(chalk.red('Error: 缺少必需参数'));
|
|
27
|
-
console.error('用法:
|
|
27
|
+
console.error('用法: cloudcc create menu object <path> <objectId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]');
|
|
28
28
|
console.error();
|
|
29
29
|
throw new Error('缺少必需参数: objectId 和 tabName');
|
|
30
30
|
}
|
package/src/menu/create-page.js
CHANGED
|
@@ -12,7 +12,7 @@ const { validatePname, formatPname } = require('./validator');
|
|
|
12
12
|
*/
|
|
13
13
|
async function createPageMenu(argvs) {
|
|
14
14
|
try {
|
|
15
|
-
// 命令行参数格式:
|
|
15
|
+
// 命令行参数格式:cloudcc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]
|
|
16
16
|
// argvs: ['create', 'menu', 'page', '.', 'contract-assistant', '标签名', '菜单名称', ...]
|
|
17
17
|
let path = argvs[3]; // 路径 (argvs[3])
|
|
18
18
|
let pageApi = argvs[4]; // 自定义页面 pageApi,例如 contract-assistant
|
|
@@ -32,7 +32,7 @@ async function createPageMenu(argvs) {
|
|
|
32
32
|
if (!pageApi || !tabName || !pname) {
|
|
33
33
|
console.error();
|
|
34
34
|
console.error(chalk.red('Error: 缺少必需参数'));
|
|
35
|
-
console.error('用法:
|
|
35
|
+
console.error('用法: cloudcc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]');
|
|
36
36
|
console.error();
|
|
37
37
|
throw new Error('缺少必需参数: pageApi、tabName 和 pname');
|
|
38
38
|
}
|
|
@@ -12,7 +12,7 @@ const { validatePname } = require('./validator');
|
|
|
12
12
|
*/
|
|
13
13
|
async function createScriptMenu(argvs) {
|
|
14
14
|
try {
|
|
15
|
-
// 命令行参数格式:
|
|
15
|
+
// 命令行参数格式:cloudcc create menu script <path> <tabName> <pname> [functioncode] [tabStyle] [mobileimg] [cloudccservicetab]
|
|
16
16
|
// argvs: ['create', 'menu', 'script', '.', 'tabName', 'pname', 'functioncode', ...]
|
|
17
17
|
let path = argvs[3]; // 路径 (argvs[3])
|
|
18
18
|
let tabName = argvs[4]; // 标签名称(显示名称)
|
|
@@ -25,7 +25,7 @@ async function createScriptMenu(argvs) {
|
|
|
25
25
|
if (!tabName || !pname) {
|
|
26
26
|
console.error();
|
|
27
27
|
console.error(chalk.red('Error: 缺少必需参数'));
|
|
28
|
-
console.error('用法:
|
|
28
|
+
console.error('用法: cloudcc create menu script <path> <tabName> <pname> [functioncode] [tabStyle] [mobileimg] [cloudccservicetab]');
|
|
29
29
|
console.error();
|
|
30
30
|
console.error('参数说明:');
|
|
31
31
|
console.error(' path - 项目路径,"." 表示当前目录');
|
package/src/menu/create-site.js
CHANGED
|
@@ -11,7 +11,7 @@ const { buildCommonMenuFields } = require('./common');
|
|
|
11
11
|
*/
|
|
12
12
|
async function createSiteMenu(argvs) {
|
|
13
13
|
try {
|
|
14
|
-
// 命令行参数格式:
|
|
14
|
+
// 命令行参数格式:cloudcc create menu site <path> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
15
15
|
// argvs: ['create', 'menu', 'site', '.', 'siteId', 'tabName', ...]
|
|
16
16
|
let path = argvs[3]; // 路径 (argvs[3])
|
|
17
17
|
let siteId = argvs[4]; // 站点ID (p1)
|
|
@@ -23,7 +23,7 @@ async function createSiteMenu(argvs) {
|
|
|
23
23
|
if (!siteId || !tabName) {
|
|
24
24
|
console.error();
|
|
25
25
|
console.error(chalk.red('Error: 缺少必需参数'));
|
|
26
|
-
console.error('用法:
|
|
26
|
+
console.error('用法: cloudcc create menu site <path> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]');
|
|
27
27
|
console.error();
|
|
28
28
|
throw new Error('缺少必需参数: siteId 和 tabName');
|
|
29
29
|
}
|
package/src/menu/create.js
CHANGED
|
@@ -8,14 +8,14 @@ const createSiteMenu = require('./create-site');
|
|
|
8
8
|
* 创建自定义菜单(标签页)
|
|
9
9
|
* 支持类型:object(自定义对象)、page(自定义页面)、script(自定义脚本)、site(站点)
|
|
10
10
|
* 命令格式:
|
|
11
|
-
* - object/script/site:
|
|
12
|
-
* - page:
|
|
11
|
+
* - object/script/site: cloudcc create menu <type> <path> <resourceId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
12
|
+
* - page: cloudcc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]
|
|
13
13
|
* @param {Array} argvs - 命令行参数数组
|
|
14
14
|
* @returns {Promise<Object>} 创建结果
|
|
15
15
|
*/
|
|
16
16
|
async function create(argvs) {
|
|
17
17
|
try {
|
|
18
|
-
// 命令行参数格式:
|
|
18
|
+
// 命令行参数格式:cloudcc create menu <type> <path> <resourceId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
19
19
|
// argvs: ['create', 'menu', 'object', '.', 'resourceId', 'tabName', ...]
|
|
20
20
|
// type: object, page, script, site
|
|
21
21
|
let menuType = argvs[2]; // 菜单类型 (argvs[2])
|
|
@@ -27,15 +27,15 @@ async function create(argvs) {
|
|
|
27
27
|
console.error(chalk.red('Error: 无效的菜单类型'));
|
|
28
28
|
console.error(`支持的菜单类型: ${validTypes.join(', ')}`);
|
|
29
29
|
console.error('用法:');
|
|
30
|
-
console.error('
|
|
31
|
-
console.error('
|
|
32
|
-
console.error('
|
|
33
|
-
console.error('
|
|
30
|
+
console.error(' cloudcc create menu object <path> <objectId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]');
|
|
31
|
+
console.error(' cloudcc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]');
|
|
32
|
+
console.error(' cloudcc create menu script <path> <scriptId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]');
|
|
33
|
+
console.error(' cloudcc create menu site <path> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]');
|
|
34
34
|
console.error('示例:');
|
|
35
|
-
console.error('
|
|
36
|
-
console.error('
|
|
37
|
-
console.error('
|
|
38
|
-
console.error('
|
|
35
|
+
console.error(' cloudcc create menu object . <objectId> "我的对象菜单"');
|
|
36
|
+
console.error(' cloudcc create menu page . contract-assistant "我的页面标签" my_page_menu');
|
|
37
|
+
console.error(' cloudcc create menu script . <scriptId> "我的脚本菜单"');
|
|
38
|
+
console.error(' cloudcc create menu site . <siteId> "我的站点菜单"');
|
|
39
39
|
console.error();
|
|
40
40
|
throw new Error(`无效的菜单类型: ${menuType}`);
|
|
41
41
|
}
|
package/src/menu/delete.js
CHANGED
|
@@ -4,7 +4,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 删除自定义菜单(标签页)
|
|
7
|
-
* 用法:
|
|
7
|
+
* 用法:cloudcc delete menu <projectPath> <tabId>
|
|
8
8
|
*/
|
|
9
9
|
async function remove(argvs) {
|
|
10
10
|
try {
|
|
@@ -14,7 +14,7 @@ async function remove(argvs) {
|
|
|
14
14
|
if (!tabId) {
|
|
15
15
|
console.error();
|
|
16
16
|
console.error(chalk.red("Error: 缺少菜单 ID"));
|
|
17
|
-
console.error(chalk.yellow("用法:
|
|
17
|
+
console.error(chalk.yellow("用法: cloudcc delete menu <projectPath> <tabId>"));
|
|
18
18
|
console.error();
|
|
19
19
|
throw new Error("缺少必需参数: tabId");
|
|
20
20
|
}
|
package/src/menu/doc.js
CHANGED
|
@@ -32,14 +32,14 @@ function getDevGuideDoc() {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* cloudcc doc menu <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 menu 需要子命令:introduction 或 devguide");
|
|
43
43
|
}
|
|
44
44
|
if (key === "introduction") {
|
|
45
45
|
const content = getIntroductionDoc();
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
### 创建自定义对象菜单
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
|
|
19
|
+
cloudcc create menu object <path> <objectId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
**参数说明:**
|
|
@@ -33,13 +33,13 @@ cc create menu object <path> <objectId> <tabName> [tabStyle] [mobileimg] [cloudc
|
|
|
33
33
|
**示例:**
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
|
|
36
|
+
cloudcc create menu object . a0F9D000000XXXXUAI "客户管理"
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### 创建自定义页面菜单
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
|
|
42
|
+
cloudcc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
**参数说明:**
|
|
@@ -56,13 +56,13 @@ cc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [c
|
|
|
56
56
|
**示例:**
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
|
|
59
|
+
cloudcc create menu page . contract-assistant "合同助手" contract_menu
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
### 创建自定义脚本菜单
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
|
|
65
|
+
cloudcc create menu script <path> <tabName> <pname> [functioncode] [tabStyle] [mobileimg] [cloudccservicetab]
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
**参数说明:**
|
|
@@ -77,13 +77,13 @@ cc create menu script <path> <tabName> <pname> [functioncode] [tabStyle] [mobile
|
|
|
77
77
|
**示例:**
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
|
-
|
|
80
|
+
cloudcc create menu script . "数据导入工具" data_import_menu "ccc.alert('Hello World');"
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
### 创建站点菜单
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
|
|
86
|
+
cloudcc create menu site <path> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
**参数说明:**
|
|
@@ -97,33 +97,33 @@ cc create menu site <path> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccser
|
|
|
97
97
|
**示例:**
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
|
|
100
|
+
cloudcc create menu site . a0H9D000000XXXXUAI "合作伙伴门户"
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
### 查询菜单列表
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
|
|
106
|
+
cloudcc get menu <projectPath> [encodedCondJson]
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
**示例:**
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
112
|
# 查询所有菜单
|
|
113
|
-
|
|
113
|
+
cloudcc get menu .
|
|
114
114
|
|
|
115
115
|
# 带查询条件
|
|
116
|
-
|
|
116
|
+
cloudcc get menu . '%7B%22type%22%3A%22page%22%7D'
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
### 删除菜单
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
|
|
122
|
+
cloudcc delete menu <projectPath> <tabId>
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**示例:**
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
|
-
|
|
128
|
+
cloudcc delete menu . a0I9D000000XXXXUAI
|
|
129
129
|
```
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
5. 选择要加入的应用程序(决定菜单出现在哪个应用)
|
|
45
45
|
6. 保存并验证显示效果
|
|
46
46
|
|
|
47
|
-
在 `cloudcc-cli` 中,你主要通过 `
|
|
47
|
+
在 `cloudcc-cli` 中,你主要通过 `cloudcc create menu ...` 完成第 2-3
|
|
48
48
|
步;权限与应用归属建议在创建后补充核验。
|
|
49
49
|
|
|
50
50
|
---
|
|
@@ -94,6 +94,6 @@
|
|
|
94
94
|
## 9. 相关文档与命令
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
cloudcc doc menu introduction
|
|
98
|
+
cloudcc doc menu devguide
|
|
99
99
|
```
|
package/src/menu/get.js
CHANGED
|
@@ -3,7 +3,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* 查询自定义菜单(标签页)列表
|
|
6
|
-
* 用法:
|
|
6
|
+
* 用法:cloudcc get menu <projectPath> [encodedCondJson]
|
|
7
7
|
*/
|
|
8
8
|
async function get(argvs, isMcp = false) {
|
|
9
9
|
const projectPath = argvs[2] || process.cwd();
|