Files
Nexus/docs/audit/2026-06-21-btpanel-login-auto-bootstrap.md
T
r 629d8b3e26 fix(btpanel): login-url 返回类型含 bool 导致全站 500
路由注解 dict[str,str] 与 bootstrapped 布尔字段冲突,FastAPI 响应校验失败。
2026-06-21 12:17:29 +08:00

1.9 KiB

审计 — 2026-06-21 宝塔一键登录自动 bootstrap

Changelog: docs/changelog/2026-06-21-btpanel-login-auto-bootstrap.md

Step 3 规则扫描

文件 规则 结论
btpanel_service.py create_login_url 未配置先 bootstrap,失败显式 ValueError;审计含 bootstrapped PASS
useBtPanelLogin.ts 无静默吞错,成功提示区分 bootstrap PASS
BtPanelLoginPage.vue 移除未配置拦截,与 servers 页一致 PASS
bootstrap_server 复用既有锁与 immediate 源,无重复 SSH 逻辑 PASS

Closure

状态 说明
未配置仅 SSH 登录 FIXED login-url 先 immediate bootstrap
前端需手动获取 API FIXED 一键登录单请求完成
宝塔页拦截未配置 FIXED 与 servers 行为统一

文件清单

  • server/application/services/btpanel_service.py
  • server/infrastructure/btpanel/client.py
  • frontend/src/App.vue
  • frontend/src/api/btpanel.ts
  • frontend/src/types/global.d.ts
  • frontend/src/composables/btpanel/useBtPanelLogin.ts
  • frontend/src/composables/btpanel/useBtPanelBatchBootstrap.ts
  • frontend/src/components/btpanel/BtPanelBatchBootstrapDialog.vue
  • frontend/src/components/servers/ServerBatchActionBar.vue
  • frontend/src/components/servers/ServerUnsetPathPanel.vue
  • frontend/src/pages/ServersPage.vue
  • frontend/src/pages/btpanel/BtPanelLoginPage.vue
  • frontend/src/pages/btpanel/BtPanelMonitorPage.vue
  • tests/test_btpanel_login_url.py
  • tests/test_btpanel_client.py
  • tests/test_btpanel_login_url_route.py
  • server/api/btpanel.py
  • docs/changelog/2026-06-21-btpanel-login-auto-bootstrap.md

DoD

  • #/servers 一键登录未配置时自动获取 API 后打开面板
  • bootstrap 失败返回可读错误
  • pytest tests/test_btpanel_login_url.py 通过
  • changelog 已写