tech.lenooby09.kvcs.patch

lenooby09.tech

Schema Diff

+6 -3

From

CID
bafyreibxgvrg2ae...
Indexed At
2026-05-01 19:53 UTC
View this version

To

CID
bafyreievoj6p4vx...
Indexed At
2026-05-05 13:43 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

3 breaking changes, 0 non-breaking changes.

Breaking Changes (3)
  • ConstraintAdded ConstraintAdded { vertex_id: "tech.lenooby09.kvcs.patch:body.patchCbor", sort: "maxLength", value: "20480" }
  • ConstraintAdded ConstraintAdded { vertex_id: "tech.lenooby09.kvcs.patch:body.jws", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "tech.lenooby09.kvcs.patch:body.patchId", sort: "maxLength", value: "128" }

Migration Guidance

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "tech.lenooby09.kvcs.patch:body.jws", sort: "maxLength", value: "8192" }
  • ConstraintAdded ConstraintAdded { vertex_id: "tech.lenooby09.kvcs.patch:body.patchId", sort: "maxLength", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "tech.lenooby09.kvcs.patch:body.patchCbor", sort: "maxLength", value: "20480" }
1 1
{
2 2
  "id": "tech.lenooby09.kvcs.patch",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "any",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "patchId",
11 11
          "patchCbor",
12 12
          "jws"
13 13
        ],
14 14
        "properties": {
15 15
          "jws": {
16 16
            "type": "string",
17 -
            "description": "Detached compact JWS over patchCbor, identical to the local SignedPatch.jws field."
17 +
            "maxLength": 8192,
18 +
            "description": "Detached compact JWS over patchCbor, identical to the local SignedPatch.jws field. 8192 chars covers Ed25519 / ES256 / ES256K compact-JWS sizes with a comfortable margin."
18 19
          },
19 20
          "patchId": {
20 21
            "type": "string",
21 -
            "description": "Lower-case hex multihash of the canonical CBOR — matches kvcs's PatchId."
22 +
            "maxLength": 128,
23 +
            "description": "Lower-case hex multihash of the canonical CBOR — matches kvcs's PatchId. 128 chars covers the longest hashes in current use (BLAKE3, SHA-512, etc.)."
22 24
          },
23 25
          "patchCbor": {
24 26
            "type": "string",
25 -
            "description": "Base64url-encoded canonical CBOR of the signed patch."
27 +
            "maxLength": 20480,
28 +
            "description": "Base64url-encoded canonical CBOR of the signed patch. Capped at 20 KiB (20480 chars) — the largest a Lexicon string field can be without triggering goat's `large-string` lint, which recommends using blob refs for anything bigger. Patches whose base64 form exceeds this cap should be split or migrated to a blob-based record schema; in practice, atproto PDSes already enforce a tight per-record size limit well below 1 MiB."
26 29
          }
27 30
        }
28 31
      },
29 32
      "description": "A signed kvcs patch envelope record. Carries the canonical CBOR of the patch and its detached compact JWS, indexed by the patch's hex multihash id."
30 33
    }
31 34
  },
32 35
  "$type": "com.atproto.lexicon.schema",
33 36
  "lexicon": 1,
34 37
  "description": "A signed kvcs patch envelope, addressable on the author's atproto PDS. The rkey is the patch id in hex."
35 38
}

Compare Other Versions

Lexicon Garden

@