Backup automatico script del 2026-08-23 12:04
This commit is contained in:
1 parent
11823447a2
commit
795a15a7b6
66 files changed
+8546
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Audit log for MCP tool invocations."""
|
||||
|
||||
import json
|
||||
from typing import Optional
|
||||
|
||||
from .db import get_conn
|
||||
|
||||
|
||||
def log_tool(username: str, tool_name: str, resource_id: Optional[str] = None, detail: Optional[dict] = None) -> None:
|
||||
conn = get_conn()
|
||||
conn.execute(
|
||||
"INSERT INTO audit_log(username,tool_name,resource_id,detail) VALUES (?,?,?,?)",
|
||||
(username, tool_name, resource_id, json.dumps(detail or {}, ensure_ascii=False)),
|
||||
)
|
||||
conn.execute(
|
||||
"DELETE FROM audit_log WHERE id NOT IN "
|
||||
"(SELECT id FROM audit_log ORDER BY id DESC LIMIT 5000)"
|
||||
)
|
||||
conn.commit()
|
||||
|
||||
|
||||
def list_audit(limit: int = 100, username: Optional[str] = None) -> list:
|
||||
conn = get_conn()
|
||||
if username:
|
||||
rows = conn.execute(
|
||||
"SELECT * FROM audit_log WHERE username=? ORDER BY id DESC LIMIT ?",
|
||||
(username, limit),
|
||||
).fetchall()
|
||||
else:
|
||||
rows = conn.execute(
|
||||
"SELECT * FROM audit_log ORDER BY id DESC LIMIT ?", (limit,)
|
||||
).fetchall()
|
||||
return [dict(r) for r in rows]
|
||||
Reference in new issue
Block a user