fix(audit): backfill COMMENT_ADDED and MENTION_CREATED events
Comments created before audit logging was added in 428c63a2 have no
corresponding audit_log rows, so the Chronik activity feed (which
reads exclusively from audit_log) cannot surface them in "Alle" or
"Für dich", even though the fix from #295 is wired up correctly.
V50 inserts the missing events idempotently from document_comments
and comment_mentions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
-- Backfill COMMENT_ADDED and MENTION_CREATED audit events for comments
|
||||||
|
-- created before audit logging was added in commit 428c63a2.
|
||||||
|
-- Without these rows the Chronik activity feed (which reads exclusively from
|
||||||
|
-- audit_log) cannot surface pre-existing comments in "Für dich" or "Alle".
|
||||||
|
|
||||||
|
INSERT INTO audit_log (id, happened_at, actor_id, kind, document_id, payload)
|
||||||
|
SELECT
|
||||||
|
gen_random_uuid(),
|
||||||
|
c.created_at,
|
||||||
|
c.author_id,
|
||||||
|
'COMMENT_ADDED',
|
||||||
|
c.document_id,
|
||||||
|
jsonb_build_object('commentId', c.id::text)
|
||||||
|
FROM document_comments c
|
||||||
|
WHERE NOT EXISTS (
|
||||||
|
SELECT 1 FROM audit_log a
|
||||||
|
WHERE a.kind = 'COMMENT_ADDED'
|
||||||
|
AND a.payload->>'commentId' = c.id::text
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO audit_log (id, happened_at, actor_id, kind, document_id, payload)
|
||||||
|
SELECT
|
||||||
|
gen_random_uuid(),
|
||||||
|
c.created_at,
|
||||||
|
c.author_id,
|
||||||
|
'MENTION_CREATED',
|
||||||
|
c.document_id,
|
||||||
|
jsonb_build_object(
|
||||||
|
'commentId', c.id::text,
|
||||||
|
'mentionedUserId', m.user_id::text
|
||||||
|
)
|
||||||
|
FROM comment_mentions m
|
||||||
|
JOIN document_comments c ON c.id = m.comment_id
|
||||||
|
WHERE NOT EXISTS (
|
||||||
|
SELECT 1 FROM audit_log a
|
||||||
|
WHERE a.kind = 'MENTION_CREATED'
|
||||||
|
AND a.payload->>'commentId' = c.id::text
|
||||||
|
AND a.payload->>'mentionedUserId' = m.user_id::text
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user