dev.knotless.pack

lexicons.knotless.dev

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Keyed `<repo key>.<tid>`, so a newest-first listing from the cursor `<repo key>/` walks one repository's packs in push order. Never updated; compaction writes one pack superseding many and deletes them in the same applyWrites.",
      "key": "any",
      "record": {
        "properties": {
          "bases": {
            "description": "Hex object IDs of objects the pack's history needs and does not hold.",
            "items": {
              "maxLength": 64,
              "minLength": 40,
              "type": "string"
            },
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "data": {
            "description": "The pack itself, when small. Exactly one of data and parts is present. Inline so small pushes cost no blob uploads, which hosts rate-limit far more tightly than record writes.",
            "maxLength": 262144,
            "type": "bytes"
          },
          "objects": {
            "description": "Objects in the pack.",
            "minimum": 1,
            "type": "integer"
          },
          "parts": {
            "description": "The pack, split over blobs in order.",
            "items": {
              "accept": [
                "application/x-git-packed-objects"
              ],
              "type": "blob"
            },
            "type": "array"
          },
          "repo": {
            "description": "The `key` of the dev.knotless.repo this pack belongs to.",
            "format": "tid",
            "type": "string"
          },
          "size": {
            "description": "Bytes in the pack.",
            "minimum": 12,
            "type": "integer"
          },
          "supersedes": {
            "description": "Record keys of the dev.knotless.pack records this one replaced.",
            "items": {
              "format": "record-key",
              "type": "string"
            },
            "type": "array"
          },
          "tips": {
            "description": "Hex object IDs the pack holds everything reachable from, short of `bases`.",
            "items": {
              "maxLength": 64,
              "minLength": 40,
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "repo",
          "tips",
          "size",
          "objects",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A self-contained git packfile: every object reachable from `tips` and not from `bases`.",
  "id": "dev.knotless.pack",
  "lexicon": 1
}

Validate Record

Validate a record against dev.knotless.pack

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:yqsg7znbbhfmj3a2nrpnaerk
CID
bafyreif4aul2pd27tqvrvgelk24ctfndcij5cctrbzi5vse4dsmjmf6br4
Indexed At
2026-10-28 21:21 UTC
AT-URI
at://did:plc:yqsg7znbbhfmj3a2nrpnaerk/com.atproto.lexicon.schema/dev.knotless.pack

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A did-git object stored in an AT Protocol repository. Each record represents a single content-addressable object (blob, tree, commit, or tag), keyed by its hex SHA-256 object ID.

Lexicon Garden

@