social.colibri.beta.message
Schema Diff
+54 -0
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 23 non-breaking changes.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.source", kind: "prop", name: Some("source") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.createdAt", kind: "prop", name: Some("createdAt") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.text", kind: "prop", name: Some("text") }
Non-Breaking Changes (23)
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.bridge.defs#attribution" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.defs#spaceRecordRef" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments:items" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.createdAt" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets:items" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.source" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message#forward.text" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message:body.bridged" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.message:body.forward" }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.attachments", kind: "prop", name: Some("attachments") }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.facets", kind: "prop", name: Some("facets") }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.attachments", tgt: "social.colibri.beta.message#forward.attachments:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.attachments:items", tgt: "social.colibri.beta.message#attachment", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.facets", tgt: "social.colibri.beta.message#forward.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.facets:items", tgt: "social.colibri.beta.richtext.facet", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.message#forward.source", tgt: "social.colibri.beta.defs#spaceRecordRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.bridged", kind: "prop", name: Some("bridged") }
- AddedEdge AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.forward", kind: "prop", name: Some("forward") }
- AddedEdge AddedEdge { src: "social.colibri.beta.message:body.bridged", tgt: "social.colibri.beta.bridge.defs#attribution", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.message:body.forward", tgt: "social.colibri.beta.message#forward", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "social.colibri.beta.bridge.defs#attribution" }AddedVertex { vertex_id: "social.colibri.beta.defs#spaceRecordRef" }AddedVertex { vertex_id: "social.colibri.beta.message#forward" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.attachments:items" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.createdAt" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.facets:items" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.source" }AddedVertex { vertex_id: "social.colibri.beta.message#forward.text" }AddedVertex { vertex_id: "social.colibri.beta.message:body.bridged" }AddedVertex { vertex_id: "social.colibri.beta.message:body.forward" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.source", kind: "prop", name: Some("source") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.createdAt", kind: "prop", name: Some("createdAt") }
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.message#forward", src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.text", kind: "prop", name: Some("text") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.attachments", kind: "prop", name: Some("attachments") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward", tgt: "social.colibri.beta.message#forward.facets", kind: "prop", name: Some("facets") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.attachments", tgt: "social.colibri.beta.message#forward.attachments:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.attachments:items", tgt: "social.colibri.beta.message#attachment", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.facets", tgt: "social.colibri.beta.message#forward.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.facets:items", tgt: "social.colibri.beta.richtext.facet", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message#forward.source", tgt: "social.colibri.beta.defs#spaceRecordRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.bridged", kind: "prop", name: Some("bridged") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message:body", tgt: "social.colibri.beta.message:body.forward", kind: "prop", name: Some("forward") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message:body.bridged", tgt: "social.colibri.beta.bridge.defs#attribution", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.message:body.forward", tgt: "social.colibri.beta.message#forward", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"attachment": {
5
5
"description": "A file attached to a message.",
6
6
"properties": {
7
7
"blob": {
8
8
"description": "The attached file.",
9
9
"type": "blob"
10
10
},
11
11
"name": {
12
12
"description": "The original filename.",
13
13
"maxLength": 256,
14
14
"type": "string"
15
15
}
16
16
},
17
17
"required": [
18
18
"blob"
19
19
],
20
20
"type": "object"
21
21
},
22
+
"forward": {
23
+
"description": "Another message's content, copied and frozen when the forward was made. The copy does not follow later edits, deletions or labels on the message it came from. Never itself nested: forwarding a forwarded message carries this content over and repoints `source` at the message it was forwarded from.",
24
+
"properties": {
25
+
"attachments": {
26
+
"description": "The copied files, re-uploaded into the forwarding author's own repo so the forward stands on its own.",
27
+
"items": {
28
+
"description": "A copied file.",
29
+
"ref": "#attachment",
30
+
"type": "ref"
31
+
},
32
+
"type": "array"
33
+
},
34
+
"createdAt": {
35
+
"description": "When the message this content came from was sent.",
36
+
"format": "datetime",
37
+
"type": "string"
38
+
},
39
+
"facets": {
40
+
"description": "The copied annotations. A mention here does not notify anyone, because the AppView reads only a message's own facets.",
41
+
"items": {
42
+
"description": "An annotation.",
43
+
"ref": "social.colibri.beta.richtext.facet",
44
+
"type": "ref"
45
+
},
46
+
"type": "array"
47
+
},
48
+
"source": {
49
+
"description": "The message this content was copied from.",
50
+
"ref": "social.colibri.beta.defs#spaceRecordRef",
51
+
"type": "ref"
52
+
},
53
+
"text": {
54
+
"description": "The copied message body. Empty when the message that was forwarded carried only attachments.",
55
+
"maxLength": 2048,
56
+
"type": "string"
57
+
}
58
+
},
59
+
"required": [
60
+
"source",
61
+
"createdAt",
62
+
"text"
63
+
],
64
+
"type": "object"
65
+
},
22
66
"main": {
23
67
"description": "A message in a channel. Lives in the author's own permissioned repo for the channel's space.",
24
68
"key": "tid",
25
69
"record": {
26
70
"properties": {
27
71
"attachments": {
28
72
"description": "Files attached to this message.",
29
73
"items": {
30
74
"ref": "#attachment",
31
75
"type": "ref"
32
76
},
33
77
"type": "array"
34
78
},
79
+
"bridged": {
80
+
"description": "Who sent this message on another service. Honoured only when the community itself wrote the record.",
81
+
"ref": "social.colibri.beta.bridge.defs#attribution",
82
+
"type": "ref"
83
+
},
35
84
"createdAt": {
36
85
"description": "When the message was sent.",
37
86
"format": "datetime",
38
87
"type": "string"
39
88
},
40
89
"facets": {
41
90
"description": "Annotations over ranges of the text.",
42
91
"items": {
43
92
"ref": "social.colibri.beta.richtext.facet",
44
93
"type": "ref"
45
94
},
46
95
"type": "array"
47
96
},
97
+
"forward": {
98
+
"description": "Content copied here from another message. Present only on a forwarded message.",
99
+
"ref": "#forward",
100
+
"type": "ref"
101
+
},
48
102
"parent": {
49
103
"description": "The message this one replies to.",
50
104
"ref": "social.colibri.beta.defs#recordRef",
51
105
"type": "ref"
52
106
},
53
107
"suppressedEmbeds": {
54
108
"description": "URLs from this message's link facets whose preview the author chose not to show. Moderator suppression is a label instead.",
55
109
"items": {
56
110
"format": "uri",
57
111
"type": "string"
58
112
},
59
113
"type": "array"
60
114
},
61
115
"text": {
62
116
"description": "The message body.",
63
117
"maxLength": 2048,
64
118
"type": "string"
65
119
},
66
120
"updatedAt": {
67
121
"description": "When the message was last edited. Absent means never edited.",
68
122
"format": "datetime",
69
123
"type": "string"
70
124
}
71
125
},
72
126
"required": [
73
127
"text",
74
128
"createdAt"
75
129
],
76
130
"type": "object"
77
131
},
78
132
"type": "record"
79
133
}
80
134
},
81
135
"id": "social.colibri.beta.message",
82
136
"lexicon": 1
83
137
}