52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# 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()` 里调用:
|
||
|
||
```python
|
||
from app_audit.init import load_app_audit
|
||
load_app_audit()
|
||
```
|
||
|
||
其他模块在关键操作时写入审计:
|
||
|
||
```python
|
||
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` 留痕记录永不删除(防自删)
|