- 归档 close-phase-0(RBAC 权限 + 审计/登录日志 + seed 收口) - 新增主 spec:backend/auth、backend/res、backend/audit、backend/login - 追踪 sysmgr-nest passwordHash 泄漏修复 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
Audit Log Specification
Purpose
定义操作日志(审计)的自动落库行为:写操作与登录/登出由装饰器与拦截器统一记录,异步写入不阻塞业务。
Requirements
Requirement: 写操作自动审计
系统 SHALL 对标注 @AuditLog(module, action) 的写接口(增/删/改)在请求完成后异步写入 sys_audit_log,记录操作人、模块、动作、请求方法、路径、入参、结果状态、IP、UA 与耗时。
Scenario: 写操作成功
- WHEN 标注
@AuditLog的写接口执行成功 - THEN 系统写入一条 audit_log,status=success,含 module/action/method/path/user_id/username/ip/user_agent/duration_ms
Scenario: 写操作失败
- WHEN 标注
@AuditLog的写接口执行失败 - THEN 系统写入一条 audit_log,status=fail,并记录 error_message
Scenario: 查询不审计
- WHEN 查询类(读)接口执行
- THEN 系统不写入审计日志
Requirement: 登录登出审计
系统 SHALL 记录登录成功与登出事件到 audit_log(module=auth,action=login/logout)。
Scenario: 登录成功审计
- WHEN 用户登录成功
- THEN 系统写入 audit_log(module=auth, action=login, status=success)
Scenario: 登出审计
- WHEN 用户登出
- THEN 系统写入 audit_log(module=auth, action=logout)
Requirement: 审计异步不阻塞
审计日志 SHALL 异步写入;写入失败仅告警,不得影响业务请求结果。
Scenario: 审计写入失败
- WHEN 审计日志写库失败
- THEN 系统记录告警日志,业务请求照常返回成功结果