1.6 KiB
1.6 KiB
app_audit - 审计日志全局模块
独立设计的全局审计模块。审计日志 append-only,查看/备份/删除权限仅赋予
owner.audit 角色(审计独立性:owner.superuser 也无权访问,防管理员删自己的记录)。
结构
app_audit/
├── app_audit/
│ ├── __init__.py # 导出 audit_log / is_audit_role 等
│ ├── audit_service.py # 核心逻辑
│ └── init.py # load_app_audit(建表 + owner.audit 角色)
├── models/
│ └── sd_audit_logs.json
├── wwwroot/
│ └── api/audit.dspy # list/backup/delete(仅 owner.audit)
└── scripts/load_path.py # RBAC 权限注册
审计事件清单(action 取值)
- 认证:
login/login_fail/logout - 权限:
role_change/perm_change/user_role_change - 工作环境:
work_env_set/org_key_gen/remote_bwrap - 部署账号:
account_create/account_remove/sandbox_run - 用户机构:
user_create/user_disable/user_delete/org_change - 财务:
customer_recharge - 审计自身:
audit_delete/audit_backup
接入
宿主应用在 init() 里调用:
from app_audit.init import load_app_audit
load_app_audit()
其他模块在关键操作时写入审计:
from app_audit import audit_log
await audit_log(sor, user_id, username, "work_env_set", target=..., detail=..., result="ok")
权限隔离
owner.audit角色:查看/备份/删除审计日志的唯一角色owner.superuser也无权访问(审计独立性)audit_delete留痕记录永不删除(防自删)