w3c / activitypub

http://w3c.github.io/activitypub/
Other
1.22k stars 77 forks source link

new `Deactivate` activity as an alternative to `Delete` #475

Open snarfed opened 2 hours ago

snarfed commented 2 hours ago

Right now, in practice, if you Delete an actor, that's heavy and has destructive side effect, notably severing all follower relationships, that can't be easily undone. I dealt with this recently in https://github.com/snarfed/bridgy-fed/issues/1379 ; not fun. Deleteing a Notes or other object may have similarly destructive side effects; not sure.

These side effects are mostly unspecified in ActivityPub or ActivityStreams afaik; background in #472. Ideally, we should specify them. But also, I wonder if we want a different activity that's less destructive and/or easy to undo. For actors at least, maybe call it Deactivate. If a server receives a Deactivate for a remote actor, it could hide (aka tombstone) that actor and their posts and other activities, but not delete their local copy or take any other destructive actions like irreversibly removing follow relationships. If it later gets an Undo of the Deactivate, it could easily remove the tombstone and show the actor and their posts and activities again, and re-activate the existing follow relationships.

I'm flexible on most of the details here. If we instead choose to specify Delete to be non-destructive, that obviates the need for this. (But we may still want a destructive Delete.) I don't particularly care about the name Deactivate. I'm open to how it would be undone, which specific things could be undoable or not. (But ideally as many as possible.)

Thanks for reading!

snarfed commented 2 hours ago

Mastodon's suspended flag is related.