feat: 管理端登录日志与操作审计 (#18) #19

Merged
ila merged 2 commits from feat/18-audit-logs into main 2026-09-11 11:28:52 +08:00
Owner

管理员现在可以查看登录成功/失败,以及创建、启停、重置学习账号的操作日志。两个页面提供账号、结果、时间范围和动作筛选及分页;日志仅保存必要白名单字段,默认保留 90 天。

数据库显式从 v1 升至 v2,新增两张日志表。成功登录的会话/日志、成功账号操作/日志均原子提交;失败操作回滚后单独记录。提供启动/每小时分批清理及 audit-cleanup CLI。

验证:管理端 24 项测试、lint、生产构建;完整真实 MySQL 集成测试、Go vet 和构建;迁移、90 天边界、日志失败回滚、权限、敏感字段排除、分页竞态。代码评审 Spec/Quality PASS。本机迁移前后 4 个账号、4 个空间、2 个会话指纹一致,supervisor 已运行新版本。

浏览器已确认两个页面加载并显示真实日志。自动化点击未触发页面事件(临时点击探针已移除),菜单/筛选/翻页人工交互仍需验收,未记为通过。未演练开发库代码回退;回退方法已记录 Wiki。

关联 #18,待用户验收,不自动关闭。基础 #2 已验收,PR #17 尚未合并;本 PR 以 feat/2-account-foundation 为目标,使 diff 仅包含审计模块。#17 合并后应将本 PR 目标调整为 main。

用户于 2026-09-10T20:40:04+08:00 确认日志通过验收,#18 已关闭;先前待人工检查的交互由用户验收确认。自动化点击限制保留为历史验证说明。PR 仍未合并。

管理员现在可以查看登录成功/失败,以及创建、启停、重置学习账号的操作日志。两个页面提供账号、结果、时间范围和动作筛选及分页;日志仅保存必要白名单字段,默认保留 90 天。 数据库显式从 v1 升至 v2,新增两张日志表。成功登录的会话/日志、成功账号操作/日志均原子提交;失败操作回滚后单独记录。提供启动/每小时分批清理及 audit-cleanup CLI。 验证:管理端 24 项测试、lint、生产构建;完整真实 MySQL 集成测试、Go vet 和构建;迁移、90 天边界、日志失败回滚、权限、敏感字段排除、分页竞态。代码评审 Spec/Quality PASS。本机迁移前后 4 个账号、4 个空间、2 个会话指纹一致,supervisor 已运行新版本。 浏览器已确认两个页面加载并显示真实日志。自动化点击未触发页面事件(临时点击探针已移除),菜单/筛选/翻页人工交互仍需验收,未记为通过。未演练开发库代码回退;回退方法已记录 Wiki。 关联 #18,待用户验收,不自动关闭。基础 #2 已验收,PR #17 尚未合并;本 PR 以 feat/2-account-foundation 为目标,使 diff 仅包含审计模块。#17 合并后应将本 PR 目标调整为 main。 用户于 2026-09-10T20:40:04+08:00 确认日志通过验收,#18 已关闭;先前待人工检查的交互由用户验收确认。自动化点击限制保留为历史验证说明。PR 仍未合并。
ila changed target branch from feat/2-account-foundation to main 2026-09-11 11:28:50 +08:00
ila added 2 commits 2026-09-11 11:28:50 +08:00
ila merged commit 96ac5eb618 into main 2026-09-11 11:28:52 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/lexgo#19