fyi.opensocial.defs
Schema Diff
+29 -0
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
}