pub.leaflet.content

leaflet.pub

Schema Diff

+19 -0

From

CID
bafyreiebbctoorv...
Indexed At
2026-02-18 20:04 UTC
View this version

To

CID
bafyreifn7oxzbjw...
Indexed At
2026-05-21 02:54 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.content.blobPages" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.content.blobs" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.content.blobs:items" }
  • AddedEdge AddedEdge { src: "pub.leaflet.content", tgt: "pub.leaflet.content.blobPages", kind: "prop", name: Some("blobPages") }
  • AddedEdge AddedEdge { src: "pub.leaflet.content", tgt: "pub.leaflet.content.blobs", kind: "prop", name: Some("blobs") }
  • AddedEdge AddedEdge { src: "pub.leaflet.content.blobs", tgt: "pub.leaflet.content.blobs:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "pub.leaflet.content.blobPages" }
  • AddedVertex { vertex_id: "pub.leaflet.content.blobs" }
  • AddedVertex { vertex_id: "pub.leaflet.content.blobs:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "pub.leaflet.content", tgt: "pub.leaflet.content.blobPages", kind: "prop", name: Some("blobPages") }
  • Non-breaking: AddedEdge { src: "pub.leaflet.content", tgt: "pub.leaflet.content.blobs", kind: "prop", name: Some("blobs") }
  • Non-breaking: AddedEdge { src: "pub.leaflet.content.blobs", tgt: "pub.leaflet.content.blobs:items", kind: "items", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Content format for leaflet documents",
6 6
      "properties": {
7 +
        "blobPages": {
8 +
          "accept": [
9 +
            "application/json"
10 +
          ],
11 +
          "description": "JSON-encoded array of pages. When the inline pages array would be too large to store on the PDS, the pages are uploaded as a blob and referenced here. When set, consumers MUST ignore `pages` and use the decoded blob contents as the page array; the inline `pages` field will be empty or a stub.",
12 +
          "maxSize": 5000000,
13 +
          "type": "blob"
14 +
        },
15 +
        "blobs": {
16 +
          "description": "Blobs referenced inside `blobPages`. Load-bearing when `blobPages` is set: the PDS only scans the top level of a record for blob references when deciding what to garbage-collect, so any image/etc. blob now living inside the opaque JSON blob must be mirrored here to remain referenced.",
17 +
          "items": {
18 +
            "accept": [
19 +
              "*/*"
20 +
            ],
21 +
            "maxSize": 10000000,
22 +
            "type": "blob"
23 +
          },
24 +
          "type": "array"
25 +
        },
7 26
        "pages": {
8 27
          "items": {
9 28
            "refs": [
10 29
              "pub.leaflet.pages.linearDocument",
11 30
              "pub.leaflet.pages.canvas"
12 31
            ],
13 32
            "type": "union"
14 33
          },
15 34
          "type": "array"
16 35
        }
17 36
      },
18 37
      "required": [
19 38
        "pages"
20 39
      ],
21 40
      "type": "object"
22 41
    }
23 42
  },
24 43
  "description": "A lexicon for long form rich media documents",
25 44
  "id": "pub.leaflet.content",
26 45
  "lexicon": 1,
27 46
  "revision": 1
28 47
}

Compare Other Versions

Lexicon Garden

@