docs: 明确 OSI 访问为 host+proxy 组合及代理语义

- socks5_proxy 扶正为必填(OSI 主机在内网、不可直连,经 SOCKS5 到达)
- 作用域限定:代理仅用于 OSI 客户端,PHIS 走直连
- 访问语义:非空即强制走代理、不因代理故障回退直连,空才直连;
  代理不通按网络错误如实失败,交重试/熔断处理

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-05-30 15:53:14 +08:00
co-authored by Claude Opus 4.8
parent 6204da871e
commit 4594f02378
+8 -2
View File
@@ -200,14 +200,15 @@ deliver-worker source mapping osi.Client
```yaml ```yaml
# === OSI 平台 === # === OSI 平台 ===
osi_base_url: "http://<hostname>" # 不含 /osi/api # 访问模式:OSI 主机在内网、不可直连,必须经 SOCKS5 代理(host+proxy 组合,与 chis_upload 一致)
osi_base_url: "http://<内网hostname:port>" # OSI 主机内网地址,不含 /osi/api
osi_org_code: "<机构社会信用代码>" osi_org_code: "<机构社会信用代码>"
osi_user_name: "<平台分配用户名/DSFMC>" osi_user_name: "<平台分配用户名/DSFMC>"
osi_ask: "<平台下发密钥,仅参与签名>" # 敏感,建议走环境变量 osi_ask: "<平台下发密钥,仅参与签名>" # 敏感,建议走环境变量
osi_device_sn: "<设备序列号>" osi_device_sn: "<设备序列号>"
osi_operate_user: "<默认责任医生ID>" # 可被任务覆盖 osi_operate_user: "<默认责任医生ID>" # 可被任务覆盖
osi_timeout_sec: 20 osi_timeout_sec: 20
socks5_proxy: "" # 可选,保留 socks5_proxy: "<ip:port>" # 必填:到达 OSI 内网主机的唯一通路,留空才直连
# === PHIS 任务源 === # === PHIS 任务源 ===
phis_base_url: "..." phis_base_url: "..."
@@ -226,6 +227,11 @@ circuit_fail_threshold: 5
circuit_sleep_sec: 60 circuit_sleep_sec: 60
``` ```
> **host + proxy 组合是固定访问方式,不是可选项**:参考 chis_upload 用 `chis_host=172.29.20.71:9002` + `socks5_proxy=192.168.3.148:11003`,OSI 主机同样位于内网、只能经 SOCKS5 代理访问。传输层(移植自 chis_upload 的 `http_client.go`)已内建 SOCKS5 拨号支持。
> 注意作用域:`socks5_proxy` **仅作用于 OSI 客户端**;PHIS 任务源走各自地址直连(chis_upload 里 PHIS 是公网 `163.177.185.170:4000`,不经代理),不要把 PHIS 流量也塞进该代理。
>
> **访问语义(固定,不做"智能回退")**:`socks5_proxy` 非空即强制走代理、**不因代理故障回退直连**;空才直连。初始化仅校验代理地址格式,不探测连通性;代理不通时请求按网络错误如实失败,交由重试/熔断处理,以暴露"代理故障"而非掩盖成"主机不可达"。
**已删除**(相比旧项目):`sm2_pub_key`、`cookie_ttl`、`chrome_payload_compat_enable`、`health_record_debug_log`、`api_trace_*`、登录账号密码、role hint。 **已删除**(相比旧项目):`sm2_pub_key`、`cookie_ttl`、`chrome_payload_compat_enable`、`health_record_debug_log`、`api_trace_*`、登录账号密码、role hint。
> 敏感项 `osi_ask` 不写进仓库配置,按 AGENTS.md「不硬编码密钥」走环境变量或部署密文。 > 敏感项 `osi_ask` 不写进仓库配置,按 AGENTS.md「不硬编码密钥」走环境变量或部署密文。