Add audit log UI and backend API seeded E2E

- Add Auth Context route role guards so doctors cannot directly enter template management, user management, or audit logs.

- Add Audit Logs page, sidebar entry, frontend audit API client, and API client test.

- Add backend audit log query endpoint with super/admin visibility rules and query filtering.

- Extend PostgreSQL integration tests to cover audit log query permissions.

- Move Playwright E2E away from localStorage seed data to real backend API login and seed helpers.

- Add E2E coverage for route guards and audit log visibility.

- Run Playwright backend on port 3100 and proxy Vite API requests there to avoid local port conflicts.

- Make server:dev use the compiled NestJS server path, avoiding tsx parameter-property injection issues.

- Update README, AGENTS, feature, testing, security, deployment, progress, API, backendization, and auth/user module docs.
This commit is contained in:
2026-05-02 02:04:56 +08:00
parent a16f522a4b
commit 750cf4129d
31 changed files with 719 additions and 261 deletions

View File

@@ -35,7 +35,7 @@
| 密码 | Argon2 哈希 | 禁止明文密码进入前端或日志。 |
| 文件存储 | 本地文件目录 + `files` 表,预留 MinIO/S3 兼容接口 | 开发和院内部署先降低成本;生产可切换对象存储。 |
| 输入校验 | Zod 或 NestJS DTO 校验 | 所有 API 入参都必须校验,尤其是 HTML、文件、权限相关参数。 |
| 测试 | Vitest/Testing Library + Playwright + 后端单元/集成测试 | 保留现有前端测试;新增后端 policy/service/API 测试E2E 后续从 localStorage seed 改为 API/test DB seed。 |
| 测试 | Vitest/Testing Library + Playwright + 后端单元/集成测试 | 保留现有前端测试;新增后端 policy/service/API 测试E2E 从 localStorage seed 改为真实后端 API seed。 |
| 部署 | Docker Compose | 前端静态资源、NestJS API、PostgreSQL、可选 Redis/MinIO 分服务部署。 |
暂不建议第一阶段使用微服务、复杂租户系统或后端抽帧服务。抽帧可以先继续留在前端 canvas生成关键帧后上传后端文件接口。
@@ -46,7 +46,7 @@
- `server/src/main.ts`NestJS 启动入口,设置 `/api` 前缀、CORS、Cookie Session、数据库 Session Store 和统一错误响应。
- `server/src/dashboard``GET /api/dashboard/stats`,按角色范围统计报告、模板、用户和趋势。
- `server/src/audit`第一版审计服务,记录登录、报告、模板、用户、设置和文件修改。
- `server/src/audit`:审计服务和查询 API记录并查看登录、报告、模板、用户、设置和文件修改。
- `server/src/health``GET /api/health` 健康检查。
- `server/src/auth``POST /api/auth/login``GET /api/auth/me``POST /api/auth/logout` 认证接口。
- `server/src/reports``GET/POST/PATCH/DELETE /api/reports` 报告接口,含角色范围过滤、历史版本、软删除和报告媒体关系同步。
@@ -327,6 +327,7 @@
5. 审计日志
- 登录、编辑、完成、删除、重置、权限变更等关键操作写日志。
- 当前已提供审计日志查询页面/API超级管理员看全部管理员看本部门或自己相关日志。
- 报告导出不要求水印、导出原因、审批或专门导出审计。
## 权限模型建议
@@ -398,10 +399,17 @@
### E2E 测试
建议新增 Playwright
当前 Playwright 已通过真实后端 API seed 覆盖
- 管理员登录、创建医生、分配模板
- 医生登录、新建报告、保存草稿、完成报告
- 默认登录进入工作台
- 报告按超级管理员、管理员、医生范围过滤
- 已完成报告再次完成后递增修订版本并保留历史。
- 医生保存个人模板。
- 医生直进管理页被路由守卫拦截,超级管理员可查看审计日志。
后续可继续增加:
- 管理员创建医生、分配模板的完整 UI 流程。
- 报告管理搜索、查看、导出。
- 模板新增、字段插入、报告套用模板。
- 视频上传和抽帧可用性。