social.colibri.channel.defs

colibri.social

Schema Diff

+24 -0

From

CID
bafyreibrv3jxfhz...
Indexed At
2026-07-24 14:44 UTC
View this version

To

CID
bafyreiezsytmhck...
Indexed At
2026-08-15 22:24 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 12 non-breaking changes.

Non-Breaking Changes (12)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel.defs#attachment.height" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel.defs#attachment.width" }
  • 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#attachment", tgt: "social.colibri.channel.defs#attachment.height", kind: "prop", name: Some("height") }
  • AddedEdge AddedEdge { src: "social.colibri.channel.defs#attachment", tgt: "social.colibri.channel.defs#attachment.width", kind: "prop", name: Some("width") }
  • 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#attachment.height" }
  • AddedVertex { vertex_id: "social.colibri.channel.defs#attachment.width" }
  • 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#attachment", tgt: "social.colibri.channel.defs#attachment.height", kind: "prop", name: Some("height") }
  • Non-breaking: AddedEdge { src: "social.colibri.channel.defs#attachment", tgt: "social.colibri.channel.defs#attachment.width", kind: "prop", name: Some("width") }
  • 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"
101 +
        },
102 +
        "width": {
103 +
          "type": "integer",
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."
105 +
        },
106 +
        "height": {
107 +
          "type": "integer",
108 +
          "description": "Pixel height of the attachment's intrinsic dimensions, when it is a decodable image or video."
85 109
        }
86 110
      },
87 111
      "description": "A file attached to a message."
88 112
    },
89 113
    "readCursor": {
90 114
      "type": "object",
91 115
      "required": [
92 116
        "uri",
93 117
        "cursor",
94 118
        "channel"
95 119
      ],
96 120
      "properties": {
97 121
        "uri": {
98 122
          "type": "string",
99 123
          "format": "at-uri"
100 124
        },
101 125
        "cursor": {
102 126
          "type": "string"
103 127
        },
104 128
        "channel": {
105 129
          "type": "string",
106 130
          "format": "at-uri"
107 131
        }
108 132
      },
109 133
      "description": "The authenticated user's read cursor for a channel."
110 134
    },
111 135
    "reactionView": {
112 136
      "type": "object",
113 137
      "required": [
114 138
        "emoji",
115 139
        "count",
116 140
        "reactorDIDs"
117 141
      ],
118 142
      "properties": {
119 143
        "count": {
120 144
          "type": "integer"
121 145
        },
122 146
        "emoji": {
123 147
          "type": "string"
124 148
        },
125 149
        "reactorDIDs": {
126 150
          "type": "array",
127 151
          "items": {
128 152
            "type": "string",
129 153
            "format": "did"
130 154
          }
131 155
        }
132 156
      },
133 157
      "description": "An aggregated reaction on a message."
134 158
    },
135 159
    "unreadStatus": {
136 160
      "type": "object",
137 161
      "required": [
138 162
        "channelUri",
139 163
        "hasUnreadMessages",
140 164
        "unreadPingCount"
141 165
      ],
142 166
      "properties": {
143 167
        "channelUri": {
144 168
          "type": "string",
145 169
          "format": "at-uri"
146 170
        },
147 171
        "unreadPingCount": {
148 172
          "type": "integer"
149 173
        },
150 174
        "hasUnreadMessages": {
151 175
          "type": "boolean"
152 176
        }
153 177
      },
154 178
      "description": "Per-channel unread state for the authenticated user."
155 179
    }
156 180
  },
157 181
  "$type": "com.atproto.lexicon.schema",
158 182
  "lexicon": 1
159 183
}

Compare Other Versions

Lexicon Garden

@