com.suibari.nagi.post

suibari.com

Schema Diff

+6 -0

From

CID
bafyreib6yz54o4n...
Indexed At
2026-07-23 06:37 UTC
View this version

To

CID
bafyreieg2dqy3i2...
Indexed At
2026-07-29 11:42 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 4 non-breaking changes.

Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post#image.contentWarning" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.post:body.cwRestricted" }
  • 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.cwRestricted", kind: "prop", name: Some("cwRestricted") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.post#image.contentWarning" }
  • AddedVertex { vertex_id: "com.suibari.nagi.post:body.cwRestricted" }

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.cwRestricted", kind: "prop", name: Some("cwRestricted") }
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 45
          "channel": {
46 46
            "ref": "com.atproto.repo.strongRef",
47 47
            "type": "ref"
48 48
          },
49 49
          "kossori": {
50 50
            "type": "boolean"
51 51
          },
52 52
          "createdAt": {
53 53
            "type": "string",
54 54
            "format": "datetime"
55 55
          },
56 56
          "linkCards": {
57 57
            "type": "array",
58 58
            "items": {
59 59
              "ref": "#linkCard",
60 60
              "type": "ref"
61 61
            },
62 62
            "maxLength": 4
63 63
          },
64 64
          "channelOnly": {
65 65
            "type": "boolean"
66 +
          },
67 +
          "cwRestricted": {
68 +
            "type": "boolean"
66 69
          }
67 70
        }
68 71
      }
69 72
    },
70 73
    "image": {
71 74
      "type": "object",
72 75
      "required": [
73 76
        "image",
74 77
        "alt"
75 78
      ],
76 79
      "properties": {
77 80
        "alt": {
78 81
          "type": "string",
79 82
          "maxLength": 10000,
80 83
          "maxGraphemes": 1000
81 84
        },
82 85
        "image": {
83 86
          "type": "blob",
84 87
          "accept": [
85 88
            "image/jpeg",
86 89
            "image/png",
87 90
            "image/webp",
88 91
            "image/gif"
89 92
          ],
90 93
          "maxSize": 2000000
91 94
        },
92 95
        "aspectRatio": {
93 96
          "ref": "app.bsky.embed.defs#aspectRatio",
94 97
          "type": "ref"
98 +
        },
99 +
        "contentWarning": {
100 +
          "type": "boolean"
95 101
        }
96 102
      }
97 103
    },
98 104
    "quote": {
99 105
      "type": "object",
100 106
      "required": [
101 107
        "record"
102 108
      ],
103 109
      "properties": {
104 110
        "images": {
105 111
          "type": "array",
106 112
          "items": {
107 113
            "ref": "#image",
108 114
            "type": "ref"
109 115
          },
110 116
          "maxLength": 4,
111 117
          "minLength": 1
112 118
        },
113 119
        "record": {
114 120
          "ref": "com.atproto.repo.strongRef",
115 121
          "type": "ref"
116 122
        }
117 123
      }
118 124
    },
119 125
    "images": {
120 126
      "type": "object",
121 127
      "required": [
122 128
        "images"
123 129
      ],
124 130
      "properties": {
125 131
        "images": {
126 132
          "type": "array",
127 133
          "items": {
128 134
            "ref": "#image",
129 135
            "type": "ref"
130 136
          },
131 137
          "maxLength": 4,
132 138
          "minLength": 1
133 139
        }
134 140
      }
135 141
    },
136 142
    "linkCard": {
137 143
      "type": "object",
138 144
      "required": [
139 145
        "uri",
140 146
        "title"
141 147
      ],
142 148
      "properties": {
143 149
        "uri": {
144 150
          "type": "string",
145 151
          "format": "uri",
146 152
          "maxLength": 2048
147 153
        },
148 154
        "thumb": {
149 155
          "type": "blob",
150 156
          "accept": [
151 157
            "image/jpeg",
152 158
            "image/png",
153 159
            "image/webp"
154 160
          ],
155 161
          "maxSize": 1000000
156 162
        },
157 163
        "title": {
158 164
          "type": "string",
159 165
          "maxLength": 3000,
160 166
          "maxGraphemes": 300
161 167
        },
162 168
        "description": {
163 169
          "type": "string",
164 170
          "maxLength": 10000,
165 171
          "maxGraphemes": 1000
166 172
        }
167 173
      }
168 174
    },
169 175
    "replyRef": {
170 176
      "type": "object",
171 177
      "required": [
172 178
        "root",
173 179
        "parent"
174 180
      ],
175 181
      "properties": {
176 182
        "root": {
177 183
          "ref": "com.atproto.repo.strongRef",
178 184
          "type": "ref"
179 185
        },
180 186
        "parent": {
181 187
          "ref": "com.atproto.repo.strongRef",
182 188
          "type": "ref"
183 189
        }
184 190
      }
185 191
    }
186 192
  },
187 193
  "$type": "com.atproto.lexicon.schema",
188 194
  "lexicon": 1
189 195
}

Compare Other Versions

Lexicon Garden

@