Files
Gov-chat-bot/backend/app/services/audit.py
2026-03-26 12:49:43 +09:00

40 lines
984 B
Python

"""
감사 로그 기록 헬퍼.
표준 action: faq.create|faq.update|faq.delete
doc.upload|doc.approve|doc.delete
user.restrict|user.unblock
crawler.approve|crawler.reject
config.update
"""
from typing import Optional
from sqlalchemy.ext.asyncio import AsyncSession
from app.models.audit import AuditLog
async def log_action(
db: AsyncSession,
tenant_id: str,
actor_id: str,
actor_type: str, # 'admin_user' | 'system_admin'
action: str,
target_type: Optional[str] = None,
target_id: Optional[str] = None,
diff: Optional[dict] = None,
ip_address: Optional[str] = None,
) -> AuditLog:
entry = AuditLog(
tenant_id=tenant_id,
actor_id=actor_id,
actor_type=actor_type,
action=action,
target_type=target_type,
target_id=target_id,
diff=diff,
ip_address=ip_address,
)
db.add(entry)
await db.commit()
return entry