35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""管理接口:审计查询、合规巡检、会话/Tool 留痕(RBAC 保护)。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends, Request
|
|
|
|
from app.api.deps import require_permission
|
|
from app.model.schemas import AuthContext
|
|
from app.service.audit_service import audit_service
|
|
from app.utils.response import success_response
|
|
|
|
router = APIRouter()
|
|
AUDIT_READ_DEP = Depends(require_permission("audit:read"))
|
|
|
|
|
|
@router.get("/audit-logs")
|
|
def list_audit_logs(
|
|
request: Request,
|
|
auth: AuthContext = AUDIT_READ_DEP,
|
|
):
|
|
events = [
|
|
{
|
|
"trace_id": event.trace_id,
|
|
"event_type": event.event_type,
|
|
"agent_type": event.agent_type,
|
|
"actor_id": event.actor_id,
|
|
"customer_id": event.customer_id,
|
|
"decision": event.decision,
|
|
"input_summary": event.input_summary,
|
|
"created_at": event.created_at.isoformat(),
|
|
}
|
|
for event in audit_service.list_events()
|
|
]
|
|
return success_response(request, {"items": events, "total": len(events)})
|