cloudcc-cli 2.3.4 → 2.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/.claude/settings.json +22 -1
  2. package/.cursor/skills/cloudcc-cli-dev/SKILL.md +175 -0
  3. package/.cursor/skills/cloudcc-dev-skill/SKILL.md +71 -0
  4. package/README.md +81 -6
  5. package/bin/cc.js +106 -28
  6. package/bin/index.js +54 -55
  7. package/mcp/cliRunner.js +11 -4
  8. package/mcp/index.js +12 -2
  9. package/mcp/tools/Application Creator/handler.js +1 -1
  10. package/mcp/tools/Approval/handler.js +3 -3
  11. package/mcp/tools/Class Creator/handler.js +2 -2
  12. package/mcp/tools/Class Detail Retriever/handler.js +1 -1
  13. package/mcp/tools/Class Editor Guide/handler.js +1 -1
  14. package/mcp/tools/Class List Retriever/handler.js +1 -1
  15. package/mcp/tools/Class Publisher/handler.js +1 -1
  16. package/mcp/tools/Class Puller/handler.js +1 -1
  17. package/mcp/tools/Client Script Detail Retriever/handler.js +1 -1
  18. package/mcp/tools/Client Script Editor Guide/handler.js +1 -1
  19. package/mcp/tools/Client Script List Retriever/handler.js +1 -1
  20. package/mcp/tools/Client Script Publisher/handler.js +1 -1
  21. package/mcp/tools/Client Script Puller/handler.js +2 -2
  22. package/mcp/tools/CloudCC Development Overview/handler.js +2 -2
  23. package/mcp/tools/Component Creator/handler.js +1 -1
  24. package/mcp/tools/Component Detail Retriever/handler.js +1 -1
  25. package/mcp/tools/Component Editor Guide/handler.js +1 -1
  26. package/mcp/tools/Component List Retriever/handler.js +1 -1
  27. package/mcp/tools/Component Publisher/handler.js +2 -2
  28. package/mcp/tools/Component Puller/handler.js +1 -1
  29. package/mcp/tools/Dev Environment Creator/handler.js +1 -1
  30. package/mcp/tools/Dev Environment Validator/handler.js +1 -1
  31. package/mcp/tools/Developer Key Setup Guide/handler.js +1 -1
  32. package/mcp/tools/JSP Migrator/handler.js +46 -0
  33. package/mcp/tools/Menu Creator/handler.js +1 -1
  34. package/mcp/tools/Object Creator/handler.js +2 -2
  35. package/mcp/tools/Object Fields Creator/handler.js +1 -1
  36. package/mcp/tools/Object Fields Retriever/handler.js +1 -1
  37. package/mcp/tools/Object List Retriever/handler.js +1 -1
  38. package/mcp/tools/Scheduled Class Creator/handler.js +1 -1
  39. package/mcp/tools/Scheduled Class Detail Retriever/handler.js +1 -1
  40. package/mcp/tools/Scheduled Class List Retriever/handler.js +1 -1
  41. package/mcp/tools/Scheduled Class Publisher/handler.js +1 -1
  42. package/mcp/tools/Scheduled Class Puller/handler.js +1 -1
  43. package/mcp/tools/Trigger Creator/handler.js +1 -1
  44. package/mcp/tools/Trigger Detail Retriever/handler.js +1 -1
  45. package/mcp/tools/Trigger Editor Guide/handler.js +1 -1
  46. package/mcp/tools/Trigger List Retriever/handler.js +1 -1
  47. package/mcp/tools/Trigger Publisher/handler.js +1 -1
  48. package/mcp/tools/Trigger Puller/handler.js +1 -1
  49. package/package.json +3 -3
  50. package/src/application/create.js +2 -2
  51. package/src/application/delete.js +2 -2
  52. package/src/application/doc.js +2 -2
  53. package/src/application/docs/devguide.md +25 -25
  54. package/src/application/docs/introduction.md +2 -2
  55. package/src/button/create.js +169 -0
  56. package/src/button/delete.js +35 -0
  57. package/src/button/doc.js +36 -0
  58. package/src/button/docs/devguide.md +133 -0
  59. package/src/button/docs/introduction.md +60 -0
  60. package/src/button/get.js +60 -0
  61. package/src/button/index.js +20 -0
  62. package/src/classes/create.js +1 -1
  63. package/src/classes/delete.js +1 -1
  64. package/src/classes/detail.js +1 -1
  65. package/src/classes/doc.js +2 -2
  66. package/src/classes/docs/devguide.md +21 -21
  67. package/src/classes/docs/introduction.md +0 -20
  68. package/src/classes/get.js +1 -1
  69. package/src/classes/publish.js +1 -1
  70. package/src/classes/pull.js +1 -1
  71. package/src/classes/pullList.js +1 -1
  72. package/src/config/doc.js +2 -2
  73. package/src/config/docs/devguide.md +15 -15
  74. package/src/customPage/create.js +2 -2
  75. package/src/customPage/delete.js +2 -2
  76. package/src/customPage/doc.js +2 -2
  77. package/src/customPage/docs/devguide.md +27 -27
  78. package/src/customPage/get.js +1 -1
  79. package/src/customSetting/create.js +1 -1
  80. package/src/customSetting/delete.js +1 -1
  81. package/src/customSetting/deleteCustomSettingField.js +1 -1
  82. package/src/customSetting/detail.js +1 -1
  83. package/src/customSetting/docs/devguide.md +9 -9
  84. package/src/customSetting/editCustomSettingField.js +1 -1
  85. package/src/customSetting/get.js +1 -1
  86. package/src/customSetting/modify.js +1 -1
  87. package/src/customSetting/saveCustomSettingField.js +1 -1
  88. package/src/fields/delete.js +2 -2
  89. package/src/fields/docs/devguide.md +14 -14
  90. package/src/fields/docs/introduction.md +3 -3
  91. package/src/globalSelectList/create.js +1 -1
  92. package/src/globalSelectList/delete.js +1 -1
  93. package/src/globalSelectList/detail.js +1 -1
  94. package/src/globalSelectList/doc.js +2 -2
  95. package/src/globalSelectList/docs/devguide.md +7 -7
  96. package/src/globalSelectList/get.js +1 -1
  97. package/src/identityProvider/create.js +78 -0
  98. package/src/identityProvider/delete.js +61 -0
  99. package/src/identityProvider/doc.js +46 -0
  100. package/src/identityProvider/docs/devguide.md +107 -0
  101. package/src/identityProvider/docs/introduction.md +31 -0
  102. package/src/identityProvider/download.js +105 -0
  103. package/src/identityProvider/get.js +70 -0
  104. package/src/identityProvider/index.js +12 -0
  105. package/src/menu/create-object.js +2 -2
  106. package/src/menu/create-page.js +2 -2
  107. package/src/menu/create-script.js +2 -2
  108. package/src/menu/create-site.js +2 -2
  109. package/src/menu/create.js +11 -11
  110. package/src/menu/delete.js +2 -2
  111. package/src/menu/doc.js +2 -2
  112. package/src/menu/docs/devguide.md +13 -13
  113. package/src/menu/docs/introduction.md +3 -3
  114. package/src/menu/get.js +1 -1
  115. package/src/object/create.js +2 -2
  116. package/src/object/delete.js +2 -2
  117. package/src/object/docs/devguide.md +11 -11
  118. package/src/pagelayout/create.js +6 -6
  119. package/src/pagelayout/delete.js +4 -4
  120. package/src/pagelayout/doc.js +2 -2
  121. package/src/pagelayout/docs/devguide.md +9 -9
  122. package/src/pagelayout/docs/introduction.md +1 -1
  123. package/src/pagelayout/get.js +4 -4
  124. package/src/permission/add.js +164 -0
  125. package/src/permission/assign.js +84 -0
  126. package/src/permission/docs/devguide.md +238 -0
  127. package/src/permission/docs/introduction.md +200 -0
  128. package/src/permission/get.js +107 -0
  129. package/src/permission/index.js +10 -0
  130. package/src/permission/remove.js +145 -0
  131. package/src/plugin/delete.js +2 -2
  132. package/src/plugin/doc.js +2 -2
  133. package/src/plugin/docs/devguide.md +29 -29
  134. package/src/profile/create.js +5 -5
  135. package/src/profile/delete.js +2 -2
  136. package/src/profile/doc.js +2 -2
  137. package/src/profile/docs/devguide.md +8 -8
  138. package/src/profile/docs/introduction.md +12 -12
  139. package/src/profile/get.js +1 -1
  140. package/src/project/docs/devguide.md +9 -8
  141. package/src/recordType/create.js +1 -1
  142. package/src/recordType/delete.js +1 -1
  143. package/src/recordType/doc.js +2 -2
  144. package/src/recordType/docs/devguide.md +10 -10
  145. package/src/recordType/editInfo.js +1 -1
  146. package/src/recordType/editSave.js +1 -1
  147. package/src/recordType/getList.js +1 -1
  148. package/src/recordType/newInfo.js +1 -1
  149. package/src/recordType/validDelete.js +1 -1
  150. package/src/res.md +1 -1
  151. package/src/role/create.js +6 -6
  152. package/src/role/delete.js +2 -2
  153. package/src/role/doc.js +2 -2
  154. package/src/role/docs/devguide.md +9 -9
  155. package/src/role/docs/introduction.md +13 -13
  156. package/src/role/get.js +1 -1
  157. package/src/scheduleJob/doc.js +1 -1
  158. package/src/scheduleJob/docs/devguide.md +6 -6
  159. package/src/scheduleJob/docs/introduction.md +6 -6
  160. package/src/script/docs/devguide.md +18 -18
  161. package/src/singleSignOn/delete.js +61 -0
  162. package/src/singleSignOn/doc.js +46 -0
  163. package/src/singleSignOn/docs/devguide.md +61 -0
  164. package/src/singleSignOn/docs/introduction.md +3 -0
  165. package/src/singleSignOn/get.js +70 -0
  166. package/src/singleSignOn/index.js +10 -0
  167. package/src/staticResource/count.js +1 -1
  168. package/src/staticResource/create.js +1 -1
  169. package/src/staticResource/delete.js +1 -1
  170. package/src/staticResource/detail.js +1 -1
  171. package/src/staticResource/docs/devguide.md +11 -11
  172. package/src/staticResource/docs/introduction.md +44 -1
  173. package/src/staticResource/get.js +1 -1
  174. package/src/timer/create.js +1 -1
  175. package/src/timer/delete.js +1 -1
  176. package/src/timer/detail.js +1 -1
  177. package/src/timer/doc.js +2 -2
  178. package/src/timer/docs/devguide.md +19 -19
  179. package/src/timer/get.js +1 -1
  180. package/src/timer/publish.js +1 -1
  181. package/src/timer/pull.js +1 -1
  182. package/src/timer/pullList.js +1 -1
  183. package/src/triggers/detail.js +1 -1
  184. package/src/triggers/doc.js +2 -2
  185. package/src/triggers/docs/devguide.md +23 -23
  186. package/src/triggers/get.js +1 -1
  187. package/src/triggers/pullList.js +1 -1
  188. package/src/user/create.js +2 -2
  189. package/src/user/delete.js +2 -2
  190. package/src/user/doc.js +2 -2
  191. package/src/user/docs/devguide.md +13 -13
  192. package/src/user/docs/introduction.md +12 -12
  193. package/src/user/get.js +1 -1
  194. package/src/user/update.js +3 -3
  195. package/src/user/view.js +2 -2
  196. package/src/validationRule/create.js +7 -7
  197. package/src/validationRule/delete.js +2 -2
  198. package/src/validationRule/doc.js +2 -2
  199. package/src/validationRule/docs/devguide.md +7 -7
  200. package/src/validationRule/docs/introduction.md +11 -11
  201. package/src/validationRule/get.js +1 -1
  202. package/src/version/actionHelp.js +25 -0
  203. package/src/version/docs.js +26 -0
  204. package/src/version/doctor.js +25 -0
  205. package/src/version/get.js +1 -1
  206. package/src/version/help.js +48 -0
  207. package/src/version/index.js +9 -2
  208. package/src/version/initHelp.js +13 -0
  209. package/src/version/listModuleCommands.js +241 -0
  210. package/src/version/stats.js +44 -0
  211. package/src/version/uninstall.js +30 -0
  212. package/src/version/update.js +13 -0
  213. package/test/application.cli.test.js +1 -1
  214. package/test/classes.cli.test.js +1 -1
  215. package/test/customSetting.cli.test.js +1 -1
  216. package/test/fields.cli.test.js +2 -2
  217. package/test/globalSelectList.cli.test.js +1 -1
  218. package/test/menu-script.cli.test.js +1 -1
  219. package/test/menu.cli.test.js +1 -1
  220. package/test/object.cli.test.js +1 -1
  221. package/test/plugin.cli.test.js +1 -1
  222. package/test/scheduleJob.cli.test.js +1 -1
  223. package/test/script.cli.test.js +1 -1
  224. package/test/staticResource.cli.test.js +1 -1
  225. package/test/timer.cli.test.js +1 -1
  226. package/test/trigger.cli.test.js +1 -1
  227. package/utils/checkVersion.js +27 -2
  228. package/utils/commandStats.js +94 -0
  229. package/utils/formatReleaseNotes.js +312 -0
  230. package/utils/readmeReleases.js +69 -0
  231. package/.cloudcc-cache.json +0 -54
  232. package/.cursor/skills/cloudcc-cli-dev.zip +0 -0
  233. package/.cursor/skills/cloudcc-dev-usage/SKILL.md +0 -68
  234. package/build/component-cc-cc-dd.common.js +0 -831
  235. package/build/component-cc-cc-dd.common.js.map +0 -1
  236. package/build/component-cc-cc-dd.css +0 -1
  237. package/build/component-cc-cc-dd.umd.js +0 -874
  238. package/build/component-cc-cc-dd.umd.js.map +0 -1
  239. package/build/component-cc-cc-dd.umd.min.js +0 -8
  240. package/build/component-cc-cc-dd.umd.min.js.map +0 -1
  241. package/build/demo.html +0 -1
  242. package/plugins/cc-cc-dd/cc-cc-dd.vue +0 -32
  243. package/plugins/cc-cc-dd/components/HelloWorld.vue +0 -11
  244. package/plugins/cc-cc-dd/config.json +0 -6
@@ -21,7 +21,7 @@
21
21
  ### 1) 查询作业列表
22
22
 
23
23
  ```bash
24
- cc get scheduleJob <projectPath> [encodedCondJson]
24
+ cloudcc get scheduleJob <projectPath> [encodedCondJson]
25
25
  ```
26
26
 
27
27
  参数说明:
@@ -36,7 +36,7 @@ cc get scheduleJob <projectPath> [encodedCondJson]
36
36
  ### 2) 查询作业详情
37
37
 
38
38
  ```bash
39
- cc detail scheduleJob <jobId> [projectPath]
39
+ cloudcc detail scheduleJob <jobId> [projectPath]
40
40
  ```
41
41
 
42
42
  参数说明:
@@ -51,7 +51,7 @@ cc detail scheduleJob <jobId> [projectPath]
51
51
  ### 3) 删除作业
52
52
 
53
53
  ```bash
54
- cc delete scheduleJob <jobId> [projectPath]
54
+ cloudcc delete scheduleJob <jobId> [projectPath]
55
55
  ```
56
56
 
57
57
  参数说明:
@@ -66,14 +66,14 @@ cc delete scheduleJob <jobId> [projectPath]
66
66
  ### 4) 查看文档
67
67
 
68
68
  ```bash
69
- cc doc scheduleJob <introduction|devguide>
69
+ cloudcc doc scheduleJob <introduction|devguide>
70
70
  ```
71
71
 
72
72
  ---
73
73
 
74
74
  ## 三、关联文档
75
75
 
76
- - `cc doc timer introduction`
77
- - `cc doc timer devguide`
76
+ - `cloudcc doc timer introduction`
77
+ - `cloudcc doc timer devguide`
78
78
 
79
79
  ---
@@ -74,20 +74,20 @@
74
74
 
75
75
  ```bash
76
76
  # 1) 查看全部定时作业
77
- cc get scheduleJob .
77
+ cloudcc get scheduleJob .
78
78
 
79
79
  # 2) 带条件查询(URI 编码 JSON)
80
- cc get scheduleJob . '%7B%22name%22%3A%22%E6%8A%A5%E8%A1%A8%22%7D'
80
+ cloudcc get scheduleJob . '%7B%22name%22%3A%22%E6%8A%A5%E8%A1%A8%22%7D'
81
81
 
82
82
  # 3) 查看某个作业详情
83
- cc detail scheduleJob a0I9D000000XXXXUAI .
83
+ cloudcc detail scheduleJob a0I9D000000XXXXUAI .
84
84
 
85
85
  # 4) 删除作业(危险操作)
86
- cc delete scheduleJob a0I9D000000XXXXUAI .
86
+ cloudcc delete scheduleJob a0I9D000000XXXXUAI .
87
87
 
88
88
  # 5) 查看文档
89
- cc doc scheduleJob introduction
90
- cc doc scheduleJob devguide
89
+ cloudcc doc scheduleJob introduction
90
+ cloudcc doc scheduleJob devguide
91
91
  ```
92
92
 
93
93
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 客户端脚本(Script)操作指南
4
4
 
5
- 直接查看:`cc doc script`
5
+ 直接查看:`cloudcc doc script`
6
6
 
7
7
  ---
8
8
 
@@ -24,7 +24,7 @@
24
24
  命令:
25
25
 
26
26
  ```bash
27
- cc doc script
27
+ cloudcc doc script
28
28
  ```
29
29
 
30
30
  说明:输出客户端脚本文档,并自动附带本文件内容。
@@ -36,7 +36,7 @@ cc doc script
36
36
  命令:
37
37
 
38
38
  ```bash
39
- cc get script <encodedCondJson> <projectPath>
39
+ cloudcc get script <encodedCondJson> <projectPath>
40
40
  ```
41
41
 
42
42
  参数说明:
@@ -67,10 +67,10 @@ cc get script <encodedCondJson> <projectPath>
67
67
 
68
68
  ```bash
69
69
  # 1) 按本地脚本路径查看(不依赖线上)
70
- cc detail script <objName/scriptName>
70
+ cloudcc detail script <objName/scriptName>
71
71
 
72
72
  # 2) 按线上脚本 id 查看
73
- cc detail script "" <scriptId> <projectPath>
73
+ cloudcc detail script "" <scriptId> <projectPath>
74
74
  ```
75
75
 
76
76
  说明:
@@ -85,7 +85,7 @@ cc detail script "" <scriptId> <projectPath>
85
85
  命令:
86
86
 
87
87
  ```bash
88
- cc create script <encodedBodyJson>
88
+ cloudcc create script <encodedBodyJson>
89
89
  ```
90
90
 
91
91
  参数说明:
@@ -114,7 +114,7 @@ cc create script <encodedBodyJson>
114
114
  命令:
115
115
 
116
116
  ```bash
117
- cc publish script <objName/scriptName>
117
+ cloudcc publish script <objName/scriptName>
118
118
  ```
119
119
 
120
120
  说明:
@@ -130,7 +130,7 @@ cc publish script <objName/scriptName>
130
130
  命令:
131
131
 
132
132
  ```bash
133
- cc pull script <objName/scriptName>
133
+ cloudcc pull script <objName/scriptName>
134
134
  ```
135
135
 
136
136
  说明:要求本地 `config.json` 内已存在 `id`(先发布一次)。
@@ -142,7 +142,7 @@ cc pull script <objName/scriptName>
142
142
  命令:
143
143
 
144
144
  ```bash
145
- cc pullList script <scriptId> <projectPath>
145
+ cloudcc pullList script <scriptId> <projectPath>
146
146
  ```
147
147
 
148
148
  说明:会在 `<projectPath>/script/<objName>/<scriptName>/` 下生成 `config.json` 与脚本文件。
@@ -155,10 +155,10 @@ cc pullList script <scriptId> <projectPath>
155
155
 
156
156
  ```bash
157
157
  # 1) 直接按 scriptId 删除
158
- cc delete script <scriptId> <projectPath>
158
+ cloudcc delete script <scriptId> <projectPath>
159
159
 
160
160
  # 2) 按 "objName/scriptName" 删除(会先查询解析出 id,再删除)
161
- cc delete script <objName/scriptName> <projectPath>
161
+ cloudcc delete script <objName/scriptName> <projectPath>
162
162
  ```
163
163
 
164
164
  ---
@@ -168,37 +168,37 @@ cc delete script <objName/scriptName> <projectPath>
168
168
  ### 查询客户端脚本列表(默认条件)
169
169
 
170
170
  ```bash
171
- cc get script "$(node -e "console.log(encodeURI(JSON.stringify({pageSize:50,pageNo:1,condition:{scriptName:'',pageLabel:'',objName:''}})))")" .
171
+ cloudcc get script "$(node -e "console.log(encodeURI(JSON.stringify({pageSize:50,pageNo:1,condition:{scriptName:'',pageLabel:'',objName:''}})))")" .
172
172
  ```
173
173
 
174
174
  ### 按脚本名筛选(例如:test)
175
175
 
176
176
  ```bash
177
- cc get script "$(node -e "console.log(encodeURI(JSON.stringify({pageSize:50,pageNo:1,condition:{scriptName:'test',pageLabel:'',objName:''}})))")" .
177
+ cloudcc get script "$(node -e "console.log(encodeURI(JSON.stringify({pageSize:50,pageNo:1,condition:{scriptName:'test',pageLabel:'',objName:''}})))")" .
178
178
  ```
179
179
 
180
180
  ### 新建脚本(本地)
181
181
 
182
182
  ```bash
183
- cc create script "$(node -e "console.log(encodeURI(JSON.stringify({objName:'contact',scriptName:'hello_script'})))")"
183
+ cloudcc create script "$(node -e "console.log(encodeURI(JSON.stringify({objName:'contact',scriptName:'hello_script'})))")"
184
184
  ```
185
185
 
186
186
  ### 发布脚本(上线)
187
187
 
188
188
  ```bash
189
- cc publish script contact/hello_script
189
+ cloudcc publish script contact/hello_script
190
190
  ```
191
191
 
192
192
  ### 拉取脚本(从线上覆盖本地)
193
193
 
194
194
  ```bash
195
- cc pull script contact/hello_script
195
+ cloudcc pull script contact/hello_script
196
196
  ```
197
197
 
198
198
  ### 删除脚本(按 id)
199
199
 
200
200
  ```bash
201
- cc delete script <scriptId> .
201
+ cloudcc delete script <scriptId> .
202
202
  ```
203
203
 
204
204
  ---
@@ -206,7 +206,7 @@ cc delete script <scriptId> .
206
206
  ## 4. Checklist
207
207
 
208
208
  - [ ] 已在正确项目目录执行命令(或显式传入 `projectPath`)
209
- - [ ] `cc get script` 的条件已按 `encodeURI(JSON.stringify(...))` 传入
209
+ - [ ] `cloudcc get script` 的条件已按 `encodeURI(JSON.stringify(...))` 传入
210
210
  - [ ] 发布前脚本文件包含 `function main($CCDK, obj) { ... }`
211
211
  - [ ] 首次发布后确认 `config.json` 已写入 `id`
212
212
  - [ ] 拉取/删除前确认目标 `id` 正确(避免误删)
@@ -0,0 +1,61 @@
1
+ const chalk = require("chalk");
2
+ const { postClass } = require("../../utils/http");
3
+ const { getPackageJson } = require("../../utils/config");
4
+
5
+ /**
6
+ * 删除单点登录记录
7
+ * 接口: /spconfig/delete
8
+ * 用法:cloudcc delete singleSignOn <projectPath> <id>
9
+ */
10
+ async function remove(argvs) {
11
+ try {
12
+ const projectPath = argvs[2] || process.cwd();
13
+ const id = argvs[3];
14
+
15
+ if (!id) {
16
+ console.error();
17
+ console.error(chalk.red("Error: 缺少单点登录记录 id"));
18
+ console.error(chalk.yellow("用法: cloudcc delete singleSignOn <projectPath> <id>"));
19
+ console.error(chalk.yellow("示例: cloudcc delete singleSignOn . 20246DB16F11EDF4KHWd"));
20
+ console.error();
21
+ throw new Error("缺少必需参数: id");
22
+ }
23
+
24
+ const config = await getPackageJson(projectPath);
25
+ if (!config || !config.accessToken) {
26
+ console.error();
27
+ console.error(chalk.red("Error: 配置未找到或 accessToken 缺失"));
28
+ console.error();
29
+ throw new Error("配置未找到或 accessToken 缺失");
30
+ }
31
+
32
+ console.error();
33
+ console.error(chalk.green(`Deleting single sign on record (${id}), please wait...`));
34
+ console.error();
35
+
36
+ const result = await postClass(
37
+ config.setupSvc + "/api/spconfig/delete",
38
+ { id: id },
39
+ config.accessToken
40
+ );
41
+
42
+ if (result && result.result) {
43
+ console.error();
44
+ console.error(chalk.green("Success! Single sign on record deleted."));
45
+ console.error();
46
+ return result;
47
+ }
48
+
49
+ const msg = result && (result.returnInfo || result.message) ? (result.returnInfo || result.message) : "Unknown error";
50
+ console.error();
51
+ console.error(chalk.red("Error: " + msg));
52
+ console.error();
53
+ throw new Error("Delete SingleSignOn Failed: " + msg);
54
+ } catch (error) {
55
+ console.error();
56
+ console.error(chalk.red("单点登录记录删除失败:"), error);
57
+ throw error;
58
+ }
59
+ }
60
+
61
+ module.exports = remove;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * singleSignOn 文档入口:正文均在 `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
+ * cloudcc doc singleSignOn <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("cloudcc doc singleSignOn 需要子命令: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,61 @@
1
+ # CloudCC 单点登录 CLI 命令说明
2
+
3
+ ## 支持的命令
4
+
5
+ | 操作 | 说明 |
6
+ |------|------|
7
+ | `get` | 查询单点登录配置列表 |
8
+ | `delete` | 删除单点登录记录 |
9
+
10
+ ## CLI 命令详解
11
+
12
+ ### 查询单点登录配置列表
13
+
14
+ ```bash
15
+ cloudcc get singleSignOn <projectPath> [encodedCondJson]
16
+ ```
17
+
18
+ **参数说明:**
19
+
20
+ | 参数 | 必填 | 说明 |
21
+ |------|------|------|
22
+ | `projectPath` | 否 | 项目路径,默认当前目录 |
23
+ | `encodedCondJson` | 否 | URI 编码后的查询条件 JSON |
24
+
25
+ **查询条件参数:**
26
+
27
+ | 参数名 | 类型 | 说明 |
28
+ |--------|------|------|
29
+ | `start` | number | 起始位置,默认 0 |
30
+ | `limit` | number | 每页条数,默认 30 |
31
+ | `keyword` | string | 搜索关键词 |
32
+
33
+ **示例:**
34
+
35
+ ```bash
36
+ # 获取所有单点登录配置
37
+ cloudcc get singleSignOn .
38
+
39
+ # 带查询条件(搜索关键词)
40
+ cloudcc get singleSignOn . '%7B%22keyword%22%3A%22test%22%2C%22limit%22%3A50%7D'
41
+ ```
42
+
43
+ ### 删除单点登录记录
44
+
45
+ ```bash
46
+ cloudcc delete singleSignOn <projectPath> <id>
47
+ ```
48
+
49
+ **参数说明:**
50
+
51
+ | 参数 | 必填 | 说明 |
52
+ |------|------|------|
53
+ | `projectPath` | 否 | 项目路径,默认当前目录 |
54
+ | `id` | 是 | 单点登录记录 id(从列表接口获取)|
55
+
56
+ **示例:**
57
+
58
+ ```bash
59
+ # 删除单点登录记录
60
+ cloudcc delete singleSignOn . 20246DB16F11EDF4KHWd
61
+ ```
@@ -0,0 +1,3 @@
1
+ # CloudCC 单点登录(SingleSignOn)
2
+
3
+ 单点登录(SSO)设置用于管理 CloudCC 平台中的服务提供商(SP)配置,支持查看和删除 SP 配置记录。
@@ -0,0 +1,70 @@
1
+ const { postClass } = require("../../utils/http");
2
+ const { getPackageJson } = require("../../utils/config");
3
+ const chalk = require("chalk");
4
+
5
+ /**
6
+ * 查询单点登录配置列表
7
+ * 接口: /spconfig/list
8
+ * 用法:cloudcc get singleSignOn <projectPath> [encodedCondJson]
9
+ */
10
+ async function get(argvs, isMcp = false) {
11
+ const projectPath = argvs[2] || process.cwd();
12
+ const condArg = argvs[3];
13
+
14
+ let body = {};
15
+ if (condArg) {
16
+ try {
17
+ body = JSON.parse(decodeURI(condArg));
18
+ } catch (e) {
19
+ try {
20
+ body = JSON.parse(condArg);
21
+ } catch (e2) {
22
+ throw new Error("Get SingleSignOn Failed: encodedCondJson 解析失败,请传 encodeURI(JSON.stringify(...))");
23
+ }
24
+ }
25
+ }
26
+
27
+ const config = await getPackageJson(projectPath);
28
+
29
+ const res = await postClass(
30
+ config.setupSvc + "/api/spconfig/list",
31
+ {
32
+ start: 0,
33
+ limit: 30,
34
+ keyword: "",
35
+ ...body
36
+ },
37
+ config.accessToken
38
+ );
39
+
40
+ if (res && res.result) {
41
+ const data = res.data;
42
+ let rawList = [];
43
+ if (Array.isArray(data)) {
44
+ rawList = data;
45
+ } else if (data && Array.isArray(data.list)) {
46
+ rawList = data.list;
47
+ } else if (data && Array.isArray(data.data)) {
48
+ rawList = data.data;
49
+ } else if (data && typeof data === "object") {
50
+ rawList = Object.keys(data)
51
+ .filter((key) => /list$/i.test(key) && Array.isArray(data[key]))
52
+ .flatMap((key) =>
53
+ data[key].map((item) => ({
54
+ ...item,
55
+ __group: key
56
+ }))
57
+ );
58
+ }
59
+
60
+ if (!isMcp) {
61
+ console.log(JSON.stringify(rawList, null, 2));
62
+ }
63
+ return rawList;
64
+ }
65
+
66
+ const msg = res && (res.returnInfo || res.message) ? (res.returnInfo || res.message) : "Unknown error";
67
+ throw new Error("Get SingleSignOn Failed: " + msg);
68
+ }
69
+
70
+ module.exports = get;
@@ -0,0 +1,10 @@
1
+ const cc = {}
2
+ cc.delete = require("./delete")
3
+ cc.get = require("./get")
4
+ cc.doc = require("./doc")
5
+
6
+ function main(action, argvs) {
7
+ cc[action](argvs)
8
+ }
9
+
10
+ module.exports = main;
@@ -3,7 +3,7 @@ const BaseUrl = "https://developer.apis.cloudcc.cn";
3
3
 
4
4
  /**
5
5
  * 静态资源 - 容量统计
6
- * CLI: cc count staticResource <projectPath> [encodedCondJson]
6
+ * CLI: cloudcc count staticResource <projectPath> [encodedCondJson]
7
7
  * 参数说明:
8
8
  * - projectPath: 项目根目录,默认 process.cwd()
9
9
  * - encodedCondJson(可选): encodeURI(JSON.stringify(body))
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 静态资源 - 新建/编辑(上传)
3
- * CLI: cc create staticResource <projectPath> <encodedBodyJson>
3
+ * CLI: cloudcc create staticResource <projectPath> <encodedBodyJson>
4
4
  * 参数说明:
5
5
  * - projectPath: 项目根目录
6
6
  * - encodedBodyJson: encodeURI(JSON.stringify(body))
@@ -4,7 +4,7 @@ const BaseUrl = "https://developer.apis.cloudcc.cn";
4
4
 
5
5
  /**
6
6
  * 静态资源 - 删除
7
- * CLI: cc delete staticResource <projectPath> <resourceId>
7
+ * CLI: cloudcc delete staticResource <projectPath> <resourceId>
8
8
  * 参数说明:
9
9
  * - projectPath: 项目根目录,默认 process.cwd()
10
10
  * - id(resourceId): 静态资源 id(必填)
@@ -3,7 +3,7 @@ const BaseUrl = "https://developer.apis.cloudcc.cn";
3
3
 
4
4
  /**
5
5
  * 静态资源 - 查询详情
6
- * CLI: cc detail staticResource <projectPath> <resourceId>
6
+ * CLI: cloudcc detail staticResource <projectPath> <resourceId>
7
7
  * 参数说明:
8
8
  * - projectPath: 项目根目录,默认 process.cwd()
9
9
  * - id(resourceId): 静态资源 id(必填)
@@ -1,6 +1,6 @@
1
1
  # 静态资源(Static Resource)操作指南
2
2
 
3
- 直接查看:`cc doc staticResource`
3
+ 直接查看:`cloudcc doc staticResource`
4
4
 
5
5
  ---
6
6
 
@@ -21,7 +21,7 @@
21
21
  命令:
22
22
 
23
23
  ```bash
24
- cc doc staticResource
24
+ cloudcc doc staticResource
25
25
  ```
26
26
 
27
27
  说明:输出静态资源完整操作文档,并自动附带本文件内容。
@@ -31,7 +31,7 @@ cc doc staticResource
31
31
  命令:
32
32
 
33
33
  ```bash
34
- cc get staticResource <projectPath> [encodedCondJson]
34
+ cloudcc get staticResource <projectPath> [encodedCondJson]
35
35
  ```
36
36
 
37
37
  参数说明:
@@ -52,7 +52,7 @@ cc get staticResource <projectPath> [encodedCondJson]
52
52
  命令:
53
53
 
54
54
  ```bash
55
- cc detail staticResource <projectPath> <resourceId>
55
+ cloudcc detail staticResource <projectPath> <resourceId>
56
56
  ```
57
57
 
58
58
  参数说明:
@@ -67,7 +67,7 @@ cc detail staticResource <projectPath> <resourceId>
67
67
  命令:
68
68
 
69
69
  ```bash
70
- cc create staticResource <projectPath> <encodedBodyJson>
70
+ cloudcc create staticResource <projectPath> <encodedBodyJson>
71
71
  ```
72
72
 
73
73
  参数说明:
@@ -93,7 +93,7 @@ cc create staticResource <projectPath> <encodedBodyJson>
93
93
  命令:
94
94
 
95
95
  ```bash
96
- cc delete staticResource <projectPath> <resourceId>
96
+ cloudcc delete staticResource <projectPath> <resourceId>
97
97
  ```
98
98
 
99
99
  参数说明:
@@ -108,7 +108,7 @@ cc delete staticResource <projectPath> <resourceId>
108
108
  命令:
109
109
 
110
110
  ```bash
111
- cc count staticResource <projectPath> [encodedCondJson]
111
+ cloudcc count staticResource <projectPath> [encodedCondJson]
112
112
  ```
113
113
 
114
114
  参数说明:
@@ -125,25 +125,25 @@ cc count staticResource <projectPath> [encodedCondJson]
125
125
  ### 按 label 查询列表
126
126
 
127
127
  ```bash
128
- cc get staticResource . "$(node -e 'console.log(encodeURI(JSON.stringify({label:\"logo\"})))')"
128
+ cloudcc get staticResource . "$(node -e 'console.log(encodeURI(JSON.stringify({label:\"logo\"})))')"
129
129
  ```
130
130
 
131
131
  ### 查询容量统计
132
132
 
133
133
  ```bash
134
- cc count staticResource .
134
+ cloudcc count staticResource .
135
135
  ```
136
136
 
137
137
  ### 新建静态资源(上传文件)
138
138
 
139
139
  ```bash
140
- cc create staticResource . "$(node -e "console.log(encodeURI(JSON.stringify({filePath:'./assets/logo.png',label:'logo_png',desc:'cli upload'})))")"
140
+ cloudcc create staticResource . "$(node -e "console.log(encodeURI(JSON.stringify({filePath:'./assets/logo.png',label:'logo_png',desc:'cli upload'})))")"
141
141
  ```
142
142
 
143
143
  ### 编辑静态资源(不替换文件)
144
144
 
145
145
  ```bash
146
- cc create staticResource . "$(node -e "console.log(encodeURI(JSON.stringify({id:'69c4f469ec9eb4d5c8a1b76d',label:'logo_png_v2',desc:'rename only'})))")"
146
+ cloudcc create staticResource . "$(node -e "console.log(encodeURI(JSON.stringify({id:'69c4f469ec9eb4d5c8a1b76d',label:'logo_png_v2',desc:'rename only'})))")"
147
147
  ```
148
148
 
149
149
  ---
@@ -1,3 +1,46 @@
1
1
  # CloudCC 静态资源介绍
2
2
 
3
- TODO
3
+ ## 1. 模块定位
4
+
5
+ 静态资源用于统一托管前端开发中需要复用的文件资源(如图片、字体、JS/CSS 文件、压缩包等)。
6
+ 当资源不适合直接内嵌在代码中时,可上传到静态资源库,再通过平台提供的访问链接在组件、页面、脚本中引用。
7
+
8
+ ## 2. 典型使用场景
9
+
10
+ - 自定义组件引用公共图片、图标、字体文件
11
+ - 自定义页面加载第三方前端库(如工具函数、样式文件)
12
+ - 多个业务功能共享同一份资源,避免重复上传与多处维护
13
+
14
+ ## 3. 控制台入口
15
+
16
+ 1. 登录 CloudCC 系统
17
+ 2. 点击右上角头像,进入「开发者平台」(当前仅管理员简档可见)
18
+ 3. 在左侧菜单进入:`扩展 -> 静态资源`
19
+
20
+ ## 4. 核心操作流程
21
+
22
+ ### 4.1 新建静态资源
23
+
24
+ 1. 点击「新建」
25
+ 2. 填写必要信息(名称/标签、描述等)
26
+ 3. 上传资源文件并保存
27
+
28
+ ### 4.2 获取访问链接并应用
29
+
30
+ 1. 在资源列表中找到目标资源
31
+ 2. 点击复制图标获取资源访问链接
32
+ 3. 在组件/页面/脚本中使用该链接
33
+
34
+ ## 5. 关键约束与注意事项
35
+
36
+ - 单个上传文件大小上限为 `5MB`
37
+ - 建议使用可读性强、可维护的命名规范,便于检索和复用
38
+ - 发布前应验证访问链接可用性,避免页面出现 404 或加载失败
39
+ - 建议在团队内约定资源分类(如 `img/`、`font/`、`vendor/`)与版本策略
40
+
41
+ ## 6. 设计建议(面向实施)
42
+
43
+ - **先复用后新增**:优先检查资源库中是否已有同类资源,减少冗余
44
+ - **按用途分层管理**:将业务资源与公共资源分开,降低变更影响
45
+ - **关注性能**:对图片进行压缩,避免引入过大的静态文件影响加载速度
46
+ - **建立变更记录**:重大资源替换建议记录版本和影响范围,便于回滚与排查
@@ -3,7 +3,7 @@ const BaseUrl = "https://developer.apis.cloudcc.cn";
3
3
 
4
4
  /**
5
5
  * 静态资源 - 查询列表
6
- * CLI: cc get staticResource <projectPath> [encodedCondJson]
6
+ * CLI: cloudcc get staticResource <projectPath> [encodedCondJson]
7
7
  * 参数说明:
8
8
  * - projectPath: 项目根目录,默认 process.cwd()
9
9
  * - encodedCondJson(可选): encodeURI(JSON.stringify(body))
@@ -5,7 +5,7 @@ const chalk = require("chalk")
5
5
  const { getPackageJson } = require("../../utils/config.js")
6
6
 
7
7
  /**
8
- * cc create timer <name>
8
+ * cloudcc create timer <name>
9
9
  * @param {string[]} argvs
10
10
  */
11
11
  async function create(argvs) {
@@ -5,7 +5,7 @@ const { getPackageJson } = require("../../utils/config");
5
5
  const { postClass } = require("../../utils/http");
6
6
 
7
7
  /**
8
- * cc delete timer <nameOrId> [projectPath]
8
+ * cloudcc delete timer <nameOrId> [projectPath]
9
9
  * @param {string[]} argvs
10
10
  */
11
11
  async function remove(argvs) {