social.colibri.message
Schema Diff
+10 -2
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 4 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.message:body.channel", sort: "format", old_value: "record-key", new_value: "at-uri" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "social.colibri.message:body.suppressedEmbeds" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.message:body.suppressedEmbeds:items" }
- AddedEdge AddedEdge { src: "social.colibri.message:body", tgt: "social.colibri.message:body.suppressedEmbeds", kind: "prop", name: Some("suppressedEmbeds") }
- AddedEdge AddedEdge { src: "social.colibri.message:body.suppressedEmbeds", tgt: "social.colibri.message:body.suppressedEmbeds:items", kind: "items", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "social.colibri.message:body.suppressedEmbeds" }AddedVertex { vertex_id: "social.colibri.message:body.suppressedEmbeds:items" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.message:body.channel", sort: "format", old_value: "record-key", new_value: "at-uri" }
Additional Notes
- Non-breaking: AddedEdge { src: "social.colibri.message:body", tgt: "social.colibri.message:body.suppressedEmbeds", kind: "prop", name: Some("suppressedEmbeds") }
- Non-breaking: AddedEdge { src: "social.colibri.message:body.suppressedEmbeds", tgt: "social.colibri.message:body.suppressedEmbeds:items", kind: "items", 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
22
"main": {
23
23
"description": "A message sent in a channel on Colibri",
24
24
"key": "tid",
25
25
"record": {
26
26
"properties": {
27
27
"$type": {
28
28
"description": "The type of the record.",
29
29
"format": "nsid",
30
30
"type": "string"
31
31
},
32
32
"attachments": {
33
33
"description": "An array of attachment objects for this message.",
34
34
"items": {
35
35
"ref": "lex:social.colibri.message#attachment",
36
36
"type": "ref"
37
37
},
38
38
"type": "array"
39
39
},
40
40
"channel": {
41
41
"description": "The channel this message was sent in.",
42
-
"format": "record-key",
42
+
"format": "at-uri",
43
43
"type": "string"
44
44
},
45
45
"createdAt": {
46
46
"description": "When the message was sent.",
47
47
"format": "datetime",
48
48
"type": "string"
49
49
},
50
50
"edited": {
51
51
"default": false,
52
52
"description": "Whether this message has been edited.",
53
53
"type": "boolean"
54
54
},
55
55
"facets": {
56
56
"description": "Annotations of sections of the text.",
57
57
"items": {
58
58
"ref": "lex:social.colibri.richtext.facet",
59
59
"type": "ref"
60
60
},
61
61
"type": "array"
62
62
},
63
63
"parent": {
64
64
"description": "The record key of a message this message is replying to.",
65
65
"format": "record-key",
66
66
"type": "string"
67
67
},
68
+
"suppressedEmbeds": {
69
+
"description": "URLs from this message's link facets whose embed the author has chosen not to display. Only the author writes this; moderator suppression is recorded separately in the community's moderation log.",
70
+
"items": {
71
+
"format": "uri",
72
+
"type": "string"
73
+
},
74
+
"type": "array"
75
+
},
68
76
"text": {
69
77
"description": "The message content.",
70
78
"maxLength": 2048,
71
79
"type": "string"
72
80
}
73
81
},
74
82
"required": [
75
83
"text",
76
84
"createdAt",
77
85
"channel"
78
86
],
79
87
"type": "object"
80
88
},
81
89
"type": "record"
82
90
}
83
91
},
84
92
"description": "A message sent in a channel on Colibri.",
85
93
"id": "social.colibri.message",
86
94
"lexicon": 1,
87
-
"revision": 2
95
+
"revision": 3
88
96
}