ai.rizom.brain.post
Schema Diff
+24 -19
Compatibility Analysis
Breaking Changes Detected
11 breaking changes, 9 non-breaking changes.
Breaking Changes (11)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "ai.rizom.brain.post#coverImage", src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.blob", kind: "prop", name: Some("blob") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "ai.rizom.brain.post:body.coverImage", src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.blob", kind: "prop", name: Some("blob") }
- RemovedVertex RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.alt" }
- RemovedVertex RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.blob" }
- RemovedVertex RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.height" }
- RemovedVertex RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.width" }
- RemovedEdge RemovedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.alt", kind: "prop", name: Some("alt") }
- RemovedEdge RemovedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.height", kind: "prop", name: Some("height") }
- RemovedEdge RemovedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.width", kind: "prop", name: Some("width") }
- KindChanged KindChanged { vertex_id: "ai.rizom.brain.post:body.coverImage", old_kind: "object", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "ai.rizom.brain.post:body.coverImage", sort: "ref", value: "#coverImage" }
Non-Breaking Changes (9)
- AddedVertex AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage" }
- AddedVertex AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.alt" }
- AddedVertex AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.blob" }
- AddedVertex AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.height" }
- AddedVertex AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.width" }
- AddedEdge AddedEdge { src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.alt", kind: "prop", name: Some("alt") }
- AddedEdge AddedEdge { src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.height", kind: "prop", name: Some("height") }
- AddedEdge AddedEdge { src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.width", kind: "prop", name: Some("width") }
- AddedEdge AddedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post#coverImage", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.alt" }RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.blob" }RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.height" }RemovedVertex { vertex_id: "ai.rizom.brain.post:body.coverImage.width" }
Added Elements
AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage" }AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.alt" }AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.blob" }AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.height" }AddedVertex { vertex_id: "ai.rizom.brain.post#coverImage.width" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "ai.rizom.brain.post:body.coverImage", sort: "ref", value: "#coverImage" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "ai.rizom.brain.post#coverImage", src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.blob", kind: "prop", name: Some("blob") }
- Breaking: RequiredEdgeRemoved { vertex_id: "ai.rizom.brain.post:body.coverImage", src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.blob", kind: "prop", name: Some("blob") }
- Breaking: RemovedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.alt", kind: "prop", name: Some("alt") }
- Breaking: RemovedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.height", kind: "prop", name: Some("height") }
- Breaking: RemovedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post:body.coverImage.width", kind: "prop", name: Some("width") }
- Breaking: KindChanged { vertex_id: "ai.rizom.brain.post:body.coverImage", old_kind: "object", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.alt", kind: "prop", name: Some("alt") }
- Non-breaking: AddedEdge { src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.height", kind: "prop", name: Some("height") }
- Non-breaking: AddedEdge { src: "ai.rizom.brain.post#coverImage", tgt: "ai.rizom.brain.post#coverImage.width", kind: "prop", name: Some("width") }
- Non-breaking: AddedEdge { src: "ai.rizom.brain.post:body.coverImage", tgt: "ai.rizom.brain.post#coverImage", kind: "ref", name: None }
1
1
{
2
2
"id": "ai.rizom.brain.post",
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
"title",
11
11
"body",
12
12
"createdAt"
13
13
],
14
14
"properties": {
15
15
"body": {
16
16
"type": "string",
17
17
"maxLength": 100000
18
18
},
19
19
"title": {
20
20
"type": "string",
21
21
"maxLength": 300
22
22
},
23
23
"format": {
24
24
"type": "string",
25
25
"knownValues": [
26
26
"text/markdown"
27
27
]
28
28
},
29
29
"series": {
30
30
"type": "string",
31
31
"maxLength": 200
32
32
},
33
33
"topics": {
34
34
"type": "array",
35
35
"items": {
36
36
"type": "string"
37
37
},
38
38
"maxLength": 50
39
39
},
40
40
"summary": {
41
41
"type": "string",
42
42
"maxLength": 2000
43
43
},
44
44
"brainDid": {
45
45
"type": "string"
46
46
},
47
47
"anchorDid": {
48
48
"type": "string"
49
49
},
50
50
"createdAt": {
51
51
"type": "string",
52
52
"format": "datetime"
53
53
},
54
54
"coverImage": {
55
-
"type": "object",
56
-
"required": [
57
-
"blob"
58
-
],
59
-
"properties": {
60
-
"alt": {
61
-
"type": "string",
62
-
"maxLength": 1000
63
-
},
64
-
"blob": {
65
-
"type": "blob"
66
-
},
67
-
"width": {
68
-
"type": "integer"
69
-
},
70
-
"height": {
71
-
"type": "integer"
72
-
}
73
-
}
55
+
"ref": "#coverImage",
56
+
"type": "ref"
74
57
},
75
58
"publishedAt": {
76
59
"type": "string",
77
60
"format": "datetime"
78
61
},
79
62
"seriesIndex": {
80
63
"type": "integer"
81
64
},
82
65
"canonicalUrl": {
83
66
"type": "string",
84
67
"format": "uri"
85
68
},
86
69
"sourceEntityId": {
87
70
"type": "string"
88
71
},
89
72
"sourceEntityType": {
90
73
"type": "string",
91
74
"knownValues": [
92
75
"post"
93
76
]
94
77
}
95
78
}
96
79
},
97
80
"description": "Markdown blog post distributed by a Rizom brain."
81
+
},
82
+
"coverImage": {
83
+
"type": "object",
84
+
"required": [
85
+
"blob"
86
+
],
87
+
"properties": {
88
+
"alt": {
89
+
"type": "string",
90
+
"maxLength": 1000
91
+
},
92
+
"blob": {
93
+
"type": "blob"
94
+
},
95
+
"width": {
96
+
"type": "integer"
97
+
},
98
+
"height": {
99
+
"type": "integer"
100
+
}
101
+
},
102
+
"description": "Cover image attached to the post."
98
103
}
99
104
},
100
105
"$type": "com.atproto.lexicon.schema",
101
106
"lexicon": 1
102
107
}