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
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
## 触发器(Trigger)
|
|
2
|
-
|
|
3
|
-
## 覆盖范围
|
|
4
|
-
|
|
5
|
-
本篇聚焦 CloudCC 后端 Java 触发器(通过 `cc` 命令):
|
|
6
|
-
|
|
7
|
-
- 按对象与时机创建触发器
|
|
8
|
-
- 拉取线上源码片段
|
|
9
|
-
- 发布本地源码片段
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 目录结构(以本仓库约定为准)
|
|
14
|
-
|
|
15
|
-
- `triggers/{objectName}/{triggerName}/...`
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 源码同步边界(必须理解)
|
|
20
|
-
|
|
21
|
-
该项目使用“片段同步”策略:
|
|
22
|
-
|
|
23
|
-
- 触发器只会拉取/发布 `@SOURCE_CONTENT_START` 与 `@SOURCE_CONTENT_END` 之间的内容。
|
|
24
|
-
|
|
25
|
-
这意味着:
|
|
26
|
-
|
|
27
|
-
- 片段外可保留模板、import、类结构等。
|
|
28
|
-
- 片段内仅放可发布逻辑,不放本地临时调试代码。
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## 创建(关键入参)
|
|
33
|
-
|
|
34
|
-
触发器 CLI 创建参数是一个 JSON 对象,需要 `encodeURI` 后作为单参数传入:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
cc create triggers <encodedJson>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
JSON 字段(示例):
|
|
41
|
-
|
|
42
|
-
- `name`: 触发器名(Java 命名规范)
|
|
43
|
-
- `schemetableName`: 对象表名(如从对象列表拿到)
|
|
44
|
-
- `targetObjectId`: 目标对象 ID
|
|
45
|
-
- `triggerTime`: 触发时机(见下方枚举)
|
|
46
|
-
|
|
47
|
-
可选枚举(以当前工具/handler 支持为准):
|
|
48
|
-
- `beforeInsert`
|
|
49
|
-
- `beforeUpdate`
|
|
50
|
-
- `beforeUpsert`
|
|
51
|
-
- `beforeDelete`
|
|
52
|
-
- `afterInsert`
|
|
53
|
-
- `afterUpdate`
|
|
54
|
-
- `afterUpsert`
|
|
55
|
-
- `afterDelete`
|
|
56
|
-
- `afterInsertCommit`
|
|
57
|
-
- `afterUpdateCommit`
|
|
58
|
-
- `afterUpsertCommit`
|
|
59
|
-
- `afterDeleteCommit`
|
|
60
|
-
- `approval`
|
|
61
|
-
- `beforeBatch`
|
|
62
|
-
- `afterBatch`
|
|
63
|
-
- `commitBatch`
|
|
64
|
-
|
|
65
|
-
示例(macOS/zsh):
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
cc create triggers "$(node -e 'console.log(encodeURI(JSON.stringify({name:\"MyTrigger\",schemetableName:\"account\",targetObjectId:\"a01...\",triggerTime:\"beforeInsert\"})))')"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## 拉取 / 发布
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
# namePath 形如 objectName/triggerName(objectName 通常为小写目录)
|
|
77
|
-
cc pull triggers <namePath>
|
|
78
|
-
cc publish triggers <namePath>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
> 说明:发布/拉取只会处理 `@SOURCE_CONTENT_START` 与 `@SOURCE_CONTENT_END` 之间的代码片段。
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## 生成文件说明
|
|
86
|
-
当执行 `cc create triggers <encodedJson>` 后,通常会生成:
|
|
87
|
-
- `triggers/<schemetableName_lower>/<triggerName>/<triggerName>.java`
|
|
88
|
-
- `triggers/<schemetableName_lower>/<triggerName>/config.json`
|
|
89
|
-
|
|
90
|
-
触发器 Java 包名为:`package triggers.<schemetableName_lower>.<triggerName>;`
|
|
91
|
-
业务逻辑写在构造函数 `public <triggerName>()` 中,且可同步代码放进 `// @SOURCE_CONTENT_START` 与 `// @SOURCE_CONTENT_END` 之间。
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
## 标记匹配与同步规则(务必)
|
|
95
|
-
- `// @SOURCE_CONTENT_START` 与 `// @SOURCE_CONTENT_END` 必须各自独占一行(并且是注释行)
|
|
96
|
-
- `publish`:有标记只上传标记之间内容;无标记则上传整个 `.java`(trim + `encodeURIComponent`)
|
|
97
|
-
- `pull`:有标记只替换标记之间内容;无标记则用云端源码覆盖整个 `.java`
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
## get / detail / pullList
|
|
101
|
-
- `cc get triggers <encodedJson>`:返回 `[{ apiname, id, name }, ...]`
|
|
102
|
-
- `cc detail triggers <objectName/triggerName> <triggerId>`:本地优先,不足时会按 `triggerId` 从服务器补齐
|
|
103
|
-
- `cc pullList triggers <triggerId> <ProjectRoot>`:生成 `triggers/<schemetableName_lower>/<triggerName>/` 下的 `.java` 与 `config.json`
|
|
104
|
-
|
|
105
|
-
典型查询体(示例):
|
|
106
|
-
```json
|
|
107
|
-
{
|
|
108
|
-
"shownum": "2000",
|
|
109
|
-
"showpage": "1",
|
|
110
|
-
"fid": "<targetObjectId 或空串>",
|
|
111
|
-
"sname": "<triggerName 或空串>",
|
|
112
|
-
"rptcond": "",
|
|
113
|
-
"rptorder": ""
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
## 查看完整编辑指南
|
|
119
|
-
- `cc doc triggers`
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
## 删除触发器
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
# 传 namePath(优先读取 triggers/<namePath>/config.json 中的 id)
|
|
126
|
-
cc delete triggers <objectName/triggerName> [projectPath]
|
|
127
|
-
|
|
128
|
-
# 或直接传 trigger id
|
|
129
|
-
cc delete triggers <triggerId> [projectPath]
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
⚠️ **警告:删除操作不可逆,请谨慎使用。**
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
## 触发器编辑 Checklist(最小必读)
|
|
136
|
-
- 只在标记块内写可发布逻辑,不放临时调试代码
|
|
137
|
-
- 保持幂等性,避免重复执行导致数据膨胀
|
|
138
|
-
- 避免递归触发(触发器里再次更新同一对象时),优先使用批量/降递归 API 或短路条件
|
|
139
|
-
- 查询字段尽量最小化,降低性能开销
|
|
140
|
-
- 对关键分支加异常处理与必要日志,确保失败可定位
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
## 推荐工作流(AI 执行顺序)
|
|
144
|
-
|
|
145
|
-
1. 明确对象、触发时机与业务约束(幂等、递归更新风险)
|
|
146
|
-
2. 创建触发器骨架(create)
|
|
147
|
-
3. (可选)对齐线上基线:先 `publish` 一次生成 `id`,再 `pull`(或直接用 `pullList` 按 id 拉取)
|
|
148
|
-
4. 编写片段内逻辑(批量处理优先)
|
|
149
|
-
5. 发布(publish)(如第 3 步已发布,这里通常是二次 publish)
|
|
150
|
-
6. 回归验证:插入/更新/删除/审批链路与异常分支
|
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
## CLI 入口速查(本仓库已定义)
|
|
2
|
-
|
|
3
|
-
`package.json` 中定义的 bin:
|
|
4
|
-
|
|
5
|
-
- `cc`:主入口,统一使用 `cc <action> <type> ...`
|
|
6
|
-
- `cloudccCreate`:项目模板创建入口(`bin/project.js`)
|
|
7
|
-
- `cloudccBuild`:组件构建发布入口(`bin/plugin.js`)
|
|
8
|
-
- `cc-mcp`:MCP 服务入口
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## 统一调用约定
|
|
13
|
-
|
|
14
|
-
主入口格式:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
cc <action> <type> [参数...]
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
常见 `action`:
|
|
21
|
-
|
|
22
|
-
- `create`
|
|
23
|
-
- `get`
|
|
24
|
-
- `pull`
|
|
25
|
-
- `publish`
|
|
26
|
-
- `detail`
|
|
27
|
-
- `pullList`
|
|
28
|
-
- `delete`
|
|
29
|
-
- `doc`
|
|
30
|
-
- `count`
|
|
31
|
-
- `use`
|
|
32
|
-
- `approve`
|
|
33
|
-
- `reject`
|
|
34
|
-
|
|
35
|
-
> 注意:`-v/-version/--version/--v` 为特殊入口,不需要 `type`。
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## 命令覆盖矩阵(源码核对)
|
|
40
|
-
|
|
41
|
-
以下为当前代码已接入的 `type -> action`:
|
|
42
|
-
|
|
43
|
-
- `project`:`create`、`doc`
|
|
44
|
-
- `config`:`use`、`get`
|
|
45
|
-
- `token`:`get`
|
|
46
|
-
- `brief`:`get`
|
|
47
|
-
- `recordType`:`get`
|
|
48
|
-
- `object`:`create`、`get`、`delete`
|
|
49
|
-
- `fields`:`create`、`get`、`delete`
|
|
50
|
-
- `menu`:`create`、`get`、`delete`
|
|
51
|
-
- `application`:`create`、`get`、`delete`
|
|
52
|
-
- `plugin`:`create`、`publish`、`get`、`detail`、`pull`、`delete`、`doc`
|
|
53
|
-
- `customPage`:`create`、`get`、`delete`
|
|
54
|
-
- `classes`:`create`、`publish`、`pull`、`get`、`detail`、`pullList`、`delete`、`doc`
|
|
55
|
-
- `schedule`/`timer`(同一实现):`create`、`publish`、`pull`、`get`、`detail`、`pullList`、`delete`
|
|
56
|
-
- `scheduleJob`:`get`、`detail`、`delete`
|
|
57
|
-
- `triggers`:`create`、`publish`、`pull`、`get`、`detail`、`pullList`、`delete`、`doc`
|
|
58
|
-
- `script`:`create`、`publish`、`pull`、`get`、`detail`、`pullList`、`doc`
|
|
59
|
-
- `approval`:`get`、`approve`、`reject`
|
|
60
|
-
- `customSetting`:`create`、`get`、`detail`、`delete`、`doc`
|
|
61
|
-
- `staticResource`:`get`、`detail`、`delete`、`count`、`doc`
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## encodeURI JSON 参数提醒
|
|
66
|
-
|
|
67
|
-
触发器/定时类/脚本/审批等命令常要求 JSON 入参,建议统一:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
ENCODED="$(node -e 'console.log(encodeURI(JSON.stringify({name:"MyTrigger",schemetableName:"account",targetObjectId:"a01...",triggerTime:"beforeInsert"})))')"
|
|
71
|
-
cc create triggers "$ENCODED"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## 常用命令速查(按模块)
|
|
77
|
-
|
|
78
|
-
### 版本与基础配置
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
# 版本
|
|
82
|
-
cc -v
|
|
83
|
-
cc --version
|
|
84
|
-
|
|
85
|
-
# 切换/查看 cloudcc-cli.config.js 当前环境
|
|
86
|
-
cc use config <env> [projectPath]
|
|
87
|
-
cc get config [projectPath]
|
|
88
|
-
|
|
89
|
-
# 获取 bus token
|
|
90
|
-
cc get token <projectPath>
|
|
91
|
-
|
|
92
|
-
# 获取简档信息(常用于对象/字段/应用等创建流程)
|
|
93
|
-
cc get brief <projectPath>
|
|
94
|
-
|
|
95
|
-
# 获取记录类型
|
|
96
|
-
cc get recordType <projectPath> <prefix>
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### 项目(project)
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
# 创建项目模板
|
|
103
|
-
cc create project <projectName>
|
|
104
|
-
|
|
105
|
-
# CLI 文档
|
|
106
|
-
cc doc project
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 对象与字段
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
# 创建对象(nameLabel 可选,不传则按 label 自动生成)
|
|
113
|
-
cc create object <projectPath> <label> [nameLabel]
|
|
114
|
-
|
|
115
|
-
# 查询对象:type 可选
|
|
116
|
-
# 常见值:standard / custom / chat / trigger / fields(不传表示全部)
|
|
117
|
-
# 注意:type=fields 时还需要第 3 个参数(encodedObjectJson)
|
|
118
|
-
cc get object <projectPath> [type]
|
|
119
|
-
|
|
120
|
-
# type=fields 示例(第三参需包含 objprefix)
|
|
121
|
-
cc get object <projectPath> fields <encodedObjectJson>
|
|
122
|
-
|
|
123
|
-
# 删除对象
|
|
124
|
-
cc delete object <projectPath> <objid>
|
|
125
|
-
|
|
126
|
-
# 查询字段
|
|
127
|
-
cc get fields <projectPath> <objprefix>
|
|
128
|
-
|
|
129
|
-
# 创建字段
|
|
130
|
-
# fieldType: S/U/SCORE/IMG/P/C/J/H/E/B/A/D/F/T/N/ENC/ENCD/X/L/Q/AD/LT/FL/Y/MR/M
|
|
131
|
-
cc create fields <projectPath> <fieldType> <objid> <nameLabel> [ptext|lookupObj]
|
|
132
|
-
|
|
133
|
-
# 删除字段(彻底删除)
|
|
134
|
-
cc delete fields <projectPath> <fieldId> <objid>
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### 菜单与应用
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
# 创建菜单(object)
|
|
141
|
-
cc create menu object <path> <objectId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
142
|
-
|
|
143
|
-
# 创建菜单(page)
|
|
144
|
-
# pageApi 会在内部自动拼接为 lightningPage(pageApi + "#lightning")
|
|
145
|
-
# 如已传入 xxx#lightning,也可兼容
|
|
146
|
-
cc create menu page <path> <pageApi> <tabName> <pname> [tabStyle] [mobileimg] [cloudccservicetab] [mobileurl]
|
|
147
|
-
|
|
148
|
-
# 创建菜单(script / site)
|
|
149
|
-
cc create menu script <path> <scriptId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
150
|
-
cc create menu site <path> <siteId> <tabName> [tabStyle] [mobileimg] [cloudccservicetab]
|
|
151
|
-
|
|
152
|
-
# 查询菜单(condJson 可选,需 encodeURI)
|
|
153
|
-
cc get menu <path> [encodedCondJson]
|
|
154
|
-
|
|
155
|
-
# 删除菜单
|
|
156
|
-
cc delete menu <path> <tabId>
|
|
157
|
-
|
|
158
|
-
# 创建应用(menuIds 可选,逗号分隔)
|
|
159
|
-
cc create application <path> <appName> <appCode> [menuIds]
|
|
160
|
-
|
|
161
|
-
# 获取应用列表(condJson 可选,需 encodeURI)
|
|
162
|
-
cc get application <path> [encodedCondJson]
|
|
163
|
-
|
|
164
|
-
# 删除应用
|
|
165
|
-
cc delete application <path> <appId>
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
说明:
|
|
169
|
-
|
|
170
|
-
- `create menu page` 中 `pageType` 固定为 `customPage`(内部写死)。
|
|
171
|
-
- `create menu page` 中 `mobileurl` 默认 `""`。
|
|
172
|
-
- `cc get menu` 会兼容接口分组返回(如 `botlist/objectlist/pagelist/...`),并汇总为数组输出;每项包含 `__group` 字段标记来源分组。
|
|
173
|
-
|
|
174
|
-
### 组件(plugin)
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
# 创建本地组件模板
|
|
178
|
-
cc create plugin <pluginName>
|
|
179
|
-
|
|
180
|
-
# 发布组件
|
|
181
|
-
cc publish plugin <pluginName>
|
|
182
|
-
|
|
183
|
-
# 拉取组件(name 或 id)
|
|
184
|
-
cc pull plugin <pluginNameOrId> [projectPath]
|
|
185
|
-
|
|
186
|
-
# 获取列表
|
|
187
|
-
cc get plugin <projectPath>
|
|
188
|
-
|
|
189
|
-
# 详情(name 与 id 二选一;仅查 id 时可把 name 传空字符串)
|
|
190
|
-
cc detail plugin <pluginName> <pluginId> [projectPath]
|
|
191
|
-
|
|
192
|
-
# 删除云端组件(name 或 id)
|
|
193
|
-
cc delete plugin <pluginNameOrId> [projectPath]
|
|
194
|
-
|
|
195
|
-
# 组件文档
|
|
196
|
-
cc doc plugin
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### 自定义页面(customPage)
|
|
200
|
-
|
|
201
|
-
```bash
|
|
202
|
-
# 创建页面(pluginId 或 compLabel 均可)
|
|
203
|
-
cc create customPage <pageLabel> <pageApi> <pluginId|compLabel> [projectPath]
|
|
204
|
-
|
|
205
|
-
# 获取页面列表(pageNo/pageSize 可选)
|
|
206
|
-
cc get customPage [pageNo] [pageSize] [projectPath]
|
|
207
|
-
|
|
208
|
-
# 删除页面
|
|
209
|
-
cc delete customPage <pageId> [projectPath]
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### 后端类(classes)
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
cc create classes <ClassName>
|
|
216
|
-
cc publish classes <ClassName>
|
|
217
|
-
cc pull classes <ClassName>
|
|
218
|
-
|
|
219
|
-
# 查询列表(condJson 需 encodeURI)
|
|
220
|
-
cc get classes <encodedCondJson> <projectPath>
|
|
221
|
-
|
|
222
|
-
# 详情(本地优先;也可仅传 id)
|
|
223
|
-
cc detail classes <ClassName> <ClassId>
|
|
224
|
-
|
|
225
|
-
# 批量拉取
|
|
226
|
-
cc pullList classes <ClassId> <ProjectRoot>
|
|
227
|
-
|
|
228
|
-
# 删除(传类名或类 id,类名时会优先读本地 config.json 的 id)
|
|
229
|
-
cc delete classes <ClassNameOrId> [projectPath]
|
|
230
|
-
|
|
231
|
-
# 文档
|
|
232
|
-
cc doc classes
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### 定时类(schedule / timer)
|
|
236
|
-
|
|
237
|
-
```bash
|
|
238
|
-
# schedule 与 timer 是同义 type
|
|
239
|
-
cc create schedule <ScheduleName>
|
|
240
|
-
cc publish schedule <ScheduleName>
|
|
241
|
-
cc pull schedule <ScheduleName>
|
|
242
|
-
|
|
243
|
-
cc create timer <ScheduleName>
|
|
244
|
-
cc publish timer <ScheduleName>
|
|
245
|
-
cc pull timer <ScheduleName>
|
|
246
|
-
|
|
247
|
-
# 列表查询(condJson 需 encodeURI)
|
|
248
|
-
cc get schedule <encodedCondJson> <projectPath>
|
|
249
|
-
|
|
250
|
-
# 详情
|
|
251
|
-
cc detail schedule <ScheduleName> <ScheduleId>
|
|
252
|
-
|
|
253
|
-
# 批量拉取
|
|
254
|
-
cc pullList schedule <ScheduleId> <ProjectRoot>
|
|
255
|
-
|
|
256
|
-
# 删除定时类(传名称或 id)
|
|
257
|
-
cc delete schedule <ScheduleNameOrId> [projectPath]
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
### 定时作业(scheduleJob)
|
|
261
|
-
|
|
262
|
-
```bash
|
|
263
|
-
# 列表(可选条件)
|
|
264
|
-
cc get scheduleJob <projectPath> [encodedCondJson]
|
|
265
|
-
|
|
266
|
-
# 详情
|
|
267
|
-
cc detail scheduleJob <jobId> [projectPath]
|
|
268
|
-
|
|
269
|
-
# 删除
|
|
270
|
-
cc delete scheduleJob <jobId> [projectPath]
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### 触发器(triggers)
|
|
274
|
-
|
|
275
|
-
```bash
|
|
276
|
-
# 创建(必含 name/schemetableName/targetObjectId/triggerTime)
|
|
277
|
-
cc create triggers <encodedJson>
|
|
278
|
-
|
|
279
|
-
# namePath: <schemetableNameLower>/<triggerName>
|
|
280
|
-
cc publish triggers <namePath>
|
|
281
|
-
cc pull triggers <namePath>
|
|
282
|
-
|
|
283
|
-
# 列表查询(condJson 需 encodeURI)
|
|
284
|
-
cc get triggers <encodedCondJson> <projectPath>
|
|
285
|
-
|
|
286
|
-
# 详情(本地优先;也可仅查 id)
|
|
287
|
-
cc detail triggers <namePath> <triggerId>
|
|
288
|
-
|
|
289
|
-
# 批量拉取
|
|
290
|
-
cc pullList triggers <triggerId> <ProjectRoot>
|
|
291
|
-
|
|
292
|
-
# 删除(传 namePath 或 id)
|
|
293
|
-
cc delete triggers <objectName/triggerName|triggerId> [projectPath]
|
|
294
|
-
|
|
295
|
-
# 文档
|
|
296
|
-
cc doc triggers
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
### 客户端脚本(script)
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
# 创建(JSON 需包含 objName/scriptName 等)
|
|
303
|
-
cc create script <encodedJson>
|
|
304
|
-
|
|
305
|
-
# scriptPath: <objName>/<scriptName>
|
|
306
|
-
cc publish script <objName/scriptName>
|
|
307
|
-
cc pull script <objName/scriptName>
|
|
308
|
-
|
|
309
|
-
# 列表查询
|
|
310
|
-
cc get script <encodedCondJson> <projectPath>
|
|
311
|
-
|
|
312
|
-
# 详情
|
|
313
|
-
cc detail script <objName/scriptName> <scriptId> [projectPath]
|
|
314
|
-
|
|
315
|
-
# 批量拉取
|
|
316
|
-
cc pullList script <scriptId> <ProjectRoot>
|
|
317
|
-
|
|
318
|
-
# 文档
|
|
319
|
-
cc doc script
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### 审批(approval)
|
|
323
|
-
|
|
324
|
-
```bash
|
|
325
|
-
# 查询待审批列表(queryJson 可选,建议 encodeURI)
|
|
326
|
-
cc get approval <projectPath> [encodedQueryJson]
|
|
327
|
-
|
|
328
|
-
# 审批通过(approvalJson 建议 encodeURI)
|
|
329
|
-
cc approve approval <projectPath> <encodedApprovalJson>
|
|
330
|
-
|
|
331
|
-
# 审批拒绝(approvalJson 建议 encodeURI)
|
|
332
|
-
cc reject approval <projectPath> <encodedApprovalJson>
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
### 文档型 type
|
|
336
|
-
|
|
337
|
-
```bash
|
|
338
|
-
cc doc customSetting
|
|
339
|
-
cc doc staticResource
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
### 自定义设置(customSetting)
|
|
343
|
-
|
|
344
|
-
```bash
|
|
345
|
-
# 列表
|
|
346
|
-
cc get customSetting <projectPath> [encodedCondJson]
|
|
347
|
-
|
|
348
|
-
# 详情
|
|
349
|
-
cc detail customSetting <projectPath> <settingId>
|
|
350
|
-
|
|
351
|
-
# 创建/编辑(save,body 透传)
|
|
352
|
-
cc create customSetting <projectPath> <encodedBodyJson>
|
|
353
|
-
|
|
354
|
-
# 删除
|
|
355
|
-
cc delete customSetting <projectPath> <settingId>
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
### 静态资源(staticResource)
|
|
359
|
-
|
|
360
|
-
```bash
|
|
361
|
-
# 列表
|
|
362
|
-
cc get staticResource <projectPath> [encodedCondJson]
|
|
363
|
-
|
|
364
|
-
# 详情
|
|
365
|
-
cc detail staticResource <projectPath> <resourceId>
|
|
366
|
-
|
|
367
|
-
# 删除
|
|
368
|
-
cc delete staticResource <projectPath> <resourceId>
|
|
369
|
-
|
|
370
|
-
# 容量统计
|
|
371
|
-
cc count staticResource <projectPath> [encodedCondJson]
|
|
372
|
-
```
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# 自定义设置(cc 命令模式)
|
|
2
|
-
|
|
3
|
-
本文已从“直接调用 API”重构为“优先使用 `cc` 命令”。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 覆盖范围
|
|
8
|
-
|
|
9
|
-
通过 `cc` 管理自定义设置主记录:
|
|
10
|
-
|
|
11
|
-
- 列表查询
|
|
12
|
-
- 详情查询
|
|
13
|
-
- 新建/编辑(save 透传)
|
|
14
|
-
- 删除
|
|
15
|
-
- 文档查看
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 命令速查
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# 文档
|
|
23
|
-
cc doc customSetting
|
|
24
|
-
|
|
25
|
-
# 列表(condition 可选)
|
|
26
|
-
cc get customSetting <projectPath> [encodedCondJson]
|
|
27
|
-
|
|
28
|
-
# 详情
|
|
29
|
-
cc detail customSetting <projectPath> <settingId>
|
|
30
|
-
|
|
31
|
-
# 新建/编辑(请求体透传到 save)
|
|
32
|
-
cc create customSetting <projectPath> <encodedBodyJson>
|
|
33
|
-
|
|
34
|
-
# 删除主记录
|
|
35
|
-
cc delete customSetting <projectPath> <settingId>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## 参数说明
|
|
41
|
-
|
|
42
|
-
- `projectPath`:项目根目录(包含 `cloudcc-cli.config.js`)。
|
|
43
|
-
- `encodedCondJson`:`encodeURI(JSON.stringify({...}))` 形式的查询体。
|
|
44
|
-
- `encodedBodyJson`:`encodeURI(JSON.stringify({...}))` 形式的保存请求体。
|
|
45
|
-
|
|
46
|
-
示例:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
cc get customSetting . "$(node -e 'console.log(encodeURI(JSON.stringify({shownum:20,showpage:1})))')"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
cc create customSetting . "$(node -e 'console.log(encodeURI(JSON.stringify({label:\"DemoSetting\",schemetableName:\"demo_setting\",setType:\"list\",shareType:\"public\",description:\"demo\"})))')"
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## 说明与边界
|
|
59
|
-
|
|
60
|
-
- `create customSetting` 是“透传模式”:请求体字段需符合平台 `save` 接口契约。
|
|
61
|
-
- 字段级管理(如 `saveField`、`deletefield`)当前未单独封装命令;建议在平台页面完成,或后续再补 `cc` 子命令。
|
|
62
|
-
- 生产环境执行删除前,先做依赖检查与备份。
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
## 目标
|
|
2
|
-
|
|
3
|
-
让开发者(或 AI)在一台新机器上,完成 `cloudcc-cli`
|
|
4
|
-
的安装、模板项目创建、开发密钥配置,并能通过 `cc` 命令进行开发与发布。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 安装 cloudcc-cli
|
|
9
|
-
|
|
10
|
-
### 全局安装
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
# Windows
|
|
14
|
-
npm i -g cloudcc-cli
|
|
15
|
-
|
|
16
|
-
# macOS(通常需要 sudo)
|
|
17
|
-
sudo npm i -g cloudcc-cli
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### 验证版本
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
cc -v
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
> 说明:`cc` 是该 CLI 的统一入口命令之一。
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 创建 CloudCC 模板项目
|
|
31
|
-
|
|
32
|
-
在你的工作目录下执行:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
cc create project demo1
|
|
36
|
-
cd demo1
|
|
37
|
-
npm i
|
|
38
|
-
npm run serve
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
如果能在本地启动并访问页面,说明前端开发链路可用。
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 配置开发者密钥与安全标记
|
|
46
|
-
|
|
47
|
-
### 在 CloudCC CRM 后台获取
|
|
48
|
-
|
|
49
|
-
你需要一个具备“代码管理/开发者权限”的账号。
|
|
50
|
-
|
|
51
|
-
- **开发者密钥(CloudCCDev)**:在 CRM
|
|
52
|
-
后台「连接的应用程序」中新建后获取并复制。
|
|
53
|
-
- **安全标记(safetyMark)**:在个人设置中重置安全标记后,通过邮箱获取。
|
|
54
|
-
|
|
55
|
-
### 写入项目的 `cloudcc-cli.config.js`
|
|
56
|
-
|
|
57
|
-
模板项目根目录通常会有
|
|
58
|
-
`cloudcc-cli.config.js`(或你们约定的同名配置文件),核心原则:
|
|
59
|
-
|
|
60
|
-
- **多环境**:用 `use` 字段选择当前环境(如 `dev/uat/prod`)。
|
|
61
|
-
- **不要提交真实密钥到 Git**:建议 `.gitignore`
|
|
62
|
-
忽略配置文件,或用本地私密文件方式管理。
|