dev.knotless.pack

lexicons.knotless.dev

Documentation

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.

main record

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.

Record Key any Any valid record key

Properties

bases array of string Optional

Hex object IDs of objects the pack's history needs and does not hold.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

data bytes Optional

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
objects integer Required

Objects in the pack.

minimum: 1
parts array of blob Optional

The pack, split over blobs in order.

repo string tid Required

The `key` of the dev.knotless.repo this pack belongs to.

size integer Required

Bytes in the pack.

minimum: 12
supersedes array of string record-key Optional

Record keys of the dev.knotless.pack records this one replaced.

tips array of string Required

Hex object IDs the pack holds everything reachable from, short of `bases`.

View raw schema
{
  "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"
}

Lexicon Garden

@