dev.knotless.claim

Keyed `<repo key>.<ref hash>.<generation moved from>`. Two writers that read the same generation both try to create the same key, and the PDS accepts only the first; the dev.knotless.ref update travelling with it in the same applyWrites is refused along with it. Never updated.

Details · record, key any
Kindrecord
Record keyany
Authorityknotless.dev
Indexed
cid bafyreiaqquubg4u7h2wnsbsk6yghcfzx4dh5coijf4emfmpdro6q4yr4oe

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Keyed `<repo key>.<ref hash>.<generation moved from>`. Two writers that read the same generation both try to create the same key, and the PDS accepts only the first; the dev.knotless.ref update travelling with it in the same applyWrites is refused along with it. Never updated.",
      "key": "any",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "from": {
            "description": "The hex object ID the ref pointed at before; absent when the ref is new.",
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "generation": {
            "description": "The generation the ref moved from.",
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "description": "The full ref name, such as refs/heads/main.",
            "maxLength": 1024,
            "type": "string"
          },
          "pack": {
            "description": "The record key of the dev.knotless.pack written with the move, if any.",
            "format": "record-key",
            "type": "string"
          },
          "pusher": {
            "description": "The account that moved the ref, when not the repository's owner: a collaborator or runner pushing through the gateway, which sets it from the caller's verified service token. Readers credit it only while the repository names it among its collaborators or runners.",
            "format": "did",
            "type": "string"
          },
          "repo": {
            "description": "The `key` of the dev.knotless.repo the ref belongs to.",
            "format": "tid",
            "type": "string"
          },
          "to": {
            "description": "The hex object ID the ref points at after; absent when the ref is deleted.",
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          }
        },
        "required": [
          "repo",
          "name",
          "generation",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "The move of a ref off one generation: its key is the compare-and-swap, its body the reflog entry.",
  "id": "dev.knotless.claim",
  "lexicon": 1
}