com.suibari.nagi.post
Schema Diff
+20 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 13 non-breaking changes.
Non-Breaking Changes (13)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post#image.contentWarning" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.botSilent" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.channel" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.channelOnly" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.cwRestricted" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.silentReply" }
- 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.botSilent", kind: "prop", name: Some("botSilent") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.channel", kind: "prop", name: Some("channel") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.channelOnly", kind: "prop", name: Some("channelOnly") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.cwRestricted", kind: "prop", name: Some("cwRestricted") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.silentReply", kind: "prop", name: Some("silentReply") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.post:body.channel", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.post#image.contentWarning" }AddedVertex { vertex_id: "com.suibari.nagi.post:body.botSilent" }AddedVertex { vertex_id: "com.suibari.nagi.post:body.channel" }AddedVertex { vertex_id: "com.suibari.nagi.post:body.channelOnly" }AddedVertex { vertex_id: "com.suibari.nagi.post:body.cwRestricted" }AddedVertex { vertex_id: "com.suibari.nagi.post:body.silentReply" }
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.botSilent", kind: "prop", name: Some("botSilent") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.channel", kind: "prop", name: Some("channel") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.channelOnly", kind: "prop", name: Some("channelOnly") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.cwRestricted", kind: "prop", name: Some("cwRestricted") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post:body", tgt: "com.suibari.nagi.post:body.silentReply", kind: "prop", name: Some("silentReply") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.post:body.channel", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
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
+
"channel": {
46
+
"ref": "com.atproto.repo.strongRef",
47
+
"type": "ref"
48
+
},
45
49
"kossori": {
46
50
"type": "boolean"
47
51
},
52
+
"botSilent": {
53
+
"type": "boolean"
54
+
},
48
55
"createdAt": {
49
56
"type": "string",
50
57
"format": "datetime"
51
58
},
52
59
"linkCards": {
53
60
"type": "array",
54
61
"items": {
55
62
"ref": "#linkCard",
56
63
"type": "ref"
57
64
},
58
65
"maxLength": 4
66
+
},
67
+
"channelOnly": {
68
+
"type": "boolean"
69
+
},
70
+
"silentReply": {
71
+
"type": "boolean",
72
+
"description": "true の返信は直接の返信先へ通知しない。返信以外では効果を持たない。"
73
+
},
74
+
"cwRestricted": {
75
+
"type": "boolean"
59
76
}
60
77
}
61
78
}
62
79
},
63
80
"image": {
64
81
"type": "object",
65
82
"required": [
66
83
"image",
67
84
"alt"
68
85
],
69
86
"properties": {
70
87
"alt": {
71
88
"type": "string",
72
89
"maxLength": 10000,
73
90
"maxGraphemes": 1000
74
91
},
75
92
"image": {
76
93
"type": "blob",
77
94
"accept": [
78
95
"image/jpeg",
79
96
"image/png",
80
97
"image/webp",
81
98
"image/gif"
82
99
],
83
100
"maxSize": 2000000
84
101
},
85
102
"aspectRatio": {
86
103
"ref": "app.bsky.embed.defs#aspectRatio",
87
104
"type": "ref"
105
+
},
106
+
"contentWarning": {
107
+
"type": "boolean"
88
108
}
89
109
}
90
110
},
91
111
"quote": {
92
112
"type": "object",
93
113
"required": [
94
114
"record"
95
115
],
96
116
"properties": {
97
117
"images": {
98
118
"type": "array",
99
119
"items": {
100
120
"ref": "#image",
101
121
"type": "ref"
102
122
},
103
123
"maxLength": 4,
104
124
"minLength": 1
105
125
},
106
126
"record": {
107
127
"ref": "com.atproto.repo.strongRef",
108
128
"type": "ref"
109
129
}
110
130
}
111
131
},
112
132
"images": {
113
133
"type": "object",
114
134
"required": [
115
135
"images"
116
136
],
117
137
"properties": {
118
138
"images": {
119
139
"type": "array",
120
140
"items": {
121
141
"ref": "#image",
122
142
"type": "ref"
123
143
},
124
144
"maxLength": 4,
125
145
"minLength": 1
126
146
}
127
147
}
128
148
},
129
149
"linkCard": {
130
150
"type": "object",
131
151
"required": [
132
152
"uri",
133
153
"title"
134
154
],
135
155
"properties": {
136
156
"uri": {
137
157
"type": "string",
138
158
"format": "uri",
139
159
"maxLength": 2048
140
160
},
141
161
"thumb": {
142
162
"type": "blob",
143
163
"accept": [
144
164
"image/jpeg",
145
165
"image/png",
146
166
"image/webp"
147
167
],
148
168
"maxSize": 1000000
149
169
},
150
170
"title": {
151
171
"type": "string",
152
172
"maxLength": 3000,
153
173
"maxGraphemes": 300
154
174
},
155
175
"description": {
156
176
"type": "string",
157
177
"maxLength": 10000,
158
178
"maxGraphemes": 1000
159
179
}
160
180
}
161
181
},
162
182
"replyRef": {
163
183
"type": "object",
164
184
"required": [
165
185
"root",
166
186
"parent"
167
187
],
168
188
"properties": {
169
189
"root": {
170
190
"ref": "com.atproto.repo.strongRef",
171
191
"type": "ref"
172
192
},
173
193
"parent": {
174
194
"ref": "com.atproto.repo.strongRef",
175
195
"type": "ref"
176
196
}
177
197
}
178
198
}
179
199
},
180
200
"$type": "com.atproto.lexicon.schema",
181
201
"lexicon": 1
182
202
}