How are you handling deletes / undeletes?

@nutomic and I currently have the ability in Lemmy to delete a thing, but then undelete it, since deleting really just sets a deleted boolean column for the object, and all actions in Lemmy are reversible.

In adding federated actions, we’re using a Delete activitypub , which sends a tombstone to the other servers (I don’t know if this is correct, maybe it should just reference the object URI?

Shared inbox received activity: {"type":"Delete","
actor":"http://lemmy_beta:8550/u/lemmy_beta","object":{"type":"Tombstone","id":"http://lemmy_beta:8550/c/trawl_4","formerType":"Group
","deleted":"2020-04-30T21:15:21.690553+00:00"},"id":"http://lemmy_beta:8550/c/trawl_4/delete/7e0cdb49-1d16-47cd-8026-970e6c0945db","
@context":"https://www.w3.org/ns/activitystreams","to":"https://www.w3.org/ns/activitystreams#Public","cc":"http://lemmy_beta:8550/c/
trawl_4/followers"}

But also, how are yall handling undeletes? Maybe Undo referencing the delete id?

1 Like

Also, do you distinguish between posts deleted by the creator or deleted by a mod? Our current code does, but its complicated to write all that in activitypub. In general we have a lot of duplicate code…

I don’t have such a concept. Deleting posts is irreversible, and deleting users is not yet implemented.

(even though I’m cloning VK and it does have undelete for most of the things you can delete)

But why do this? The only valid kind of Delete is signed with the post author’s private key. Again, I don’t have moderation implemented (yet), but since your instance has that private key anyway, it’d make sense to sign the moderator deletions with it as well.

1 Like

Tangential, but not ‘really’ deleting posts that user requested to be deleted is probably a GDPR violation.

We don’t handle undeletes either in Pleroma, on deletion we replace the existing object with a Tombstone and that’s it.

True, but I think we could avoid this problem by making the delete permanent after 24 hours or so.

1 Like