Skip to content

feat(audit): 审计日志保留期清理(后端自动清理 + 审计页配置)#83

Merged
Awuqing merged 2 commits into
mainfrom
feat/audit-retention
May 27, 2026
Merged

feat(audit): 审计日志保留期清理(后端自动清理 + 审计页配置)#83
Awuqing merged 2 commits into
mainfrom
feat/audit-retention

Conversation

@Awuqing

@Awuqing Awuqing commented May 27, 2026

Copy link
Copy Markdown
Owner

背景

审计日志此前不限期增长。企业合规(数据生命周期管理,SOC2/ISO27001/等保)与存储治理都需要可配置的保留期 + 自动清理

后端

  • AuditLogRepository.DeleteBefore(cutoff):按 created_at 删除超期日志。
  • AuditService.PurgeOlderThan(days) + StartRetentionMonitor:每 6h 读取 audit_retention_days 设置并清理超期日志;0/缺省 = 永久保留(向后兼容,默认不删任何历史)。
  • settings 新增 audit_retention_days 键(纳入显式 allow-list);app.go 启动后台监控。

前端

  • 审计日志页头新增管理员可见的「日志保留期」控件(天数输入,0 = 永久)+ 保存按钮,写入设置后由后端自动执行清理。

测试

  • audit_retention_testDeleteBefore / PurgeOlderThan(≤0 不删、>0 删) / 设置驱动清理 / 0=永久保留。补齐 fakeAuditRepo 的新接口方法。
  • 后端 go test ./... 全绿;前端 tsc + vite build 通过。

Awuqing added 2 commits May 27, 2026 08:33
审计日志此前不限期增长。企业合规(数据生命周期管理)与存储治理需要可配置的
保留期 + 自动清理。

- AuditLogRepository.DeleteBefore:按 created_at 删除超期日志。
- AuditService.PurgeOlderThan + StartRetentionMonitor:每 6h 读取
  audit_retention_days 设置并清理超期日志;0/缺省=永久保留(向后兼容,默认不删历史)。
- settings 新增 audit_retention_days 键(纳入 allow-list)。
- app.go 启动保留期后台监控。
- audit_retention_test 覆盖:DeleteBefore、PurgeOlderThan(<=0 不删/>0 删)、
  设置驱动清理、0=永久保留。
审计日志页头新增管理员可见的「日志保留期」控件(天数输入,0=永久保留)+ 保存按钮,
写入 audit_retention_days 设置;后端每 6h 据此自动清理超期日志。
@Awuqing Awuqing merged commit f807ce1 into main May 27, 2026
6 checks passed
@Awuqing Awuqing deleted the feat/audit-retention branch May 27, 2026 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant