prepare fastapi root layout for server deployment
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.context import UserContext
|
||||
from app.models.audit import AuditLog
|
||||
from app.repositories.audit_repository import AuditRepository
|
||||
|
||||
|
||||
class AuditService:
|
||||
"""审计服务:统一记录关键接口调用和资源访问。"""
|
||||
|
||||
def __init__(self, db: Session) -> None:
|
||||
self.db = db
|
||||
self.repo = AuditRepository(db)
|
||||
|
||||
def log(
|
||||
self,
|
||||
ctx: UserContext,
|
||||
action: str,
|
||||
resource_type: str,
|
||||
resource_id: str | None = None,
|
||||
session_id: int | None = None,
|
||||
metadata: dict | None = None,
|
||||
) -> None:
|
||||
"""审计写入:保存用户、动作、资源和请求元数据。"""
|
||||
self.repo.create(
|
||||
AuditLog(
|
||||
user_id=ctx.user_id,
|
||||
tenant_id=ctx.tenant_id,
|
||||
session_id=session_id,
|
||||
action=action,
|
||||
resource_type=resource_type,
|
||||
resource_id=resource_id,
|
||||
request_id=ctx.request_id,
|
||||
ip_address=ctx.ip_address,
|
||||
user_agent=ctx.user_agent,
|
||||
metadata_=metadata,
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user