bluesky-social / atproto

Social networking technology created by Bluesky
Other
6.9k stars 490 forks source link

AppView: support "undelete" repo, ie undo tombstone #2806

Open snarfed opened 2 months ago

snarfed commented 2 months ago

Hi all! @bnewbold and I talked about this on and off a while back, and @ericvolp12 and I just now in Discord, but I couldn't find an open issue to track it, either here or in the indigo repo, so I figured I'd start one. Feel free to move or redirect if you want.

I currently emit #tombstone events over subscribeRepos when accounts on my PDS are disabled/deleted. I plan to switch to #account events eventually, https://github.com/snarfed/bridgy-fed/issues/1119 , but I've waited because I want to be able to undo a tombstone and bring a repo back to life. It sounds like the AppView doesn't support this yet, but I'm not sure if you expect to eventually.

@bnewbold thought that emitting #identity + #account with active: true might do it, but I tried that, and it doesn't work quite yet: https://github.com/snarfed/bridgy-fed/issues/1130#issuecomment-2248531340. More background: https://github.com/snarfed/bridgy-fed/issues/1119#issuecomment-2233362196

Thanks in advance!

excelsior091224 commented 1 month ago

It's been over a month since @snarfed raised this issue, and no progress has been made? I was using Bridgy Fed, created by @snarfed, but while investigating another bug (https://github.com/snarfed/bridgy-fed/issues/1093), I accidentally blocked the bluesky account on Bridgy Fed, which resulted in the account bridged to Bluesky being deleted and I can no longer bridge my ActivityPub (Misskey) account to AT Proto. This is causing me a lot of trouble. I hope they can resolve this soon.

bnewbold commented 1 month ago

This is a bug, but it may take a while to get this resolved. If I recall, we never actually used the #tombstone from out PDS instances (aka, never emitted when an account was deleted), but it was implemented as a hard permanent delete (can't recover) in the AppView. So this behavior has been come across in a way that hadn't been before.

We are working on writing up the "account lifecycle" specification and can try to schedule getting the appview updated to match the spec when that is ready.

In the meantime I would strongly recommend not emitting any more #tombstone events for any reason, and emit #account events instead (either with status either "delete" or "deactivate" when folks disable the bridge, your choice which is more appropriate).

snarfed commented 1 month ago

Thanks @bnewbold! This gives me a new lead that I should have thought of before, but didn't. So far all of my experiments here have been trying to undelete repos that were #tombstoned. I haven't yet tried #account-deactivating a repo and then bringing it back, but I should! Will do.

snarfed commented 1 month ago

Woo, it works! Specifically active: false, status: deactivated and then active: true. Exciting!