space.highport.defs
Schema Diff
+5 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#tileView.handle" }
- AddedEdge AddedEdge { src: "space.highport.defs#tileView", tgt: "space.highport.defs#tileView.handle", kind: "prop", name: Some("handle") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "space.highport.defs#tileView.handle" }
Additional Notes
- Non-breaking: AddedEdge { src: "space.highport.defs#tileView", tgt: "space.highport.defs#tileView.handle", kind: "prop", name: Some("handle") }
1
1
{
2
2
"id": "space.highport.defs",
3
3
"defs": {
4
4
"jobView": {
5
5
"type": "object",
6
6
"required": [
7
7
"id",
8
8
"uri",
9
9
"action",
10
10
"state",
11
11
"attempts",
12
12
"scheduledAt"
13
13
],
14
14
"properties": {
15
15
"id": {
16
16
"type": "integer"
17
17
},
18
18
"uri": {
19
19
"type": "string"
20
20
},
21
21
"state": {
22
22
"type": "string"
23
23
},
24
24
"action": {
25
25
"type": "string"
26
26
},
27
27
"attempts": {
28
28
"type": "integer"
29
29
},
30
30
"lastError": {
31
31
"type": "string"
32
32
},
33
33
"startedAt": {
34
34
"type": "string",
35
35
"format": "datetime"
36
36
},
37
37
"finishedAt": {
38
38
"type": "string",
39
39
"format": "datetime"
40
40
},
41
41
"scheduledAt": {
42
42
"type": "string",
43
43
"format": "datetime"
44
44
}
45
45
}
46
46
},
47
47
"tlsView": {
48
48
"type": "object",
49
49
"required": [
50
50
"status"
51
51
],
52
52
"properties": {
53
53
"status": {
54
54
"ref": "#tlsStatus",
55
55
"type": "ref"
56
56
},
57
57
"issuedAt": {
58
58
"type": "string",
59
59
"format": "datetime"
60
60
},
61
61
"expiresAt": {
62
62
"type": "string",
63
63
"format": "datetime"
64
64
},
65
65
"lastError": {
66
66
"type": "string"
67
67
}
68
68
}
69
69
},
70
70
"siteView": {
71
71
"type": "object",
72
72
"required": [
73
73
"domain",
74
74
"did",
75
75
"uri",
76
76
"cid",
77
77
"rev",
78
78
"activatedAt",
79
79
"sourceKind"
80
80
],
81
81
"properties": {
82
82
"cid": {
83
83
"type": "string",
84
84
"format": "cid"
85
85
},
86
86
"did": {
87
87
"type": "string",
88
88
"format": "did"
89
89
},
90
90
"rev": {
91
91
"type": "string"
92
92
},
93
93
"uri": {
94
94
"type": "string",
95
95
"format": "at-uri"
96
96
},
97
97
"tile": {
98
98
"ref": "#tileView",
99
99
"type": "ref"
100
100
},
101
101
"space": {
102
102
"type": "string",
103
103
"format": "at-uri",
104
104
"description": "Present for a site published from a space; attribution survives the plane."
105
105
},
106
106
"domain": {
107
107
"type": "string"
108
108
},
109
109
"sourceKind": {
110
110
"type": "string",
111
111
"knownValues": [
112
112
"inline",
113
113
"tile"
114
114
]
115
115
},
116
116
"activatedAt": {
117
117
"type": "string",
118
118
"format": "datetime"
119
119
}
120
120
}
121
121
},
122
122
"tileView": {
123
123
"type": "object",
124
124
"required": [
125
125
"uri",
126
126
"cid",
127
127
"did",
128
128
"name",
129
129
"state",
130
130
"indexedAt"
131
131
],
132
132
"properties": {
133
133
"cid": {
134
134
"type": "string",
135
135
"format": "cid"
136
136
},
137
137
"did": {
138
138
"type": "string",
139
139
"format": "did"
140
140
},
141
141
"uri": {
142
142
"type": "string",
143
143
"format": "at-uri"
144
144
},
145
145
"name": {
146
146
"type": "string"
147
147
},
148
148
"space": {
149
149
"type": "string",
150
150
"format": "at-uri",
151
151
"description": "Present for a space tile; never on the public surface."
152
152
},
153
153
"state": {
154
154
"type": "string",
155
155
"knownValues": [
156
156
"indexing",
157
157
"ready",
158
158
"incomplete",
159
159
"rejected",
160
160
"suspended",
161
161
"deleted"
162
162
]
163
163
},
164
+
"handle": {
165
+
"type": "string",
166
+
"format": "handle",
167
+
"description": "The author's handle, present only when it resolves back to did. Absent is normal and not an error: a handle that has just changed, or one whose DNS is unreachable, is reported as absent rather than as a claim, and clients show did instead."
168
+
},
164
169
"params": {
165
170
"type": "array",
166
171
"items": {
167
172
"ref": "space.highport.sites.tile#param",
168
173
"type": "ref"
169
174
}
170
175
},
171
176
"iconUrl": {
172
177
"type": "string",
173
178
"format": "uri",
174
179
"description": "https://highport.space/xrpc/space.highport.sites.getTileIcon?cid={cid}; absent if the tile has no icon."
175
180
},
176
181
"indexedAt": {
177
182
"type": "string",
178
183
"format": "datetime"
179
184
},
180
185
"latestCid": {
181
186
"type": "string",
182
187
"format": "cid",
183
188
"description": "The newest indexed version at this URI, when it differs from cid."
184
189
},
185
190
"entryCount": {
186
191
"type": "integer"
187
192
},
188
193
"totalBytes": {
189
194
"type": "integer"
190
195
},
191
196
"description": {
192
197
"type": "string"
193
198
}
194
199
}
195
200
},
196
201
"spaceView": {
197
202
"type": "object",
198
203
"required": [
199
204
"uri",
200
205
"authority",
201
206
"skey",
202
207
"syncState",
203
208
"connectedAt"
204
209
],
205
210
"properties": {
206
211
"uri": {
207
212
"type": "string",
208
213
"format": "at-uri"
209
214
},
210
215
"skey": {
211
216
"type": "string"
212
217
},
213
218
"policy": {
214
219
"type": "string",
215
220
"knownValues": [
216
221
"public",
217
222
"member-list",
218
223
"managing-app",
219
224
"unknown"
220
225
]
221
226
},
222
227
"headRev": {
223
228
"type": "string"
224
229
},
225
230
"appAccess": {
226
231
"type": "string",
227
232
"knownValues": [
228
233
"open",
229
234
"allow-list",
230
235
"unknown"
231
236
]
232
237
},
233
238
"authority": {
234
239
"type": "string",
235
240
"format": "did"
236
241
},
237
242
"syncState": {
238
243
"ref": "#spaceSyncState",
239
244
"type": "ref"
240
245
},
241
246
"tileCount": {
242
247
"type": "integer"
243
248
},
244
249
"connectedAt": {
245
250
"type": "string",
246
251
"format": "datetime"
247
252
},
248
253
"domainCount": {
249
254
"type": "integer"
250
255
},
251
256
"lastCheckedAt": {
252
257
"type": "string",
253
258
"format": "datetime"
254
259
},
255
260
"lastNotifiedAt": {
256
261
"type": "string",
257
262
"format": "datetime"
258
263
},
259
264
"accessExpiresAt": {
260
265
"type": "string",
261
266
"format": "datetime",
262
267
"description": "When bard's current space credential expires; absent when bard holds none."
263
268
},
264
269
"accessGrantedBy": {
265
270
"type": "string",
266
271
"format": "did"
267
272
},
268
273
"queuedNotifications": {
269
274
"type": "integer",
270
275
"description": "Receipts waiting for a credential."
271
276
},
272
277
"registrationExpiresAt": {
273
278
"type": "string",
274
279
"format": "datetime"
275
280
}
276
281
}
277
282
},
278
283
"tlsStatus": {
279
284
"type": "string",
280
285
"knownValues": [
281
286
"none",
282
287
"pending",
283
288
"issued",
284
289
"renewing",
285
290
"failed"
286
291
]
287
292
},
288
293
"domainView": {
289
294
"type": "object",
290
295
"required": [
291
296
"domain",
292
297
"did",
293
298
"status",
294
299
"createdAt"
295
300
],
296
301
"properties": {
297
302
"did": {
298
303
"type": "string",
299
304
"format": "did"
300
305
},
301
306
"tls": {
302
307
"ref": "#tlsStatus",
303
308
"type": "ref"
304
309
},
305
310
"space": {
306
311
"type": "string",
307
312
"format": "at-uri",
308
313
"description": "The space the domain is registered to; absent for a DID-registered domain. The serving record is the space authority's."
309
314
},
310
315
"domain": {
311
316
"type": "string"
312
317
},
313
318
"status": {
314
319
"ref": "#domainStatus",
315
320
"type": "ref"
316
321
},
317
322
"tileCid": {
318
323
"type": "string",
319
324
"format": "cid"
320
325
},
321
326
"tileUri": {
322
327
"type": "string",
323
328
"format": "at-uri"
324
329
},
325
330
"activeCid": {
326
331
"type": "string",
327
332
"format": "cid"
328
333
},
329
334
"activeRev": {
330
335
"type": "string"
331
336
},
332
337
"activeUri": {
333
338
"type": "string",
334
339
"format": "at-uri"
335
340
},
336
341
"createdAt": {
337
342
"type": "string",
338
343
"format": "datetime"
339
344
},
340
345
"entryCount": {
341
346
"type": "integer"
342
347
},
343
348
"pendingCid": {
344
349
"type": "string",
345
350
"format": "cid",
346
351
"description": "A validated, prepared record awaiting its commit, if any."
347
352
},
348
353
"sourceKind": {
349
354
"type": "string",
350
355
"knownValues": [
351
356
"inline",
352
357
"tile"
353
358
]
354
359
},
355
360
"totalBytes": {
356
361
"type": "integer"
357
362
},
358
363
"verifiedAt": {
359
364
"type": "string",
360
365
"format": "datetime"
361
366
},
362
367
"activatedAt": {
363
368
"type": "string",
364
369
"format": "datetime"
365
370
},
366
371
"pendingState": {
367
372
"type": "string",
368
373
"knownValues": [
369
374
"preparing",
370
375
"pending-publication"
371
376
]
372
377
}
373
378
}
374
379
},
375
380
"indexState": {
376
381
"type": "string",
377
382
"knownValues": [
378
383
"preparing",
379
384
"pending-publication",
380
385
"expired",
381
386
"queued",
382
387
"fetching",
383
388
"materializing",
384
389
"active",
385
390
"superseded",
386
391
"rejected",
387
392
"failed"
388
393
]
389
394
},
390
395
"spaceEvent": {
391
396
"type": "object",
392
397
"required": [
393
398
"seq",
394
399
"space",
395
400
"kind",
396
401
"at"
397
402
],
398
403
"properties": {
399
404
"at": {
400
405
"type": "string",
401
406
"format": "datetime"
402
407
},
403
408
"cid": {
404
409
"type": "string",
405
410
"format": "cid"
406
411
},
407
412
"seq": {
408
413
"type": "integer"
409
414
},
410
415
"kind": {
411
416
"type": "string",
412
417
"knownValues": [
413
418
"record.created",
414
419
"record.updated",
415
420
"record.deleted",
416
421
"site.activated",
417
422
"site.deactivated",
418
423
"tile.ready",
419
424
"tile.incomplete",
420
425
"tile.deleted",
421
426
"access.granted",
422
427
"access.expired",
423
428
"registration.renewed",
424
429
"registration.lapsed",
425
430
"app-not-allowed",
426
431
"space.deleted"
427
432
]
428
433
},
429
434
"actor": {
430
435
"type": "string",
431
436
"format": "did"
432
437
},
433
438
"space": {
434
439
"type": "string",
435
440
"format": "at-uri"
436
441
},
437
442
"subject": {
438
443
"type": "string"
439
444
}
440
445
}
441
446
},
442
447
"blobFailure": {
443
448
"type": "object",
444
449
"required": [
445
450
"cid",
446
451
"role",
447
452
"sourceDid",
448
453
"error"
449
454
],
450
455
"properties": {
451
456
"cid": {
452
457
"type": "string",
453
458
"format": "cid"
454
459
},
455
460
"role": {
456
461
"type": "string",
457
462
"knownValues": [
458
463
"manifest",
459
464
"tile",
460
465
"parameter",
461
466
"notFound"
462
467
]
463
468
},
464
469
"error": {
465
470
"type": "string",
466
471
"description": "BlobUnavailable, CidMismatch, FetchFailed."
467
472
},
468
473
"sourceDid": {
469
474
"type": "string",
470
475
"format": "did"
471
476
}
472
477
}
473
478
},
474
479
"domainEvent": {
475
480
"type": "object",
476
481
"required": [
477
482
"event",
478
483
"createdAt"
479
484
],
480
485
"properties": {
481
486
"actor": {
482
487
"type": "string"
483
488
},
484
489
"event": {
485
490
"type": "string"
486
491
},
487
492
"detail": {
488
493
"type": "unknown"
489
494
},
490
495
"createdAt": {
491
496
"type": "string",
492
497
"format": "datetime"
493
498
}
494
499
}
495
500
},
496
501
"missingBlob": {
497
502
"type": "object",
498
503
"required": [
499
504
"cid",
500
505
"role",
501
506
"sourceDid"
502
507
],
503
508
"properties": {
504
509
"cid": {
505
510
"type": "string",
506
511
"format": "cid"
507
512
},
508
513
"role": {
509
514
"type": "string",
510
515
"knownValues": [
511
516
"manifest",
512
517
"tile",
513
518
"parameter",
514
519
"notFound"
515
520
]
516
521
},
517
522
"sourceDid": {
518
523
"type": "string",
519
524
"format": "did"
520
525
}
521
526
}
522
527
},
523
528
"domainStatus": {
524
529
"type": "string",
525
530
"knownValues": [
526
531
"pending",
527
532
"verifying",
528
533
"verified",
529
534
"active",
530
535
"failed",
531
536
"suspended",
532
537
"released"
533
538
]
534
539
},
535
540
"denylistEntry": {
536
541
"type": "object",
537
542
"required": [
538
543
"subject",
539
544
"kind",
540
545
"createdAt"
541
546
],
542
547
"properties": {
543
548
"kind": {
544
549
"type": "string",
545
550
"knownValues": [
546
551
"domain",
547
552
"did",
548
553
"uri",
549
554
"cid",
550
555
"pattern",
551
556
"space"
552
557
]
553
558
},
554
559
"actor": {
555
560
"type": "string"
556
561
},
557
562
"reason": {
558
563
"type": "string"
559
564
},
560
565
"subject": {
561
566
"type": "string"
562
567
},
563
568
"createdAt": {
564
569
"type": "string",
565
570
"format": "datetime"
566
571
}
567
572
}
568
573
},
569
574
"dnsInstruction": {
570
575
"type": "object",
571
576
"required": [
572
577
"type",
573
578
"name",
574
579
"value"
575
580
],
576
581
"properties": {
577
582
"ttl": {
578
583
"type": "integer"
579
584
},
580
585
"name": {
581
586
"type": "string",
582
587
"description": "Fully-qualified record name."
583
588
},
584
589
"type": {
585
590
"type": "string",
586
591
"knownValues": [
587
592
"TXT",
588
593
"CNAME",
589
594
"ALIAS",
590
595
"ANAME",
591
596
"A",
592
597
"AAAA"
593
598
]
594
599
},
595
600
"value": {
596
601
"type": "string"
597
602
},
598
603
"purpose": {
599
604
"type": "string",
600
605
"knownValues": [
601
606
"ownership",
602
607
"certificate",
603
608
"traffic"
604
609
]
605
610
},
606
611
"required": {
607
612
"type": "boolean"
608
613
}
609
614
}
610
615
},
611
616
"spaceSyncState": {
612
617
"type": "string",
613
618
"knownValues": [
614
619
"connecting",
615
620
"syncing",
616
621
"synced",
617
622
"credential-expired",
618
623
"registration-lapsed",
619
624
"app-not-allowed",
620
625
"authority-unreachable",
621
626
"deleted",
622
627
"disconnected"
623
628
]
624
629
},
625
630
"validationError": {
626
631
"type": "object",
627
632
"required": [
628
633
"name",
629
634
"message"
630
635
],
631
636
"properties": {
632
637
"name": {
633
638
"type": "string",
634
639
"description": "A DESIGN.md ยง3.8 error name, e.g. DuplicatePath, RedirectTargetNotFound, ParameterTypeMismatch."
635
640
},
636
641
"path": {
637
642
"type": "string",
638
643
"description": "JSON Pointer into the record, when the error concerns one field or entry."
639
644
},
640
645
"message": {
641
646
"type": "string"
642
647
}
643
648
}
644
649
},
645
650
"verificationView": {
646
651
"type": "object",
647
652
"required": [
648
653
"status",
649
654
"checks"
650
655
],
651
656
"properties": {
652
657
"checks": {
653
658
"type": "array",
654
659
"items": {
655
660
"ref": "#verificationCheck",
656
661
"type": "ref"
657
662
}
658
663
},
659
664
"status": {
660
665
"ref": "#domainStatus",
661
666
"type": "ref"
662
667
},
663
668
"lastCheckedAt": {
664
669
"type": "string",
665
670
"format": "datetime"
666
671
}
667
672
}
668
673
},
669
674
"preparationStatus": {
670
675
"type": "object",
671
676
"required": [
672
677
"state",
673
678
"cid",
674
679
"fetched",
675
680
"pending",
676
681
"failed"
677
682
],
678
683
"properties": {
679
684
"cid": {
680
685
"type": "string",
681
686
"format": "cid"
682
687
},
683
688
"state": {
684
689
"type": "string",
685
690
"knownValues": [
686
691
"preparing",
687
692
"pending-publication",
688
693
"expired"
689
694
]
690
695
},
691
696
"failed": {
692
697
"type": "array",
693
698
"items": {
694
699
"ref": "#blobFailure",
695
700
"type": "ref"
696
701
}
697
702
},
698
703
"fetched": {
699
704
"type": "integer"
700
705
},
701
706
"pending": {
702
707
"type": "integer"
703
708
},
704
709
"expiresAt": {
705
710
"type": "string",
706
711
"format": "datetime"
707
712
}
708
713
}
709
714
},
710
715
"verificationCheck": {
711
716
"type": "object",
712
717
"required": [
713
718
"name",
714
719
"passed",
715
720
"checkedAt"
716
721
],
717
722
"properties": {
718
723
"name": {
719
724
"type": "string",
720
725
"knownValues": [
721
726
"ownership",
722
727
"traffic",
723
728
"conflict"
724
729
]
725
730
},
726
731
"detail": {
727
732
"type": "string"
728
733
},
729
734
"passed": {
730
735
"type": "boolean"
731
736
},
732
737
"checkedAt": {
733
738
"type": "string",
734
739
"format": "datetime"
735
740
}
736
741
}
737
742
}
738
743
},
739
744
"$type": "com.atproto.lexicon.schema",
740
745
"lexicon": 1
741
746
}