social.colibri.beta.sync.defs
Schema Diff
+14 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 4 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.beta.sync.defs#preferencesEvent", src: "social.colibri.beta.sync.defs#preferencesEvent", tgt: "social.colibri.beta.sync.defs#preferencesEvent.preferences", kind: "prop", name: Some("preferences") }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.actor.defs#preferences" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.sync.defs#preferencesEvent" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.sync.defs#preferencesEvent.preferences" }
- AddedEdge AddedEdge { src: "social.colibri.beta.sync.defs#preferencesEvent.preferences", tgt: "social.colibri.beta.actor.defs#preferences", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "social.colibri.beta.actor.defs#preferences" }AddedVertex { vertex_id: "social.colibri.beta.sync.defs#preferencesEvent" }AddedVertex { vertex_id: "social.colibri.beta.sync.defs#preferencesEvent.preferences" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.beta.sync.defs#preferencesEvent", src: "social.colibri.beta.sync.defs#preferencesEvent", tgt: "social.colibri.beta.sync.defs#preferencesEvent.preferences", kind: "prop", name: Some("preferences") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.sync.defs#preferencesEvent.preferences", tgt: "social.colibri.beta.actor.defs#preferences", kind: "ref", name: None }
1
1
{
2
2
"id": "social.colibri.beta.sync.defs",
3
3
"defs": {
4
4
"ack": {
5
5
"type": "object",
6
6
"required": [],
7
7
"properties": {},
8
8
"description": "Answers a heartbeat."
9
9
},
10
10
"error": {
11
11
"type": "object",
12
12
"required": [
13
13
"error"
14
14
],
15
15
"properties": {
16
16
"error": {
17
17
"type": "string",
18
18
"description": "Error name.",
19
19
"knownValues": [
20
20
"InvalidFrame",
21
21
"Forbidden",
22
22
"NotFound",
23
23
"RateLimited"
24
24
]
25
25
},
26
26
"message": {
27
27
"type": "string",
28
28
"description": "Human-readable detail."
29
29
}
30
30
},
31
31
"description": "Something the client sent could not be acted on."
32
32
},
33
33
"typing": {
34
34
"type": "object",
35
35
"required": [
36
36
"channel"
37
37
],
38
38
"properties": {
39
39
"channel": {
40
40
"type": "string",
41
41
"format": "space-ref",
42
42
"description": "The channel being typed in."
43
43
}
44
44
},
45
45
"description": "Reports that the user is typing in a channel."
46
46
},
47
47
"heartbeat": {
48
48
"type": "object",
49
49
"required": [],
50
50
"properties": {},
51
51
"description": "Keeps the connection alive and tells the AppView the user is still present. The server answers with an ack."
52
52
},
53
53
"roleEvent": {
54
54
"type": "object",
55
55
"required": [
56
56
"event",
57
57
"community"
58
58
],
59
59
"properties": {
60
60
"rkey": {
61
61
"type": "string",
62
62
"format": "record-key",
63
63
"description": "Which role, for deletes."
64
64
},
65
65
"role": {
66
66
"ref": "social.colibri.beta.community.defs#roleView",
67
67
"type": "ref",
68
68
"description": "The role. Absent on delete."
69
69
},
70
70
"event": {
71
71
"type": "string",
72
72
"description": "What happened.",
73
73
"knownValues": [
74
74
"create",
75
75
"update",
76
76
"delete"
77
77
]
78
78
},
79
79
"community": {
80
80
"type": "string",
81
81
"format": "did",
82
82
"description": "The community it belongs to."
83
83
}
84
84
},
85
85
"description": "A role was created, changed, or deleted."
86
86
},
87
87
"seenEvent": {
88
88
"type": "object",
89
89
"required": [
90
90
"unread"
91
91
],
92
92
"properties": {
93
93
"seenAt": {
94
94
"type": "string",
95
95
"format": "datetime",
96
96
"description": "The point everything was marked seen up to."
97
97
},
98
98
"unread": {
99
99
"type": "integer",
100
100
"description": "The user's remaining unread count."
101
101
},
102
102
"channel": {
103
103
"type": "string",
104
104
"format": "space-ref",
105
105
"description": "The channel that was marked seen, when it was a single channel."
106
106
}
107
107
},
108
108
"description": "The connected user marked notifications seen somewhere else, so this client should clear the same badges."
109
109
},
110
110
"subscribe": {
111
111
"type": "object",
112
112
"required": [],
113
113
"properties": {
114
114
"channels": {
115
115
"type": "array",
116
116
"items": {
117
117
"type": "string",
118
118
"format": "space-ref",
119
119
"description": "A channel."
120
120
},
121
121
"description": "Channels to start receiving messages for."
122
122
},
123
123
"communities": {
124
124
"type": "array",
125
125
"items": {
126
126
"type": "string",
127
127
"format": "did",
128
128
"description": "A community."
129
129
},
130
130
"description": "Communities to start receiving events for."
131
131
}
132
132
},
133
133
"description": "Adds communities and channels to what this connection receives. Subscription is explicit: a connection is sent nothing it did not ask for."
134
134
},
135
135
"labelEvent": {
136
136
"type": "object",
137
137
"required": [
138
138
"event",
139
139
"space",
140
140
"subject",
141
141
"val",
142
142
"src"
143
143
],
144
144
"properties": {
145
145
"src": {
146
146
"type": "string",
147
147
"format": "did",
148
148
"description": "The labeler."
149
149
},
150
150
"val": {
151
151
"type": "string",
152
152
"description": "The label value."
153
153
},
154
154
"event": {
155
155
"type": "string",
156
156
"description": "What happened.",
157
157
"knownValues": [
158
158
"create",
159
159
"negate"
160
160
]
161
161
},
162
162
"space": {
163
163
"type": "string",
164
164
"format": "space-ref",
165
165
"description": "The space the labelled record lives in."
166
166
},
167
167
"subject": {
168
168
"ref": "social.colibri.beta.label#subject",
169
169
"type": "ref",
170
170
"description": "The labelled record."
171
171
}
172
172
},
173
173
"description": "A label was applied or retracted on a record in a subscribed space."
174
174
},
175
175
"subscribed": {
176
176
"type": "object",
177
177
"required": [
178
178
"communities",
179
179
"channels"
180
180
],
181
181
"properties": {
182
182
"channels": {
183
183
"type": "array",
184
184
"items": {
185
185
"type": "string",
186
186
"format": "space-ref",
187
187
"description": "A channel."
188
188
},
189
189
"description": "Channels being received."
190
190
},
191
191
"communities": {
192
192
"type": "array",
193
193
"items": {
194
194
"type": "string",
195
195
"format": "did",
196
196
"description": "A community."
197
197
},
198
198
"description": "Communities being received."
199
199
}
200
200
},
201
201
"description": "Confirms what this connection is now receiving, after a subscribe or unsubscribe. Anything the user is not entitled to read is silently absent."
202
202
},
203
203
"voiceEvent": {
204
204
"type": "object",
205
205
"required": [
206
206
"event",
207
207
"channel",
208
208
"did"
209
209
],
210
210
"properties": {
211
211
"did": {
212
212
"type": "string",
213
213
"format": "did",
214
214
"description": "Who."
215
215
},
216
216
"event": {
217
217
"type": "string",
218
218
"description": "What happened.",
219
219
"knownValues": [
220
220
"join",
221
221
"leave",
222
222
"update",
223
223
"speaking"
224
224
]
225
225
},
226
226
"voice": {
227
227
"ref": "social.colibri.beta.actor.defs#voiceState",
228
228
"type": "ref",
229
229
"description": "Their voice state. Absent on leave."
230
230
},
231
231
"channel": {
232
232
"type": "string",
233
233
"format": "space-ref",
234
234
"description": "The voice channel."
235
235
},
236
236
"speaking": {
237
237
"type": "boolean",
238
238
"description": "Whether they are currently speaking, on speaking events."
239
239
}
240
240
},
241
241
"description": "A voice channel's participants changed."
242
242
},
243
243
"memberEvent": {
244
244
"type": "object",
245
245
"required": [
246
246
"event",
247
247
"community"
248
248
],
249
249
"properties": {
250
250
"event": {
251
251
"type": "string",
252
252
"description": "What happened. A kick or a ban arrives as a leave.",
253
253
"knownValues": [
254
254
"join",
255
255
"leave",
256
256
"update"
257
257
]
258
258
},
259
259
"member": {
260
260
"ref": "social.colibri.beta.community.defs#memberView",
261
261
"type": "ref",
262
262
"description": "The member. Absent on leave."
263
263
},
264
264
"subject": {
265
265
"type": "string",
266
266
"format": "did",
267
267
"description": "Who, for leaves."
268
268
},
269
269
"community": {
270
270
"type": "string",
271
271
"format": "did",
272
272
"description": "The community."
273
273
}
274
274
},
275
275
"description": "Someone joined, left, or had their roles changed."
276
276
},
277
277
"setPresence": {
278
278
"type": "object",
279
279
"required": [],
280
280
"properties": {
281
281
"voice": {
282
282
"ref": "#voiceSelfState",
283
283
"type": "ref",
284
284
"description": "The user's own voice state, when connected to a voice channel."
285
285
},
286
286
"onlineState": {
287
287
"type": "string",
288
288
"description": "Requested online state.",
289
289
"knownValues": [
290
290
"online",
291
291
"away",
292
292
"dnd",
293
293
"offline"
294
294
]
295
295
}
296
296
},
297
297
"description": "Updates the user's own presence over the socket."
298
298
},
299
299
"typingEvent": {
300
300
"type": "object",
301
301
"required": [
302
302
"did",
303
303
"channel"
304
304
],
305
305
"properties": {
306
306
"did": {
307
307
"type": "string",
308
308
"format": "did",
309
309
"description": "Who is typing."
310
310
},
311
311
"channel": {
312
312
"type": "string",
313
313
"format": "space-ref",
314
314
"description": "Where."
315
315
}
316
316
},
317
317
"description": "Someone is typing in a subscribed channel."
318
318
},
319
319
"unsubscribe": {
320
320
"type": "object",
321
321
"required": [],
322
322
"properties": {
323
323
"channels": {
324
324
"type": "array",
325
325
"items": {
326
326
"type": "string",
327
327
"format": "space-ref",
328
328
"description": "A channel."
329
329
},
330
330
"description": "Channels to stop receiving messages for."
331
331
},
332
332
"communities": {
333
333
"type": "array",
334
334
"items": {
335
335
"type": "string",
336
336
"format": "did",
337
337
"description": "A community."
338
338
},
339
339
"description": "Communities to stop receiving events for."
340
340
}
341
341
},
342
342
"description": "Removes communities and channels from what this connection receives."
343
343
},
344
344
"viewChannel": {
345
345
"type": "object",
346
346
"required": [],
347
347
"properties": {
348
348
"channel": {
349
349
"type": "string",
350
350
"format": "space-ref",
351
351
"description": "The channel now in view."
352
352
}
353
353
},
354
354
"description": "Reports which channel the user is looking at, which drives read state and away detection. An absent channel means they are looking at none."
355
355
},
356
356
"channelEvent": {
357
357
"type": "object",
358
358
"required": [
359
359
"event",
360
360
"community"
361
361
],
362
362
"properties": {
363
363
"event": {
364
364
"type": "string",
365
365
"description": "What happened.",
366
366
"knownValues": [
367
367
"create",
368
368
"update",
369
369
"delete"
370
370
]
371
371
},
372
372
"space": {
373
373
"type": "string",
374
374
"format": "space-ref",
375
375
"description": "Which channel, for deletes."
376
376
},
377
377
"channel": {
378
378
"ref": "social.colibri.beta.community.defs#channelView",
379
379
"type": "ref",
380
380
"description": "The channel. Absent on delete."
381
381
},
382
382
"community": {
383
383
"type": "string",
384
384
"format": "did",
385
385
"description": "The community it belongs to."
386
386
}
387
387
},
388
388
"description": "A channel was created, changed, or deleted."
389
389
},
390
390
"messageEvent": {
391
391
"type": "object",
392
392
"required": [
393
393
"event",
394
394
"channel"
395
395
],
396
396
"properties": {
397
397
"event": {
398
398
"type": "string",
399
399
"description": "What happened.",
400
400
"knownValues": [
401
401
"create",
402
402
"update",
403
403
"delete"
404
404
]
405
405
},
406
406
"channel": {
407
407
"type": "string",
408
408
"format": "space-ref",
409
409
"description": "The channel it happened in."
410
410
},
411
411
"message": {
412
412
"ref": "social.colibri.beta.channel.defs#messageView",
413
413
"type": "ref",
414
414
"description": "The message. Absent on delete, where the reference alone identifies it."
415
415
},
416
416
"subject": {
417
417
"ref": "social.colibri.beta.defs#recordRef",
418
418
"type": "ref",
419
419
"description": "Which message, for deletes."
420
420
}
421
421
},
422
422
"description": "A message was written, edited, or deleted in a subscribed channel."
423
423
},
424
424
"categoryEvent": {
425
425
"type": "object",
426
426
"required": [
427
427
"event",
428
428
"community"
429
429
],
430
430
"properties": {
431
431
"rkey": {
432
432
"type": "string",
433
433
"format": "record-key",
434
434
"description": "Which category, for deletes."
435
435
},
436
436
"event": {
437
437
"type": "string",
438
438
"description": "What happened.",
439
439
"knownValues": [
440
440
"create",
441
441
"update",
442
442
"delete"
443
443
]
444
444
},
445
445
"category": {
446
446
"ref": "social.colibri.beta.community.defs#categoryView",
447
447
"type": "ref",
448
448
"description": "The category. Absent on delete."
449
449
},
450
450
"community": {
451
451
"type": "string",
452
452
"format": "did",
453
453
"description": "The community it belongs to."
454
454
}
455
455
},
456
456
"description": "A category was created, changed, or deleted."
457
457
},
458
458
"presenceEvent": {
459
459
"type": "object",
460
460
"required": [
461
461
"did",
462
462
"presence"
463
463
],
464
464
"properties": {
465
465
"did": {
466
466
"type": "string",
467
467
"format": "did",
468
468
"description": "Whose presence changed."
469
469
},
470
470
"presence": {
471
471
"ref": "social.colibri.beta.actor.defs#presence",
472
472
"type": "ref",
473
473
"description": "Their new presence."
474
474
}
475
475
},
476
476
"description": "Someone's presence changed."
477
477
},
478
478
"reactionEvent": {
479
479
"type": "object",
480
480
"required": [
481
481
"event",
482
482
"channel",
483
483
"target",
484
484
"emoji",
485
485
"actor"
486
486
],
487
487
"properties": {
488
488
"actor": {
489
489
"type": "string",
490
490
"format": "did",
491
491
"description": "Who reacted."
492
492
},
493
493
"emoji": {
494
494
"type": "string",
495
495
"description": "The emoji or custom shortcode."
496
496
},
497
497
"event": {
498
498
"type": "string",
499
499
"description": "What happened.",
500
500
"knownValues": [
501
501
"create",
502
502
"delete"
503
503
]
504
504
},
505
505
"target": {
506
506
"ref": "social.colibri.beta.defs#recordRef",
507
507
"type": "ref",
508
508
"description": "The message reacted to."
509
509
},
510
510
"channel": {
511
511
"type": "string",
512
512
"format": "space-ref",
513
513
"description": "The channel it happened in."
514
514
}
515
515
},
516
516
"description": "A reaction was added or removed in a subscribed channel."
517
517
},
518
518
"communityEvent": {
519
519
"type": "object",
520
520
"required": [
521
521
"event",
522
522
"community"
523
523
],
524
524
"properties": {
525
525
"view": {
526
526
"ref": "social.colibri.beta.community.defs#communityView",
527
527
"type": "ref",
528
528
"description": "The community. Absent on delete."
529
529
},
530
530
"event": {
531
531
"type": "string",
532
532
"description": "What happened.",
533
533
"knownValues": [
534
534
"update",
535
535
"delete"
536
536
]
537
537
},
538
538
"community": {
539
539
"type": "string",
540
540
"format": "did",
541
541
"description": "The community."
542
542
}
543
543
},
544
544
"description": "A community's profile or settings changed."
545
545
},
546
546
"voiceSelfState": {
547
547
"type": "object",
548
548
"required": [
549
549
"channel"
550
550
],
551
551
"properties": {
552
552
"muted": {
553
553
"type": "boolean",
554
554
"description": "Whether the microphone is muted."
555
555
},
556
556
"channel": {
557
557
"type": "string",
558
558
"format": "space-ref",
559
559
"description": "The voice channel."
560
560
},
561
561
"deafened": {
562
562
"type": "boolean",
563
563
"description": "Whether the user has deafened themselves."
564
564
}
565
565
},
566
566
"description": "A user's own voice state."
567
567
},
568
568
"moderationEvent": {
569
569
"type": "object",
570
570
"required": [
571
571
"community",
572
572
"entry"
573
573
],
574
574
"properties": {
575
575
"entry": {
576
576
"ref": "social.colibri.beta.community.defs#moderationView",
577
577
"type": "ref",
578
578
"description": "The log entry."
579
579
},
580
580
"community": {
581
581
"type": "string",
582
582
"format": "did",
583
583
"description": "The community."
584
584
}
585
585
},
586
586
"description": "A moderation action was logged. Only sent to members who can read the log."
587
587
},
588
588
"applicationEvent": {
589
589
"type": "object",
590
590
"required": [
591
591
"event",
592
592
"community",
593
593
"subject"
594
594
],
595
595
"properties": {
596
596
"event": {
597
597
"type": "string",
598
598
"description": "What happened.",
599
599
"knownValues": [
600
600
"create",
601
601
"approve",
602
602
"dismiss",
603
603
"undismiss"
604
604
]
605
605
},
606
606
"subject": {
607
607
"type": "string",
608
608
"format": "did",
609
609
"description": "The applicant."
610
610
},
611
611
"community": {
612
612
"type": "string",
613
613
"format": "did",
614
614
"description": "The community."
615
615
},
616
616
"application": {
617
617
"ref": "social.colibri.beta.community.defs#applicationView",
618
618
"type": "ref",
619
619
"description": "The application. Absent on approve."
620
620
}
621
621
},
622
622
"description": "The pending-application queue changed. Only sent to members who can manage approvals."
623
623
},
624
+
"preferencesEvent": {
625
+
"type": "object",
626
+
"required": [
627
+
"preferences"
628
+
],
629
+
"properties": {
630
+
"preferences": {
631
+
"ref": "social.colibri.beta.actor.defs#preferences",
632
+
"type": "ref",
633
+
"description": "Their preferences as they now stand."
634
+
}
635
+
},
636
+
"description": "The connected user changed their own preferences somewhere else."
637
+
},
624
638
"notificationEvent": {
625
639
"type": "object",
626
640
"required": [
627
641
"notification"
628
642
],
629
643
"properties": {
630
644
"notification": {
631
645
"ref": "social.colibri.beta.notification.defs#notificationView",
632
646
"type": "ref",
633
647
"description": "The notification."
634
648
}
635
649
},
636
650
"description": "A notification was raised for the connected user."
637
651
},
638
652
"communityProgressEvent": {
639
653
"type": "object",
640
654
"required": [
641
655
"step",
642
656
"completed",
643
657
"total"
644
658
],
645
659
"properties": {
646
660
"step": {
647
661
"type": "string",
648
662
"description": "What the AppView is doing now.",
649
663
"knownValues": [
650
664
"creatingAccount",
651
665
"creatingSpaces",
652
666
"writingProfile",
653
667
"creatingOwnerRole",
654
668
"creatingStarterChannels",
655
669
"done",
656
670
"failed"
657
671
]
658
672
},
659
673
"total": {
660
674
"type": "integer",
661
675
"description": "Steps in total."
662
676
},
663
677
"message": {
664
678
"type": "string",
665
679
"description": "Human-readable detail, set on failure."
666
680
},
667
681
"community": {
668
682
"type": "string",
669
683
"format": "did",
670
684
"description": "The community, once its account exists."
671
685
},
672
686
"completed": {
673
687
"type": "integer",
674
688
"description": "Steps finished."
675
689
}
676
690
},
677
691
"description": "Progress while a community is being created, which takes several PDS round-trips."
678
692
}
679
693
},
680
694
"$type": "com.atproto.lexicon.schema",
681
695
"lexicon": 1
682
696
}