Files
ai-contract-platform/project-docs/electronic-signature-esign-operations-runbook-2026-08-25.md
T
yuqei 1d85329a6a
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 9m12s
Build and Test Quality Gate / Isolated Alibaba and Tencent KMS gateway (pull_request) Failing after 4m53s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 24m55s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 8m42s
feat: deliver governed contract platform and async AI tasks
2026-08-26 12:53:47 +08:00

4.5 KiB

e签宝电子签署连接器运维手册

日期:2026-08-25

1. 模式与配置

本地验收:

ELECTRONIC_SIGNATURE_PROVIDER=development_mock
ELECTRONIC_SIGNATURE_ENVIRONMENT=sandbox
ELECTRONIC_SIGNATURE_LEGAL_EFFECT_ENABLED=false
ELECTRONIC_SIGNATURE_RETURN_URL=http://localhost:3000/contracts

生产配置至少包括:

ELECTRONIC_SIGNATURE_PROVIDER=esign_saas_v3
ELECTRONIC_SIGNATURE_ENVIRONMENT=production
ELECTRONIC_SIGNATURE_LEGAL_EFFECT_ENABLED=true
ELECTRONIC_SIGNATURE_ESIGN_BASE_URL=https://openapi.esign.cn
ELECTRONIC_SIGNATURE_ESIGN_APP_ID=<secret-injected-app-id>
ELECTRONIC_SIGNATURE_ESIGN_APP_SECRET=<secret-injected-app-secret>
ELECTRONIC_SIGNATURE_CALLBACK_URL=https://<contract-api-host>/api/v1/integrations/electronic-signature/esign/callback
ELECTRONIC_SIGNATURE_RETURN_URL=https://<web-host>/contracts
ELECTRONIC_SIGNATURE_IDENTITY_HASH_SECRET=<independent-random-secret-at-least-32-chars>

生产中 App Secret 与账号摘要密钥必须由密钥管理服务或只读 secret 文件注入,不得提交到 Git、镜像或工单。切换配置前执行 /api/v1/runtime/config-check,任何 electronic-signature 错误都应阻止发布。

2. 上线顺序

  1. 备份数据库并执行 alembic upgrade head,确认 head 为 20260825_0064。
  2. 先以 legal_effect=false 启动,检查提供方状态、健康检查与回调公网连通性。
  3. 在隔离租户完成一个个人签署和一个企业经办人签署,覆盖拒签与过期。
  4. 对已签文件计算 SHA-256,确认页面存证记录的 local_hash_verified=true。
  5. 验证重复回调只产生一个业务状态变化;停用回调后以“同步状态与证据”完成补偿。
  6. 由法务、安全和业务负责人共同签署发布记录,再启用法律效力开关并滚动重启。

3. 日常监控

建议至少监控:

  • 按状态与租户统计签署流程数量、creating/signing 停留时长和完成率。
  • esign_transport_error、上传/转换超时、回调 401、回调 5xx、证据下载失败和哈希不一致。
  • 已完成但 evidence_status != synced 的流程。
  • 已完成且 legal_effect=true,但合同因正文变化未进入 signed 的流程。
  • 回调接收时间与提供方事件时间差、主动查询调用量和提供方限流。

告警与日志不得包含原始签署账号、签署 URL、App Secret、回调原文或已签文件正文。

4. 常见故障

提供方请求失败

保留流程错误码和 trace ID,确认官方服务状态、出口网络、App ID、时钟和签名配置。不要直接在数据库把流程改成完成;恢复后使用主动同步。

回调验签失败

检查 e签宝控制台回调地址、App ID、服务器时钟、代理是否改写请求体或查询参数。401 应保持失败,禁止临时关闭验签。

签署完成但证据失败

点击“同步状态与证据”重拉。若为 signed_artifact_hash_mismatch,隔离该证据包,保留提供方流程 ID 与本地摘要,联系供应商核验,不得改成 synced。

合同未进入已签署

确认提供方模式为生产且法律效力开关开启、完成状态已经验证、合同发起时为 approved,并检查 contract_version_changed_before_completion。正文变化时应重新审批并发起新流程。

签署链接遗失

管理员重新输入对应签署人的原始手机号或邮箱。系统只比对带密钥摘要,匹配后向提供方实时获取新链接;禁止从日志或数据库寻找旧链接。

5. 回退

  1. 先设置 ELECTRONIC_SIGNATURE_LEGAL_EFFECT_ENABLED=false 并滚动重启,停止新流程改变合同状态。
  2. 若需完全停止发起,设置 ELECTRONIC_SIGNATURE_PROVIDER=disabled;保留数据库和已下载证据供查询。
  3. 不删除进行中流程,不撤销已产生的第三方签署与存证;按企业制度在提供方控制台处理撤销或终止。
  4. 数据库降级只允许在确认三张新表为空且完成备份后执行;常规故障不要执行 downgrade。
  5. 故障恢复后先在隔离租户使用 legal_effect=false 重验,再逐步恢复生产开关。

6. 审计证据清单

  • 应用和环境配置审批记录(不含 secret)
  • 合同 ID、版本 ID、发起时正文 SHA-256
  • 提供方流程 ID、状态事件摘要、验签结果与时间戳
  • 脱敏签署人快照及身份验证状态
  • 已签文件/证书 SHA-256、存证交易标识、哈希比对结果
  • 主动补偿、失败处置、密钥轮换和发布/回退审批记录