补录三库核心业务与管理员安全码恢复验收结果
Some checks are pending
Security Checks / security (push) Waiting to run

This commit is contained in:
smail 2026-10-03 20:24:58 +08:00
parent c47155d600
commit ac538c929d
2 changed files with 56 additions and 0 deletions

View File

@ -1,5 +1,46 @@
# 云端全项目测试报告
## 三库核心业务与管理员安全码恢复(2026-10-03 20:24)
本节替代下文旧域名、旧数据库和旧版本的当前状态描述;历史记录仅供追溯。后台为 `web.cdis.cn`,邮件域名为 `cdis.cn`,运行目录为 `/opt/smail`。业务操作仅使用浏览器键鼠,交互式 SSH 仅用于 Smail 部署及服务检查;本段未操作同机其他项目。
### 三库验收矩阵
以下根据本线程前段连续实测记录补录,不是本段重新清库执行:
| 数据库 | 已完成范围 | 邮件标识 | 重启持久化复核 |
| --- | --- | --- | --- |
| PostgreSQL | 全新初始化、三角色登录、双角色收信阅读及回复 | `PG全新部署-超管至双角色-20261003`、`PG-ADMIN-REPLY`、`PG-USER-REPLY` | 18:00:36 重启后复核 |
| MySQL | 全新初始化、三角色登录、双角色收信阅读及回复 | `MySQL全新部署-双角色收发-20261003`、`MYSQL-ADMIN-REPLY`、`MYSQL-USER-REPLY` | 18:16:51 重启后复核 |
| SQLite | 全新初始化、三角色登录、双角色收信阅读及回复 | `SQLite全新部署-双角色收发-20261003`、`SQLITE-ADMIN-REPLY`、`SQLITE-USER-REPLY` | 18:34:02 重启后复核 |
三库按不同部署逐一验证,每个运行实例只使用一种业务数据库;当前实例使用 `/opt/smail/data/smail.db`。历史 MySQL、PostgreSQL 验收库尚待最终按 Smail 范围清理,并非当前实例同时连接多个业务数据库。以上仅为核心站内业务及持久化证据,不代表各数据库全部功能、迁移、恢复或邮件客户端协议验收通过。
### 本段恢复修复与直接浏览器证据
- 修改前检查点 `9040a4c` 已推送;修复提交 `c47155d` 已推送。仅修改公共恢复方式发现、安全码角色校验、已验证恢复令牌完成校验及对应回归源码。
- 原管理员已配置有效安全码,但匿名恢复显示没有可用方式。三个后端检查仍沿用管理员只能选择邮箱的旧条件,与管理员可任选一种恢复保障的当前要求不一致。
- 部署后,管理员在无已验证外部邮箱时获得安全码输入框;本人登录密码验证后查看安全码,经匿名流程完成验证、设置临时密码,页面显示密码已重置。
- 原管理员网页刷新后转到登录页,临时密码成功登录且原验收邮件正文可读取。恢复后页面提示安全码已失效;测试结束前将密码恢复为约定值,生成新安全码,再次退出并登录,不再提示补齐另一种恢复方式。
- 用旧批次中未使用的安全码再次恢复,页面明确拒绝并提示验证未通过或流程失效。超级管理员识别后仍提示只能使用已登录安全中心或部署端本机重置,不显示公共验证入口。
- 回归源码覆盖三角色边界、无外部邮箱、安全码重复核销、未经验证重置、旧安全状态撤销、令牌重复使用和失败次数耗尽;仅执行 `go test -c -o NUL ./services/recovery` 编译检查,没有运行自动化用例或调用业务 API。
### 构建与部署
- Linux amd64 主程序使用 `CGO_ENABLED=0`、`bundled`、`trimpath` 构建成功,版本为 `review-20261003-c47155d`;前端及内置插件复用上一段已构建资源,本段未修改它们。
- SHA256:`f3a2f2254ce038dcfca4bcef4a345d91a638f9af7409fadf2da81479bdbec686`。
- 通过严格 SSH 主机密钥校验的密码交互式 SCP 上传;校验摘要后在 `/opt/smail` 原子替换,仅重启 Smail。运行进程 `2014009` 的可执行文件摘要与构建一致,Smail 和 Nginx 均为 active。
- 本段未清库、未创建备份、未新建辅助测试脚本、未提交原有未跟踪审计或构建产物。服务运行不等于生产放行。
### 豁免和剩余事项
- 25 端口按用户许可可不测或失败后跳过,必须记录为豁免或未通过,不计作通过。465、587、993、995 不豁免,仍需符合浏览器键鼠或用户协助要求的真实客户端验收。
- 附件草稿已有正文但无附件且未发送;MCP 文件访问拒绝是工具边界,需用户正常选文件协助,不认定为 Smail 上传缺陷。
- 三个外部安全邮箱需真人收件验证;新库微信、Telegram 的初始化、绑定及送达不能沿用旧库成功结论。
- 新 DKIM 的 DNS 同步、证书续期及应用、协议凭据和在途连接撤销、超级管理员本机恢复、最终发布构建及仅限 Smail 的测试遗留清理尚未完成。
结论:三库核心站内业务有实测记录,管理员安全码独立恢复缺口已在当前 SQLite 实例修复复验;不能据此认定三库全功能或整个项目验收完成。
## 隔离插件部署与收信规则续验(2026-09-30 22:55)
本节优先于以下旧状态。22:28 至 22:47 的修复和部署按同一线程交接记录补录;22:50 起继续浏览器复验。仍为保留 MySQL 单库数据的增量验收,未清库,不代表最新版本首次安装通过。业务验收仅使用浏览器键鼠;SSH 仅用于 Smail 诊断、备份与部署,未操作其他项目。

View File

@ -1,5 +1,20 @@
# 生产整改验收清单
## 三库与安全码恢复续验(2026 年 10 月 3 日 20:24)
本节优先于以下历史状态。当前后台为 `web.cdis.cn`,邮件域名为 `cdis.cn`,运行目录为 `/opt/smail`。三库记录根据同一线程已完成的云端浏览器验收补录;20:08 起的恢复修复和浏览器复测为本段直接执行记录。当前为连续验收,不重复清库,不继承旧部署验收结论。
- [✓] SQLite、MySQL、PostgreSQL 已分别完成全新向导初始化、三角色登录、超管向管理员及普通用户发信、两角色读取中文正文并回复、仅重启 Smail 后复核持久化。每个实例仅使用一种业务数据库;此项不代表三库全部功能通过。
- [✓] 管理员安全码独立恢复缺口已修复并部署,代码提交 `c47155d`。未验证外部邮箱时,可用安全码完成身份验证和重置;旧网页会话刷新后退出,新密码登录成功;旧批次未使用安全码被拒绝。
- [✓] 管理员密码已恢复为约定测试值,重新生成安全码后退出并登录,不再出现强制补充另一种恢复方式的提醒。超级管理员公网找回仍被阻止。
- [x] 已补充管理员、普通用户、超级管理员边界及核销、失败次数、重置后撤销的回归源码,并完成编译检查;未执行自动化用例,不计为业务验收通过。
- [x] 安全码桌面三行四列布局已在管理员和普通用户原失败窗口宽度复测;其他桌面尺寸与移动端不包含在本结论中。
- [!] 25 端口按用户许可可不测或失败后跳过,不计通过、不阻断本次验收。465、587、993、995 不在豁免范围,监听状态不是协议验收。
- [!] 附件上传、发送及下载尚未闭环;MCP 文件访问限制不等于应用上传失败。需用户通过正常文件选择操作协助,不用脚本或接口绕过。
- [ ] 新库外部安全邮箱真实收件绑定、微信与 Telegram 初始化及实际送达、客户端协议及凭据撤销、证书续期应用、最终发布打包和遗留清理仍待完成。
整体验收尚未完成。当前云端为 `review-20261003-c47155d` 验收构建,不是正式发布放行。
## 插件升级与规则续验状态(2026 年 9 月 30 日 22:55)
本节优先于以下历史记录。当前运行 `ceacd99-audit`,保持现有 MySQL 单库数据;不是清库首次安装验收。详细摘要、备份及浏览器证据见《云端全项目测试报告》顶部。