cloudcc-cli 2.3.1 → 2.3.3
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 +25 -0
- package/.cloudcc-cache.json +21 -4
- package/.cursor/skills/cloudcc-cli-dev.zip +0 -0
- package/.cursor/skills/cloudcc-cli-usage/SKILL.md +68 -0
- package/README.md +22 -0
- package/bin/cc.js +13 -8
- package/bin/index.js +9 -2
- package/bin/mcp.js +1 -1
- package/build/component-CCPlugin1774500425584.common.js +831 -0
- package/build/component-CCPlugin1774500425584.common.js.map +1 -0
- package/build/component-CCPlugin1774500425584.css +1 -0
- package/build/component-CCPlugin1774500425584.umd.js +874 -0
- package/build/component-CCPlugin1774500425584.umd.js.map +1 -0
- package/build/component-CCPlugin1774500425584.umd.min.js +8 -0
- package/build/component-CCPlugin1774500425584.umd.min.js.map +1 -0
- package/build/demo.html +1 -0
- package/{src/mcp → mcp}/tools/Class Editor Guide/handler.js +12 -4
- package/{src/mcp → mcp}/tools/Component Editor Guide/handler.js +15 -14
- package/{src/mcp → mcp}/tools/Trigger Editor Guide/handler.js +8 -2
- package/package.json +3 -2
- package/src/application/doc.js +46 -0
- package/src/application/docs/devguide.md +173 -0
- package/src/application/docs/introduction.md +81 -0
- package/src/application/index.js +1 -0
- package/src/brief/get.js +1 -1
- package/src/classes/create.js +6 -1
- package/src/classes/delete.js +7 -1
- package/src/classes/detail.js +8 -1
- package/src/classes/doc.js +49 -472
- package/src/classes/docs/devguide.md +541 -0
- package/src/classes/get.js +9 -2
- package/src/classes/index.js +2 -1
- package/src/classes/publish.js +6 -1
- package/src/classes/pull.js +6 -1
- package/src/classes/pullList.js +6 -3
- package/src/config/doc.js +31 -0
- package/src/config/docs/devguide.md +100 -0
- package/src/config/index.js +5 -0
- package/src/customPage/create.js +52 -19
- package/src/customPage/doc.js +46 -0
- package/src/customPage/docs/devguide.md +200 -0
- package/{.cursor/skills/cloudcc-cli-dev/docs//350/207/252/345/256/232/344/271/211/351/241/265/351/235/242.md → src/customPage/docs/introduction.md} +1 -5
- package/src/customPage/index.js +1 -0
- package/src/customSetting/create.js +9 -0
- package/src/customSetting/delete.js +10 -1
- package/src/customSetting/deleteCustomSettingField.js +43 -0
- package/src/customSetting/detail.js +10 -1
- package/src/customSetting/doc.js +22 -179
- package/src/customSetting/docs/devguide.md +181 -0
- package/src/customSetting/docs/introduction.md +3 -0
- package/src/customSetting/editCustomSettingField.js +34 -0
- package/src/customSetting/get.js +9 -0
- package/src/customSetting/index.js +6 -1
- package/src/customSetting/modify.js +30 -0
- package/src/customSetting/saveCustomSettingField.js +46 -0
- package/src/fields/doc.js +45 -0
- package/src/fields/docs/devguide.md +224 -0
- package/src/fields/docs/introduction.md +217 -0
- package/src/fields/index.js +1 -0
- package/src/globalSelectList/create.js +51 -0
- package/src/globalSelectList/delete.js +56 -0
- package/src/globalSelectList/detail.js +45 -0
- package/src/globalSelectList/doc.js +52 -0
- package/src/globalSelectList/docs/devguide.md +153 -0
- package/src/globalSelectList/docs/introduction.md +82 -0
- package/src/globalSelectList/get.js +31 -0
- package/src/globalSelectList/index.js +16 -0
- package/src/menu/create-page.js +43 -6
- package/src/menu/create-script.js +67 -19
- package/src/menu/doc.js +57 -0
- package/src/menu/docs/devguide.md +129 -0
- package/src/menu/docs/introduction.md +99 -0
- package/src/menu/index.js +1 -0
- package/src/menu/validator.js +80 -0
- package/src/object/doc.js +45 -0
- package/src/object/docs/devguide.md +112 -0
- package/src/object/docs/introduction.md +187 -0
- package/src/object/get.js +1 -23
- package/src/object/index.js +1 -0
- package/src/pagelayout/create.js +123 -0
- package/src/pagelayout/delete.js +57 -0
- package/src/pagelayout/doc.js +46 -0
- package/src/pagelayout/docs/devguide.md +83 -0
- package/src/pagelayout/docs/introduction.md +44 -0
- package/src/pagelayout/get.js +46 -0
- package/src/pagelayout/index.js +10 -0
- package/src/plugin/doc.js +43 -863
- package/src/plugin/docs/devguide.md +996 -0
- package/src/profile/create.js +108 -0
- package/src/profile/delete.js +59 -0
- package/src/profile/doc.js +46 -0
- package/src/profile/docs/devguide.md +77 -0
- package/src/profile/docs/introduction.md +123 -0
- package/src/profile/get.js +55 -0
- package/src/profile/index.js +14 -0
- package/src/project/doc.js +39 -372
- package/src/project/docs/devguide.md +359 -0
- package/src/project/docs/introduction.md +3 -0
- package/src/recordType/create.js +77 -0
- package/src/recordType/delete.js +52 -0
- package/src/recordType/doc.js +36 -0
- package/src/recordType/docs/devguide.md +160 -0
- package/src/recordType/docs/introduction.md +53 -0
- package/src/recordType/editInfo.js +39 -0
- package/src/recordType/editSave.js +47 -0
- package/src/recordType/getList.js +31 -0
- package/src/recordType/index.js +16 -3
- package/src/recordType/newInfo.js +39 -0
- package/src/recordType/validDelete.js +91 -0
- package/src/res.md +66 -0
- package/src/role/create.js +153 -0
- package/src/role/delete.js +59 -0
- package/src/role/doc.js +46 -0
- package/src/role/docs/devguide.md +81 -0
- package/src/role/docs/introduction.md +124 -0
- package/src/role/get.js +57 -0
- package/src/role/index.js +10 -0
- package/src/scheduleJob/doc.js +49 -0
- package/src/scheduleJob/docs/devguide.md +79 -0
- package/src/scheduleJob/docs/introduction.md +101 -0
- package/src/scheduleJob/index.js +5 -0
- package/src/script/delete.js +112 -0
- package/src/script/doc.js +31 -245
- package/src/script/docs/devguide.md +290 -0
- package/src/script/docs/introduction.md +48 -0
- package/src/script/index.js +1 -0
- package/src/staticResource/count.js +31 -10
- package/src/staticResource/create.js +97 -0
- package/src/staticResource/delete.js +30 -8
- package/src/staticResource/detail.js +32 -10
- package/src/staticResource/doc.js +21 -88
- package/src/staticResource/docs/devguide.md +157 -0
- package/src/staticResource/docs/introduction.md +3 -0
- package/src/staticResource/get.js +31 -8
- package/src/staticResource/index.js +2 -1
- package/src/timer/create.js +6 -1
- package/src/timer/delete.js +7 -1
- package/src/timer/detail.js +5 -5
- package/src/timer/doc.js +57 -0
- package/{.cursor/skills/cloudcc-cli-dev/docs/cloudcc/345/256/232/346/227/266/344/275/234/344/270/232.md → src/timer/docs/devguide.md} +83 -1
- package/src/timer/get.js +7 -1
- package/src/timer/index.js +3 -1
- package/src/timer/publish.js +6 -1
- package/src/timer/pull.js +6 -1
- package/src/timer/pullList.js +5 -3
- package/src/triggers/detail.js +5 -5
- package/src/triggers/doc.js +49 -364
- package/src/triggers/docs/devguide.md +442 -0
- package/src/triggers/get.js +7 -3
- package/src/triggers/index.js +1 -4
- package/src/triggers/pullList.js +7 -7
- package/src/user/create.js +50 -0
- package/src/user/delete.js +59 -0
- package/src/user/doc.js +46 -0
- package/src/user/docs/devguide.md +122 -0
- package/src/user/docs/introduction.md +124 -0
- package/src/user/get.js +112 -0
- package/src/user/index.js +12 -0
- package/src/user/update.js +96 -0
- package/src/user/view.js +60 -0
- package/test/classes.cli.test.js +7 -4
- package/test/customPage.cli.test.js +96 -0
- package/test/globalSelectList.cli.test.js +94 -0
- package/test/menu-script.cli.test.js +147 -0
- package/test/menu.cli.test.js +8 -1
- package/test/plugin.cli.test.js +5 -3
- package/test/timer.cli.test.js +15 -8
- package/test/trigger.cli.test.js +5 -3
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_CLASS.md +0 -111
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_SCHEDULE.md +0 -152
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_TRIGGER.md +0 -150
- package/.cursor/skills/cloudcc-cli-dev/CLI_CHEATSHEET.md +0 -372
- package/.cursor/skills/cloudcc-cli-dev/CUSTOM-SETTING-API.md +0 -62
- package/.cursor/skills/cloudcc-cli-dev/INSTALL_AND_BOOTSTRAP.md +0 -62
- package/.cursor/skills/cloudcc-cli-dev/OBJECTS_AND_FIELDS.md +0 -214
- package/.cursor/skills/cloudcc-cli-dev/REQUIREMENTS_BREAKDOWN.md +0 -113
- package/.cursor/skills/cloudcc-cli-dev/SKILL.md +0 -66
- package/.cursor/skills/cloudcc-cli-dev/STATIC-RESOURCE-API.md +0 -60
- package/.cursor/skills/cloudcc-cli-dev/VUE_CUSTOM_COMPONENT.md +0 -151
- package/.cursor/skills/cloudcc-cli-dev/VUE_CUSTOM_PAGE.md +0 -216
- package/src/approval/approve.js +0 -105
- package/src/approval/get.js +0 -245
- package/src/approval/index.js +0 -11
- package/src/approval/reject.js +0 -105
- package/src/plugin/readme.md +0 -7
- /package/{src/mcp → mcp}/cliRunner.js +0 -0
- /package/{src/mcp → mcp}/index.js +0 -0
- /package/{src/mcp → mcp}/readme.md +0 -0
- /package/{src/mcp → mcp}/tools/Application Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Approval/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Class Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Editor Guide/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Client Script Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/CloudCC Development Overview/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Component Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Dev Environment Creator/fetcher.js +0 -0
- /package/{src/mcp → mcp}/tools/Dev Environment Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Dev Environment Validator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Developer Key Setup Guide/fetcher.js +0 -0
- /package/{src/mcp → mcp}/tools/Developer Key Setup Guide/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/JSP Migrator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Menu Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object Fields Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object Fields Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Object List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Scheduled Class Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Creator/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Detail Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger List Retriever/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Publisher/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/Trigger Puller/handler.js +0 -0
- /package/{src/mcp → mcp}/tools/index.js +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs//350/207/252/345/256/232/344/271/211/347/261/273.md" → src/classes/docs/introduction.md} +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs/CloudCC/350/207/252/345/256/232/344/271/211/347/273/204/344/273/266/344/275/277/347/224/250/350/257/264/346/230/216.md" → src/plugin/docs/introduction.md} +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs/cloudcc/345/256/232/346/227/266/347/261/273.md" → src/timer/docs/introduction.md} +0 -0
- /package/{.cursor/skills/cloudcc-cli-dev/docs//350/247/246/345/217/221/345/231/250/347/261/273.md" → src/triggers/docs/introduction.md} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
const chalk = require('chalk');
|
|
2
|
+
const { postClass } = require("../../utils/http");
|
|
3
|
+
const { getPackageJson } = require("../../utils/config");
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 创建简档
|
|
7
|
+
* 用法:cc create profile <path> <profileName> [description]
|
|
8
|
+
* 流程:1. 调用 /profile/copyProfile 获取现有简档列表
|
|
9
|
+
* 2. 选择第一个简档作为复制来源
|
|
10
|
+
* 3. 调用 /profile/newProfile 创建新简档
|
|
11
|
+
* @param {Array} argvs - 命令行参数数组
|
|
12
|
+
* @returns {Promise<Object>} 创建结果
|
|
13
|
+
*/
|
|
14
|
+
async function create(argvs) {
|
|
15
|
+
try {
|
|
16
|
+
// 命令行参数格式:cc create profile <path> <profileName> [description]
|
|
17
|
+
const projectPath = argvs[2] || process.cwd();
|
|
18
|
+
const profileName = argvs[3];
|
|
19
|
+
const description = argvs[4] || '';
|
|
20
|
+
|
|
21
|
+
if (!profileName) {
|
|
22
|
+
console.error();
|
|
23
|
+
console.error(chalk.red('Error: 缺少简档名称'));
|
|
24
|
+
console.error('用法: cc create profile <path> <profileName> [description]');
|
|
25
|
+
console.error('示例:');
|
|
26
|
+
console.error(' cc create profile . "销售经理简档"');
|
|
27
|
+
console.error(' cc create profile . "销售代表简档" "适用于销售团队的权限配置"');
|
|
28
|
+
console.error();
|
|
29
|
+
throw new Error('缺少必需参数: profileName');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const config = await getPackageJson(projectPath);
|
|
33
|
+
if (!config || !config.accessToken) {
|
|
34
|
+
console.error();
|
|
35
|
+
console.error(chalk.red("Error: 配置未找到或 accessToken 缺失"));
|
|
36
|
+
console.error();
|
|
37
|
+
throw new Error("配置未找到或 accessToken 缺失");
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
console.error();
|
|
41
|
+
console.error(chalk.green(`Creating profile (${profileName}), please wait...`));
|
|
42
|
+
console.error();
|
|
43
|
+
|
|
44
|
+
// 步骤1:调用 copyProfile 获取现有简档列表
|
|
45
|
+
console.error(chalk.blue('Step 1: 获取现有简档列表...'));
|
|
46
|
+
const copyRes = await postClass(
|
|
47
|
+
config.setupSvc + "/api/profile/copyProfile",
|
|
48
|
+
{},
|
|
49
|
+
config.accessToken
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
if (!copyRes || !copyRes.result) {
|
|
53
|
+
const msg = copyRes && (copyRes.returnInfo || copyRes.message) ? (copyRes.returnInfo || copyRes.message) : "Unknown error";
|
|
54
|
+
console.error();
|
|
55
|
+
console.error(chalk.red("Error: 获取简档列表失败 - " + msg));
|
|
56
|
+
console.error();
|
|
57
|
+
throw new Error("Get Profile List Failed: " + msg);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const profileList = copyRes.data && copyRes.data.profileList ? copyRes.data.profileList : [];
|
|
61
|
+
if (!profileList.length) {
|
|
62
|
+
console.error();
|
|
63
|
+
console.error(chalk.red("Error: 没有找到可用的简档作为复制来源"));
|
|
64
|
+
console.error();
|
|
65
|
+
throw new Error("No available profile to copy from");
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// 查找"系统管理员"简档作为复制来源,如果不存在则使用第一个
|
|
69
|
+
let sourceProfile = profileList.find(p => p.name === '系统管理员' || p.profilename === '系统管理员');
|
|
70
|
+
if (!sourceProfile) {
|
|
71
|
+
sourceProfile = profileList[0];
|
|
72
|
+
console.error(chalk.yellow('警告: 未找到"系统管理员"简档,将使用第一个可用简档作为复制来源'));
|
|
73
|
+
}
|
|
74
|
+
console.error(chalk.blue(`选择复制来源简档: ${sourceProfile.name || sourceProfile.profilename || sourceProfile.id} (${sourceProfile.id})`));
|
|
75
|
+
|
|
76
|
+
// 步骤2:调用 newProfile 创建新简档
|
|
77
|
+
console.error(chalk.blue('Step 2: 创建新简档...'));
|
|
78
|
+
const result = await postClass(
|
|
79
|
+
config.setupSvc + "/api/profile/newProfile",
|
|
80
|
+
{
|
|
81
|
+
newProfileName: profileName,
|
|
82
|
+
type: "",
|
|
83
|
+
copyFromId: sourceProfile.id
|
|
84
|
+
},
|
|
85
|
+
config.accessToken
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
if (result && result.result) {
|
|
89
|
+
console.error();
|
|
90
|
+
console.error(chalk.green("Success! Profile created."));
|
|
91
|
+
console.error();
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const msg = result && (result.returnInfo || result.message) ? (result.returnInfo || result.message) : "Unknown error";
|
|
96
|
+
console.error();
|
|
97
|
+
console.error(chalk.red("Error: " + msg));
|
|
98
|
+
console.error();
|
|
99
|
+
throw new Error("Create Profile Failed: " + msg);
|
|
100
|
+
|
|
101
|
+
} catch (error) {
|
|
102
|
+
console.error();
|
|
103
|
+
console.error(chalk.red("简档创建失败:"), error);
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
module.exports = create;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const chalk = require("chalk");
|
|
2
|
+
const { postClass } = require("../../utils/http");
|
|
3
|
+
const { getPackageJson } = require("../../utils/config");
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 删除简档
|
|
7
|
+
* 用法:cc delete profile <projectPath> <profileId>
|
|
8
|
+
*/
|
|
9
|
+
async function remove(argvs) {
|
|
10
|
+
try {
|
|
11
|
+
const projectPath = argvs[2] || process.cwd();
|
|
12
|
+
const profileId = argvs[3];
|
|
13
|
+
|
|
14
|
+
if (!profileId) {
|
|
15
|
+
console.error();
|
|
16
|
+
console.error(chalk.red("Error: 缺少简档 ID"));
|
|
17
|
+
console.error(chalk.yellow("用法: cc delete profile <projectPath> <profileId>"));
|
|
18
|
+
console.error();
|
|
19
|
+
throw new Error("缺少必需参数: profileId");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const config = await getPackageJson(projectPath);
|
|
23
|
+
if (!config || !config.accessToken) {
|
|
24
|
+
console.error();
|
|
25
|
+
console.error(chalk.red("Error: 配置未找到或 accessToken 缺失"));
|
|
26
|
+
console.error();
|
|
27
|
+
throw new Error("配置未找到或 accessToken 缺失");
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
console.error();
|
|
31
|
+
console.error(chalk.green(`Deleting profile (${profileId}), please wait...`));
|
|
32
|
+
console.error();
|
|
33
|
+
|
|
34
|
+
const result = await postClass(
|
|
35
|
+
config.setupSvc + "/api/profile/delProfile",
|
|
36
|
+
{ id: profileId },
|
|
37
|
+
config.accessToken
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
if (result && result.result) {
|
|
41
|
+
console.error();
|
|
42
|
+
console.error(chalk.green("Success! Profile deleted."));
|
|
43
|
+
console.error();
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const msg = result && (result.returnInfo || result.message) ? (result.returnInfo || result.message) : "Unknown error";
|
|
48
|
+
console.error();
|
|
49
|
+
console.error(chalk.red("Error: " + msg));
|
|
50
|
+
console.error();
|
|
51
|
+
throw new Error("Delete Profile Failed: " + msg);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.error();
|
|
54
|
+
console.error(chalk.red("简档删除失败:"), error);
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = remove;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* profile 文档入口:正文均在 `docs/` 目录。
|
|
3
|
+
*/
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
|
|
7
|
+
const DOCS_DIR = path.join(__dirname, "docs");
|
|
8
|
+
|
|
9
|
+
function readDocFile(basename) {
|
|
10
|
+
return fs.readFileSync(path.join(DOCS_DIR, `${basename}.md`), "utf8");
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** 介绍文档:简档能力、类型与入口 */
|
|
14
|
+
function getIntroductionDoc() {
|
|
15
|
+
return readDocFile("introduction");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** 开发指导:CLI 创建/查询/删除等 */
|
|
19
|
+
function getDevGuideDoc() {
|
|
20
|
+
return readDocFile("devguide");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* cc doc profile <introduction|devguide>
|
|
25
|
+
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
26
|
+
*/
|
|
27
|
+
function doc(argvs) {
|
|
28
|
+
const subType = argvs[2];
|
|
29
|
+
const key = String(subType || "").trim().toLowerCase();
|
|
30
|
+
if (!key) {
|
|
31
|
+
throw new Error("cc doc profile 需要子命令:introduction 或 devguide");
|
|
32
|
+
}
|
|
33
|
+
if (key === "introduction") {
|
|
34
|
+
const content = getIntroductionDoc();
|
|
35
|
+
console.log(content);
|
|
36
|
+
return content;
|
|
37
|
+
}
|
|
38
|
+
if (key === "devguide") {
|
|
39
|
+
const content = getDevGuideDoc();
|
|
40
|
+
console.log(content);
|
|
41
|
+
return content;
|
|
42
|
+
}
|
|
43
|
+
throw new Error(`doc 不支持的子命令: ${subType},请使用 introduction 或 devguide`);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = doc;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# CloudCC 简档 CLI 命令说明
|
|
2
|
+
|
|
3
|
+
## 支持的命令
|
|
4
|
+
|
|
5
|
+
| 操作 | 说明 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| `create` | 创建自定义简档 |
|
|
8
|
+
| `get` | 查询简档列表 |
|
|
9
|
+
| `delete` | 删除自定义简档 |
|
|
10
|
+
|
|
11
|
+
## CLI 命令详解
|
|
12
|
+
|
|
13
|
+
### 创建简档
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
cc create profile <path> <profileName> [description]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**参数说明:**
|
|
20
|
+
|
|
21
|
+
| 参数 | 必填 | 说明 |
|
|
22
|
+
|------|------|------|
|
|
23
|
+
| `path` | 是 | 项目路径,`.` 表示当前目录 |
|
|
24
|
+
| `profileName` | 是 | 简档名称 |
|
|
25
|
+
| `description` | 否 | 简档描述 |
|
|
26
|
+
|
|
27
|
+
**示例:**
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 创建简档
|
|
31
|
+
cc create profile . "销售经理简档"
|
|
32
|
+
|
|
33
|
+
# 创建带描述的简档
|
|
34
|
+
cc create profile . "销售代表简档" "适用于销售团队的权限配置"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 查询简档列表
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cc get profile <projectPath> [encodedCondJson]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**参数说明:**
|
|
44
|
+
|
|
45
|
+
| 参数 | 必填 | 说明 |
|
|
46
|
+
|------|------|------|
|
|
47
|
+
| `projectPath` | 否 | 项目路径,默认当前目录 |
|
|
48
|
+
| `encodedCondJson` | 否 | URI 编码后的查询条件 JSON |
|
|
49
|
+
|
|
50
|
+
**示例:**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 获取所有简档
|
|
54
|
+
cc get profile .
|
|
55
|
+
|
|
56
|
+
# 带查询条件
|
|
57
|
+
cc get profile . '%7B%22type%22%3A%22custom%22%7D'
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 删除简档
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
cc delete profile <projectPath> <profileId>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**参数说明:**
|
|
67
|
+
|
|
68
|
+
| 参数 | 必填 | 说明 |
|
|
69
|
+
|------|------|------|
|
|
70
|
+
| `projectPath` | 否 | 项目路径,默认当前目录 |
|
|
71
|
+
| `profileId` | 是 | 简档 ID |
|
|
72
|
+
|
|
73
|
+
**示例:**
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cc delete profile . aaa202672F656B7VfEjL
|
|
77
|
+
```
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# CloudCC 简档使用总结
|
|
2
|
+
|
|
3
|
+
简档(Profile)用于定义 CloudCC 系统中用户的权限集合,包括对象访问权限、字段权限、功能权限等。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 快速开始(CLI 命令)
|
|
8
|
+
|
|
9
|
+
### 支持的简档操作
|
|
10
|
+
|
|
11
|
+
| 操作 | 说明 |
|
|
12
|
+
|------|------|
|
|
13
|
+
| `create` | 创建自定义简档 |
|
|
14
|
+
| `get` | 查询简档列表 |
|
|
15
|
+
| `delete` | 删除自定义简档 |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## CLI 命令详解
|
|
20
|
+
|
|
21
|
+
### 创建简档
|
|
22
|
+
|
|
23
|
+
创建一个新的自定义简档,基于现有简档进行克隆。
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cc create profile <path> <profileName> [description]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**参数说明:**
|
|
30
|
+
|
|
31
|
+
| 参数 | 必填 | 说明 |
|
|
32
|
+
|------|------|------|
|
|
33
|
+
| `path` | 是 | 项目路径,`.` 表示当前目录 |
|
|
34
|
+
| `profileName` | 是 | 简档名称 |
|
|
35
|
+
| `description` | 否 | 简档描述 |
|
|
36
|
+
|
|
37
|
+
**示例:**
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 创建简档
|
|
41
|
+
cc create profile . "销售经理简档"
|
|
42
|
+
|
|
43
|
+
# 创建带描述的简档
|
|
44
|
+
cc create profile . "销售代表简档" "适用于销售团队的权限配置"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### 查询简档列表
|
|
50
|
+
|
|
51
|
+
获取当前环境中的所有简档列表。
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
cc get profile <projectPath> [encodedCondJson]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**参数说明:**
|
|
58
|
+
|
|
59
|
+
| 参数 | 必填 | 说明 |
|
|
60
|
+
|------|------|------|
|
|
61
|
+
| `projectPath` | 否 | 项目路径,默认当前目录 |
|
|
62
|
+
| `encodedCondJson` | 否 | URI 编码后的查询条件 JSON |
|
|
63
|
+
|
|
64
|
+
**示例:**
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# 获取所有简档
|
|
68
|
+
cc get profile .
|
|
69
|
+
|
|
70
|
+
# 带查询条件
|
|
71
|
+
cc get profile . '%7B%22type%22%3A%22custom%22%7D'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### 删除简档
|
|
77
|
+
|
|
78
|
+
删除指定的自定义简档。
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
cc delete profile <projectPath> <profileId>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**参数说明:**
|
|
85
|
+
|
|
86
|
+
| 参数 | 必填 | 说明 |
|
|
87
|
+
|------|------|------|
|
|
88
|
+
| `projectPath` | 否 | 项目路径,默认当前目录 |
|
|
89
|
+
| `profileId` | 是 | 简档 ID |
|
|
90
|
+
|
|
91
|
+
**示例:**
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# 删除指定简档
|
|
95
|
+
cc delete profile . a0I9D000000XXXXUAI
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 完整工作流示例
|
|
101
|
+
|
|
102
|
+
### 场景:为销售团队创建新的权限简档
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# 1. 确认项目已初始化(有 cloudcc-cli.config.js)
|
|
106
|
+
cat cloudcc-cli.config.js
|
|
107
|
+
|
|
108
|
+
# 2. 查询现有简档
|
|
109
|
+
cc get profile .
|
|
110
|
+
|
|
111
|
+
# 3. 创建新的销售经理简档
|
|
112
|
+
cc create profile . "销售经理简档" "销售团队经理级别的权限配置"
|
|
113
|
+
|
|
114
|
+
# 4. 验证简档创建成功
|
|
115
|
+
cc get profile .
|
|
116
|
+
|
|
117
|
+
# 5. 如需删除
|
|
118
|
+
# cc delete profile . <profileId>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
*文档版本:1.0 | 最后更新:2026-03-26*
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const { postClass } = require("../../utils/http");
|
|
2
|
+
const { getPackageJson } = require("../../utils/config");
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 查询简档列表
|
|
6
|
+
* 用法:cc get profile <projectPath> [encodedCondJson]
|
|
7
|
+
*/
|
|
8
|
+
async function get(argvs, isMcp = false) {
|
|
9
|
+
const projectPath = argvs[2] || process.cwd();
|
|
10
|
+
const condArg = argvs[3];
|
|
11
|
+
|
|
12
|
+
let body = {};
|
|
13
|
+
if (condArg) {
|
|
14
|
+
try {
|
|
15
|
+
body = JSON.parse(decodeURI(condArg));
|
|
16
|
+
} catch (e) {
|
|
17
|
+
throw new Error("Get Profile Failed: encodedCondJson 解析失败,请传 encodeURI(JSON.stringify(...))");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const config = await getPackageJson(projectPath);
|
|
22
|
+
const res = await postClass(
|
|
23
|
+
config.setupSvc + "/api/profile/listAll",
|
|
24
|
+
body,
|
|
25
|
+
config.accessToken
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
if (res && res.result) {
|
|
29
|
+
const data = res.data;
|
|
30
|
+
let rawList = [];
|
|
31
|
+
if (data && Array.isArray(data.list)) {
|
|
32
|
+
rawList = data.list;
|
|
33
|
+
} else if (Array.isArray(data)) {
|
|
34
|
+
rawList = data;
|
|
35
|
+
} else if (data && typeof data === "object") {
|
|
36
|
+
rawList = Object.keys(data)
|
|
37
|
+
.filter((key) => /list$/i.test(key) && Array.isArray(data[key]))
|
|
38
|
+
.flatMap((key) =>
|
|
39
|
+
data[key].map((item) => ({
|
|
40
|
+
...item,
|
|
41
|
+
__group: key
|
|
42
|
+
}))
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
if (!isMcp) {
|
|
46
|
+
console.log(JSON.stringify(rawList));
|
|
47
|
+
}
|
|
48
|
+
return rawList;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const msg = res && (res.returnInfo || res.message) ? (res.returnInfo || res.message) : "Unknown error";
|
|
52
|
+
throw new Error("Get Profile Failed: " + msg);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
module.exports = get;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const cc = {}
|
|
2
|
+
cc.create = require("./create")
|
|
3
|
+
cc.delete = require("./delete")
|
|
4
|
+
cc.get = require("./get")
|
|
5
|
+
cc.doc = require("./doc")
|
|
6
|
+
|
|
7
|
+
async function main(action, argvs) {
|
|
8
|
+
if (!cc[action]) {
|
|
9
|
+
throw new Error(`profile 不支持的操作: ${action}`);
|
|
10
|
+
}
|
|
11
|
+
return await cc[action](argvs)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
module.exports = main;
|