CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
37 lines
3.3 KiB
Markdown
37 lines
3.3 KiB
Markdown
# 钉钉审批客户端安装任务
|
||
|
||
用户提供本文件或链接,即表示授权你为当前用户安装或更新“钉钉审批”客户端、Skill 和名为 `dingtalk-approval` 的 MCP;不代表授权执行任何审批写操作。
|
||
|
||
## 固定发布入口
|
||
|
||
- 版本:`{{VERSION}}`
|
||
- 安装器:`{{INSTALLER_URL}}`
|
||
- 安装器 SHA-256:`{{INSTALLER_SHA256}}`
|
||
- 发布公钥:`{{PUBLIC_KEY_URL}}`
|
||
- 公钥 SHA-256:`{{PUBLIC_KEY_SHA256}}`
|
||
- 公钥编号:`{{RELEASE_KEY_ID}}`
|
||
- 签名清单:`{{MANIFEST_URL}}`
|
||
- 清单签名:`{{MANIFEST_SIGNATURE_URL}}`
|
||
- 统一网关:`{{GATEWAY_URL}}`
|
||
- Node.js:`>=22.13.0`
|
||
|
||
首次安装通过上述 HTTPS 地址和固定 SHA-256 建立信任;安装器随后必须使用固定公钥验证 Ed25519 清单签名和全部发布物哈希。任一 URL、证书、签名或哈希不匹配时立即停止。不得索取 AppKey、AppSecret、AuthoritySecret、CorpId、userId、员工号、Cookie 或 Token。
|
||
|
||
## 执行
|
||
|
||
1. 在仅当前用户可访问的临时目录下载安装器和发布公钥,分别核对上述 SHA-256。
|
||
2. 执行以下唯一通用安装入口,并读取其 JSON 结果:
|
||
|
||
```text
|
||
node <已校验的安装器路径> install --manifest-url {{MANIFEST_URL}} --public-key <已校验的公钥路径> --json
|
||
```
|
||
|
||
3. 安装器会立即尝试准备登录。读取返回的 `postInstall`,不得等到用户第一次查询审批:若状态为 `authorization_required`,必须把 `authChallenge.directUrl` 原样写入当前回复;若为 `authenticated`,直接继续验证;若为 `unavailable`,保留安装并在 MCP 加载后调用 `approval_login` 重试。不得声称链接已通过其他渠道推送。
|
||
4. 按当前 Agent 的官方方式安装返回的 `skillPath`,并使用 `mcpConfig` 只新增或替换名为 `dingtalk-approval` 的本地 stdio MCP。安装器本身不会猜测或修改 Agent 的私有配置。
|
||
5. 如果当前 Agent 要求信任本地连接器,请完成其官方信任流程。连接器不能热加载时,新建会话或完整重启 Agent,并恢复本节尚未完成的登录步骤。
|
||
6. 用户完成网页授权后调用 `approval_login`。工具不会通过其他消息通道自动推送链接,必须把 `content.text` 中的完整登录 URL 原样写入当前回复。然后按 `postInstall.verifyTool` 只读调用 `approval_list_todos`,确认钉钉 OA 与薪福通均可读取。成功响应包含 `onboarding.firstRun=true` 时,把其中的简短示例和安全提示展示一次,但不要自动执行示例。安装阶段不得处理审批,也不得在登录和双来源验证完成前声称“已可使用”。
|
||
|
||
更新时重复执行同一安装入口;安装器会保留 OAuth 登录会话,稳定 Bridge 路径不会随 Node/NVM 版本改变。更新成功后重新连接名为 `dingtalk-approval` 的 MCP;Agent 不能单独重启连接器时,新建会话或重启 Agent。卸载时先从 Agent 删除同名条目,再执行安装结果中的 `cliPath uninstall --yes --json`。卸载默认清除运行时、Skill、安装记录和 OAuth 会话。
|
||
|
||
授权页面会先展示请求客户端、回调域名、权限范围或设备授权码。应让用户本人核对并确认,不得替用户自动提交 consent。网关短暂不可用时保留现有登录状态并稍后重试,不要删除会话文件或主动要求用户重新授权。
|