Files
Nexus/docs/changelog/2026-06-04-install-wizard-guard-fix.md
T
2026-07-08 22:31:31 +08:00

1.5 KiB
Raw Blame History

2026-06-04 — 安装向导守卫修复 + 审计项收尾

摘要

修复安装向导在 step3 写入 .env 后 step4/5 API 被误拦 403 的 P1 逻辑错误;并处理 2a 审计其余 P2 项。

动机

  • F-2a-01_is_installed() 将「仅有 .env」等同于「安装完成」,导致 create-admin/lock 无法调用。
  • F-2a-03create_admin 未显式 is_active=1,与 lock 前校验不一致。
  • F-2a-02/04/05Monaco 预加载失败悬挂、vendor tar 路径、config.json 明文库密。

变更

文件 说明
守卫拆分 server/api/install.py _has_env / _reject_if_env_exists(仅 init-db/ _reject_if_lockedstep4/5);installed=locked/statusconfigured
管理员 install.py INSERT/UPDATE 显式 is_active=1
config install.py config.json 不再写入 db_pass
Monaco web/app/api.js onerror + 成功时清 _monacoLoading
vendor 脚本 scripts/sync_frontend_vendor.py tar 解压拒绝 .. 路径
测试 tests/test_security_unit.py 守卫回归 3 条

迁移 / 重启

  • 无 DB 迁移;改 API 逻辑,重启 uvicorn 即可。
  • 已有 web/data/config.json 若含 db_pass 可手动删除该字段(非必须)。

验证

ruff check server/api/install.py
pytest tests/test_security_unit.py -q
pytest tests/ -q

进度

☑实现 ☑WSL验证 ☐审计8步 ☐部署 ☐健康检查 ☐浏览器验证 ☑changelog