44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
|
|
# Audit — 2026-06-08 服务器全选筛选 + 脚本失败分组
|
|||
|
|
|
|||
|
|
**日期**: 2026-06-08
|
|||
|
|
**范围**: 纯前端 · 无后端变更
|
|||
|
|
**Changelog**: `docs/changelog/2026-06-08-servers-select-all-script-failure-groups.md`
|
|||
|
|
|
|||
|
|
## 变更概要
|
|||
|
|
|
|||
|
|
| 模块 | 文件 |
|
|||
|
|
|------|------|
|
|||
|
|
| ServersPage | `frontend/src/pages/ServersPage.vue` |
|
|||
|
|
| ScriptsPage | `frontend/src/pages/ScriptsPage.vue` |
|
|||
|
|
| 分组工具 | `frontend/src/utils/execDetailGrouping.ts` |
|
|||
|
|
| 单测 | `tests/test_exec_detail_grouping.py` |
|
|||
|
|
| 构建入口 | `web/app/index.html`(Docker 镜像内 vite build 同步) |
|
|||
|
|
|
|||
|
|
## 安全
|
|||
|
|
|
|||
|
|
| 项 | 结论 |
|
|||
|
|
|----|------|
|
|||
|
|
| 新 API | 无 |
|
|||
|
|
| 鉴权 | 沿用 JWT;全选仍走既有 `/servers/` 与批量端点 |
|
|||
|
|
| 敏感数据 | 复制清单含错误摘要,不含批量完整 stderr 导出;与单行复制等价 |
|
|||
|
|
| XSS | 分组/复制均为已有字段文本,无 `v-html` |
|
|||
|
|
|
|||
|
|
## 性能
|
|||
|
|
|
|||
|
|
- 全选 364 台:`fetchPagePerPage` 多页 GET(200/页),与分页「全部」相同负载。
|
|||
|
|
- 分组为客户端 computed,无额外请求。
|
|||
|
|
|
|||
|
|
## 回滚
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git revert <commit>
|
|||
|
|
cd frontend && npx vite build && bash deploy/deploy-frontend.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 验收清单
|
|||
|
|
|
|||
|
|
- [ ] 分类筛选后全选台数 = Chip 计数
|
|||
|
|
- [ ] 改搜索/排序/分类后选择清空
|
|||
|
|
- [ ] 失败详情「按错误分组」同类 SSH 超时合并
|
|||
|
|
- [ ] 「复制失败清单」剪贴板内容正确
|