fyi.opensocial.defs

lexicons.opensocial.fyi

Schema Diff

+29 -0

From

CID
bafyreic44oifmoi...
Indexed At
2026-10-03 01:13 UTC
View this version

To

CID
bafyreib7xgq4wm7...
Indexed At
2026-10-08 18:10 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 9 non-breaking changes.

Breaking Changes (2)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.handle", kind: "prop", name: Some("handle") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.did", kind: "prop", name: Some("did") }
Non-Breaking Changes (9)
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.avatar" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.did" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.displayName" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.handle" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.url" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.avatar", kind: "prop", name: Some("avatar") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.displayName", kind: "prop", name: Some("displayName") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.url", kind: "prop", name: Some("url") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.avatar" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.did" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.displayName" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.handle" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.url" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.handle", kind: "prop", name: Some("handle") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.did", kind: "prop", name: Some("did") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.avatar", kind: "prop", name: Some("avatar") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.displayName", kind: "prop", name: Some("displayName") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.url", kind: "prop", name: Some("url") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "actorView": {
5 5
      "description": "A person, as a view names them: their handle from their DID document, their name and face from the Bluesky profile in their own repo.",
6 6
      "properties": {
7 7
        "avatar": {
8 8
          "description": "Served renderably by the host, at /img/actor/{did}/{cid}.",
9 9
          "format": "uri",
10 10
          "type": "string"
11 11
        },
12 12
        "did": {
13 13
          "format": "did",
14 14
          "type": "string"
15 15
        },
16 16
        "displayName": {
17 17
          "type": "string"
18 18
        },
19 19
        "handle": {
20 20
          "format": "handle",
21 21
          "type": "string"
22 22
        }
23 23
      },
24 24
      "required": [
25 25
        "did"
26 26
      ],
27 27
      "type": "object"
28 28
    },
29 29
    "eventView": {
30 30
      "properties": {
31 31
        "actor": {
32 32
          "format": "did",
33 33
          "type": "string"
34 34
        },
35 35
        "createdAt": {
36 36
          "format": "datetime",
37 37
          "type": "string"
38 38
        },
39 39
        "note": {
40 40
          "type": "string"
41 41
        },
42 42
        "reason": {
43 43
          "type": "string"
44 44
        },
45 45
        "reasonType": {
46 46
          "type": "string"
47 47
        },
48 48
        "type": {
49 49
          "knownValues": [
50 50
            "report",
51 51
            "label",
52 52
            "negate",
53 53
            "resolve",
54 54
            "escalate",
55 55
            "note",
56 56
            "eject"
57 57
          ],
58 58
          "type": "string"
59 59
        },
60 60
        "val": {
61 61
          "type": "string"
62 62
        }
63 63
      },
64 64
      "required": [
65 65
        "type",
66 66
        "createdAt"
67 67
      ],
68 68
      "type": "object"
69 69
    },
70 70
    "groupRule": {
71 71
      "properties": {
72 72
        "createdAt": {
73 73
          "format": "datetime",
74 74
          "type": "string"
75 75
        },
76 76
        "rkey": {
77 77
          "type": "string"
78 78
        },
79 79
        "text": {
80 80
          "type": "string"
81 81
        },
82 82
        "title": {
83 83
          "type": "string"
84 84
        }
85 85
      },
86 86
      "required": [
87 87
        "rkey",
88 88
        "title"
89 89
      ],
90 90
      "type": "object"
91 91
    },
92 92
    "groupView": {
93 93
      "properties": {
94 94
        "avatar": {
95 95
          "description": "CID of the avatar blob; the host serves it at /img/{did}/avatar.",
96 96
          "type": "string"
97 97
        },
98 98
        "banner": {
99 99
          "description": "CID of the banner blob; the host serves it at /img/{did}/banner.",
100 100
          "type": "string"
101 101
        },
102 102
        "deactivated": {
103 103
          "description": "Set while a steward has the group switched off. Its spaces cannot be read until one of the stewards who could switch it off switches it back on.",
104 104
          "type": "boolean"
105 105
        },
106 106
        "description": {
107 107
          "type": "string"
108 108
        },
109 109
        "did": {
110 110
          "format": "did",
111 111
          "type": "string"
112 112
        },
113 113
        "displayName": {
114 114
          "type": "string"
115 115
        },
116 116
        "handle": {
117 117
          "format": "handle",
118 118
          "type": "string"
119 119
        },
120 120
        "joinPolicy": {
121 121
          "description": "How new members get in, as the profile states it.",
122 122
          "type": "string"
123 123
        },
124 124
        "members": {
125 125
          "format": "space-ref",
126 126
          "type": "string"
127 127
        },
128 128
        "meta": {
129 129
          "format": "space-ref",
130 130
          "type": "string"
131 131
        },
132 132
        "rules": {
133 133
          "items": {
134 134
            "ref": "#groupRule",
135 135
            "type": "ref"
136 136
          },
137 137
          "type": "array"
138 138
        },
139 139
        "url": {
140 140
          "description": "The group's own site, if it keeps one.",
141 141
          "format": "uri",
142 142
          "type": "string"
143 143
        }
144 144
      },
145 145
      "required": [
146 146
        "did",
147 147
        "handle",
148 148
        "meta",
149 149
        "members"
150 150
      ],
151 151
      "type": "object"
152 152
    },
153 +
    "groupViewBasic": {
154 +
      "properties": {
155 +
        "avatar": {
156 +
          "description": "CID of the group's picture.",
157 +
          "type": "string"
158 +
        },
159 +
        "did": {
160 +
          "format": "did",
161 +
          "type": "string"
162 +
        },
163 +
        "displayName": {
164 +
          "type": "string"
165 +
        },
166 +
        "handle": {
167 +
          "format": "handle",
168 +
          "type": "string"
169 +
        },
170 +
        "url": {
171 +
          "description": "The group's own site, if not at its handle.",
172 +
          "format": "uri",
173 +
          "type": "string"
174 +
        }
175 +
      },
176 +
      "required": [
177 +
        "did",
178 +
        "handle"
179 +
      ],
180 +
      "type": "object"
181 +
    },
153 182
    "groupViewDetailed": {
154 183
      "description": "A group in full, as the viewer may see it. Profile fields and rules are present only when the viewer may read the meta space.",
155 184
      "properties": {
156 185
        "avatar": {
157 186
          "description": "CID of the avatar blob; the host serves it at /img/{did}/avatar.",
158 187
          "type": "string"
159 188
        },
160 189
        "banner": {
161 190
          "description": "CID of the banner blob; the host serves it at /img/{did}/banner.",
162 191
          "type": "string"
163 192
        },
164 193
        "deactivated": {
165 194
          "description": "Set while a steward has the group switched off. Its spaces cannot be read until one of the stewards who could switch it off switches it back on.",
166 195
          "type": "boolean"
167 196
        },
168 197
        "description": {
169 198
          "type": "string"
170 199
        },
171 200
        "did": {
172 201
          "format": "did",
173 202
          "type": "string"
174 203
        },
175 204
        "displayName": {
176 205
          "type": "string"
177 206
        },
178 207
        "handle": {
179 208
          "format": "handle",
180 209
          "type": "string"
181 210
        },
182 211
        "joinPolicy": {
183 212
          "description": "How new members get in, as the profile states it.",
184 213
          "type": "string"
185 214
        },
186 215
        "members": {
187 216
          "format": "space-ref",
188 217
          "type": "string"
189 218
        },
190 219
        "meta": {
191 220
          "format": "space-ref",
192 221
          "type": "string"
193 222
        },
194 223
        "rules": {
195 224
          "description": "In the order they are presented. Absent when the meta space is closed to the viewer.",
196 225
          "items": {
197 226
            "ref": "#groupRule",
198 227
            "type": "ref"
199 228
          },
200 229
          "type": "array"
201 230
        },
202 231
        "url": {
203 232
          "description": "The group's own site, if it keeps one.",
204 233
          "format": "uri",
205 234
          "type": "string"
206 235
        },
207 236
        "viewer": {
208 237
          "ref": "#viewerState",
209 238
          "type": "ref"
210 239
        }
211 240
      },
212 241
      "required": [
213 242
        "did",
214 243
        "handle",
215 244
        "meta",
216 245
        "members"
217 246
      ],
218 247
      "type": "object"
219 248
    },
220 249
    "inviteView": {
221 250
      "properties": {
222 251
        "createdAt": {
223 252
          "format": "datetime",
224 253
          "type": "string"
225 254
        },
226 255
        "expiresAt": {
227 256
          "format": "datetime",
228 257
          "type": "string"
229 258
        },
230 259
        "invitee": {
231 260
          "format": "did",
232 261
          "type": "string"
233 262
        },
234 263
        "message": {
235 264
          "type": "string"
236 265
        },
237 266
        "uri": {
238 267
          "format": "at-uri",
239 268
          "type": "string"
240 269
        }
241 270
      },
242 271
      "required": [
243 272
        "uri",
244 273
        "invitee",
245 274
        "createdAt"
246 275
      ],
247 276
      "type": "object"
248 277
    },
249 278
    "joinRequestView": {
250 279
      "properties": {
251 280
        "actor": {
252 281
          "description": "Who is asking, as a view names them.",
253 282
          "ref": "#actorView",
254 283
          "type": "ref"
255 284
        },
256 285
        "createdAt": {
257 286
          "format": "datetime",
258 287
          "type": "string"
259 288
        },
260 289
        "did": {
261 290
          "format": "did",
262 291
          "type": "string"
263 292
        },
264 293
        "invite": {
265 294
          "format": "at-uri",
266 295
          "type": "string"
267 296
        },
268 297
        "message": {
269 298
          "type": "string"
270 299
        }
271 300
      },
272 301
      "required": [
273 302
        "did",
274 303
        "createdAt"
275 304
      ],
276 305
      "type": "object"
277 306
    },
278 307
    "memberView": {
279 308
      "properties": {
280 309
        "actor": {
281 310
          "ref": "#actorView",
282 311
          "type": "ref"
283 312
        },
284 313
        "roles": {
285 314
          "items": {
286 315
            "type": "string"
287 316
          },
288 317
          "type": "array"
289 318
        }
290 319
      },
291 320
      "required": [
292 321
        "actor",
293 322
        "roles"
294 323
      ],
295 324
      "type": "object"
296 325
    },
297 326
    "roleView": {
298 327
      "properties": {
299 328
        "description": {
300 329
          "type": "string"
301 330
        },
302 331
        "key": {
303 332
          "description": "The role id: its record key.",
304 333
          "type": "string"
305 334
        },
306 335
        "name": {
307 336
          "type": "string"
308 337
        }
309 338
      },
310 339
      "required": [
311 340
        "key"
312 341
      ],
313 342
      "type": "object"
314 343
    },
315 344
    "spaceView": {
316 345
      "properties": {
317 346
        "name": {
318 347
          "type": "string"
319 348
        },
320 349
        "readableBy": {
321 350
          "description": "The space's read gate, when the viewer may read the space.",
322 351
          "items": {
323 352
            "type": "string"
324 353
          },
325 354
          "type": "array"
326 355
        },
327 356
        "type": {
328 357
          "format": "nsid",
329 358
          "type": "string"
330 359
        },
331 360
        "uri": {
332 361
          "format": "space-ref",
333 362
          "type": "string"
334 363
        }
335 364
      },
336 365
      "required": [
337 366
        "uri",
338 367
        "type"
339 368
      ],
340 369
      "type": "object"
341 370
    },
342 371
    "subjectView": {
343 372
      "properties": {
344 373
        "createdAt": {
345 374
          "format": "datetime",
346 375
          "type": "string"
347 376
        },
348 377
        "lastReportedAt": {
349 378
          "format": "datetime",
350 379
          "type": "string"
351 380
        },
352 381
        "reportCount": {
353 382
          "type": "integer"
354 383
        },
355 384
        "status": {
356 385
          "knownValues": [
357 386
            "open",
358 387
            "escalated",
359 388
            "resolved"
360 389
          ],
361 390
          "type": "string"
362 391
        },
363 392
        "subject": {
364 393
          "description": "A record's at-uri, or an account's DID.",
365 394
          "format": "uri",
366 395
          "type": "string"
367 396
        },
368 397
        "updatedAt": {
369 398
          "format": "datetime",
370 399
          "type": "string"
371 400
        }
372 401
      },
373 402
      "required": [
374 403
        "subject",
375 404
        "status",
376 405
        "createdAt"
377 406
      ],
378 407
      "type": "object"
379 408
    },
380 409
    "viewerState": {
381 410
      "description": "The requesting account's standing in the group. Only present for authed requests.",
382 411
      "properties": {
383 412
        "accepted": {
384 413
          "description": "For a member: whether their own acceptance is in the members space.",
385 414
          "type": "boolean"
386 415
        },
387 416
        "actions": {
388 417
          "description": "The union of actions across the viewer's roles: what the host would let them do.",
389 418
          "items": {
390 419
            "ref": "fyi.opensocial.permissions#action",
391 420
            "type": "ref"
392 421
          },
393 422
          "type": "array"
394 423
        },
395 424
        "member": {
396 425
          "type": "boolean"
397 426
        },
398 427
        "request": {
399 428
          "description": "The viewer's own pending request to join, when they are not a member and have one.",
400 429
          "ref": "#joinRequestView",
401 430
          "type": "ref"
402 431
        },
403 432
        "roles": {
404 433
          "items": {
405 434
            "type": "string"
406 435
          },
407 436
          "type": "array"
408 437
        }
409 438
      },
410 439
      "required": [
411 440
        "member",
412 441
        "roles",
413 442
        "actions"
414 443
      ],
415 444
      "type": "object"
416 445
    }
417 446
  },
418 447
  "id": "fyi.opensocial.defs",
419 448
  "lexicon": 1
420 449
}

Compare Other Versions

Lexicon Garden

@