







`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.).
Migrating to the new Tangled knot2 | jola.dev
Tangled is a Github alternative built on atproto. I've previously shown you how to set up the self-hosted repo server, here I go through migrating to knot2.

Bobbin
Bobbin is an API appview for Tangled records. It serves XRPC endpoints for sh.tangled.*, with it you can get repos, issues, pulls, comments, follows, stars, labels, pipelines, and profiles. It is read-only, there is no auth, since that should all be handled direct-to-PDS and knot respectively.
Introducing Tap: Repository Synchronization Made Simple | Bluesky
Just about every app built on AT needs data from a repository at some point. For many use cases – feed generators, labelers, bots – streaming live data through a Relay or Jetstream works well. But some applications need to go beyond what Jetstream was designed for, like tracking specific subsets of a repo, automatically backfilling a database when adding new repos to monitor, or even mirroring the entire Atmosphere.

[Proposal] AT-URI for cross-service records
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...

Bitesize Proto: Upserting ATProto Records - Hitchhiker's Guide to the Atmosphere
Tired of creating duplicate records in a repo from your atproto app?
knot
This is a Knot server: a git host on a network of federated servers that make up Tangled.
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.orgTLDR in English Just did an automation using @airglow.run that will save me so much work from now on Every tangled repo I give a star will now be saved into my @semble.so collection for atproto-related repos, using the permanent URL
Victoria
Mal conheço o Airglow e já considero PACAS Acabei de fazer uma automação que vai me poupar um trabalhão Todo repositório do Tangled que eu dar uma estrela, vai ser automaticamente salvo numa coleção do Semble, E USANDO URL PERMANENTE (que usa DID e não handle)!!!!! airglow.run/u/vicwalker.dev.br/3ml5ixicbo…
ahhhh it works! I have an atproto PDS, knot, spindle, and hold, all driven by a repo hosted on the knot, running on container images created by the spindle and hosted on the hold. The accounts that tie it together all live on the PDS. tangled.org/cove.town/cove.town
cove.town/cove.town
tangled.org