here to serve π«‘
04.08.2025 05:30 β π 2 π 0 π¬ 1 π 0@divy.zone.bsky.social
π bluesky team
here to serve π«‘
04.08.2025 05:30 β π 2 π 0 π¬ 1 π 0yup 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 -
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
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 π 20there 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 π 0currently traveling, but we will be looking at this when i return!
17.07.2025 00:19 β π 1 π 0 π¬ 1 π 0yep, 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 π 0wonder if @jeremykun.com may be able to offer some nice intuition for this
07.07.2025 01:28 β π 3 π 0 π¬ 1 π 0the 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!
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 π 1usually he can achieve that in just two lines and it looks something like this
// no breakies
// -prf
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 π 0i 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 π 0new 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... π
wait this is on the internet?
24.06.2025 19:20 β π 12 π 0 π¬ 1 π 0how big is it on disk in neo4j?
24.06.2025 19:18 β π 11 π 0 π¬ 3 π 0appviewappviewappview
- 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...
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
protocol team is working on a proposal, but no promises
13.06.2025 05:05 β π 4 π 0 π¬ 0 π 0this 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 π 0lastly, 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 π 0second, (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 π 0first, 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 π 0tried 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...
...hope everyone likes marquees, midis on autoplay, and friday deploys
09.06.2025 00:07 β π 33 π 2 π¬ 2 π 0ah, 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 π 0we'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!
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 π 0yeah 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