







tl;dr non-AtprotoPersonalDataServer services might host records, let’s introduce following AT-URI syntax with optional service field to reference those non-PDS hosted data. at://tangled_knot@did:plc:user/... ^^^^^^^^^^^^ ^^^ | path can be any format | (NSID/rkey prefered, but not enforced) service name (default to "atproto_pds" when omited) In this proposal, I’m going to explain why we need cross-service reco...
Bringing back at://
I’d also like to voice a strong dissenting opinion: a separate URI scheme follows long-standing precedent, reduces cognitive overhead and software complexity by making the transport distinction explicit, and has less ambiguous error handling. I think this direction trades short-term convenience for long-term ambiguity. The transport models are incompatible, not variants of each other Public atproto records flow through a well-understood pipeline: repos export as CAR files, relays consume fireh...

proposal: ingest repo records #282
`sh.tangled.repo` records are one of the last few records that need atprotation (2-way sync between appview/pds). this one is tricky because we want consistency between knot state, appview state and PDS state. the path forward is described below: - migration to did/rkey syntax universally: in several places, we utilize `did/repo-name` as a globally unique identifier for a repository, we should migrate this to `did/rkey`: * for the tangled appview: this means reworking our ACLs, routers and DB to use `did/rkey` or ATURI as a globally unique identifier for a repo * for knots: this means changing paths on disk to be `did/rkey`, allowing git ops to `host:did/rkey` , updating ACLs, and XRPC endpoints * for spindles: this means updating ACLs and XRPC endpoints - once this is done, we can define ingestion logic for all services in the network to pull sh.tangled.repo records * for the tangled appview, this should create/delete/update a repo pointer record * for knots: this should create-or-ignore/delete-or-ignore/update-or-ignore a repo on disk. migration of repos needs to be thought out here. * for spindles: as above - define edge-case behaviors: * when referring to repos by rkey, it is possible for clever users to create duplicate records with the same repo-name, appview routers must handle this ambiguity with a new interstitial page that offers a redirect, knots must return an error upon push/pull on ambiguous git URLs * the `knot` cli can introduce a command `backfill` or `sync` to bring knot state up to sync with the rest of the world (repos, collaborators, pubkeys, ACLs etc.).

tassis/atfield-core
Framework-agnostic AT Protocol utilities for identity resolution and public record reads.
Introducing plcbundle - Tree For You
A Transparent and Verifiable Way to Sync the AT Protocol's PLC Directory

I recently got super into the ATProto spec and how different services use PDS to store the data, I put together a quick client-only website that presents all those records in a single, consolidated feed of all my activity: at.diego.codes
at.diego.codes — Diego Vicente
at.diego.codesIs there interest in an ATProto service that given any URL, returns a unified backlink summary across the ecosystem? E.g., bookmarks on @semble.so , mentions on Bluesky or @standard.site , annotations in @margin.at, etc.
Sharing this! Wish I'm not late for #IETF126 Tangled found PDS doesn't fit well for contributions even with upcoming permissioned space spec. So, we are planning to store record-like data outside of PDS, in Knot. This is a post explaining the reasons & upstream spec change we need. #atproto #atdev
tangled-cob.md · by boltless.me
tangled.org@dholms.at thinking about permissiones data. What if: Permissioned data URI was at://<PDS did>/<record type>/<rkey> exactly the same as public data. The PDS would handle the space assignment opaquely and do a 4xx response with some space aturis. Client goes and grabs a space cred and retries
What are you’re thoughts on making this breaking change more inclusive to any AT URI? Like for @semble.so it would be very useful to have this mapping or any webpage that has a corresponding AT record (e.g. microblogging, standard.site, steamplace videos)
I wrote my first #atproto community discourse topic. Pretty simple idea, but can be a good groundwork for private data, group-owned data or off-protocol data.
[Proposal] AT-URI for cross-service records
discourse.atprotocol.community@tynanpurdy.com asked for this feature and I like it: every atproto app should support AT-URIs as top level routes, @pds.ls-style. Makes it super easy to integrate. So this would be an argument for e.g.: `https://bsky.app/at://did:plc:rbvrr34edl5ddpuwcubjiost/app.bsky.feed.post/3micfxauzu22c`
Support top-level AT-URI resolution · Issue #1012 · streamplace/streamplace
github.com