# 企迹系统发布与回滚检查表 > 每次生产发布由发布负责人逐项勾选,并将结果随变更单、流水线和制品一并归档。 ## 1. 发布前 - [ ] 变更已合并至受保护分支,MR 审核记录完整。 - [ ] 已创建发布 Tag,记录提交 SHA、镜像摘要和发布日期。 - [ ] CI 全部通过:后端测试、前端构建、Ruff、Bandit、依赖漏洞审计、SBOM、Trivy 文件系统扫描。 - [ ] 已归档 `sbom-backend.cdx.json`、测试报告和扫描报告。 - [ ] 生产密钥由受控环境或密钥管理系统注入,未写入 Git、镜像层或发布记录。 - [ ] 数据库已完成备份,并验证备份可读取;回滚负责人和窗口已确认。 - [ ] 对象存储桶为私有,应用服务账号采用最小读写权限。 ## 2. 数据库迁移 在维护窗口、使用生产应用运行身份执行: ```bash cd /path/to/qiji/backend alembic current alembic upgrade head alembic current ``` - [ ] `alembic current` 显示预期修订版本。 - [ ] 核验 `users.wecom_userid` 的唯一索引已创建。 - [ ] 如迁移失败,停止发布;不得通过手工修改表结构绕过迁移记录。 ## 3. 发布与验证 - [ ] 使用指定 Tag/镜像摘要部署;禁止直接从未审核工作区运行。 - [ ] 服务以受控 systemd 服务或编排平台运行,未使用开发热重载。 - [ ] 仅反向代理对公网开放 HTTPS;数据库、缓存、MinIO 管理端口不对公网监听。 - [ ] 健康检查通过:`GET /health`。 - [ ] 回归登录、角色授权、企微绑定、受控图片上传和图片下载授权。 - [ ] 抽查应用日志,确认未输出口令、密钥、令牌或用户输入正文。 ## 4. 回滚 触发条件:迁移失败、健康检查失败、关键业务回归失败、出现高危安全告警。 1. 停止本次发布流量切换,恢复上一稳定版本的镜像/制品。 2. 仅在已验证可逆且有审批的情况下执行 `alembic downgrade`;基线迁移不允许通过盲目降级删除历史表。 3. 如数据不兼容,按已验证的备份恢复方案处理,并保留操作审计。 4. 复测健康接口和关键业务,记录故障、影响范围、回滚时间和后续整改项。 ## 5. 发布归档 - [ ] 变更单与审批记录 - [ ] Git Tag、提交 SHA、镜像摘要和 SBOM - [ ] 测试、扫描、迁移和部署日志 - [ ] 上线验证与回滚演练记录