- 后端:强化平台/审批/资源/系统接口权限校验与操作日志,更新权限设计文档与测试用例 - 存储:新增 MinIO 独立部署适配(端口 19000/19001),外部端点与 host-gateway 互通 - 离线:打包 tiktoken cl100k_base 词表进镜像,避免无网环境联网下载 - 其他:算力节点接口微调,前端微调创建页小修,忽略 MinIO 运行时数据 Co-Authored-By: Claude <noreply@anthropic.com>
123 lines
3.8 KiB
Markdown
123 lines
3.8 KiB
Markdown
# 权限与日志改造自动化测试结果
|
||
|
||
## 1. 测试时间
|
||
|
||
2026-08-12
|
||
|
||
## 2. 测试环境
|
||
|
||
| 项目 | 地址/状态 |
|
||
|---|---|
|
||
| Frontend | `http://172.25.179.69:16801` |
|
||
| Backend | `http://172.25.179.69:17861/modelTF` |
|
||
| WSL | `172.25.179.69` |
|
||
| Docker | 已运行 |
|
||
|
||
## 3. 自动执行结果
|
||
|
||
| 用例 | 结果 | 实际结果 |
|
||
|---|---|---|
|
||
| 容器状态 | 通过 | Compute、Frontend、Backend、Redis、MinIO 均为 `healthy` |
|
||
| Backend 健康检查 | 通过 | `/modelTF/health` 返回 HTTP 200 |
|
||
| Frontend 首页 | 通过 | `/` 返回 HTTP 200 |
|
||
| 未登录访问数据集接口 | 通过 | `/modelTF/dataset-manage` 返回 HTTP 401 |
|
||
| Redis 容器状态 | 通过 | 容器状态为 healthy |
|
||
| 轮询正常日志降噪 | 通过 | 最近 120 秒未发现 `compute jobs polled` 或 `health check requested` 高频日志 |
|
||
| 轮询异常日志保留 | 未触发 | 当前未人为停止算力节点,未产生轮询失败日志 |
|
||
| 前端构建 | 通过 | `npm run build` 成功 |
|
||
| 后端编译 | 通过 | 相关 Python 模块 `py_compile` 成功 |
|
||
| Git 差异检查 | 通过 | `git diff --check` 无格式错误 |
|
||
|
||
## 4. 数据库字段迁移
|
||
|
||
### 静态检查结果
|
||
|
||
初始化 SQL 和运行时迁移逻辑已包含以下字段:
|
||
|
||
- `models.deleted_at`
|
||
- `models.deleted_by`
|
||
- `models.tenant_id`
|
||
- `models.project_id`
|
||
- `datasets.deleted_at`
|
||
- `datasets.deleted_by`
|
||
- `datasets.tenant_id`
|
||
- `datasets.project_id`
|
||
- `trained_models.deleted_at`
|
||
- `trained_models.deleted_by`
|
||
- `trained_models.tenant_id`
|
||
- `trained_models.project_id`
|
||
- `eval_tasks.deleted_at`
|
||
- `eval_tasks.deleted_by`
|
||
- `sessions.issued_at`
|
||
- `sessions.expires_at`
|
||
|
||
### 远程数据库检查状态
|
||
|
||
已通过当前 Backend 容器使用一次性 PostgreSQL 连接检查远程数据库,字段迁移已完成。
|
||
|
||
确认存在:
|
||
|
||
- `models`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
||
- `datasets`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
||
- `trained_models`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
||
- `eval_tasks`: `created_by`、`tenant_id`、`project_id`、`deleted_at`、`deleted_by`
|
||
- `sessions`: `issued_at`、`expires_at`、`logout_at`
|
||
|
||
使用的检查 SQL:
|
||
|
||
```sql
|
||
SELECT table_name, column_name
|
||
FROM information_schema.columns
|
||
WHERE table_name IN ('models', 'datasets', 'trained_models', 'eval_tasks', 'sessions')
|
||
ORDER BY table_name, ordinal_position;
|
||
```
|
||
|
||
## 5. Redis 说明
|
||
|
||
已从当前环境确认 Redis 实际密码配置为 `Tvhrf659WaX-S1B8FG6c2kSZK07XTv82`,使用该密码验证返回 `PONG`。
|
||
|
||
项目配置已同步为:
|
||
|
||
```env
|
||
REDIS_PASSWORD=Tvhrf659WaX-S1B8FG6c2kSZK07XTv82
|
||
REDIS_URL=redis://:Tvhrf659WaX-S1B8FG6c2kSZK07XTv82@redis:6379/0
|
||
```
|
||
|
||
后续验证应从当前 Docker 环境读取实际密码后执行:
|
||
|
||
```bash
|
||
docker compose config
|
||
docker exec yg-ft-redis printenv REDISCLI_AUTH
|
||
docker exec yg-ft-redis redis-cli -a "$REDISCLI_AUTH" ping
|
||
```
|
||
|
||
预期返回:
|
||
|
||
```text
|
||
PONG
|
||
```
|
||
|
||
## 6. 未自动执行的破坏性用例
|
||
|
||
以下用例需要测试账号、测试资源或人工确认,未自动执行,以避免影响现有数据:
|
||
|
||
- ACL 授权和撤销。
|
||
- 训练任务创建、停止、重试和删除。
|
||
- 评测任务启动和删除。
|
||
- 推理模型加载、卸载和删除。
|
||
- 模型权重合并和导出。
|
||
- GPU 分配、占用和释放。
|
||
- 软删除后资源恢复和数据完整性。
|
||
- 人为停止算力节点验证轮询失败恢复。
|
||
- 登录失败 5 次后的限流验证。
|
||
- Token 过期和注销后的访问验证。
|
||
|
||
## 7. 当前结论
|
||
|
||
当前服务基础可用,页面和 Backend 健康接口正常,未登录鉴权正常,日志降噪逻辑生效,前后端构建通过。
|
||
|
||
当前仍需人工或使用专用测试数据验证:
|
||
|
||
1. 权限矩阵中的创建、执行、删除、审批和 GPU 占用场景。
|
||
2. Token 过期和登录失败限流场景。
|