weaver-work-cli 0.1.25 → 0.1.28
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/README.md +35 -30
- package/dist/cmd/root.js +1 -0
- package/dist/cmd/setup/index.js +1 -1
- package/dist/core/runtime-agent.js +19 -0
- package/dist/internal/e10/auth/commands.js +48 -33
- package/dist/internal/e10/auth/messages.js +3 -0
- package/dist/internal/e10/auth/session.js +8 -0
- package/dist/internal/e10/auth/xiaoe.js +62 -43
- package/dist/internal/e10/auth-recovery.js +148 -0
- package/dist/internal/e10/client.js +47 -15
- package/dist/internal/e10/context.js +9 -31
- package/dist/internal/e10/index.js +1 -0
- package/dist/internal/e10/request-runtime.js +51 -9
- package/dist/shortcuts/archive/host.js +3 -2
- package/dist/shortcuts/archive/manifest.js +1 -1
- package/dist/shortcuts/archive-oa/constants.js +66 -0
- package/dist/shortcuts/archive-oa/continuation.js +70 -0
- package/dist/shortcuts/archive-oa/errors.js +53 -0
- package/dist/shortcuts/archive-oa/host.js +158 -0
- package/dist/shortcuts/archive-oa/index.js +225 -0
- package/dist/shortcuts/archive-oa/manifest.js +62 -0
- package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
- package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
- package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
- package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
- package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
- package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
- package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
- package/dist/shortcuts/archive-oa/operations/types.js +45 -0
- package/dist/shortcuts/archive-oa/operations.js +13 -0
- package/dist/shortcuts/asset/host.js +7 -6
- package/dist/shortcuts/blog/host.js +4 -3
- package/dist/shortcuts/caizhilian/host.js +3 -2
- package/dist/shortcuts/caizhilian/manifest.js +1 -1
- package/dist/shortcuts/calendar/host.js +2 -1
- package/dist/shortcuts/contract/host.js +34 -59
- package/dist/shortcuts/ehr/host.js +2 -1
- package/dist/shortcuts/esb/host.js +2 -1
- package/dist/shortcuts/fna/host.js +6 -3
- package/dist/shortcuts/fna/manifest.js +10 -5
- package/dist/shortcuts/fna/operations/expense-chart.js +162 -0
- package/dist/shortcuts/fna/operations/registry.js +2 -0
- package/dist/shortcuts/hrm/host.js +2 -1
- package/dist/shortcuts/im/host.js +3 -2
- package/dist/shortcuts/index.js +2 -0
- package/dist/shortcuts/invoice/host.js +9 -7
- package/dist/shortcuts/invoice/manifest.js +38 -47
- package/dist/shortcuts/invoice/operations/issuing-qys.js +328 -0
- package/dist/shortcuts/invoice/operations/registry.js +2 -3
- package/dist/shortcuts/jiuchuanhui/host.js +2 -1
- package/dist/shortcuts/mail/host.js +2 -1
- package/dist/shortcuts/meeting/host.js +2 -1
- package/dist/shortcuts/meeting/operations/eb/conflict.js +78 -12
- package/dist/shortcuts/okr/host.js +2 -1
- package/dist/shortcuts/plan/host.js +2 -1
- package/dist/shortcuts/project/host.js +2 -1
- package/dist/shortcuts/workflow/endpoints.js +11 -0
- package/dist/shortcuts/workflow/host.js +5 -7
- package/dist/shortcuts/workflow/index.js +6 -36
- package/dist/shortcuts/workflow/operations/chatscene.js +252 -0
- package/dist/shortcuts/workflow/operations/form.js +1047 -191
- package/dist/shortcuts/workflow/operations/read.js +137 -8
- package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
- package/dist/shortcuts/workflow/operations/write.js +9 -1
- package/dist/shortcuts/workflow/stdout-compact.js +16 -1
- package/docs/SKILL.md +1 -1
- package/docs/_catalog.md +1 -1
- package/docs/agent-invoice.md +1 -1
- package/docs/archive-oa.md +79 -0
- package/docs/caizhilian.md +1 -1
- package/docs/e10-auth.md +7 -6
- package/docs/fna.md +7 -3
- package/docs/invoice.md +4 -6
- package/package.json +1 -1
- package/skill-template/business-info.json +20 -1
- package/skill-template/domains/archive-oa.md +19 -0
- package/skill-template/domains/caizhilian.md +2 -1
- package/skill-template/domains/qiyecheng.md +1 -0
- package/skill-template/domains/yepiaotong.md +8 -4
- package/skill-template/skill-template.md +1 -0
- package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
- package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
- package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
- package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
- package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
- package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
- package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
- package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
- package/skills/weaver-e10-blog/SKILL.md +6 -1
- package/skills/weaver-e10-blog/references/blog-query.md +3 -1
- package/skills/weaver-e10-builder/SKILL.md +22 -0
- package/skills/weaver-e10-caizhilian/SKILL.md +47 -16
- package/skills/weaver-e10-caizhilian/references/action-flow.md +70 -0
- package/skills/weaver-e10-caizhilian/references/agent-entry.md +12 -4
- package/skills/weaver-e10-caizhilian/references/auth-and-install.md +207 -0
- package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
- package/skills/weaver-e10-caizhilian/references/document.md +33 -11
- package/skills/weaver-e10-caizhilian/references/file-collection.md +57 -54
- package/skills/weaver-e10-caizhilian/references/file-upload.md +5 -6
- package/skills/weaver-e10-caizhilian/references/files.md +9 -3
- package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
- package/skills/weaver-e10-caizhilian/references/host-executor-prompt.md +32 -0
- package/skills/weaver-e10-caizhilian/references/host-platform-integration.md +46 -0
- package/skills/weaver-e10-caizhilian/references/rule-index.md +56 -0
- package/skills/weaver-e10-caizhilian/references/setting-attach.md +17 -54
- package/skills/weaver-e10-caizhilian/references/setting-backup.md +16 -63
- package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +24 -64
- package/skills/weaver-e10-caizhilian/references/setting-storage-docs-summary.md +126 -0
- package/skills/weaver-e10-caizhilian/references/setting-storage-field-map.md +57 -0
- package/skills/weaver-e10-caizhilian/references/setting-storage.md +143 -548
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +7 -7
- package/skills/weaver-e10-caizhilian/references/task-workflow.md +87 -0
- package/skills/weaver-e10-caizhilian/references/withheld.md +21 -45
- package/skills/weaver-e10-caizhilian/references/write-protocol.md +7 -0
- package/skills/weaver-e10-calendar/SKILL.md +6 -1
- package/skills/weaver-e10-esb/SKILL.md +8 -0
- package/skills/weaver-e10-esb/references/input-format.md +3 -1
- package/skills/weaver-e10-esb/references/source-manifest.json +5 -5
- package/skills/weaver-e10-hrm/SKILL.md +6 -1
- package/skills/weaver-e10-hrm/references/employee.md +1 -1
- package/skills/weaver-e10-hrm/references/org.md +1 -1
- package/skills/weaver-e10-hrm/references/position.md +1 -1
- package/skills/weaver-e10-jinchengda/SKILL.md +2 -1
- package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +1 -1
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +6 -1
- package/skills/weaver-e10-jucailin/SKILL.md +6 -1
- package/skills/weaver-e10-jucailin/references/hr-contact.md +1 -1
- package/skills/weaver-e10-jucailin/references/salary.md +1 -1
- package/skills/weaver-e10-mail/SKILL.md +6 -1
- package/skills/weaver-e10-meeting/SKILL.md +11 -6
- package/skills/weaver-e10-meeting/references/meeting-eb.md +7 -3
- package/skills/weaver-e10-meeting/references/meeting-queries.md +3 -1
- package/skills/weaver-e10-meeting/references/meeting-verification.md +4 -2
- package/skills/weaver-e10-okr/SKILL.md +6 -1
- package/skills/weaver-e10-okr/references/source-manifest.json +5 -5
- package/skills/weaver-e10-plan/SKILL.md +6 -1
- package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +3 -1
- package/skills/weaver-e10-plan/references/plan-report-query.md +3 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +7 -7
- package/skills/weaver-e10-qiyecheng/SKILL.md +16 -6
- package/skills/weaver-e10-qiyecheng/references/catalog.md +6 -3
- package/skills/weaver-e10-qiyecheng/references/expense-center.md +2 -0
- package/skills/weaver-e10-qiyecheng/references/expense-chart.md +78 -0
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +87 -33
- package/skills/weaver-e10-shared/SKILL.md +53 -28
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +22 -20
- package/skills/weaver-e10-shared/references/non-interactive-environment.md +13 -13
- package/skills/weaver-e10-shared/references/weaver-e10-installation.md +3 -1
- package/skills/weaver-e10-wenshuding/SKILL.md +6 -1
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
- package/skills/weaver-e10-workflow/references/source-manifest.json +33 -24
- package/skills/weaver-e10-workflow/references/workflow-create.md +41 -26
- package/skills/weaver-e10-yepiaotong/SKILL.md +23 -18
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +87 -45
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +152 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +210 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +63 -512
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +205 -346
- package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +231 -344
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +201 -162
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +121 -145
- package/skills/weaver-e10-yimiaoban/SKILL.md +9 -2
- package/skills/weaver-e10-yimiaoban/references/file-user-i18n.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/msg-read.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +9 -9
- package/skills/weaver-e10-ziguanjia/SKILL.md +6 -1
- package/dist/shortcuts/invoice/operations/issuing.js +0 -198
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-field-rules.md +0 -161
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +0 -107
- package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: weaver-setting-attach
|
|
3
3
|
description: "对话式修改\"文件设置 → 附件设置\"页面的 15 个配置项(上传最大、上传格式控制 方式、附件打开方式、批量下载、禁止移动端下载、附加提示、图片压缩、版本清理、 打印转 PDF 等)。通过自然语言 / `setting set --item key=value` 即可完成 GET 全量 → modify(保留原值) → diff 让用户确认 → POST 落库,无需打开 浏览器逐项点击。覆盖 weapp 端 `POST /api/file/tenant/setting` 与 `POST /api/file/tenant/setting/save` 两条接口。另提供只读查询:按审批流程 ID 查附件上传目录(caizhilian.setting-attach.list-upload-folders)。Use for 改附件设置、改上传 最大、改附件打开方式、改白名单黑名单、附件批量下载、禁止移动端下载、附加 提示、文件设置、文件上传、格式限制、图片压缩、版本清理、清理文件版本、 打印转 PDF、按流程查上传目录、流程附件目录、流程上传文件夹、eteams-file 后台、<your-e10-domain>/info/fileSet/attach."
|
|
4
4
|
license: Proprietary
|
|
5
|
-
compatibility: 泛微E10
|
|
5
|
+
compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
|
|
6
6
|
metadata:
|
|
7
7
|
maintainer: unknown
|
|
8
8
|
type: capability
|
|
@@ -21,22 +21,13 @@ metadata:
|
|
|
21
21
|
|
|
22
22
|
### 认证前置(必须)
|
|
23
23
|
|
|
24
|
-
本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent
|
|
24
|
+
本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
|
|
25
25
|
|
|
26
26
|
**使用前必须确保**:
|
|
27
27
|
1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
|
|
28
28
|
2. 已完成登录:`weaver-work-cli auth status` 显示已登录
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
```text
|
|
32
|
-
# OAuth2.0 浏览器授权(推荐)
|
|
33
|
-
weaver-work-cli auth login
|
|
34
|
-
|
|
35
|
-
# 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
|
|
36
|
-
weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
|
|
30
|
+
**登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
|
|
40
31
|
|
|
41
32
|
## When to use
|
|
42
33
|
|
|
@@ -115,7 +106,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
|
|
|
115
106
|
| `shard-size` | `uploadShardSize` | 整数 MB | 1 ≤ n ≤ 50 |
|
|
116
107
|
| `format-mode` | `sysFormatWhitesEnable` | `whitelist` / `blacklist` | 切换模式后会自动迁移 `format-list` |
|
|
117
108
|
| `format-list` | `sysFormatWhites` 或 `sysFormatBlacks` | 逗号/分号分隔扩展名 | 自动按当前 mode 写到正确字段 |
|
|
118
|
-
| `non-image-open` | `sysNonImageMediaOpenType` | `newTab` / `popupWindow` |
|
|
109
|
+
| `non-image-open` | `sysNonImageMediaOpenType` | `newTab` / `popupWindow` | 后端实际只有这两个值 |
|
|
119
110
|
| `image-open` | `sysImageMediaOpenType` | `newTab` / `previewComponent` | |
|
|
120
111
|
| `show-attach-list` | `sysPreviewShowAttachmentList` | bool | |
|
|
121
112
|
| `attach-expand` | `sysAttachmentListDefaultExpand` | bool | |
|
|
@@ -129,9 +120,9 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
|
|
|
129
120
|
| `version-size` | `sysFileVersionSize` | 整数(1-500) / `-1`(不限) | 每个文件最多保留多少个历史版本。**与 `version-time` 互斥**,由 `version-clean-type` 决定生效哪个 |
|
|
130
121
|
| `version-time` | `sysFileVersionTime` | 整数(1-1095) / `-1`(永久) | 每个文件的历史版本保留多少天。**与 `version-size` 互斥**,由 `version-clean-type` 决定生效哪个 |
|
|
131
122
|
| `print-pdf-types` | `sysPrintToPdfFileTypes` | 逗号分隔扩展名 | 打印时需要转 PDF 的扩展名(空 = 未启用,独立项) |
|
|
132
|
-
| `version-clean-type` | `sysAutoClearFileVersionType` | `versionSize` / `versionTime` | 版本清理方式(按份数 /
|
|
133
|
-
| `version-size-type` | `sysFileVersionSizeType` | `selected` / `custom` | 份数那一行 UI 状态(selected = 选下拉 / custom =
|
|
134
|
-
| `version-time-type` | `sysFileVersionTimeType` | `selected` / `custom` | 时间那一行 UI 状态(selected = 选下拉 / custom =
|
|
123
|
+
| `version-clean-type` | `sysAutoClearFileVersionType` | `versionSize` / `versionTime` | 版本清理方式(按份数 / 按时间)。**决定 `version-size` 和 `version-time` 哪个生效** |
|
|
124
|
+
| `version-size-type` | `sysFileVersionSizeType` | `selected` / `custom` | 份数那一行 UI 状态(selected = 选下拉 / custom = 自定义) |
|
|
125
|
+
| `version-time-type` | `sysFileVersionTimeType` | `selected` / `custom` | 时间那一行 UI 状态(selected = 选下拉 / custom = 自定义) |
|
|
135
126
|
|
|
136
127
|
### 版本清理设置规则(强制)
|
|
137
128
|
|
|
@@ -150,7 +141,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
|
|
|
150
141
|
|
|
151
142
|
**单独设置 `version-size` 或 `version-time` 不会生效**,必须同时设置 `version-size-type` 和 `version-time-type` 为 `custom`。
|
|
152
143
|
|
|
153
|
-
|
|
144
|
+
完整别名表见本文「字段对照表」章节。
|
|
154
145
|
|
|
155
146
|
## 硬性门禁
|
|
156
147
|
|
|
@@ -178,7 +169,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
|
|
|
178
169
|
|
|
179
170
|
1. **操作前必查登录态**
|
|
180
171
|
每次执行业务操作前,确认 CLI 已完成登录:
|
|
181
|
-
- 若 `weaver-work-cli auth status`
|
|
172
|
+
- 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
|
|
182
173
|
- 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
|
|
183
174
|
|
|
184
175
|
2. **查询要简洁**(`show` / 读设置时的输出格式)
|
|
@@ -242,27 +233,13 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
|
|
|
242
233
|
|
|
243
234
|
## 宿主
|
|
244
235
|
|
|
245
|
-
CLI
|
|
246
|
-
|
|
247
|
-
```text
|
|
248
|
-
python3 scripts/attach_setting.py <cmd> [args]
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
装好后 `setting show / set ...` 即可直接调用。
|
|
236
|
+
CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-attach.<operation>`(操作清单见 SKILL.md 路由表)。
|
|
252
237
|
|
|
253
238
|
|
|
254
239
|
## 与 weaver-im 的关系
|
|
255
240
|
|
|
256
241
|
两者**不共享凭证**(`auth_opt2` 决策)。现在统一通过 CLI 托管的认证获取凭证。
|
|
257
242
|
|
|
258
|
-
## 版本
|
|
259
|
-
|
|
260
|
-
- 0.1.0(2026-08-06)首次创建。覆盖 eteams-file 截图"附件设置" Tab 的 11 字段。
|
|
261
|
-
- 0.2.0(2026-08-09)补 6 字段:图片压缩(`img-compress` / `img-compress-quality`)、
|
|
262
|
-
版本清理(`auto-clear-version` / `version-size` / `version-time`)、
|
|
263
|
-
打印转 PDF(`print-pdf-types`)。这 3 类功能实际也在附件设置同一页
|
|
264
|
-
(`AttachSet/index.tsx`),0.1.0 时只覆盖 11 项漏了。同时修 `mobile-block`
|
|
265
|
-
alias 的 `invert=True` 方向写反 bug(CLI true 现在直接对应 DTO true)。
|
|
266
243
|
# 接口协议
|
|
267
244
|
|
|
268
245
|
## 端点
|
|
@@ -276,13 +253,11 @@ python3 scripts/attach_setting.py <cmd> [args]
|
|
|
276
253
|
|
|
277
254
|
## 鉴权
|
|
278
255
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
CLI 自动从 `.env.local` / ENV 读取并塞进 Cookie。
|
|
256
|
+
请求头凭证由 CLI 统一注入(见 `auth-and-install.md`「请求头契约」),Agent 不自行拼 Cookie、不读写本地凭证文件。
|
|
282
257
|
|
|
283
258
|
## FileSettingDto 节选(11 字段 + 只读)
|
|
284
259
|
|
|
285
|
-
|
|
260
|
+
完整字段以服务端 DTO 为准。下面只列本 skill 关心的字段:
|
|
286
261
|
|
|
287
262
|
```json
|
|
288
263
|
{
|
|
@@ -315,25 +290,13 @@ CLI 自动从 `.env.local` / ENV 读取并塞进 Cookie。
|
|
|
315
290
|
| 401/403 | — | ETEAMSID 失效/没权限,重跑 `setting login --config <name>` |
|
|
316
291
|
| 5xx | — | 后端挂了,看日志 |
|
|
317
292
|
|
|
318
|
-
## 后端实现位置(参考)
|
|
319
|
-
|
|
320
|
-
- Controller:`eteams-file/src/main/java/com/weaver/teams/file/e10/mvc/web/FileSettingController.java`
|
|
321
|
-
- DTO:`com.weaver.teams.file.e10.dto.FileSettingDto` / `BaseSetDto`
|
|
322
|
-
- 设置项注册:`com.weaver.teams.file.e10.manager.set.FileSetFactory`
|
|
323
|
-
- 前端调用:`weapp-file/src/api/fileSetApi.ts` 中 `fileSetDatas` / `fileSetSave`
|
|
324
|
-
|
|
325
293
|
## POST 注意事项
|
|
326
294
|
|
|
327
|
-
1.
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
`IllegalArgumentException: No enum constant ...` 让整笔事务回滚。
|
|
333
|
-
3. **只 POST 改了的字段**。CLI 用 `field_map.diff` 算出 changed 字段后只发这一份。
|
|
334
|
-
4. **服务端会校验范围**:传超范围值会返回业务异常(status=false / code=500),
|
|
335
|
-
CLI 会原样打印 `detailErrorMessage`。
|
|
336
|
-
5. **操作日志**:`FileOpLogManager` 会记一条 `fileSetting` 日志(管理员可在"操作日志"里看到)。
|
|
295
|
+
1. **保存是逐字段更新,不是覆盖式全量**。只提交的字段会被修改;未指定字段**不会被清空**。
|
|
296
|
+
2. **绝对不能提交只读/虚拟字段**(如 `sysMaxSingleUploadLimitSize`),会直接报错并让整笔事务回滚。
|
|
297
|
+
3. **只提交改了的字段**,CLI 会自动只发变更字段。
|
|
298
|
+
4. **服务端会校验范围**:传超范围值会返回业务异常,CLI 会原样打印错误信息。
|
|
299
|
+
5. **操作日志**:会记一条附件设置日志(管理员可在"操作日志"里看到)。
|
|
337
300
|
# 字段对照表(11 项)
|
|
338
301
|
|
|
339
302
|
> 对应 eteams-file 后端 `BaseSetDto` / `FileSettingDto`。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: weaver-setting-backup
|
|
3
3
|
description: "对话式管理 weapp 后台\"文件设置 → 备份设置\"页面:开关本地备份、列出备份规则、 调整规则路径/周期/启停、删除规则。`backup on` 一句话开启、`backup update --id N --period 720` 一句话调整。覆盖 `POST /api/file/tenant/setting/save`(开关 `sysLocalFileBackup`)+ `FileBackupController` 全部 5 个 CRUD 端点。Use for 备份设置、本地备份、附件备份、备份规则、backupRule、backupPath、备份周期、 文件设置备份、eteams-file 备份、<your-e10-domain>/info/fileSet/backup."
|
|
4
4
|
license: Proprietary
|
|
5
|
-
compatibility: 泛微E10
|
|
5
|
+
compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
|
|
6
6
|
metadata:
|
|
7
7
|
maintainer: unknown
|
|
8
8
|
type: capability
|
|
@@ -23,22 +23,13 @@ metadata:
|
|
|
23
23
|
|
|
24
24
|
### 认证前置(必须)
|
|
25
25
|
|
|
26
|
-
本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent
|
|
26
|
+
本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
|
|
27
27
|
|
|
28
28
|
**使用前必须确保**:
|
|
29
29
|
1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
|
|
30
30
|
2. 已完成登录:`weaver-work-cli auth status` 显示已登录
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
```text
|
|
34
|
-
# OAuth2.0 浏览器授权(推荐)
|
|
35
|
-
weaver-work-cli auth login
|
|
36
|
-
|
|
37
|
-
# 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
|
|
38
|
-
weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
|
|
32
|
+
**登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
|
|
42
33
|
|
|
43
34
|
## When to use
|
|
44
35
|
|
|
@@ -96,7 +87,7 @@ backup delete --id 2 --yes
|
|
|
96
87
|
2. **`prod` 必须 --yes**——防手滑。
|
|
97
88
|
3. **不开开关不能调规则**——`backup update/enable/disable/delete` 在
|
|
98
89
|
`sysLocalFileBackup=false` 时拒绝(关着的备份调规则没意义)。
|
|
99
|
-
4. **period 范围 60-1440
|
|
90
|
+
4. **period 范围 60-1440 分钟**(后端校验);
|
|
100
91
|
CLI 也做同样校验。
|
|
101
92
|
5. **新建规则不能走 CLI**——后端没 `/api/file/create/backup/rule` 端点(前端 bug);
|
|
102
93
|
唯一新建路径是 `backup on` 在无规则时自动建默认。
|
|
@@ -109,7 +100,7 @@ backup delete --id 2 --yes
|
|
|
109
100
|
|
|
110
101
|
1. **操作前必查登录态**
|
|
111
102
|
每次执行业务操作前,确认 CLI 已完成登录:
|
|
112
|
-
- 若 `weaver-work-cli auth status`
|
|
103
|
+
- 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
|
|
113
104
|
- 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
|
|
114
105
|
|
|
115
106
|
2. **查询要简洁**(`show / list` 时的输出格式)
|
|
@@ -174,10 +165,8 @@ backup delete --id 2 --yes
|
|
|
174
165
|
和备份目录都必须是 E10 应用服务器能访问的目录(不能是客户本机的
|
|
175
166
|
`/Users/xxx`、不能是某个应用节点临时目录、不能是其他服务器的远程
|
|
176
167
|
路径),否则后端写不进去。改路径时 agent **必须**在话术里复述这个约束
|
|
177
|
-
- **改"备份目录"前必做本地预校验,不发注定失败的请求** —
|
|
178
|
-
|
|
179
|
-
(`src/main/java/com/weaver/teams/file/e10/manager/file/FileSettingManagerImpl.java:276-302`)
|
|
180
|
-
会拒 5 类路径,agent 改路径前**必须**在 CLI 端先把目标路径跑一遍
|
|
168
|
+
- **改"备份目录"前必做本地预校验,不发注定失败的请求** — 后端会拒 5 类路径,
|
|
169
|
+
agent 改路径前**必须**在 CLI 端先把目标路径跑一遍
|
|
181
170
|
等价校验,任一不过**直接告诉客户"后端会拒:<原因>",让客户重新给路径**,
|
|
182
171
|
**不要**静默发请求让后端报错。5 项校验:
|
|
183
172
|
|
|
@@ -187,9 +176,7 @@ backup delete --id 2 --yes
|
|
|
187
176
|
4. 不能等于源目录(源目录按 `;` 切分后逐个比较)
|
|
188
177
|
5. 不能是源目录的子目录(源目录末尾补 `/` 后取备份路径前 N 位对比)
|
|
189
178
|
|
|
190
|
-
CLI
|
|
191
|
-
`cmd_update` 在 `--backup-path` 显式传值时自动跑,错误打到 stderr 并
|
|
192
|
-
`return 4`,不发请求。常见客户语言:
|
|
179
|
+
CLI 会在 `--backup-path` 显式传值时自动跑这 5 项校验,不通过直接报错返回,不发请求。常见客户语言:
|
|
193
180
|
- "路径要以 / 开头"(CODE_20080)
|
|
194
181
|
- "路径不能含特殊字符 \* ? \" < > |"(CODE_20078)
|
|
195
182
|
- "路径不能含空白 / 分号 / 单引号 / 全角问号"(FILE_PATH 正则)
|
|
@@ -224,11 +211,7 @@ backup delete --id 2 --yes
|
|
|
224
211
|
|
|
225
212
|
## 宿主
|
|
226
213
|
|
|
227
|
-
CLI
|
|
228
|
-
|
|
229
|
-
```text
|
|
230
|
-
python3 scripts/backup_setting.py <cmd> [args]
|
|
231
|
-
```
|
|
214
|
+
CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-backup.<operation>`(操作清单见 SKILL.md 路由表)。
|
|
232
215
|
|
|
233
216
|
|
|
234
217
|
## 与 weaver-setting-attach / weaver-setting-encrypt 的关系
|
|
@@ -244,28 +227,6 @@ python3 scripts/backup_setting.py <cmd> [args]
|
|
|
244
227
|
|
|
245
228
|
## 版本
|
|
246
229
|
|
|
247
|
-
- 0.1.0(2026-08-06)首次创建。
|
|
248
|
-
- 0.2.0(2026-08-06)优化:对话式规则完整内联 6 条(去除外部仓库依赖),加上 backup
|
|
249
|
-
特有"业务前置 + 路径约束 + 典型部署模板"作为规则 6/7 整合;重写"与 attach/encrypt
|
|
250
|
-
关系"段(删开发内部决策);门禁 1 补对话确认说明;加版本号规则。
|
|
251
|
-
- 0.2.1(2026-08-09)优化:规则 3 `show` / `list` 规则详情输出格式改为按列表
|
|
252
|
-
逐项展示,规则名前不再显示 `规则 #<id>`,直接用规则名。
|
|
253
|
-
- 0.2.2(2026-08-09)澄清:业务上后端只支持 1 条"默认备份规则",不能
|
|
254
|
-
新建第二条。规则 6 改写为"只支持 1 条默认规则,不能新增",去掉
|
|
255
|
-
"新建规则没 CLI 入口"的旧表述(之前会让用户去找 weapp 后台手动加,
|
|
256
|
-
实际是后端根本不支持)。
|
|
257
|
-
- 0.2.3(2026-08-09)修 bug + 加预校验:
|
|
258
|
-
- `scripts/backup_api.py 的 `get_rule`` 参数从 `id` 改为 `backupId`(后端
|
|
259
|
-
`FileBackupServiceImpl.getBackupRule:88` 校验的是 `backupId`,传 `id`
|
|
260
|
-
被拒)
|
|
261
|
-
- `scripts/backup_setting.py 的 `cmd_update`` 拉详情时多下沉一层到 `weaForm.data`,
|
|
262
|
-
否则 `backupName` 等字段读到空串
|
|
263
|
-
- 规则 6 加"改备份目录前必做本地预校验":把后端
|
|
264
|
-
`FileSettingManagerImpl.checkBackupPath:276-302` 的 5 项校验
|
|
265
|
-
(`/` 开头 / 硬禁字符 / FILE_PATH 正则 / 不等于源路径 / 非源路径子目录)
|
|
266
|
-
搬到 CLI 端 `_validate_backup_path()`,update 前自动跑,错误直接
|
|
267
|
-
拦在客户端不发请求
|
|
268
|
-
|
|
269
230
|
版本号规则 `x.y.z`:
|
|
270
231
|
- **x 升** — 大重构(接口变化、DTO 结构变化、命令大幅增删)
|
|
271
232
|
- **y 升** — 新增命令、新增子模块、新增业务场景
|
|
@@ -292,7 +253,7 @@ python3 scripts/backup_setting.py <cmd> [args]
|
|
|
292
253
|
|
|
293
254
|
1. **开关是逐字段 update**:只传 `sysLocalFileBackup` 一个字段,后端不会清空
|
|
294
255
|
其它字段(参考 agent memory 中 weaver-setting-attach 的同款经验)。
|
|
295
|
-
2. **开开关 + 无规则 =
|
|
256
|
+
2. **开开关 + 无规则 = 自动建默认规则**:
|
|
296
257
|
```java
|
|
297
258
|
getInitFileBackup(tenantKey, newValue)
|
|
298
259
|
→ 取第一个 LOCAL_STORE 实例 → 构造 BackupRuleCreateParam
|
|
@@ -302,19 +263,12 @@ python3 scripts/backup_setting.py <cmd> [args]
|
|
|
302
263
|
3. **新建规则的端点不存在**——前端 `createBackupRule` 调的是
|
|
303
264
|
`/api/file/create/backup/rule`,后端 `FileBackupController` 里**没有**这个
|
|
304
265
|
端点。前端 bug,CLI 不暴露 `create`。
|
|
305
|
-
4. **period 范围 60-1440
|
|
266
|
+
4. **period 范围 60-1440 分钟**——后端校验。
|
|
306
267
|
5. **delete 是批量**——body 是 `{ids: [N1, N2, ...]}`;CLI 一次只支持一个
|
|
307
268
|
id,多个需要循环。
|
|
308
269
|
6. **enable 接口的字段是 `enableStatus`(Boolean),不是 `enabled`**——后端
|
|
309
270
|
`BackupRuleEnableParam` 用 `enableStatus` 字段。
|
|
310
271
|
|
|
311
|
-
## 后端实现位置
|
|
312
|
-
|
|
313
|
-
- Controller:`eteams-file/src/main/java/com/weaver/teams/file/e10/mvc/web/FileBackupController.java`
|
|
314
|
-
- 开关注册:`eteams-file/src/main/java/com/weaver/teams/file/e10/manager/set/impl/SysLocalFileBackup.java`
|
|
315
|
-
- 规则 CRUD:`eteams-file/src/main/java/com/weaver/teams/file/e10/service/web/impl/FileBackupServiceImpl.java`
|
|
316
|
-
- Param/DTO:`eteams-file/src/main/java/com/weaver/teams/file/e10/param/BackupRule*.java`
|
|
317
|
-
- 前端 UI:`weapp-file/src/components/pc/FileSet/components/BackupSet/`
|
|
318
272
|
# 字段说明
|
|
319
273
|
|
|
320
274
|
## 顶层:本地备份开关
|
|
@@ -322,7 +276,7 @@ python3 scripts/backup_setting.py <cmd> [args]
|
|
|
322
276
|
- **DTO 字段**:`sysLocalFileBackup`(Boolean)
|
|
323
277
|
- **GET 端点**:`POST /api/file/tenant/setting`
|
|
324
278
|
- **SAVE 端点**:`POST /api/file/tenant/setting/save`(只传这一个字段)
|
|
325
|
-
- **特殊行为**:开时如果当前无规则,**自动建默认规则**(用第一个本地存储实例的 path
|
|
279
|
+
- **特殊行为**:开时如果当前无规则,**自动建默认规则**(用第一个本地存储实例的 path)
|
|
326
280
|
|
|
327
281
|
## 备份规则字段
|
|
328
282
|
|
|
@@ -360,13 +314,12 @@ python3 scripts/backup_setting.py <cmd> [args]
|
|
|
360
314
|
|
|
361
315
|
## ⚠️ 已知坑
|
|
362
316
|
|
|
363
|
-
1. **没有"新建规则"
|
|
364
|
-
|
|
365
|
-
后端没实现,是个**前端 bug**。CLI 不暴露 `create` 子命令。
|
|
317
|
+
1. **没有"新建规则"接口**——后端没有新建规则端点(前端页面调了但后端没实现,是个**前端 bug**)。
|
|
318
|
+
CLI 不暴露 `create` 子命令。
|
|
366
319
|
2. **唯一新建路径**:`backup on` 开启本地备份时如果无规则会自动建默认
|
|
367
320
|
(用第一个本地存储实例的 path)。如果租户没有本地存储实例,
|
|
368
|
-
|
|
321
|
+
后端会报"没有可用的本地存储"错误。
|
|
369
322
|
3. **规则操作需要本地备份开启**——CLI 在 `update/enable/disable/delete` 前
|
|
370
323
|
会 GET 一次 settings 检查 `sysLocalFileBackup`,没开会拒绝并提示先 `on`。
|
|
371
|
-
4. **period 范围 60-1440
|
|
324
|
+
4. **period 范围 60-1440**(后端校验),
|
|
372
325
|
CLI 也做同样校验;非整数倍数的"1440"会被四舍五入(按分钟)。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: weaver-setting-encrypt
|
|
3
3
|
description: "对话式修改 weapp 后台\"文件设置 → 加解密设置\"页面的全部 8 个子字段(加解密功能开关、 第三方加解密软件、软件地址、加解密场景、加密/未加密 × 上传/下载 4 个文件处理字段)。 通过自然语言 / `setting-encrypt set --item key=value` 即可完成读取全量 → modify(保留原值)→ diff 让用户确认 → POST 落库。查询优先使用 `GET /api/file/thirdPlugEncDec/config`,旧版本 404 时兼容 `POST /api/file/tenant/setting`;保存使用 `POST /api/file/tenant/setting/save`。Use for 加解密、加密场景、华途、天锐绿盾、亿赛通、文件设置加解密、 <your-e10-domain>/info/fileSet/encryption."
|
|
4
4
|
license: Proprietary
|
|
5
|
-
compatibility: 泛微E10
|
|
5
|
+
compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
|
|
6
6
|
metadata:
|
|
7
7
|
maintainer: unknown
|
|
8
8
|
type: capability
|
|
@@ -13,7 +13,7 @@ metadata:
|
|
|
13
13
|
|
|
14
14
|
# weaver-setting-encrypt
|
|
15
15
|
|
|
16
|
-
>
|
|
16
|
+
> 说明:第三方软件名称提交前会转换为后端编码,亿赛通提交为 `est`;同时兼容旧版本查询接口。
|
|
17
17
|
|
|
18
18
|
让"文件设置 → 加解密设置"页面**用对话就能改**。背后调两条 HTTP 接口:
|
|
19
19
|
- `GET /api/file/thirdPlugEncDec/config`(新版本专用端点,读完整 `EncryptionSettings`)
|
|
@@ -28,22 +28,13 @@ metadata:
|
|
|
28
28
|
|
|
29
29
|
### 认证前置(必须)
|
|
30
30
|
|
|
31
|
-
本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent
|
|
31
|
+
本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
|
|
32
32
|
|
|
33
33
|
**使用前必须确保**:
|
|
34
34
|
1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
|
|
35
35
|
2. 已完成登录:`weaver-work-cli auth status` 显示已登录
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
```text
|
|
39
|
-
# OAuth2.0 浏览器授权(推荐)
|
|
40
|
-
weaver-work-cli auth login
|
|
41
|
-
|
|
42
|
-
# 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
|
|
43
|
-
weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
|
|
37
|
+
**登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
|
|
47
38
|
|
|
48
39
|
## When to use
|
|
49
40
|
|
|
@@ -67,8 +58,7 @@ CLI 软链名 `setting-encrypt`(用全名避开与 `weaver-setting-attach` 的
|
|
|
67
58
|
|
|
68
59
|
## 8 个支持字段(扁平 key)
|
|
69
60
|
|
|
70
|
-
CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO
|
|
71
|
-
[setting-encrypt-field-map.md](setting-encrypt-field-map.md)。
|
|
61
|
+
CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完整别名表见本文「字段对照表」章节。
|
|
72
62
|
|
|
73
63
|
> **历史说明**:早期版本支持 13 个字段(含加密机分支:`encryptMachineType` /
|
|
74
64
|
> `encryptIp` / `encryptPort` / `encryptAppID` / `encryptAppKey`)。前端下拉已移除
|
|
@@ -78,7 +68,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
78
68
|
| 别名(key) | DTO 字段 | 类型 | 备注 | 依赖 |
|
|
79
69
|
|---|---|---|---|---|
|
|
80
70
|
| `open-encrypt` | `openEncryptFunction` | bool | 加解密功能开关 | — |
|
|
81
|
-
| `encrypt-plugs` | `encryptPlugs` | enum | 后端编码:`est`=亿赛通、`tipray`=天锐绿盾、`vtext
|
|
71
|
+
| `encrypt-plugs` | `encryptPlugs` | enum | 后端编码:`est`=亿赛通、`tipray`=天锐绿盾、`vtext`=华途(对接方式与限制见下方第三方软件说明) | — |
|
|
82
72
|
| `encrypt-url` | `encryptUrl` | str (URL) | 软件地址 | — |
|
|
83
73
|
| `encrypt-scene` | `encryptScene` | enum | 场景:`uploadAndDownloadEncrypt` / `uploadAndDownloadNotProcessed` / `custom` | — |
|
|
84
74
|
| `encrypt-file-upload` | `encryptFileUpload` | enum (str) | 加密文件-上传:`0`=解密 `1`=加密 其它=不处理 | `encrypt-scene=custom` |
|
|
@@ -94,10 +84,8 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
94
84
|
"改前值 / 改后影响 / 明确询问" 三步**(见对话式规则 3),得到
|
|
95
85
|
"改 / 确认 / 好的" 之类回复后才调 CLI。
|
|
96
86
|
2. **`prod` 必加 --yes**——生产环境操作时必须同时带 `--yes` 才会发 POST。
|
|
97
|
-
3. **整对象 POST,子字段 merge**——`encryptionSettings`
|
|
98
|
-
|
|
99
|
-
字段前 `toString()`(整对象变 JSON 串)。CLI 必须 GET 拉整对象 → 改子字段 merge
|
|
100
|
-
进 `current` → **整对象 toString 一起 POST**。**不能只 POST 改了的子字段**
|
|
87
|
+
3. **整对象 POST,子字段 merge**——`encryptionSettings` 是嵌套对象,后端按**整对象**接收并保存。
|
|
88
|
+
CLI 必须 GET 拉整对象 → 改子字段 merge 进 `current` → **整对象一起 POST**。**不能只 POST 改了的子字段**
|
|
101
89
|
(后端不支持增量,会覆盖整对象);也不能"只 diff 几个 key"就 POST(merge 时
|
|
102
90
|
其他子字段会丢)。
|
|
103
91
|
4. **保存后再次读取校验**——POST 完按同样的端点兼容逻辑重新读取并比对。
|
|
@@ -109,7 +97,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
109
97
|
|
|
110
98
|
### 后端接口执行规则
|
|
111
99
|
|
|
112
|
-
|
|
100
|
+
加解密设置必须通过 CLI 的加解密设置操作完成,禁止通过浏览器表单或浏览器自动化写入。浏览器仅可参与非 XiaoE 环境的 `weaver-work-cli auth login` 登录授权;XiaoE 环境不得回退浏览器登录。
|
|
113
101
|
|
|
114
102
|
- 查询接口优先是 `GET /api/file/thirdPlugEncDec/config`;旧版本返回 404 时,使用
|
|
115
103
|
`POST /api/file/tenant/setting` 读取 `data.encryptionSettings`。保存接口是
|
|
@@ -117,7 +105,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
117
105
|
- 保存前必须 GET 读取完整的 8 字段对象,合并目标字段后整体保存,不能只提交变更字段。
|
|
118
106
|
- 保存后必须重新 GET,确认 `encryptPlugs`、`encryptUrl`、`encryptScene` 与目标值一致;否则明确报告“未保存成功”。
|
|
119
107
|
- 下拉列表出现“亿赛通”仅说明前端提供该选项,不代表当前租户已经保存亿赛通;接口回读为空才是未配置。
|
|
120
|
-
-
|
|
108
|
+
- 用户给出的加解密服务地址若不是无歧义的 URL(例如只有主机片段、缺协议头),应先确认用户要写入的完整地址(协议 + 主机),不能由 agent 静默猜测补全。
|
|
121
109
|
- 用户明确表达“设置为 X”是修改意图;在提交外部写入前仍需按对话确认规则取得明确确认。确认一旦收到,应继续当前待保存流程,不要再次结束在“等待确认”。
|
|
122
110
|
|
|
123
111
|
## 对话式交互规则
|
|
@@ -127,7 +115,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
127
115
|
|
|
128
116
|
1. **操作前必查登录态**
|
|
129
117
|
每次执行业务操作前,确认 CLI 已完成登录:
|
|
130
|
-
- 若 `weaver-work-cli auth status`
|
|
118
|
+
- 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
|
|
131
119
|
- 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
|
|
132
120
|
|
|
133
121
|
2. **查询要简洁**(`show` / 读设置时的输出格式)
|
|
@@ -178,8 +166,8 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
178
166
|
- 华途对接出问题 → 找华途侧开发 / 客户运维
|
|
179
167
|
- 亿赛通对接出问题 → 找亿赛通侧开发 / 客户运维
|
|
180
168
|
- 天锐绿盾没生效 → 检查应用服务器本地是否安装(文档:见 setting-encrypt-third-party-plugins.md 一节)
|
|
181
|
-
-
|
|
182
|
-
- **集成官方支持之外的插件**:走 E10
|
|
169
|
+
- **只负责 E10 后台配置项,不管远程服务**;不要试图通过改 E10 设置来"修"
|
|
170
|
+
- **集成官方支持之外的插件**:走 E10 二开流程评估接入
|
|
183
171
|
- **后端返回致命错误**(已知):不重试,直接告诉客户失败原因 + 正确路径
|
|
184
172
|
- 话术模板:
|
|
185
173
|
"这里改不了:<原因>。需要去<正确路径>那里先做<前置操作>。
|
|
@@ -188,11 +176,7 @@ CLI 接受三种写法:snake-case 别名 / 中英别名 / DTO 字段名。完
|
|
|
188
176
|
|
|
189
177
|
## 宿主
|
|
190
178
|
|
|
191
|
-
CLI
|
|
192
|
-
|
|
193
|
-
```text
|
|
194
|
-
python3 scripts/encrypt_setting.py <cmd> [args]
|
|
195
|
-
```
|
|
179
|
+
CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-encrypt.<operation>`(操作清单见 SKILL.md 路由表)。
|
|
196
180
|
|
|
197
181
|
|
|
198
182
|
## 与 weaver-setting-attach 的关系
|
|
@@ -208,20 +192,6 @@ python3 scripts/encrypt_setting.py <cmd> [args]
|
|
|
208
192
|
|
|
209
193
|
## 版本
|
|
210
194
|
|
|
211
|
-
- 0.1.0(2026-08-06)首次创建。覆盖 eteams-file 截图"加解密设置" Tab 的 13 字段。
|
|
212
|
-
- 0.2.0(2026-08-06)优化:对话式规则完整内联(去除外部仓库依赖)、字段表加"依赖"列、
|
|
213
|
-
软链名统一为 `setting-encrypt`、门禁 4 表述修正、删除开发内部决策泄露、版本号规则确立。
|
|
214
|
-
- 0.2.1(2026-08-06)业务知识沉淀:新建 `setting-encrypt-third-party-plugins.md`,写入 3 个官方
|
|
215
|
-
插件对接步骤 / 限制 / 二开联系人;修正 `encryptPlugs` 常见值("三未信安"→"天锐绿盾 / 华途");
|
|
216
|
-
对话式规则 6 增加"远程服务/插件对接问题"与"集成官方支持之外插件"两类引导。
|
|
217
|
-
- 1.0.0(2026-08-09)字段大删减:前端 UI 下拉已移除加密机(`encryptMachine`)选项,
|
|
218
|
-
后端 `EncryptionSettings.toString()` 也漏了 `encryptMachineType` 输出。删除 5 个
|
|
219
|
-
加密机专属字段(`encrypt-machine-type` / `encrypt-ip` / `encrypt-port` / `encrypt-app-id` /
|
|
220
|
-
`encrypt-app-key`),CLI 字段表从 13 缩到 8。`encryptPlugs` 现在固定为华途 / 天锐绿盾 /
|
|
221
|
-
亿赛通 3 个值;3 个软件分支的配置项完全相同,不再有"加密机分支"差异。
|
|
222
|
-
- 1.1.7(2026-09-02)明确只能通过后端接口执行加解密设置,移除浏览器写入流程,保留未保存状态判定和歧义 URL 处理。
|
|
223
|
-
- 1.1.8(2026-09-02)兼容旧版本部署中 `thirdPlugEncDec/config` 不存在的情况:查询和保存后校验在专用接口 404 时改用 `tenant/setting` 的 `encryptionSettings`。
|
|
224
|
-
|
|
225
195
|
版本号规则 `x.y.z`:
|
|
226
196
|
- **x 升** — 大重构(GET/POST 模式变化、DTO 结构变化、字段大幅增删)
|
|
227
197
|
- **y 升** — 新增字段、新增命令、新增子模块
|
|
@@ -242,7 +212,7 @@ python3 scripts/encrypt_setting.py <cmd> [args]
|
|
|
242
212
|
|
|
243
213
|
## EncryptionSettings 完整字段(8 子字段)
|
|
244
214
|
|
|
245
|
-
>
|
|
215
|
+
> **字段大删减**:从 13 缩到 8。前端 UI 下拉已移除加密机
|
|
246
216
|
> (`encryptMachine`) 选项,因此删除 `encryptMachineType` / `encryptIp` /
|
|
247
217
|
> `encryptPort` / `encryptAppID` / `encryptAppKey` 5 个加密机专属字段。
|
|
248
218
|
|
|
@@ -286,30 +256,20 @@ GET 端点返回的是**扁平 dict**(8 子字段直接平铺);POST 时整
|
|
|
286
256
|
校验时还原为普通 URL。
|
|
287
257
|
4. **license 控制**:没 `ENC_DEC` license 时 GET 返回的 `openEncryptFunction=false`,
|
|
288
258
|
且整个对象字段大多为空。
|
|
289
|
-
5. **encryptScene
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
覆盖这 4 个字段(实际行为见 `StoThirdPlugEncDecProcess.java:755-770`)。
|
|
293
|
-
|
|
294
|
-
## 后端实现位置
|
|
295
|
-
|
|
296
|
-
- Controller:`eteams-file/src/main/java/com/weaver/teams/file/e10/mvc/web/thirdplugencdec/FileThirdPlugEncDecController.java`
|
|
297
|
-
- 设置项注册:`eteams-file/src/main/java/com/weaver/teams/file/e10/manager/set/impl/EncryptionSettings.java`
|
|
298
|
-
- 业务逻辑:`eteams-file/src/main/java/com/weaver/teams/file/e10/manager/storage/chain/process/StoThirdPlugEncDecProcess.java`
|
|
299
|
-
- DTO:`eteams-file/src/main/java/com/weaver/teams/file/e10/dto/BaseSetDto.java`(嵌套类 `EncryptionSettings`)
|
|
300
|
-
- 前端 UI:`weapp-file/src/components/pc/FileSet/components/Encryption/index.tsx`
|
|
259
|
+
5. **encryptScene 校验**:后端对值做忽略大小写比对;不在枚举内的值会被忽略(不抛错)。
|
|
260
|
+
6. **4 个文件处理字段仅 encryptScene=custom 时生效**:其它场景下后端用预设值覆盖这 4 个字段。
|
|
261
|
+
|
|
301
262
|
# 字段对照表(8 个子字段)
|
|
302
263
|
|
|
303
|
-
>
|
|
304
|
-
> 整对象 toString() 存到 `FileObjTenantPermission.param` 字段。
|
|
264
|
+
> 对应后端「加密设置」嵌套对象,整对象序列化后保存。
|
|
305
265
|
> CLI 接受 snake-case 别名 / 中文别名 / DTO 字段名(驼峰)。
|
|
306
266
|
|
|
307
267
|
> **数据结构说明**:后端 GET `/api/file/thirdPlugEncDec/config` 返回的是**扁平的
|
|
308
268
|
> EncryptionSettings 字典**(8 个子字段直接平铺,没有外层 `encryptionSettings` 包装)。
|
|
309
269
|
> CLI 内部统一用扁平 dict;POST 时整个扁平对象作为 `encryptionSettings` 字段的值
|
|
310
|
-
>
|
|
270
|
+
> 一起发出去(参考本文「接口协议」章节)。
|
|
311
271
|
|
|
312
|
-
>
|
|
272
|
+
> **字段大删减**:从 13 缩到 8。前端 UI 下拉已移除加密机
|
|
313
273
|
> (`encryptMachine`) 选项,后端 `EncryptionSettings.toString()` 也漏了
|
|
314
274
|
> `encryptMachineType` 输出,因此删除 5 个加密机专属字段
|
|
315
275
|
> (`encrypt-machine-type` / `encrypt-ip` / `encrypt-port` / `encrypt-app-id` /
|
|
@@ -333,9 +293,9 @@ GET 端点返回的是**扁平 dict**(8 子字段直接平铺);POST 时整
|
|
|
333
293
|
- **后端值**:`est`=亿赛通 / `tipray`=天锐绿盾 / `vtext`=华途
|
|
334
294
|
- **输入别名**:CLI 也接受 `亿赛通` / `天锐绿盾` / `华途`,提交前会转换为上述编码
|
|
335
295
|
- **对接/限制**:
|
|
336
|
-
-
|
|
296
|
+
- 详细对接步骤与限制需走 E10 二开流程获取(联系管理员)
|
|
337
297
|
- 天锐绿盾**仅支持本地安装**;远程调用方式需走 E10 二开流程
|
|
338
|
-
-
|
|
298
|
+
- 华途/亿赛通都是远程服务,远程服务的确认与联调由客户/厂商侧负责
|
|
339
299
|
- **示例**:`--item encrypt-plugs=亿赛通`(实际提交 `encryptPlugs=est`)
|
|
340
300
|
|
|
341
301
|
## 3. 软件地址
|
|
@@ -354,7 +314,7 @@ GET 端点返回的是**扁平 dict**(8 子字段直接平铺);POST 时整
|
|
|
354
314
|
- **中文**:`加解密场景` / `场景`
|
|
355
315
|
- **DTO 字段**:`encryptScene`
|
|
356
316
|
- **类型**:enum
|
|
357
|
-
-
|
|
317
|
+
- **值**(前端实际只有 3 个):
|
|
358
318
|
|
|
359
319
|
| 英文 id | 中文 | 含义 |
|
|
360
320
|
|---|---|---|
|