feat: add audit log tables, indexes, and CLI/content recording hooks

This commit is contained in:
2026-06-11 20:28:17 +00:00
parent 3862958fae
commit 78d70d9b08
58 changed files with 4456 additions and 25 deletions
+14
View File
@@ -7,6 +7,7 @@ from fastapi.responses import RedirectResponse, JSONResponse
from devplacepy.database import get_table, db
from devplacepy.utils import generate_uid, require_user
from devplacepy.models import ReactionForm
from devplacepy.services.audit import record as audit
logger = logging.getLogger(__name__)
router = APIRouter()
@@ -35,6 +36,7 @@ async def react(
)
if existing:
reactions.delete(id=existing["id"])
reaction_event = "reaction.remove"
else:
reactions.insert(
{
@@ -46,6 +48,18 @@ async def react(
"created_at": datetime.now(timezone.utc).isoformat(),
}
)
reaction_event = "reaction.add"
audit.record(
request,
reaction_event,
user=user,
target_type=target_type,
target_uid=target_uid,
metadata={"emoji": emoji},
summary=f"{user['username']} {'removed' if existing else 'added'} {emoji} on {target_type} {target_uid}",
links=[audit.target(target_type, target_uid)],
)
counts = {
row["emoji"]: row["c"]