Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Processing and sending new account events [blocked on Bluesky] #1119

Open
4 tasks
mackuba opened this issue Jun 6, 2024 · 6 comments
Open
4 tasks

Processing and sending new account events [blocked on Bluesky] #1119

mackuba opened this issue Jun 6, 2024 · 6 comments

Comments

@mackuba
Copy link

mackuba commented Jun 6, 2024

Recently, an #account event type has been added to the firehose protocol: bluesky-social/atproto#2263

As Bryan mentioned here, the firehose started emitting these events a few days ago: https://bsky.app/profile/bnewbold.net/post/3ktqmfshiud2l

These are supposed to replace both #migrate (which was never used AFAIK) and #tombstone, and also be used for account de/reactivation, takedown and other things.

I've checked what is being sent now - here are some logs and my guesses of what each means:

# account is created?
[2024-06-06 21:59:58 +0200] #identity did:plc:kazrzisra2uzuo25ly3tny4x {"did"=>"did:plc:kazrzisra2uzuo25ly3tny4x", "seq"=>582459146, "time"=>"2024-06-06T19:59:57.498Z", "handle"=>"kazmos.bsky.social"}
[2024-06-06 21:59:58 +0200] #account did:plc:kazrzisra2uzuo25ly3tny4x {"did"=>"did:plc:kazrzisra2uzuo25ly3tny4x", "seq"=>582459152, "time"=>"2024-06-06T19:59:57.498Z", "active"=>true}

# changed handle?
[2024-06-06 22:00:18 +0200] #handle did:plc:vkyrurx5747lgxp5dg75dqfh {"did"=>"did:plc:vkyrurx5747lgxp5dg75dqfh", "seq"=>582460440, "time"=>"2024-06-06T20:00:18.420Z", "handle"=>"difurgentdesigns.bsky.social"}
[2024-06-06 22:00:18 +0200] #identity did:plc:vkyrurx5747lgxp5dg75dqfh {"did"=>"did:plc:vkyrurx5747lgxp5dg75dqfh", "seq"=>582460452, "time"=>"2024-06-06T20:00:18.421Z", "handle"=>"difurgentdesigns.bsky.social"}

# account deactivated
[2024-06-06 22:02:25 +0200] #account did:plc:c6rk25p7empblrkuu74eaql4 {"did"=>"did:plc:c6rk25p7empblrkuu74eaql4", "seq"=>582468192, "time"=>"2024-06-06T20:02:24.276Z", "active"=>false, "status"=>"deactivated"}

# account deleted
[2024-06-06 22:02:25 +0200] #tombstone did:plc:ovkbmoopev43xllinmjrybb2 {"did"=>"did:plc:ovkbmoopev43xllinmjrybb2", "seq"=>582468218, "time"=>"2024-06-06T20:02:25.110Z"}
[2024-06-06 22:02:25 +0200] #account did:plc:ovkbmoopev43xllinmjrybb2 {"did"=>"did:plc:ovkbmoopev43xllinmjrybb2", "seq"=>582468229, "time"=>"2024-06-06T20:02:25.111Z", "active"=>false, "status"=>"deleted"}

# account reactivated?
[2024-06-06 22:07:30 +0200] #account did:plc:otomysmc3zjn2sxcadmra5cu {"did"=>"did:plc:otomysmc3zjn2sxcadmra5cu", "seq"=>582486703, "time"=>"2024-06-06T20:07:30.158Z", "active"=>true}

# only tombstone - Bridgy account :-)
[2024-06-06 22:16:43 +0200] #tombstone did:plc:4jehpa3pgdwihbesso4ty6vn {"did"=>"did:plc:4jehpa3pgdwihbesso4ty6vn", "seq"=>582520651, "time"=>"2024-06-06T20:16:43.164324+00:00"}

I'm planning to stop tracking the #tombstone events and track #account instead to know when to delete an account from my database, although for now it looks like Bridgy accounts are only emitting tombstone, so I need to track that too :)

This isn't urgent, because I think the "we'll be documenting and specifying this soon" mentioned in the skeet above didn't happen yet, but just something to keep on your list that will require some updates in near future.

I think these are the changes that will be needed (not necessarily in this order):

  • emit #account with { active: true } when an AP account is bridged
  • emit #account with { active: false, status: "deleted" } when an AP account is deleted/turned off (or maybe status: "deactivated" ?)
  • listen for #account events on the AT side and delete the account when { status: "deleted" } is received (since that will replace #tombstone)
  • when { status: "deactivated" } is received - do… something? not sure how this would be reflected on the AP side
@snarfed
Copy link
Owner

snarfed commented Jun 6, 2024

Awesome, thank you!

We currently emit and handle #tombstone, so you're right, we'll want to transition those both to #account events. deactivated, agreed, not sure. Not sure about active: true either, doesn't seem required yet, but I guess it couldn't hurt!

@snarfed
Copy link
Owner

snarfed commented Jun 27, 2024

I thought I saw more official docs on this at some point, but now I can't find them. Hrm. Only bluesky-social/atproto#2592 (comment) and the links you mentioned above.

@mackuba
Copy link
Author

mackuba commented Jun 27, 2024

I don't think I've seen anything more yet

@snarfed
Copy link
Owner

snarfed commented Jul 16, 2024

bnewbold says these ^ are right. Thanks again @mackuba! And he also mentioned the new account status XRPC methods. https://bsky.app/profile/bnewbold.net/post/3kxgamdx5w22m

@snarfed
Copy link
Owner

snarfed commented Jul 16, 2024

We've already implemented com.atproto.sync.getRepoStatus.

@snarfed
Copy link
Owner

snarfed commented Jul 17, 2024

OK, I've deployed snarfed/arroba@f9463b6, we're now emitting the #identity and #account events for new accounts. I haven't switched #tombstone to #account yet because I don't understand the differences between tombstone, deactivate, and delete yet, and which of those can be undone: https://bsky.app/profile/snarfed.org/post/3kxgh6bl6lu2j

@snarfed snarfed removed the now label Jul 17, 2024
@snarfed snarfed changed the title Processing and sending new account events Jul 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants