修复多人发布并发覆盖及旧客户端绕过保护 #409

Merged
WuYongJie merged 1 commits from fix/WuYongJie-release-overwrite-guards into main 2026-10-20 18:13:02 +08:00
Owner

修改

  • 两条服务端激活路径取得发布锁和同步锁后,重新核对已检查的线上 SHA,并校对实际运行镜像,拒绝过期发布。
  • Windows / macOS 发布机先刷新主线;运行配置和镜像包按每次发布独立暂存,通过锁内校验后才安装。
  • 停用共享目录旧激活入口并设置 immutable 属性,防止旧客户端上传覆盖入口绕过保护;安装前保留私有备份。
  • 增加私有发布记录和独立的发布控制版本标记;同步部署 SOP。
  • 远端 main 已配置禁止直接推送、禁止强推;不新增人工审批或 CI 门槛。

验证

  • 隔离 Linux 容器:16 个场景通过,包含后到旧发布、缺少协议参数、镜像标记不一致、首次部署、完整/不完整暂存、旧客户端覆盖失败及幂等安装。
  • PowerShell / Bash:8 个真实 Git 用例各自通过;所有修改的 Shell / PowerShell 语法检查通过。
  • 已登录生产台账:入口、账户总表、店铺台账及数据来源页签可访问。

影响及安装

  • 涉及发布流程与 Git 仓库保护设置;不改金额、业务权限、数据库结构及连接配置。
  • 本次仅安装发布控制脚本,保留正在运行的应用容器和应用 SHA,不执行迁移或应用重启。
## 修改 - 两条服务端激活路径取得发布锁和同步锁后,重新核对已检查的线上 SHA,并校对实际运行镜像,拒绝过期发布。 - Windows / macOS 发布机先刷新主线;运行配置和镜像包按每次发布独立暂存,通过锁内校验后才安装。 - 停用共享目录旧激活入口并设置 immutable 属性,防止旧客户端上传覆盖入口绕过保护;安装前保留私有备份。 - 增加私有发布记录和独立的发布控制版本标记;同步部署 SOP。 - 远端 main 已配置禁止直接推送、禁止强推;不新增人工审批或 CI 门槛。 ## 验证 - 隔离 Linux 容器:16 个场景通过,包含后到旧发布、缺少协议参数、镜像标记不一致、首次部署、完整/不完整暂存、旧客户端覆盖失败及幂等安装。 - PowerShell / Bash:8 个真实 Git 用例各自通过;所有修改的 Shell / PowerShell 语法检查通过。 - 已登录生产台账:入口、账户总表、店铺台账及数据来源页签可访问。 ## 影响及安装 - 涉及发布流程与 Git 仓库保护设置;不改金额、业务权限、数据库结构及连接配置。 - 本次仅安装发布控制脚本,保留正在运行的应用容器和应用 SHA,不执行迁移或应用重启。
WuYongJie added 1 commit 2026-10-20 18:12:50 +08:00
WuYongJie merged commit d68548646d into main 2026-10-20 18:13:02 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#409
No description provided.