# 配置管理接入修复验收 ## 本次需求 修复配置管理标题被挤成两行,以及旧版配置无法接入在线配置管理的问题。保留现有数据库、账号和证书,不以隐藏错误代替修复。 ## 任务与结果 - [✓] 标题与说明改为上下排列,标题独立显示一行。 - [✓] 修正配置管理器根目录,避免重复拼接 `config/config`。 - [✓] 为旧业务启动提供分区配置只读兼容快照,保留当前 SQLite 数据库引用。 - [✓] 禁止旧版写入接口覆盖分区根文件。 - [✓] 停机备份、预演迁移、真实配置迁移及新后端重启。 - [✓] 脱敏备份列表使用配置读取权限,回滚预览、票据及执行仍要求近期认证。 - [✓] 备份与审计错误局部显示,不阻挡成功加载的配置编辑区。 - [✓] 修复卡片最小内容宽度造成的右侧导航遮挡,确认文字允许换行。 - [✓] 前端测试、生产构建及后端全量测试通过。 - [✓] 浏览器刷新保持登录,五个配置分区均可读取,卡片不与右侧导航重叠。 ## 原因 旧配置尚未迁移,管理器不能启用;原启动代码又把配置目录当成服务根目录传入加载器,重复拼接路径。只生成分区文件仍不足以修复,旧业务还需要正确读取新的数据库与证书引用。 迁移后发现另一个独立问题:备份列表读取使用了高风险回滚权限,现有会话的近期认证过期时返回 `403 / RECENT_AUTH_REQUIRED`。前端又把附属请求失败提升为整页不可用。 现在只有脱敏代次列表读取改用 `config.read`,普通用户仍被拒绝。回滚的三个操作均有自动测试确认近期认证要求没有放松。 ## 本机配置与备份 - 当前读取:`backend/config/config.json`,已经是分区根配置,代次为 `1`。 - 当前数据库仍为 `backend/config/smail_temp.db`,未清空、重建或重置账号。 - 停机配置目录备份已归档至:`test-log/archive/artifacts/config-migration-backup-20260905-175927/config`。 - 原始配置迁移备份位于 `backend/config/migration-backups/`,并保留 `backend/config/config.json.legacy`。 - 以上目录含真实配置或凭据,仅限本机保管,不能提交或对外分享。 ## 后续开发启动 必须重新编译当前源码再启动,不能继续运行迁移前遗留的旧后端二进制: ```powershell Set-Location D:\Desktop\Smail powershell -NoProfile -ExecutionPolicy Bypass -File deploy/build.ps1 powershell -NoProfile -ExecutionPolicy Bypass -File deploy/start-dev.ps1 -Service backend ``` 编译前先停止同名运行进程;同时只能有一个后端占用服务端口。目录整理后的运行文件为 `out/backend/smail-dev.exe`,启动脚本显式指定配置根目录 `backend/`。前端开发地址为 `http://127.0.0.1:15173`。 开发参数只停用本机管理员重置通道,不改用另一份数据库,不放宽线上接口鉴权。正式部署需移除此参数,保留 Windows 命名管道或 Linux 本机套接字保护。 ## 其他旧部署的显式迁移 以下命令只适用于尚未迁移的旧部署,本机已迁移完成,不应重复执行: ```powershell Set-Location D:\Desktop\Smail & .\out\backend\smail-config.exe --root D:\Desktop\Smail\backend # 先停止后端并备份配置目录,再执行以下命令。 & .\out\backend\smail-config.exe --root D:\Desktop\Smail\backend --apply ``` 默认命令仅做旧字段检查,不是完整迁移预演;完整校验及备份迁移发生在 `--apply`。命令本身不检测运行中的后端,停机必须由部署人员确认。 ## 验收边界 - 本次浏览器通过现有登录会话及 Vite 代理访问最新后端,验证的是配置读取和桌面布局;生产前端产物也已构建并复制到后端嵌入目录。 - 未在真实账号库执行保存配置、回滚、数据库迁移或重置初始化,避免改变现有业务数据。 - 不代表所有旧版设置写入接口均已迁移;旧写接口对分区根文件会明确拒绝,不能绕过保护。 - 当前真实迁移只验收 SQLite 与现有证书引用。MySQL、PostgreSQL、自动 DNS 证书及正式 Linux/Windows 部署未做本次端到端验收。 - 前端构建仍有大于 500 kB 的包体积警告,不影响本次构建成功,未在本任务内扩大重构范围。 - 浏览器截图已直接复审;工具限制了指定磁盘路径的截图写入,不声称截图已保存至项目目录。