{
  "$type": "com.whtwnd.blog.entry",
  "theme": "github-light",
  "title": "Concept for ATProto Private Data",
  "content": "About private data in ATProto -- I'm currently pondering an idea of two ways it can be used together:\n1. [Record metadata over the relay, with the origin PDS managing its access controls.](https://codeberg.org/davenash/rfcs/src/branch/main/atproto/001-private-content.md) The link is to the full proposal of that idea.\n2. Completely private data that doesn't get published at all, and can only be accessed by the user or an authorized application directly with the PDS.\n\nI want to explore idea #2.\n\nMy concept is that it would be implemented by a new set of XRPC endpoints implemented by the PDS. Let's call this `com.atproto.privateRepo.*`. These endpoints would mirror most or all of the `com.atproto.repo.*` endpoints, without any access control bits involved. It would also not include a way to refer to any specific repo, since it can only ever be used for one: the one you're authorized as.\n\nAs far as OAuth goes, it would also have a separate family of `repo` scopes (I'm going by [this version of the proposal by Brian Newbold](https://github.com/bluesky-social/proposals/blob/be1a7ce114efcf57e53a953b92e310e8339df449/0011-auth-scopes/README.md) right now), we can call it `private-repo`.\n\nThis private repo would be used for preferences, drafts, bookmarks, and other data that is only needed by client applications. #1 would be used instead for anything that an appview or other server (such as a feed generator) might need to access, even if access is restricted to everyone else.\n\nThe problem with #1 is that it generally publicly advertises the creation of these records. This is one way to solve that problem. It may be easier or more complicated, or delay it too much, to expand #1 with some ability to say \"don't let relays see this\".\n\nActually, I think #1 seems to misunderstand how relays get records: as far as I can tell, the relay crawls PDSes, rather than PDSes pushing to the relay? It also seems structurally AI-generated...\n\nOne problem with #2 is that this may complicate the process of exporting & importing repositories, depending on how those CAR files are structured... and PDS migration, too.",
  "createdAt": "2025-07-24T01:21:54.144Z",
  "visibility": "public"
}