make conversation-id deterministic #154

Merged
floatingghost merged 6 commits from conversation-id into develop 2022-08-06 20:59:16 +00:00
Basis from https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3717
floatingghost added 6 commits 2022-08-06 20:49:15 +00:00
30 to 70% of the objects in the object table are simple JSON objects
containing a single field, 'id', being the context's ID. The reason for
the creation of an object per context seems to be an old relic from the
StatusNet era, and has only been used nowadays as an helper for threads
in Pleroma-FE via the `pleroma.conversation_id` field in status views.
An object per context was created, and its numerical ID (table column)
was used and stored as 'context_id' in the object and activity along
with the full 'context' URI/string.

This commit removes this field and stops creation of objects for each
context, which will also allow incoming activities to use activity IDs
as contexts, something which was not possible before, or would have been
very broken under most circumstances.

The `pleroma.conversation_id` field has been reimplemented in a way to
maintain backwards-compatibility by calculating a CRC32 of the full
context URI/string in the object, instead of relying on the row ID for
the created context object.
add null object purger
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
1faf54ab41
remove fallback to context_id entirely
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
54d1e06c9b
make null object delete optional
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
ci/woodpecker/pr/woodpecker Pipeline was successful
525feb7de8
floatingghost merged commit 62e179f446 into develop 2022-08-06 20:59:16 +00:00
floatingghost deleted branch conversation-id 2022-08-06 20:59:16 +00:00
rat referenced this pull request from a commit 2024-02-25 20:33:29 +00:00
Sign in to join this conversation.
No description provided.