diff --git a/deploy/trialrun/checklist.md b/deploy/trialrun/checklist.md index ab4b7e4f..4ed92b5e 100644 --- a/deploy/trialrun/checklist.md +++ b/deploy/trialrun/checklist.md @@ -13,6 +13,9 @@ - [ ] 已执行 `nginx -t && systemctl reload nginx` - [ ] 已从本地执行 `bash deploy/trialrun/deploy.sh` - [ ] 已通过 `https:///ready` 或首页登录完成最小探活 +- [ ] 首次上线先执行系统初始化(migration + seed),不要直接导入旧库整库备份 +- [ ] 若要导数据,仅准备最小主数据:部门、员工、角色、在用资产、活跃项目、合同元数据 +- [ ] 不导入历史审批单、通知历史、审计日志、聊天记录和涉密正文附件 ## A. 发布前(Pre-flight) - [ ] 确认当前版本已打 tag:`git tag -a trialrun-YYYYMMDD-NN -m "trialrun release"` diff --git a/deploy/trialrun/runbook.md b/deploy/trialrun/runbook.md index f8dab387..da55994d 100644 --- a/deploy/trialrun/runbook.md +++ b/deploy/trialrun/runbook.md @@ -68,6 +68,9 @@ docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/ 说明: - `init` 是一次性任务:`migrate:deploy + seed:config + seed:trialrun`。 - 若 `TRIALRUN_ADMIN_PASSWORD` 为空,seed 会生成一次性口令并输出到控制台(请立刻保存)。 +- 正式启用前,推荐先保持“空基线 + 默认种子”,不要直接导入开发库、测试库或旧 OA 整库备份。 +- 如确需导入,仅导入最小必要主数据:部门、员工、角色、在用资产、活跃项目、合同元数据。 +- 历史审批单、通知历史、审计日志、聊天记录以及涉密正文/附件继续保留在原系统、文件盘或离线档案中。 ### 1.4 验收 ```bash diff --git a/docs/admin-handbook.md b/docs/admin-handbook.md index 807c1b3e..a1600fbd 100644 --- a/docs/admin-handbook.md +++ b/docs/admin-handbook.md @@ -103,6 +103,24 @@ - 企业微信通知不得发送涉密正文,只保留最小必要信息和 deeplink。 - 如项目被标记为涉密,管理员应要求正文继续保存在内网文件盘、NAS 或离线档案中。 +## 15. 初始化与导入建议 +1. 首次上线先完成系统初始化:数据库迁移、配置种子、管理员种子。 +2. 不要直接把开发库、测试库或旧 OA 整库导入到生产。 +3. 如需导入,只导最小必要主数据: + - 部门 + - 员工 + - 角色 + - 在用资产 + - 活跃项目 + - 合同元数据 +4. 不导入这些内容: + - 历史审批单 + - 通知历史 + - 审计日志 + - 聊天记录 + - 涉密正文与附件 +5. 建议顺序:初始化系统 -> 管理员登录验证 -> 最小主数据导入 -> 小范围试点 -> 全员启用。 + ## 15. 公网部署最低建议 1. 为 OA 配置独立 HTTPS 域名,例如 `https://oa.example.com`。 2. 在 `deploy/trialrun/.env` 中设置: diff --git a/issues/2026-03-22_16-10-00-r25-login-hardening-and-bootstrap-fixes.csv b/issues/2026-03-22_16-10-00-r25-login-hardening-and-bootstrap-fixes.csv new file mode 100644 index 00000000..fdacc10e --- /dev/null +++ b/issues/2026-03-22_16-10-00-r25-login-hardening-and-bootstrap-fixes.csv @@ -0,0 +1,7 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R25-0,执行合同建档与范围冻结,为登录收口与初始化策略修复建立新合同 明确本轮不扩业务域 不做整库迁移,Issue CSV 校验通过 且范围锁定为 登录 改密 首屏性能 初始化清单 与部署回归,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-22_16-10-00-r25-login-hardening-and-bootstrap-fixes.csv,manual,DONE,DONE,DONE,issues/2026-03-22_16-10-00-r25-login-hardening-and-bootstrap-fixes.csv,[],none +R25-1,登录页去演示账号并优化首屏依赖,移除 LoginPage 中硬编码演示账号密码 去掉公网登录首屏对 Google Fonts 的强依赖 并保持现有登录链路不变,登录页默认账号密码为空 且页面不再依赖 Google Fonts 外链即可正常渲染,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/LoginPage.tsx|client/index.html|client/src/index.css|deploy/trialrun/nginx-hyb-oa.conf,["R25-0"],优先使用系统字体或本地回退字体 +R25-2,改密问题复现与错误提示修复,复现首次改密报 VALID_001 的原因 补齐前后端错误提示 让用户能看到明确密码规则与失败原因 如存在真实校验缺陷则一并最小修复,首次改密失败时前端能显示明确原因 成功时可正常进入系统 不再只显示泛化 VALID_001,cd server && npm test && cd ../client && npm run typecheck,manual,DONE,DONE,DONE,server/src/routes/auth.js|server/src/utils/passwordPolicy.js|client/src/pages/ChangePasswordPage.tsx|client/src/api/errorMessages.ts|client/src/auth/AuthContext.tsx,["R25-0"],允许最小修复跳转与文案问题 +R25-3,静态缓存与公网登录体验收口,为带 hash 的静态资源补长缓存策略 降低二次打开与国内网络访问损耗 并保持反向代理兼容现有部署,静态 JS CSS 资源返回长缓存 登录页首包与二次访问体验改善 且 oa.hyinda.com 反代零回归,手工审阅 + curl -I https://oa.hyinda.com/assets/,manual,DONE,DONE,DONE,deploy/trialrun/nginx-hyb-oa.conf|deploy/trialrun/runbook.md|deploy/trialrun/checklist.md,["R25-1"],仅对 hash 静态资源加缓存 +R25-4,初始化与最小导入策略写入清单,把 先初始化再最小导入 的上线策略写入 runbook checklist 和管理员手册 避免误走整库导入,文档明确写出 初始化 最小导入范围 不导入范围 与建议顺序,git diff --check,manual,DONE,DONE,DONE,deploy/trialrun/checklist.md|deploy/trialrun/runbook.md|docs/admin-handbook.md,["R25-0"],不在本轮实现正式导入器 +R25-5,修复回归与重新部署验收,完成代码修复后执行前端检查 重新部署 oa 站点 并验证登录页 改密 静态资源头与健康检查,线上 oa.hyinda.com 登录页正常 管理员可改密 健康检查通过 且 git 已提交,cd client && npm run typecheck && npm run build && bash deploy/trialrun/deploy.sh,manual,DONE,DONE,DONE,client|deploy/trialrun|issues/2026-03-22_16-10-00-r25-login-hardening-and-bootstrap-fixes.csv,"[""R25-1"",""R25-2"",""R25-3"",""R25-4""]",已完成本地 typecheck/build 与 server npm test 并重新部署到 oa.hyinda.com 验证健康检查 登录页源码 与静态缓存头