pub.leaflet.content
Schema Diff
+19 -0
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
}