social.colibri.channel.defs
Schema Diff
+16 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 8 non-breaking changes.
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "social.colibri.channel.defs#message.modSuppressedEmbeds" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.channel.defs#message.modSuppressedEmbeds:items" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.channel.defs#message.suppressedEmbeds" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.channel.defs#message.suppressedEmbeds:items" }
- AddedEdge AddedEdge { src: "social.colibri.channel.defs#message", tgt: "social.colibri.channel.defs#message.modSuppressedEmbeds", kind: "prop", name: Some("modSuppressedEmbeds") }
- AddedEdge AddedEdge { src: "social.colibri.channel.defs#message", tgt: "social.colibri.channel.defs#message.suppressedEmbeds", kind: "prop", name: Some("suppressedEmbeds") }
- AddedEdge AddedEdge { src: "social.colibri.channel.defs#message.modSuppressedEmbeds", tgt: "social.colibri.channel.defs#message.modSuppressedEmbeds:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "social.colibri.channel.defs#message.suppressedEmbeds", tgt: "social.colibri.channel.defs#message.suppressedEmbeds:items", kind: "items", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "social.colibri.channel.defs#message.modSuppressedEmbeds" }AddedVertex { vertex_id: "social.colibri.channel.defs#message.modSuppressedEmbeds:items" }AddedVertex { vertex_id: "social.colibri.channel.defs#message.suppressedEmbeds" }AddedVertex { vertex_id: "social.colibri.channel.defs#message.suppressedEmbeds:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "social.colibri.channel.defs#message", tgt: "social.colibri.channel.defs#message.modSuppressedEmbeds", kind: "prop", name: Some("modSuppressedEmbeds") }
- Non-breaking: AddedEdge { src: "social.colibri.channel.defs#message", tgt: "social.colibri.channel.defs#message.suppressedEmbeds", kind: "prop", name: Some("suppressedEmbeds") }
- Non-breaking: AddedEdge { src: "social.colibri.channel.defs#message.modSuppressedEmbeds", tgt: "social.colibri.channel.defs#message.modSuppressedEmbeds:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.channel.defs#message.suppressedEmbeds", tgt: "social.colibri.channel.defs#message.suppressedEmbeds:items", kind: "items", name: None }
1
1
{
2
2
"id": "social.colibri.channel.defs",
3
3
"defs": {
4
4
"message": {
5
5
"type": "object",
6
6
"required": [
7
7
"uri",
8
8
"text",
9
9
"facets",
10
10
"channel",
11
11
"community",
12
12
"author",
13
13
"attachments",
14
14
"reactions",
15
15
"createdAt",
16
16
"edited"
17
17
],
18
18
"properties": {
19
19
"uri": {
20
20
"type": "string",
21
21
"format": "at-uri"
22
22
},
23
23
"text": {
24
24
"type": "string"
25
25
},
26
26
"author": {
27
27
"ref": "lex:social.colibri.actor.defs#actorView",
28
28
"type": "ref"
29
29
},
30
30
"edited": {
31
31
"type": "boolean"
32
32
},
33
33
"facets": {
34
34
"type": "array",
35
35
"items": {
36
36
"ref": "lex:social.colibri.richtext.facet",
37
37
"type": "ref"
38
38
}
39
39
},
40
40
"parent": {
41
41
"ref": "lex:social.colibri.channel.defs#message",
42
42
"type": "ref",
43
43
"description": "The message this one replies to, if any. Never itself nested (the parent's own parent is omitted)."
44
44
},
45
45
"channel": {
46
46
"type": "string",
47
47
"format": "at-uri"
48
48
},
49
49
"community": {
50
50
"type": "string",
51
51
"format": "at-uri"
52
52
},
53
53
"createdAt": {
54
54
"type": "string",
55
55
"format": "datetime"
56
56
},
57
57
"reactions": {
58
58
"type": "array",
59
59
"items": {
60
60
"ref": "lex:social.colibri.channel.defs#reactionView",
61
61
"type": "ref"
62
62
}
63
63
},
64
64
"attachments": {
65
65
"type": "array",
66
66
"items": {
67
67
"ref": "lex:social.colibri.channel.defs#attachment",
68
68
"type": "ref"
69
69
}
70
+
},
71
+
"suppressedEmbeds": {
72
+
"type": "array",
73
+
"items": {
74
+
"type": "string",
75
+
"format": "uri"
76
+
},
77
+
"description": "URLs whose embed the author suppressed, mirrored from the message record."
78
+
},
79
+
"modSuppressedEmbeds": {
80
+
"type": "array",
81
+
"items": {
82
+
"type": "string",
83
+
"format": "uri"
84
+
},
85
+
"description": "URLs whose embed a moderator suppressed, derived from the community's moderation log. Only the moderator who can hide messages may clear these."
70
86
}
71
87
},
72
88
"description": "A hydrated message as served by the AppView."
73
89
},
74
90
"attachment": {
75
91
"type": "object",
76
92
"required": [
77
93
"blob"
78
94
],
79
95
"properties": {
80
96
"blob": {
81
97
"type": "blob"
82
98
},
83
99
"name": {
84
100
"type": "string"
85
101
},
86
102
"width": {
87
103
"type": "integer",
88
104
"description": "Pixel width of the attachment's intrinsic dimensions, when it is a decodable image or video. Lets a client reserve the correct box before the bytes arrive."
89
105
},
90
106
"height": {
91
107
"type": "integer",
92
108
"description": "Pixel height of the attachment's intrinsic dimensions, when it is a decodable image or video."
93
109
}
94
110
},
95
111
"description": "A file attached to a message."
96
112
},
97
113
"readCursor": {
98
114
"type": "object",
99
115
"required": [
100
116
"uri",
101
117
"cursor",
102
118
"channel"
103
119
],
104
120
"properties": {
105
121
"uri": {
106
122
"type": "string",
107
123
"format": "at-uri"
108
124
},
109
125
"cursor": {
110
126
"type": "string"
111
127
},
112
128
"channel": {
113
129
"type": "string",
114
130
"format": "at-uri"
115
131
}
116
132
},
117
133
"description": "The authenticated user's read cursor for a channel."
118
134
},
119
135
"reactionView": {
120
136
"type": "object",
121
137
"required": [
122
138
"emoji",
123
139
"count",
124
140
"reactorDIDs"
125
141
],
126
142
"properties": {
127
143
"count": {
128
144
"type": "integer"
129
145
},
130
146
"emoji": {
131
147
"type": "string"
132
148
},
133
149
"reactorDIDs": {
134
150
"type": "array",
135
151
"items": {
136
152
"type": "string",
137
153
"format": "did"
138
154
}
139
155
}
140
156
},
141
157
"description": "An aggregated reaction on a message."
142
158
},
143
159
"unreadStatus": {
144
160
"type": "object",
145
161
"required": [
146
162
"channelUri",
147
163
"hasUnreadMessages",
148
164
"unreadPingCount"
149
165
],
150
166
"properties": {
151
167
"channelUri": {
152
168
"type": "string",
153
169
"format": "at-uri"
154
170
},
155
171
"unreadPingCount": {
156
172
"type": "integer"
157
173
},
158
174
"hasUnreadMessages": {
159
175
"type": "boolean"
160
176
}
161
177
},
162
178
"description": "Per-channel unread state for the authenticated user."
163
179
}
164
180
},
165
181
"$type": "com.atproto.lexicon.schema",
166
182
"lexicon": 1
167
183
}