Files
Nexus/docs/audit/2026-06-02-push-refactor.md
T
2026-06-02 08:14:09 +08:00

3.1 KiB
Raw Blame History

审计记录 — 推送页重构 B0B6

审计信息

  • 日期: 2026-06-02
  • 审计人: Cursor Agent
  • 触发原因: 推送页重构 + M2 独立 WS + M9 清理 + 全量预览

审计范围(实际改动文件清单)

文件 状态
server/api/websocket.py ☑ 已审
server/api/sync_v2.py ☑ 已审
server/api/schemas.py ☑ 已审
server/application/services/sync_engine_v2.py ☑ 已审
server/background/retry_runner.py ☑ 已审
server/background/upload_staging_cleanup.py ☑ 已审
server/infrastructure/database/sync_log_repo.py ☑ 已审
server/infrastructure/database/server_repo.py ☑ 已审
server/domain/models/__init__.py ☑ 已审
server/main.py ☑ 已审
frontend/src/pages/PushPage.vue ☑ 已审
frontend/src/composables/push/* ☑ 已审
frontend/src/components/push/* ☑ 已审
frontend/src/composables/useWebSocket.ts ☑ 已审
frontend/src/types/api.ts ☑ 已审
tests/test_sync_websocket.py ☑ 已审
tests/test_upload_staging_cleanup.py ☑ 已审

Step 3: 规则扫描H

  • H1 鉴权:/ws/sync、/sync/* API 均 JWTWS token 校验同 alerts
  • H2 注入:source_path ensure_under_nexus_uploadtarget_path SSH 经现有引擎
  • H3 凭据:无新增明文返回
  • H4 并发:preview 并发 4sync gather 已有
  • H5 错误:无静默吞掉 AttributeErrorsync_log update 已修)
  • H6 资源:WS disconnect + timer clearstaging cleanup realpath 校验
  • H7 跨层:API→Service→Repo 未破坏
  • H8 审计:CUD 路径未减

Step 4: Closure 表

H 判定 依据
H1 PASS websocket sync_ws 复用 _verify_ws_tokensync_v2 Depends get_current_admin
H2 PASS upload_staging_cleanup realpath + prefixsync 路径既有校验
H3 PASS 无 password 字段新增
H4 PASS preview 限流 PREVIEW_CONCURRENCY=4
H5 PASS retry_runner 成功判定修正;update() 存在
H6 PASS onUnmounted dispose24h mtime 清理
H7 PASS 未在 API 写 SQL
H8 PASS 推送/取消仍记审计(既有)

Step 5: 入口表

入口 鉴权
POST /api/sync/files JWT
POST /api/sync/preview JWT
POST /api/sync/cancel JWT
POST /api/sync/reconcile-stale-logs JWT
POST /api/sync/diagnose JWT
WS /ws/sync JWT query
upload_staging_cleanup_loop 内部任务

Step 6: 输入→Sink

  • ZIP/路径 → ensure_under_nexus_upload → rsync/SSH(既有池)
  • WS batch_id → 前端过滤,不执行命令

Step 7: 归类

websocket.py              8H  0FINDING
sync_engine_v2.py         8H  0FINDING
upload_staging_cleanup.py 6H  0FINDING
PushPage + composables    6H  0FINDING
──────────────────────────────────
总计                      0FINDING

Step 8: DoD

  • ☑ 设计/计划/changelog 齐全
  • ☑ pytest 新增用例通过(sync_ws、cleanup
  • ☑ frontend build-only 通过
  • ☑ 0 FINDING

FINDING 列表

结论

☑ 审计通过,0 FINDING,可部署