176 lines
6.0 KiB
Markdown
176 lines
6.0 KiB
Markdown
|
|
# Nexus 全量未完成项修复计划
|
|||
|
|
|
|||
|
|
> **提交部门**: 管理组
|
|||
|
|
> **部门负责人**: 项目经理
|
|||
|
|
> **报告日期**: 2026-05-20
|
|||
|
|
> **状态**: 待审查 ⏳
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 执行总览
|
|||
|
|
|
|||
|
|
| 优先级 | 数量 | 预估工时 | 说明 |
|
|||
|
|
|--------|------|---------|------|
|
|||
|
|
| P0 安全底线 | 3 项 | 0.5h | API认证/导入修复/重复close |
|
|||
|
|
| P1 高优先级 | 6 项 | 2h | WebSocket推送/类型转换/缓存优化 |
|
|||
|
|
| P2 中等优先级 | 10 项 | 3h | 前端统一/索引/连接池/移动端 |
|
|||
|
|
| P3 WebFM+其他 | 5 项 | 2h | 图标/快捷键/持久化/文档 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 人员分工
|
|||
|
|
|
|||
|
|
### 工程部
|
|||
|
|
|
|||
|
|
| 人员/技能 | 分配任务 |
|
|||
|
|
|-----------|---------|
|
|||
|
|
| **PHP 开发者** | P0-1 Nginx路径隔离 / P1-4 WebSocket进度条(PHP端) / P2-11 前端统一 / P2-19 curl_multi |
|
|||
|
|
| **Python 开发者** | P0-2 timedelta / P0-3 双重close / P1-5 类型转换 / P1-8 COUNT合并 / P1-9 Redis缓存 / P2-12 防火墙 / P2-18 httpx单例 |
|
|||
|
|
| **Frontend Developer** | P3-1 图标升级 / P3-2 快捷键 / P3-3 状态持久化 / P2-14 WebSocket仪表盘 / P2-15 移动端 |
|
|||
|
|
| **DBA** | P2-16 idx_is_online / P2-17 idx_server_started |
|
|||
|
|
| **安全工程师** | P2-13 会话超时审计 |
|
|||
|
|
| **Senior Developer** | P1-6 install脚本 / P1-7 test清理 / P2-10 agent残留清理 / 代码审查 |
|
|||
|
|
|
|||
|
|
### 测试部
|
|||
|
|
|
|||
|
|
| 人员/技能 | 分配任务 |
|
|||
|
|
|-----------|---------|
|
|||
|
|
| **Verify** | 逐项验证修复到位 |
|
|||
|
|
| **安全测试** | P0-1 API认证回归 |
|
|||
|
|
| **测试结果分析师** | 输出验证报告 |
|
|||
|
|
| **现实检验者** | 实际运行检查 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 详细修复方案
|
|||
|
|
|
|||
|
|
### P0 — 安全底线(3项,0.5h)
|
|||
|
|
|
|||
|
|
#### P0-1 API 公网暴露加认证
|
|||
|
|
- **现状**: Nginx 未对 `/api/` 路径做认证隔离,公网可直接访问
|
|||
|
|
- **修复方案**: Nginx location 限制 `/api/` 仅内网或加 auth
|
|||
|
|
- **负责**: PHP 开发者
|
|||
|
|
- **预估**: 30min
|
|||
|
|
|
|||
|
|
#### P0-2 scheduler.py timedelta import
|
|||
|
|
- **现状**: `from datetime import datetime, timedelta` 已正确(之前验证确认)
|
|||
|
|
- **修复方案**: 确认无误则标记关闭
|
|||
|
|
- **负责**: Python 开发者
|
|||
|
|
- **预估**: 5min
|
|||
|
|
|
|||
|
|
#### P0-3 health_checker.py 双重 finally: db.close()
|
|||
|
|
- **现状**: 函数内 `try/finally` 嵌套导致 `db.close()` 可能被调用两次
|
|||
|
|
- **修复方案**: 删除内层多余的 close 或改用单一 finally
|
|||
|
|
- **负责**: Python 开发者
|
|||
|
|
- **预估**: 10min
|
|||
|
|
|
|||
|
|
### P1 — 高优先级(6项,2h)
|
|||
|
|
|
|||
|
|
#### P1-4 WebSocket 实时推送进度条
|
|||
|
|
- **现状**: 同步操作无实时进度反馈
|
|||
|
|
- **修复方案**: sync_engine 推送 WebSocket 事件,前端显示进度条
|
|||
|
|
- **负责**: Python 开发者 + PHP 开发者
|
|||
|
|
- **预估**: 1h
|
|||
|
|
|
|||
|
|
#### P1-5 类型转换修复
|
|||
|
|
- **现状**: settings 从 DB/Redis 读取为字符串,未转 int/bool
|
|||
|
|
- **修复方案**: `config.py` 的 `load_settings_from_db` 加类型转换
|
|||
|
|
- **负责**: Python 开发者
|
|||
|
|
- **预估**: 15min
|
|||
|
|
|
|||
|
|
#### P1-6 install_central.sh 模块名修正
|
|||
|
|
- **现状**: 脚本中模块名可能拼写错误
|
|||
|
|
- **修复方案**: 修正模块名
|
|||
|
|
- **负责**: Senior Developer
|
|||
|
|
- **预估**: 5min
|
|||
|
|
|
|||
|
|
#### P1-7 test_api.py 加 DELETE 清理
|
|||
|
|
- **现状**: 测试创建服务器后未清理
|
|||
|
|
- **修复方案**: 添加 DELETE 请求清理测试数据
|
|||
|
|
- **负责**: Senior Developer
|
|||
|
|
- **预估**: 10min
|
|||
|
|
|
|||
|
|
#### P1-8 3 次 COUNT 合并为 1 次
|
|||
|
|
- **现状**: 仪表盘 3 次独立 COUNT 查询
|
|||
|
|
- **修复方案**: 合并为单次 `SELECT COUNT(*), SUM(is_online) FROM servers`
|
|||
|
|
- **负责**: Python 开发者
|
|||
|
|
- **预估**: 10min
|
|||
|
|
|
|||
|
|
#### P1-9 /api/servers/ 加 Redis 30s 缓存
|
|||
|
|
- **现状**: 每次请求都查 DB
|
|||
|
|
- **修复方案**: Redis 缓存 30s,减少 DB 压力
|
|||
|
|
- **负责**: Python 开发者
|
|||
|
|
- **预估**: 15min
|
|||
|
|
|
|||
|
|
### P2 — 中等优先级(10项,3h)
|
|||
|
|
|
|||
|
|
| # | 任务 | 修复方案 | 负责 | 预估 |
|
|||
|
|
|---|------|---------|------|------|
|
|||
|
|
| P2-10 | agent残留清理 | 删除 agent.py/agent.sh 残留文件 | Senior Dev | 20min |
|
|||
|
|
| P2-11 | 前端统一 | sidebar 统一 + deploy.php 改 api() | PHP Dev | 30min |
|
|||
|
|
| P2-12 | firewalld | _open_firewall 补 firewalld 支持 | Python Dev | 10min |
|
|||
|
|
| P2-13 | 会话超时 | Redis TTL/GC/cookie 超时审计 | 安全工程师 | 20min |
|
|||
|
|
| P2-14 | 仪表盘WS | WebSocket 实时更新仪表盘 | Frontend | 30min |
|
|||
|
|
| P2-15 | 移动端 | sidebar折叠 + 响应式表格 | Frontend | 40min |
|
|||
|
|
| P2-16 | idx_is_online | ALTER TABLE servers ADD INDEX | DBA | 5min |
|
|||
|
|
| P2-17 | idx_server_started | ALTER TABLE sync_logs ADD INDEX | DBA | 5min |
|
|||
|
|
| P2-18 | httpx单例 | 模块级 AsyncClient 复用 | Python Dev | 10min |
|
|||
|
|
| P2-19 | curl_multi | api_proxy.php 并发请求 | PHP Dev | 20min |
|
|||
|
|
|
|||
|
|
### P3 — WebFM + 文档(5项,2h)
|
|||
|
|
|
|||
|
|
| # | 任务 | 修复方案 | 负责 | 预估 |
|
|||
|
|
|---|------|---------|------|------|
|
|||
|
|
| P3-1 | 文件图标升级 | emoji→Font Awesome CDN + 文件类型映射 | Frontend | 40min |
|
|||
|
|
| P3-2 | 键盘快捷键 | 补 Ctrl+A/F2/F5/Backspace/Ctrl+C/X/V/F | Frontend | 30min |
|
|||
|
|
| P3-3 | 状态持久化 | sortCol/sortDir→sessionStorage + 恢复 | Frontend | 20min |
|
|||
|
|
| P3-4 | 文档更新 | README/宝塔指南/CHANGELOG | Senior Dev | 20min |
|
|||
|
|
| P3-5 | 注释英文化 | 删除宝塔注释,关键注释英文化 | Senior Dev | 10min |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 执行时间线
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Phase 1 — P0 安全底线(~30min)
|
|||
|
|
├─ P0-2 timedelta 确认
|
|||
|
|
├─ P0-3 双重 close 修复
|
|||
|
|
└─ P0-1 Nginx 认证隔离
|
|||
|
|
|
|||
|
|
Phase 2 — P1 高优先级(~2h)
|
|||
|
|
├─ P1-5 类型转换
|
|||
|
|
├─ P1-8 COUNT 合并
|
|||
|
|
├─ P1-9 Redis 缓存
|
|||
|
|
├─ P1-6 install 脚本
|
|||
|
|
├─ P1-7 test 清理
|
|||
|
|
└─ P1-4 WebSocket 进度条
|
|||
|
|
|
|||
|
|
Phase 3 — P2 中等优先级(~3h)
|
|||
|
|
├─ P2-16/17 索引
|
|||
|
|
├─ P2-18 httpx 单例
|
|||
|
|
├─ P2-12 防火墙
|
|||
|
|
├─ P2-10 agent 清理
|
|||
|
|
├─ P2-11 前端统一
|
|||
|
|
├─ P2-13 会话超时
|
|||
|
|
├─ P2-19 curl_multi
|
|||
|
|
├─ P2-14 仪表盘 WS
|
|||
|
|
└─ P2-15 移动端
|
|||
|
|
|
|||
|
|
Phase 4 — P3 WebFM+文档(~2h)
|
|||
|
|
├─ P3-1 图标升级
|
|||
|
|
├─ P3-2 快捷键
|
|||
|
|
├─ P3-3 状态持久化
|
|||
|
|
├─ P3-4 文档更新
|
|||
|
|
└─ P3-5 注释英文化
|
|||
|
|
|
|||
|
|
Phase 5 — 测试验证(~1h)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 审批
|
|||
|
|
|
|||
|
|
| 角色 | 意见 | 签名 | 日期 |
|
|||
|
|
|------|------|------|------|
|
|||
|
|
| **项目经理** | ⏳ 待审批 | — | — |
|