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:
@@ -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 流程。
|
||||
- 报告管理搜索、查看、导出。
|
||||
- 模板新增、字段插入、报告套用模板。
|
||||
- 视频上传和抽帧可用性。
|
||||
|
||||
Reference in New Issue
Block a user