diff --git a/doc/Linux生产流程测试记录.md b/doc/Linux生产流程测试记录.md index 3a4d917..8f865f3 100644 --- a/doc/Linux生产流程测试记录.md +++ b/doc/Linux生产流程测试记录.md @@ -1,5 +1,26 @@ # Linux 生产流程测试记录 +## 2026年10月6日10时47分 第一台 Web 更新及角色页面验收 + +### 构建与发布物 + +- [✓] 在提交 `39cbd833121f81687a744c15ce0dcb7864fc85e9` 上使用正式发布入口仅构建 `linux-amd64`;`manifest.json` 标记 `source_dirty=false`、`desktop_requested=false`,归档为 `Scert-20261006-V0.1.0-linux-amd64.tar.gz`,SHA-256=`3a82fff4ab7aeef62ad5d6d217b56a270e81b5678631ed43af9334df31cec029`。 +- [✓] 本轮部署范围严格限定为第一台的 Web 四文件;上传前对候选文件计算 SHA-256,远端 staging 复核一致后原子切换。旧 `/scert/web` 移入 `/scert/backups/web-before-20261006-account-39cbd83`,用于回退,未删除任何旧文件。 + +### 第一台现场证据 + +- [✓] 新 `/scert/web` 文件摘要:`index.html=931824b6390884c595d2aff2969bd02eff7f5a74b7913086463ed5eb6ea3bbbb`;`assets/index-D-Ya24Ph.js=a1f98fa88f721024e84c3f82ecacc062e612bedd3391140ac1f8f7d1a7d14ab9`;`assets/index-DLxVpPUk.css=7bdcb69c409e13127aa923832d9ea1374aee64db8f31a533e7e89132ac20f167`;`Scert.png=81b7ec9d32125e784e425b60cd731356b20b26d0bcc8e67261cbfb2764783f55`。 +- [✓] Scert.service、Scert-storage.socket、Nginx 均 active;正常 HTTPS `/readyz` 返回 `{"service":"scert","status":"ready"}`,首页引用新 JS 和 CSS。服务未重启。 +- [✓] 浏览器使用独立本项目页面并清缓存刷新;普通用户登录后页面顶部显示“当前登录账号/普通用户/权限:普通用户”,切换“项目与成员”后仍可见。退出后管理员登录显示“管理/权限:管理员”。 +- [✓] 管理员导航没有“系统设置”按钮;浏览器同源请求 `/api/v1/settings` 返回403。该结果与后端权限校验一致,不以隐藏按钮代替接口保护。 + +### 第二台隔离证据 + +- [✓] 本轮没有连接第二台执行上传;只读复核确认 `/scert`、`/opt/scert` 及限定范围内本次发布标识不存在,Nginx、MySQL、PMail active。 +- [✓] 第二台仍保持仅 SSL 推送测试边界,既有 PMail 和历史部署锁未删除、未修改。 + +本节证明 Web 角色显示整改和第一台 Web 资源切换通过,不证明第二台历史 SSL 恢复、真实邮件送达、受保护重置、DNS/ACME 或整体验收完成。 + ## 2026年10月4日 Linux 上线整改接手记录 ### 任务状态 diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index 9742b41..53e4134 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -1,5 +1,15 @@ # Scert 整改任务执行清单 +## 2026年10月6日10时47分 第一台 Web 发布与角色验收 + +- [✓] 候选包仅为 Linux amd64,source_commit=`39cbd833121f81687a744c15ce0dcb7864fc85e9`,source_dirty=false;归档 SHA-256=`3a82fff4ab7aeef62ad5d6d217b56a270e81b5678631ed43af9334df31cec029`。 +- [✓] 仅将候选包中的 Web 四个文件上传第一台 staging 目录,上传前后摘要逐项一致;切换前保留旧 Web 目录,回退副本为 `/scert/backups/web-before-20261006-account-39cbd83`。 +- [✓] 切换后第一台 `/scert/web` 摘要为 index `931824...3bbbb`、JS `a1f98...14ab9`、CSS `7bdcb...0f167`、Logo `81b7...83f55`;Scert、存储套接字、Nginx 均 active,未重启服务。 +- [✓] 浏览器清缓存后实际加载新 JS;普通用户账号权限显示、跨用户中心板块显示、管理员账号权限显示均通过。 +- [✓] 管理员页面不显示系统设置按钮;直接请求 `/api/v1/settings` 返回403,普通用户此前同样返回403。 +- [✓] 第二台限定范围复核未发现 `/scert`、`/opt/scert` 或本次发布标识;未上传、未安装、未重载第二台既有服务。 +- [~] 任务清单中的 Web 角色显示待办已完成,邮件、恢复锁及其他 Linux 生产门禁仍按独立证据链继续。 + ## 2026年10月6日 普通用户账号显示补齐 ### 已确认需求 diff --git a/doc/Scert整改合并优化清单.md b/doc/Scert整改合并优化清单.md index ca123a8..3365617 100644 --- a/doc/Scert整改合并优化清单.md +++ b/doc/Scert整改合并优化清单.md @@ -1,5 +1,18 @@ # Scert 整改、合并与优化清单 +## 2026年10月6日10时47分 最新状态:普通用户身份显示及第一台 Web 更新通过 + +- [✓] 普通用户独立用户中心已显示当前登录账号和中文权限,跨“账户与密码/项目与成员”切换保持显示;管理员页面继续显示账号和权限。 +- [✓] 非超级管理员不再显示系统设置入口;管理员线上直接读取系统设置仍返回403,后端权限边界未被前端改动绕过。 +- [✓] 新增会话白名单、旧身份清理、晚到响应保护、HTML 转义及角色入口专项回归;前端专项31项、全量347项和生产构建通过。 +- [✓] 仅选择 linux-amd64 生成候选:`build/release-20261006-user-account/Scert-20261006-V0.1.0-linux-amd64.tar.gz`,归档 SHA-256 为 `3a82fff4ab7aeef62ad5d6d217b56a270e81b5678631ed43af9334df31cec029`。清单 source_commit=`39cbd833121f81687a744c15ce0dcb7864fc85e9`、source_dirty=false、desktop_requested=false。 +- [✓] 第一台仅切换 Web:新 `/scert/web` 四个文件摘要与候选一致;旧目录保留在 `/scert/backups/web-before-20261006-account-39cbd83`,未删除;Scert、存储套接字、Nginx 未重启且保持 active。 +- [✓] 正常 HTTPS 的 `/readyz` 返回 ready,浏览器清缓存刷新后加载 `index-D-Ya24Ph.js`;普通用户、管理员账号权限显示和管理员系统设置隐藏均通过。 +- [✓] 第二台未接收项目包;复核无 `/scert`、`/opt/scert` 及本次发布标识,Nginx、MySQL、PMail active。 +- [ ] 第二台历史 SSL 事务仍因缺少可信旧基线未处置;真实邮件收件、受保护重置、三库首次流程、DNS/ACME 及整体生产门禁继续未完成。 + +归档 SHA-256 原始值为 `3a82fff4ab7aeef62ad5d6d217b56a270e81b5678631ed43af9334df31cec029`。本轮只上传第一台 Web 文件,没有向第二台上传或安装 Scert。 + ## 2026年10月6日10时32分 最新状态:推送失败根因与恢复证据 - [✓] 第二台目标域名未绑定独立 HTTPS 站点,现有 PMail 站点提供 vcer.cn 证书;在已认证服务器内以目标 SNI 严格核验得到域名不匹配,不能当作公网正常 DNS 验收。