Files
shaguabijia-app-server/docs/api/admin/admin-audit-logs.md
linkeyu fda82fe313 后台:新增监控审计权限分组并加强接口鉴权 (#159)
## 变更
- 权限目录新增一级分组“监控审计”,统一设备存活、埋点成功率、埋点日志和审计日志。
- 补齐 `analytics-health` 页面权限,技术角色默认拥有四项监控审计权限;运营默认仅保留设备存活。
- 新增服务端 `require_page` 守卫,四组 API 不再只依赖前端隐藏导航,直接调用也会校验角色或个人页面权限。
- 增加迁移,为存量技术角色补上 `analytics-health` 权限,并同步接口文档。

## 验证
- 改动文件 `ruff check` 通过。
- `tests/test_admin_roles.py tests/test_analytics_health.py`: 24 passed。
- Alembic 从空库 upgrade 到 head,再 downgrade 本迁移:通过。
- 全量测试:443 passed、6 failed;6 项失败在干净 `origin/main` 上原样复现(主干为 442 passed、6 failed),与本 PR 无关。

---------

Co-authored-by: unknown <798648091@qq.com>
Reviewed-on: #159
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
2026-07-22 17:22:09 +08:00

1.9 KiB
Raw Permalink Blame History

GET /admin/api/audit-logs — 审计日志(谁改了什么,游标分页)

所属:Admin·Audit 组(前缀 /admin/api/audit-logs | 鉴权:Bearer admin_token + audit-logs 页面权限 | ← 返回 API 索引

入参(query

字段 类型 必填 默认 说明
action string null 按操作类型过滤,如 admin.create / admin.update
target_type string null 按目标对象类型过滤,如 admin
admin_id int null 按操作人(管理员 id)过滤
limit int 50 1100
cursor int null 上一页末条 id,首页不传

出参

响应 200:{ items: AdminAuditLogOut[], next_cursor: int|null }(按 id 倒序;分页见 索引#游标分页约定

AdminAuditLogOut

字段 类型 说明
id int 审计 id(也是游标)
admin_id int 操作人管理员 id
admin_username string 操作人账号(写入时快照)
action string 操作类型,如 admin.create / admin.update
target_type string 目标对象类型,如 admin
target_id string | null 目标对象 id(字符串)
detail object | null 操作详情(JSON,如变更字段)
ip string | null 操作来源 IP(取 XFF 首段或直连 IP,仅记录不鉴权)
created_at datetime 操作时间(UTC)

错误码

  • 401 未带 admin token / token 无效或过期 / 管理员被禁用
  • 403 当前管理员没有 audit-logs 页面权限

说明

  • 整组(/admin/api/audit-logs)守卫为 require_page("audit-logs"),默认仅超级管理员和技术角色可查看,也可由超管给自定义角色授权。
  • 审计日志只增不改不删,任何写操作经 write_audit 落一条。数据表见 admin_audit_log