PR REVIEW EVIDENCE

feat(entity-log): 公司旧备份实体日志接入在线查询(禅道 #3442)

hemo-backend #1382

  1. PR 提交时间2026-10-09 16:13:18
  2. 审核结束时间2026-10-09 16:31:02
  3. 固定版本4e529d0e4569
  4. 模型链gpt-5.6-terra → gpt-5.6-terra
  5. 门禁blocked
  6. 结果success

难度分

87
  • code_volume87涉及 29 个变更文件,包含大规模新导入命令、查询改造、迁移、测试和运维工具。
  • architecture_complexity86同时连接本地恢复库、生产路由库和 OSS,并改动归档路由、冷热合并、权限过滤与分页协议。
  • domain_knowledge89需要理解医疗审计日志留存、机构级可见性、排班记录、归档完整性和数据恢复约束。
  • impact_scope82中心化实体日志查询和排班修改记录面向全部机构,且涉及历史日志导入与存储。
  • risk_level91变更处理大量历史审计数据、在线查询权限和生产级备份恢复操作,错误可能造成审计缺失、越权或数据安全风险。

完成分

91
  • correctness80最终风险固定扣分:medium 1×20;合计 -20
  • completeness100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • code_quality100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • security80最终风险固定扣分:medium 1×20;合计 -20
  • details100本次静态审核未发现该维度的确认问题;不代表绝对完善

固定范围

目标分支 SHA
f5e51f9cd2fcacd4a376708fadd694af078d90fe
共同祖先 SHA
d634fbd39fb172de16835ee40f12e7597e97e7a8
PR head SHA
4e529d0e45690b12b3474e3d02eb515d9b275890
轻量检查
passed · 轻量检查通过

风险与证据

medium · 已确认 · 已计入完成分

旧来源变更后游标的来源序号不再稳定

新增或回退一个旧备份来源后,正在翻页查看历史实体日志的人员可能看到重复记录或遗漏记录,影响审计追溯的完整性。

证据:src/main/java/com/data/hemodialysis/service/entitylogarchive/EntityUpdateLogArchiveQueryFacade.java:214 orders.put(sorted.get(i), i + 1);

建议:在游标中保存稳定的来源标识并据此比较,或为来源建立不可变的持久排序键;不要把随来源集合变化的排序位置作为游标边界。

medium · 已确认 · 已计入完成分

备份试点以 root 身份执行未校验的远程安装代码

若下载源或其依赖供应链被篡改,执行试点的服务器可能被接管,历史日志、数据库访问能力和 OSS 凭据可能泄露或被篡改。

证据:scripts/ops/legacy_entity_log_oss_pilot.py:183 with urllib.request.urlopen('https://bootstrap.pypa.io/pip/pip.pyz', timeout=60) as response: pip_app.write_bytes(response.read()) result = subprocess.run([sys.executable, str(pip_app), 'install', '--disable-pip-version-check', '--no-compile', '--target', str(sdk), 'oss2==2.19.1'], capture_output=True, timeout=300)

建议:将经审核的 pip 启动文件、oss2 及全部依赖作为受控制品提供,并在执行前校验固定 SHA-256;安装时启用强制哈希校验,避免在 root 进程中进行运行时依赖解析和下载。