com.suibari.nagi.post
Schema Diff
+6 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post#image.contentWarning" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.cwRestricted" }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post#image", tgt: "com.suibari.nagi.post#image.contentWarning", kind: "prop", name: Some("contentWarning") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.cwRestricted", kind: "prop", name: Some("cwRestricted") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.post#image.contentWarning" }AddedVertex { vertex_id: "com.suibari.nagi.post:body.cwRestricted" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post#image", tgt: "com.suibari.nagi.post#image.contentWarning", kind: "prop", name: Some("contentWarning") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.cwRestricted", kind: "prop", name: Some("cwRestricted") }
1
1
{
2
2
"id": "com.suibari.nagi.post",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"text",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"text": {
15
15
"type": "string",
16
16
"maxLength": 30000,
17
17
"maxGraphemes": 3000
18
18
},
19
19
"embed": {
20
20
"refs": [
21
21
"#images",
22
22
"#quote"
23
23
],
24
24
"type": "union"
25
25
},
26
26
"langs": {
27
27
"type": "array",
28
28
"items": {
29
29
"type": "string",
30
30
"format": "language"
31
31
},
32
32
"maxLength": 3
33
33
},
34
34
"reply": {
35
35
"ref": "#replyRef",
36
36
"type": "ref"
37
37
},
38
38
"facets": {
39
39
"type": "array",
40
40
"items": {
41
41
"ref": "app.bsky.richtext.facet",
42
42
"type": "ref"
43
43
}
44
44
},
45
45
"channel": {
46
46
"ref": "com.atproto.repo.strongRef",
47
47
"type": "ref"
48
48
},
49
49
"kossori": {
50
50
"type": "boolean"
51
51
},
52
52
"createdAt": {
53
53
"type": "string",
54
54
"format": "datetime"
55
55
},
56
56
"linkCards": {
57
57
"type": "array",
58
58
"items": {
59
59
"ref": "#linkCard",
60
60
"type": "ref"
61
61
},
62
62
"maxLength": 4
63
63
},
64
64
"channelOnly": {
65
65
"type": "boolean"
66
+
},
67
+
"cwRestricted": {
68
+
"type": "boolean"
66
69
}
67
70
}
68
71
}
69
72
},
70
73
"image": {
71
74
"type": "object",
72
75
"required": [
73
76
"image",
74
77
"alt"
75
78
],
76
79
"properties": {
77
80
"alt": {
78
81
"type": "string",
79
82
"maxLength": 10000,
80
83
"maxGraphemes": 1000
81
84
},
82
85
"image": {
83
86
"type": "blob",
84
87
"accept": [
85
88
"image/jpeg",
86
89
"image/png",
87
90
"image/webp",
88
91
"image/gif"
89
92
],
90
93
"maxSize": 2000000
91
94
},
92
95
"aspectRatio": {
93
96
"ref": "app.bsky.embed.defs#aspectRatio",
94
97
"type": "ref"
98
+
},
99
+
"contentWarning": {
100
+
"type": "boolean"
95
101
}
96
102
}
97
103
},
98
104
"quote": {
99
105
"type": "object",
100
106
"required": [
101
107
"record"
102
108
],
103
109
"properties": {
104
110
"images": {
105
111
"type": "array",
106
112
"items": {
107
113
"ref": "#image",
108
114
"type": "ref"
109
115
},
110
116
"maxLength": 4,
111
117
"minLength": 1
112
118
},
113
119
"record": {
114
120
"ref": "com.atproto.repo.strongRef",
115
121
"type": "ref"
116
122
}
117
123
}
118
124
},
119
125
"images": {
120
126
"type": "object",
121
127
"required": [
122
128
"images"
123
129
],
124
130
"properties": {
125
131
"images": {
126
132
"type": "array",
127
133
"items": {
128
134
"ref": "#image",
129
135
"type": "ref"
130
136
},
131
137
"maxLength": 4,
132
138
"minLength": 1
133
139
}
134
140
}
135
141
},
136
142
"linkCard": {
137
143
"type": "object",
138
144
"required": [
139
145
"uri",
140
146
"title"
141
147
],
142
148
"properties": {
143
149
"uri": {
144
150
"type": "string",
145
151
"format": "uri",
146
152
"maxLength": 2048
147
153
},
148
154
"thumb": {
149
155
"type": "blob",
150
156
"accept": [
151
157
"image/jpeg",
152
158
"image/png",
153
159
"image/webp"
154
160
],
155
161
"maxSize": 1000000
156
162
},
157
163
"title": {
158
164
"type": "string",
159
165
"maxLength": 3000,
160
166
"maxGraphemes": 300
161
167
},
162
168
"description": {
163
169
"type": "string",
164
170
"maxLength": 10000,
165
171
"maxGraphemes": 1000
166
172
}
167
173
}
168
174
},
169
175
"replyRef": {
170
176
"type": "object",
171
177
"required": [
172
178
"root",
173
179
"parent"
174
180
],
175
181
"properties": {
176
182
"root": {
177
183
"ref": "com.atproto.repo.strongRef",
178
184
"type": "ref"
179
185
},
180
186
"parent": {
181
187
"ref": "com.atproto.repo.strongRef",
182
188
"type": "ref"
183
189
}
184
190
}
185
191
}
186
192
},
187
193
"$type": "com.atproto.lexicon.schema",
188
194
"lexicon": 1
189
195
}