From
bafyreibzmwf5m4truu4is74ygtpgi7mzhfbp773tbtvhduschgejxeofoq
indexed 2026-10-11 09:24 UTC
View this version
To
bafyreickdtdm3qlz6fiauexlp6xmlu4zzsmhn3auedoxrb55oetizm5xoe
indexed 2026-10-16 09:33 UTC
View this version
Compatibility
breaking 2 breaking changes, 10 non-breaking changes.
Breaking changes (2)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.custommodule#bundle", src: "live.streamface.custommodule#bundle", tgt: "live.streamface.custommodule#bundle.name", kind: "prop", name: Some("name") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.custommodule#bundle", src: "live.streamface.custommodule#bundle", tgt: "live.streamface.custommodule#bundle.blob", kind: "prop", name: Some("blob") }
Non-breaking changes (10)
- AddedVertex AddedVertex { vertex_id: "live.streamface.custommodule#bundle" }
- AddedVertex AddedVertex { vertex_id: "live.streamface.custommodule#bundle.blob" }
- AddedVertex AddedVertex { vertex_id: "live.streamface.custommodule#bundle.name" }
- AddedVertex AddedVertex { vertex_id: "live.streamface.custommodule:body.bundle" }
- AddedVertex AddedVertex { vertex_id: "live.streamface.custommodule:body.displayMode" }
- AddedVertex AddedVertex { vertex_id: "live.streamface.custommodule:body.javascript" }
- AddedEdge AddedEdge { src: "live.streamface.custommodule:body", tgt: "live.streamface.custommodule:body.bundle", kind: "prop", name: Some("bundle") }
- AddedEdge AddedEdge { src: "live.streamface.custommodule:body", tgt: "live.streamface.custommodule:body.displayMode", kind: "prop", name: Some("displayMode") }
- AddedEdge AddedEdge { src: "live.streamface.custommodule:body", tgt: "live.streamface.custommodule:body.javascript", kind: "prop", name: Some("javascript") }
- AddedEdge AddedEdge { src: "live.streamface.custommodule:body.bundle", tgt: "live.streamface.custommodule#bundle", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "live.streamface.custommodule#bundle" }AddedVertex { vertex_id: "live.streamface.custommodule#bundle.blob" }AddedVertex { vertex_id: "live.streamface.custommodule#bundle.name" }AddedVertex { vertex_id: "live.streamface.custommodule:body.bundle" }AddedVertex { vertex_id: "live.streamface.custommodule:body.displayMode" }AddedVertex { vertex_id: "live.streamface.custommodule:body.javascript" }
Notes
- Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.custommodule#bundle", src: "live.streamface.custommodule#bundle", tgt: "live.streamface.custommodule#bundle.name", kind: "prop", name: Some("name") }
- Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.custommodule#bundle", src: "live.streamface.custommodule#bundle", tgt: "live.streamface.custommodule#bundle.blob", kind: "prop", name: Some("blob") }
- Non-breaking: AddedEdge { src: "live.streamface.custommodule:body", tgt: "live.streamface.custommodule:body.bundle", kind: "prop", name: Some("bundle") }
- Non-breaking: AddedEdge { src: "live.streamface.custommodule:body", tgt: "live.streamface.custommodule:body.displayMode", kind: "prop", name: Some("displayMode") }
- Non-breaking: AddedEdge { src: "live.streamface.custommodule:body", tgt: "live.streamface.custommodule:body.javascript", kind: "prop", name: Some("javascript") }
- Non-breaking: AddedEdge { src: "live.streamface.custommodule:body.bundle", tgt: "live.streamface.custommodule#bundle", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {4
"bundle": {5
"properties": {6
"blob": {7
"accept": [8
"application/zip"9
],10
"maxSize": 10000000,11
"type": "blob"12
},13
"name": {14
"maxLength": 200,15
"minLength": 1,16
"type": "string"17
}18
},19
"required": [20
"name",21
"blob"22
],23
"type": "object"24
},425
"main": {526
"key": "any",627
"record": {728
"properties": {29
"bundle": {30
"ref": "#bundle",31
"type": "ref"32
},833
"createdAt": {934
"format": "datetime",1035
"type": "string"1136
},1237
"css": {1338
"maxLength": 50000,1439
"type": "string"1540
},41
"displayMode": {42
"enum": [43
"overlay",44
"page"45
],46
"type": "string"47
},1648
"enabled": {1749
"type": "boolean"1850
},1951
"html": {2052
"maxLength": 50000,2153
"type": "string"2254
},55
"javascript": {56
"maxLength": 50000,57
"type": "string"58
},2359
"media": {2460
"items": {2561
"ref": "#media",2662
"type": "ref"2763
},2864
"maxLength": 100,2965
"type": "array"3066
},3167
"name": {3268
"maxLength": 200,3369
"minLength": 1,3470
"type": "string"3571
},3672
"updatedAt": {3773
"format": "datetime",3874
"type": "string"3975
}4076
},4177
"required": [4278
"name",4379
"enabled",4480
"html",4581
"css",4682
"createdAt",4783
"updatedAt"4884
],4985
"type": "object"5086
},5187
"type": "record"5288
},5389
"media": {5490
"properties": {5591
"blob": {5692
"accept": [5793
"image/png",5894
"image/jpeg",5995
"image/gif",6096
"image/webp",6197
"image/avif",6298
"video/mp4",6399
"video/webm",64100
"video/quicktime"65101
],66102
"maxSize": 10000000,67103
"type": "blob"68104
},69105
"id": {70106
"maxLength": 128,71107
"minLength": 1,72108
"type": "string"73109
}74110
},75111
"required": [76112
"id",77113
"blob"78114
],79115
"type": "object"80116
}81117
},82
"description": "Declarative Custom Module overlay. Source is untrusted and must be sanitized and sandboxed.",118
"description": "Custom Module overlay with HTML, CSS and JavaScript. Source must be sandboxed.",83119
"id": "live.streamface.custommodule",84120
"lexicon": 185121
}