系统管理员:新增日志管理(全系统操作审计)
- system_logs 表 + 持久化(查询/筛选/分页/动作枚举) - 全局审计中间件:记录全部写操作(POST/PUT/DELETE)+登录,含操作人(JWT)/角色/中文动作/方法/路径/目标/状态/成功/耗时/IP/查询参数 - 中文动作标签按路由推导,目标ID从路径提取 - GET /api/system-logs(仅系统管理员)支持按动作/关键词/时间/成功失败筛选 - 前端「日志管理」页:筛选+分页+明细展开;导航与路由接入
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
/* eslint-disable */
|
||||
/**
|
||||
* 系统操作审计日志:记录全系统的写操作(谁/何时/何角色/动作/目标/方法/路径/结果/IP/耗时)。
|
||||
* 供系统管理员审计。仅记录状态变更类请求(POST/PUT/DELETE)与登录。
|
||||
*/
|
||||
|
||||
exports.up = (pgm) => {
|
||||
pgm.sql(`
|
||||
CREATE TABLE IF NOT EXISTS system_logs (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
ts TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
actor_id TEXT,
|
||||
actor_name TEXT,
|
||||
role TEXT,
|
||||
action TEXT NOT NULL,
|
||||
method TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
target_id TEXT,
|
||||
status INTEGER,
|
||||
success BOOLEAN,
|
||||
duration_ms INTEGER,
|
||||
ip TEXT,
|
||||
query TEXT,
|
||||
detail JSONB
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_system_logs_ts ON system_logs(ts DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_system_logs_actor ON system_logs(actor_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_system_logs_action ON system_logs(action);
|
||||
`);
|
||||
};
|
||||
|
||||
exports.down = (pgm) => {
|
||||
pgm.sql(`DROP TABLE IF EXISTS system_logs;`);
|
||||
};
|
||||
Reference in New Issue
Block a user