cloudcc-cli 2.3.0 → 2.3.2
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 +15 -0
- package/.cloudcc-cache.json +17 -48
- package/.cursor/skills/cloudcc-cli-dev.zip +0 -0
- package/.cursor/skills/cloudcc-cli-usage/SKILL.md +67 -0
- package/README.md +22 -0
- package/bin/cc.js +13 -8
- package/bin/index.js +12 -2
- package/bin/mcp.js +1 -1
- package/build/{component-cc-test-001.common.js → component-CCPlugin1774500425584.common.js} +25 -25
- package/build/component-CCPlugin1774500425584.common.js.map +1 -0
- package/build/component-CCPlugin1774500425584.css +1 -0
- package/build/{component-cc-test-001.umd.js → component-CCPlugin1774500425584.umd.js} +27 -27
- package/build/component-CCPlugin1774500425584.umd.js.map +1 -0
- package/build/{component-cc-test-001.umd.min.js → component-CCPlugin1774500425584.umd.min.js} +3 -3
- package/build/component-CCPlugin1774500425584.umd.min.js.map +1 -0
- package/build/demo.html +1 -1
- 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 +2 -2
- package/src/application/delete.js +59 -0
- 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/get.js +31 -5
- package/src/application/index.js +2 -0
- package/src/brief/get.js +1 -1
- package/src/classes/create.js +6 -1
- package/src/classes/delete.js +49 -0
- package/src/classes/detail.js +21 -7
- package/src/classes/doc.js +49 -472
- package/src/classes/docs/devguide.md +451 -0
- package/src/classes/get.js +9 -2
- package/src/classes/index.js +3 -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 +109 -14
- package/src/customPage/delete.js +2 -2
- package/src/customPage/doc.js +46 -0
- package/src/customPage/docs/devguide.md +200 -0
- package/src/customPage/docs/introduction.md +224 -0
- package/src/customPage/get.js +1 -1
- package/src/customPage/index.js +1 -0
- package/src/customSetting/create.js +36 -0
- package/src/customSetting/delete.js +35 -0
- package/src/customSetting/deleteCustomSettingField.js +43 -0
- package/src/customSetting/detail.js +33 -0
- 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 +34 -0
- package/src/customSetting/index.js +10 -1
- package/src/customSetting/modify.js +30 -0
- package/src/customSetting/saveCustomSettingField.js +46 -0
- package/src/fields/delete.js +52 -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 +2 -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 +212 -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 +54 -26
- package/src/menu/create-script.js +67 -19
- package/src/menu/create.js +9 -3
- package/src/menu/delete.js +59 -0
- package/src/menu/doc.js +57 -0
- package/src/menu/docs/devguide.md +203 -0
- package/src/menu/docs/introduction.md +99 -0
- package/src/menu/get.js +56 -0
- package/src/menu/index.js +3 -0
- package/src/menu/validator.js +80 -0
- package/src/object/delete.js +51 -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 +2 -0
- package/src/pagelayout/create.js +123 -0
- package/src/pagelayout/doc.js +46 -0
- package/src/pagelayout/docs/devguide.md +295 -0
- package/src/pagelayout/docs/introduction.md +44 -0
- package/src/pagelayout/get.js +46 -0
- package/src/pagelayout/index.js +9 -0
- package/src/plugin/detail.js +14 -6
- package/src/plugin/doc.js +43 -863
- package/src/plugin/docs/devguide.md +923 -0
- package/src/plugin/publish1.js +3 -3
- 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 +332 -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/get.js +1 -1
- 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 +387 -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/delete.js +26 -0
- package/src/scheduleJob/detail.js +23 -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/get.js +26 -0
- package/src/scheduleJob/index.js +15 -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 +46 -0
- package/src/staticResource/create.js +97 -0
- package/src/staticResource/delete.js +48 -0
- package/src/staticResource/detail.js +46 -0
- package/src/staticResource/doc.js +39 -0
- package/src/staticResource/docs/devguide.md +157 -0
- package/src/staticResource/docs/introduction.md +3 -0
- package/src/staticResource/get.js +48 -0
- package/src/staticResource/index.js +13 -0
- package/src/timer/create.js +6 -1
- package/src/timer/delete.js +49 -0
- package/src/timer/detail.js +5 -5
- package/src/timer/doc.js +57 -0
- package/src/timer/get.js +7 -1
- package/src/timer/index.js +4 -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/delete.js +46 -0
- package/src/triggers/detail.js +5 -5
- package/src/triggers/doc.js +49 -364
- package/src/triggers/docs/devguide.md +334 -0
- package/src/triggers/get.js +7 -3
- package/src/triggers/index.js +2 -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 +634 -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/application.cli.test.js +49 -8
- package/test/classes.cli.test.js +14 -5
- package/test/customPage.cli.test.js +96 -0
- package/test/customSetting.cli.test.js +84 -0
- package/test/fields.cli.test.js +18 -3
- package/test/globalSelectList.cli.test.js +94 -0
- package/test/menu-script.cli.test.js +147 -0
- package/test/menu.cli.test.js +42 -5
- package/test/object.cli.test.js +17 -1
- package/test/plugin.cli.test.js +5 -3
- package/test/scheduleJob.cli.test.js +52 -0
- package/test/staticResource.cli.test.js +78 -0
- package/test/timer.cli.test.js +20 -7
- package/test/trigger.cli.test.js +13 -5
- package/tmp_customsetting_detail.json +1 -0
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_CLASS.md +0 -97
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_SCHEDULE.md +0 -78
- package/.cursor/skills/cloudcc-cli-dev/BACKEND_TRIGGER.md +0 -137
- package/.cursor/skills/cloudcc-cli-dev/CLI_CHEATSHEET.md +0 -215
- package/.cursor/skills/cloudcc-cli-dev/CUSTOM-SETTING-API.md +0 -241
- package/.cursor/skills/cloudcc-cli-dev/INSTALL_AND_BOOTSTRAP.md +0 -59
- package/.cursor/skills/cloudcc-cli-dev/OBJECTS_AND_FIELDS.md +0 -120
- package/.cursor/skills/cloudcc-cli-dev/REQUIREMENTS_BREAKDOWN.md +0 -98
- package/.cursor/skills/cloudcc-cli-dev/SKILL.md +0 -44
- package/.cursor/skills/cloudcc-cli-dev/VUE_CUSTOM_COMPONENT.md +0 -151
- package/build/component-cc-test-001.common.js.map +0 -1
- package/build/component-cc-test-001.css +0 -1
- package/build/component-cc-test-001.umd.js.map +0 -1
- package/build/component-cc-test-001.umd.min.js.map +0 -1
- package/classes/CCdd/CCdd.java +0 -22
- package/classes/CCdd/CCddTest.java +0 -11
- package/classes/CCdd/config.json +0 -1
- package/core.zip +0 -0
- package/plugins/cc-test-001/cc-test-001.vue +0 -32
- package/plugins/cc-test-001/components/HelloWorld.vue +0 -11
- package/plugins/cc-test-001/config.json +0 -6
- package/schedule/CCdd/CCdd.java +0 -11
- package/schedule/CCdd/config.json +0 -1
- 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/target/ccopenapi-0.0.4-classes.jar +0 -0
- package/target/ccopenapi-0.0.4.jar +0 -0
- package/target/classes/CCdd/CCdd.class +0 -0
- package/target/classes/CCdd/CCddTest.class +0 -0
- package/target/classes/CCdd/config.json +0 -1
- package/target/maven-archiver/pom.properties +0 -3
- package/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +0 -20
- package/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +0 -19
- /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/{docs//350/207/252/345/256/232/344/271/211/347/261/273.md" → src/classes/docs/introduction.md} +0 -0
- /package/{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/{docs/cloudcc/345/256/232/346/227/266/344/275/234/344/270/232.md" → src/timer/docs/devguide.md} +0 -0
- /package/{docs/cloudcc/345/256/232/346/227/266/347/261/273.md" → src/timer/docs/introduction.md} +0 -0
- /package/{docs//350/247/246/345/217/221/345/231/250/347/261/273.md" → src/triggers/docs/introduction.md} +0 -0
package/src/plugin/publish1.js
CHANGED
|
@@ -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,332 @@
|
|
|
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 . aaa202672F656B7VfEjL
|
|
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
|
+
## API 接口详情
|
|
124
|
+
|
|
125
|
+
### 什么是简档?
|
|
126
|
+
|
|
127
|
+
**简档(Profile)** 是 CloudCC 系统的权限配置单元,定义了用户对系统中各种资源的访问权限。
|
|
128
|
+
|
|
129
|
+
### 核心属性
|
|
130
|
+
|
|
131
|
+
| 属性 | 说明 | 示例 |
|
|
132
|
+
|------|------|------|
|
|
133
|
+
| **名称(name)** | 简档显示名称 | "销售经理简档" |
|
|
134
|
+
| **描述(description)** | 简档功能描述 | "适用于销售团队经理" |
|
|
135
|
+
| **类型(type)** | 系统简档或自定义 | `system` / `custom` |
|
|
136
|
+
| **创建时间** | 简档创建时间戳 | 1757993089000 |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 简档类型
|
|
141
|
+
|
|
142
|
+
CloudCC 支持两种简档类型:
|
|
143
|
+
|
|
144
|
+
| 类型 | 说明 | 适用场景 |
|
|
145
|
+
|------|------|----------|
|
|
146
|
+
| **系统简档** | 系统预设的简档 | 标准用户、管理员等 |
|
|
147
|
+
| **自定义简档** | 用户自定义创建的简档 | 特定业务角色 |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 一、查询简档
|
|
152
|
+
|
|
153
|
+
### 1.1 查询简档列表
|
|
154
|
+
|
|
155
|
+
**接口**: `POST /api/profile/listAll`
|
|
156
|
+
|
|
157
|
+
**请求参数**:
|
|
158
|
+
|
|
159
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
160
|
+
|--------|------|------|------|
|
|
161
|
+
| keyword | string | 否 | 搜索关键词 |
|
|
162
|
+
| type | string | 否 | 类型过滤:system/custom |
|
|
163
|
+
|
|
164
|
+
**返回数据**:
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
{
|
|
168
|
+
"result": true,
|
|
169
|
+
"data": {
|
|
170
|
+
"list": [
|
|
171
|
+
{
|
|
172
|
+
"id": "aaa202672F656B7VfEjL",
|
|
173
|
+
"name": "系统管理员",
|
|
174
|
+
"description": "系统管理员简档",
|
|
175
|
+
"type": "system"
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 二、创建简档
|
|
185
|
+
|
|
186
|
+
### 2.1 获取可复制的简档列表
|
|
187
|
+
|
|
188
|
+
**接口**: `POST /api/profile/copyProfile`
|
|
189
|
+
|
|
190
|
+
**请求参数**:无
|
|
191
|
+
|
|
192
|
+
**返回数据**:
|
|
193
|
+
|
|
194
|
+
```javascript
|
|
195
|
+
{
|
|
196
|
+
"result": true,
|
|
197
|
+
"data": {
|
|
198
|
+
"profileList": [
|
|
199
|
+
{
|
|
200
|
+
"id": "aaa000001",
|
|
201
|
+
"name": "系统管理员",
|
|
202
|
+
"description": "系统管理员简档"
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 2.2 创建新简档
|
|
210
|
+
|
|
211
|
+
**接口**: `POST /api/profile/newProfile`
|
|
212
|
+
|
|
213
|
+
**请求参数**:
|
|
214
|
+
|
|
215
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
216
|
+
|--------|------|------|------|
|
|
217
|
+
| newProfileName | string | 是 | 新简档名称 |
|
|
218
|
+
| type | string | 否 | 简档类型(传空字符串) |
|
|
219
|
+
| copyFromId | string | 是 | 复制来源简档 ID(来自 copyProfile 接口) |
|
|
220
|
+
|
|
221
|
+
**请求示例**:
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"newProfileName": "系统管理员_test",
|
|
226
|
+
"type": "",
|
|
227
|
+
"copyFromId": "aaa000001"
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 三、删除简档
|
|
234
|
+
|
|
235
|
+
### 3.1 删除前检查
|
|
236
|
+
|
|
237
|
+
- [ ] 是否有用户正在使用该简档
|
|
238
|
+
- [ ] 是否是系统预设简档(系统简档不可删除)
|
|
239
|
+
- [ ] 级联影响确认
|
|
240
|
+
|
|
241
|
+
### 3.2 删除流程
|
|
242
|
+
|
|
243
|
+
**接口**: `POST /api/profile/delProfile`
|
|
244
|
+
|
|
245
|
+
**请求参数**:
|
|
246
|
+
|
|
247
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
248
|
+
|--------|------|------|------|
|
|
249
|
+
| id | string | 是 | 简档 ID |
|
|
250
|
+
|
|
251
|
+
**请求示例**:
|
|
252
|
+
|
|
253
|
+
```json
|
|
254
|
+
{
|
|
255
|
+
"id": "aaa202672F656B7VfEjL"
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 四、简档数据结构
|
|
262
|
+
|
|
263
|
+
```javascript
|
|
264
|
+
// 查询接口返回的简档数据
|
|
265
|
+
{
|
|
266
|
+
id: "aaa202672F656B7VfEjL",
|
|
267
|
+
name: "销售经理简档",
|
|
268
|
+
description: "销售团队经理级别的权限配置",
|
|
269
|
+
type: "custom"
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// copyProfile 接口返回的简档数据
|
|
273
|
+
{
|
|
274
|
+
id: "aaa000001",
|
|
275
|
+
name: "系统管理员",
|
|
276
|
+
description: "系统管理员简档"
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 五、最佳实践
|
|
283
|
+
|
|
284
|
+
### 命名规范
|
|
285
|
+
|
|
286
|
+
| 项目 | 规范 | 示例 |
|
|
287
|
+
|------|------|------|
|
|
288
|
+
| 简档名称 | 角色 + 简档 | `销售经理简档`、`客服代表简档` |
|
|
289
|
+
| 描述 | 说明适用场景 | `适用于销售团队经理级别` |
|
|
290
|
+
|
|
291
|
+
### 权限设计
|
|
292
|
+
|
|
293
|
+
- **按需分配**:只为需要的角色分配权限
|
|
294
|
+
- **最小权限原则**:用户只拥有完成工作所需的最小权限
|
|
295
|
+
- **定期审查**:定期检查简档权限分配是否合理
|
|
296
|
+
|
|
297
|
+
### 创建简档注意事项
|
|
298
|
+
|
|
299
|
+
- 创建简档时会自动复制第一个可用简档的权限配置
|
|
300
|
+
- 如需特定权限配置,创建后需在 CloudCC 控制台手动调整
|
|
301
|
+
- 建议基于权限最接近的简档进行复制
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## 六、常见问题
|
|
306
|
+
|
|
307
|
+
**Q: 简档创建后为什么不生效?**
|
|
308
|
+
|
|
309
|
+
A: 检查以下几点:
|
|
310
|
+
1. 简档是否已分配给相关用户
|
|
311
|
+
2. 用户是否已重新登录
|
|
312
|
+
3. 缓存是否已刷新
|
|
313
|
+
|
|
314
|
+
**Q: 可以修改系统简档吗?**
|
|
315
|
+
|
|
316
|
+
A: 系统简档不可修改,建议克隆系统简档创建自定义简档进行修改。
|
|
317
|
+
|
|
318
|
+
**Q: 删除简档会影响用户吗?**
|
|
319
|
+
|
|
320
|
+
A: 会。删除简档前需要确保没有用户正在使用该简档,否则这些用户将失去权限配置。
|
|
321
|
+
|
|
322
|
+
**Q: 如何查看简档的完整配置信息?**
|
|
323
|
+
|
|
324
|
+
A: 目前 CLI 只支持列表查询,详细配置需在 CloudCC 控制台查看。
|
|
325
|
+
|
|
326
|
+
**Q: 创建简档时如何选择复制来源?**
|
|
327
|
+
|
|
328
|
+
A: 当前实现自动选择第一个可用简档作为复制来源。如需特定来源,建议先调用 `cc get profile .` 查看列表顺序。
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
*文档版本:1.1 | 最后更新:2026-03-26*
|
|
@@ -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*
|