devin ivy πŸ‹'s Avatar

devin ivy πŸ‹

@divy.zone.bsky.social

πŸŒ€ bluesky team

21,268 Followers  |  585 Following  |  684 Posts  |  Joined: 17.11.2022  |  2.3716

Latest posts by divy.zone on Bluesky

here to serve 🫑

04.08.2025 05:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

yup looks good

curl -s 'https://meadow.us-east.host.bsky.network/xrpc/com.atproto.sync.getRecord?did=did:plc:4ewnpnebeh7zuk5pbardaxqz&collection=app.bsky.feed.post&rkey=3lux3had5js27' | goat repo mst -

29.07.2025 19:27 β€” πŸ‘ 18    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Adversarial ATProto PDS Migration | Blog

Adversarial ATProto PDS Migration www.da.vidbuchanan.co.uk/blog/adversa...

aka how to migrate your account if your old PDS explodes, and how to prepare for it in advance

28.07.2025 18:50 β€” πŸ‘ 330    πŸ” 88    πŸ’¬ 11    πŸ“Œ 10

proposing com.atproto.retr0.id.wasHere

28.07.2025 21:33 β€” πŸ‘ 12    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

"Social media users are tired of losing their identity and data every time a platform shuts down or pivots. In the ATProto ecosystem, users own their data and identities. Bluesky is the first big example, but a new wave of decentralized social networks is just beginning."

24.07.2025 18:06 β€” πŸ‘ 3029    πŸ” 460    πŸ’¬ 60    πŸ“Œ 20

there are a handful of rules for packages published to jsrβ€”if someone wants to help illustrate what the changes would look like for one of our packages to become compatible i think that would be a big help! would also love to hear more on how jsr improves the experience for deno users over npm.

17.07.2025 00:32 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

currently traveling, but we will be looking at this when i return!

17.07.2025 00:19 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

yep, that's right! i believe it should stay held until an account deletion. this behavior could conceivably change over time, but no current plans to change it.

11.07.2025 19:31 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

wonder if @jeremykun.com may be able to offer some nice intuition for this

07.07.2025 01:28 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

the spec on atproto.com was updated here: github.com/bluesky-soci...

but if you do run into any places that reference out-of-date info, flagging it or opening an issue is always appreciated!

06.07.2025 04:19 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Allow HTTPS `redirect_uris` from any origin by matthieusieben Β· Pull Request #3811 Β· bluesky-social/atproto This change removes the restriction of the redirect_uris urls to be on the same origin as the client id. Note that the ATProto spec needs to be adapted together with this PR. See this PR

happy to share the redirect uri origin limitation was lifted! as i recall the purpose was to err on the side of strictness while details of the client id metadata doc spec continued to solidify, to promote client compatibility. some deets: github.com/bluesky-soci... docs.bsky.app/blog/oauth-i...

05.07.2025 19:58 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 2    πŸ“Œ 1

usually he can achieve that in just two lines and it looks something like this

// no breakies
// -prf

03.07.2025 18:40 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

yeah, lookin goodβ€”that is a nice summary of an end-to-end flow! since the contents of the permission sets are sensitive, the pds authenticating the lexicon record contents is going to be important. (and i expect you were counting that as part of record resolution!)

03.07.2025 15:22 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

i was in there, also @bnewbold.net, @matthieu.bsky.team, @dholms.xyz, and @pfrazee.com all went pretty hard on this one.

03.07.2025 15:11 β€” πŸ‘ 15    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

new capabilities for atproto devs coming sooooon!

take a close look, and you'll find some pretty unique stuff going on in here. one of the key questions is: how will users understand what data they're providing an app access to when they login? lexicon authors will play a very important role... πŸ‘€

03.07.2025 01:06 β€” πŸ‘ 78    πŸ” 14    πŸ’¬ 0    πŸ“Œ 3

wait this is on the internet?

24.06.2025 19:20 β€” πŸ‘ 12    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

how big is it on disk in neo4j?

24.06.2025 19:18 β€” πŸ‘ 11    πŸ” 0    πŸ’¬ 3    πŸ“Œ 0
Preview
in and out, quick appview adventure | futur it's an appview, michael, how long could it take? tl;dr I'm running what is, to my knowledge, the first instance of the Bluesky AppView containing all\* data in the history of the network This took...

appviewappviewappview

- after 6 months, I'm running what is, afaik, the first full-network bluesky appview
- you can use it at zeppelin.social, query it at bsky.zeppelin.social, read about it at whtwnd.com/futur.blue/3..., & help me keep it up for more than a few weeks at github.com/sponsors/fut...

23.06.2025 17:04 β€” πŸ‘ 336    πŸ” 119    πŸ’¬ 32    πŸ“Œ 25
Preview
OAuth Improvements | Bluesky We've been making improvements to the end-user and developer experiences with atproto OAuth, and wanted to share some updates.

OAuth updates for app devs!

Over the past few weeks we've been chatting with devs and doing a pass over our SDKs and docs to address issues. This blog post summarizes the main changes we've made, some tweaks still in flight, and links to longer form writing about security and design trade-offs

13.06.2025 19:26 β€” πŸ‘ 619    πŸ” 110    πŸ’¬ 32    πŸ“Œ 6

protocol team is working on a proposal, but no promises

13.06.2025 05:05 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

this is huge in the atproto setting where each client may interact w/ 1000s of auth servers. if the client has a breach, we can't lean on each auth server to respond by revoking creds: the client must be able to do it. we also don't want an attacker to mass revoke creds, hence client authentication.

13.06.2025 04:15 β€” πŸ‘ 28    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

lastly, client authentication is great and it helps in two ways. first, it secures the authn flow by allowing the auth server to confirm who it's handing creds. potentially more importantly, it also gives the client the ability to revoke credentials en masse...

13.06.2025 04:15 β€” πŸ‘ 23    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

second, (keeping that previous thought in mind) in the case of a "public" client, consider that all this can take place without the auth server actually authenticating who it's handing over the user's credentials to. yeah! but that's a feature, and it gives devs choice how to build. it's worth it.

13.06.2025 04:15 β€” πŸ‘ 20    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

first, the oauth authorization code flow is truly wild from a security standpoint: three-legged, user interaction, dynamic redirects, the browser security model in the mix. and in atproto the client and auth server have _no_ prior relationship with each other. it's no wonder oauth can be... a lot.

13.06.2025 04:15 β€” πŸ‘ 22    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

tried to give some intuition for how fraught the oauth authorization code flow is, how the atproto oauth profile secures it, and lots of info for app devs engaging closely with this.

a few things really jumped out at me while writing...

13.06.2025 04:15 β€” πŸ‘ 74    πŸ” 5    πŸ’¬ 2    πŸ“Œ 1

...hope everyone likes marquees, midis on autoplay, and friday deploys

09.06.2025 00:07 β€” πŸ‘ 33    πŸ” 2    πŸ’¬ 2    πŸ“Œ 0

ah, strange! is there any code you can share? i'd be curious to learn what process is taking place when you restore the session. typically i would expect it to be a local lookup of the user's credentials. on occasion it may perform a token refresh too, but this is the same as in the legacy system.

07.06.2025 20:16 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Relaxing DID PLC Verification Method Constraints, June 2025 Β· bluesky-social atproto Β· Discussion #3928 We’ve made a minor change to the PLC Directory service, with the aim of expanding compatibility with non-atproto apps and services: β€œverificationMethod” keys can now be almost any key type, includi...

we've rolled out some small changes to the DID PLC directory which make it possible to register new key types as verificationMethod entries, for non-atproto use cases.

(this does not impact the PLC rotation key mechanism itself; that is still limited to P-256 and K-256)

have fun building on PLC!

05.06.2025 20:59 β€” πŸ‘ 313    πŸ” 46    πŸ’¬ 23    πŸ“Œ 10

it's the second part that makes it hard: the secret would need to be the same for the app running in your browser and the app running in my browser. the goal is for all instances of the app (e.g. in each of our browsers) to be able to authenticate itself as a single client, with a single client id.

05.06.2025 05:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

yeah good q! the issue isn't crypto in the browser so much as it is the fact that there's no way for a browser-based app to keep a credential secret. the credential needs to be shared by all instances of the client, e.g. both when it appears in your browser and when it appears in my browser.

05.06.2025 05:32 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@divy.zone is following 20 prominent accounts