space.highport.defs
Schema Diff
+65 -1
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 21 non-breaking changes.
Breaking Changes (2)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#delegationView", src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.certMode", kind: "prop", name: Some("certMode") }
- ConstraintTightened ConstraintTightened { vertex_id: "space.highport.defs#verificationCheck.name", sort: "knownValues", old_value: "[\"ownership\",\"traffic\",\"conflict\"]", new_value: "[\"ownership\",\"traffic\",\"conflict\",\"certificate\"]" }
Non-Breaking Changes (21)
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationState" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.certMode" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.challengeTarget" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.grantedAt" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.maxNames" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.probeHostname" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.state" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#delegationView.wildcardObservedAt" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#domainView.delegatedBase" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#domainView.delegation" }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.challengeTarget", kind: "prop", name: Some("challengeTarget") }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.grantedAt", kind: "prop", name: Some("grantedAt") }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.maxNames", kind: "prop", name: Some("maxNames") }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.probeHostname", kind: "prop", name: Some("probeHostname") }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.state", kind: "prop", name: Some("state") }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.wildcardObservedAt", kind: "prop", name: Some("wildcardObservedAt") }
- AddedEdge AddedEdge { src: "space.highport.defs#delegationView.state", tgt: "space.highport.defs#delegationState", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "space.highport.defs#domainView", tgt: "space.highport.defs#domainView.delegatedBase", kind: "prop", name: Some("delegatedBase") }
- AddedEdge AddedEdge { src: "space.highport.defs#domainView", tgt: "space.highport.defs#domainView.delegation", kind: "prop", name: Some("delegation") }
- AddedEdge AddedEdge { src: "space.highport.defs#domainView.delegation", tgt: "space.highport.defs#delegationView", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "space.highport.defs#delegationState" }AddedVertex { vertex_id: "space.highport.defs#delegationView" }AddedVertex { vertex_id: "space.highport.defs#delegationView.certMode" }AddedVertex { vertex_id: "space.highport.defs#delegationView.challengeTarget" }AddedVertex { vertex_id: "space.highport.defs#delegationView.grantedAt" }AddedVertex { vertex_id: "space.highport.defs#delegationView.maxNames" }AddedVertex { vertex_id: "space.highport.defs#delegationView.probeHostname" }AddedVertex { vertex_id: "space.highport.defs#delegationView.state" }AddedVertex { vertex_id: "space.highport.defs#delegationView.wildcardObservedAt" }AddedVertex { vertex_id: "space.highport.defs#domainView.delegatedBase" }AddedVertex { vertex_id: "space.highport.defs#domainView.delegation" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "space.highport.defs#verificationCheck.name", sort: "knownValues", old_value: "[\"ownership\",\"traffic\",\"conflict\"]", new_value: "[\"ownership\",\"traffic\",\"conflict\",\"certificate\"]" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "space.highport.defs#delegationView", src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.certMode", kind: "prop", name: Some("certMode") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.challengeTarget", kind: "prop", name: Some("challengeTarget") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.grantedAt", kind: "prop", name: Some("grantedAt") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.maxNames", kind: "prop", name: Some("maxNames") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.probeHostname", kind: "prop", name: Some("probeHostname") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.state", kind: "prop", name: Some("state") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.wildcardObservedAt", kind: "prop", name: Some("wildcardObservedAt") }
- Non-breaking: AddedEdge { src: "space.highport.defs#delegationView.state", tgt: "space.highport.defs#delegationState", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "space.highport.defs#domainView", tgt: "space.highport.defs#domainView.delegatedBase", kind: "prop", name: Some("delegatedBase") }
- Non-breaking: AddedEdge { src: "space.highport.defs#domainView", tgt: "space.highport.defs#domainView.delegation", kind: "prop", name: Some("delegation") }
- Non-breaking: AddedEdge { src: "space.highport.defs#domainView.delegation", tgt: "space.highport.defs#delegationView", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"blobFailure": {
5
5
"properties": {
6
6
"cid": {
7
7
"format": "cid",
8
8
"type": "string"
9
9
},
10
10
"error": {
11
11
"description": "BlobUnavailable, CidMismatch, FetchFailed.",
12
12
"type": "string"
13
13
},
14
14
"role": {
15
15
"knownValues": [
16
16
"manifest",
17
17
"tile",
18
18
"parameter",
19
19
"notFound"
20
20
],
21
21
"type": "string"
22
22
},
23
23
"sourceDid": {
24
24
"format": "did",
25
25
"type": "string"
26
26
}
27
27
},
28
28
"required": [
29
29
"cid",
30
30
"role",
31
31
"sourceDid",
32
32
"error"
33
33
],
34
34
"type": "object"
35
35
},
36
+
"delegationState": {
37
+
"description": "Where a base's delegation stands. probing means the wildcard has not yet been proven to route; enabled means it has; routing-lapsed means a proven wildcard stopped routing past its grace, and the names under the base are suspended until it routes again.",
38
+
"knownValues": [
39
+
"probing",
40
+
"enabled",
41
+
"routing-lapsed"
42
+
],
43
+
"type": "string"
44
+
},
45
+
"delegationView": {
46
+
"description": "What a base's owner has enabled and granted. Each field but certMode is absent where the base has no such fact.",
47
+
"properties": {
48
+
"certMode": {
49
+
"description": "How names under the base obtain certificates. Every base starts per-name.",
50
+
"knownValues": [
51
+
"per-name",
52
+
"wildcard"
53
+
],
54
+
"type": "string"
55
+
},
56
+
"challengeTarget": {
57
+
"description": "The name the base's _acme-challenge CNAME must point at, exactly as the certificate issuer writes to it. Present only while a wildcard grant is live.",
58
+
"type": "string"
59
+
},
60
+
"grantedAt": {
61
+
"description": "When the live wildcard grant was made.",
62
+
"format": "datetime",
63
+
"type": "string"
64
+
},
65
+
"maxNames": {
66
+
"description": "The most names the base may hold in reservation.",
67
+
"type": "integer"
68
+
},
69
+
"probeHostname": {
70
+
"description": "The random name under the base through which the wildcard is proven to route.",
71
+
"maxLength": 253,
72
+
"type": "string"
73
+
},
74
+
"state": {
75
+
"description": "Absent on a base that has not enabled delegation.",
76
+
"ref": "#delegationState",
77
+
"type": "ref"
78
+
},
79
+
"wildcardObservedAt": {
80
+
"description": "When the base's wildcard certificate was first seen in certificate storage.",
81
+
"format": "datetime",
82
+
"type": "string"
83
+
}
84
+
},
85
+
"required": [
86
+
"certMode"
87
+
],
88
+
"type": "object"
89
+
},
36
90
"denylistEntry": {
37
91
"properties": {
38
92
"actor": {
39
93
"type": "string"
40
94
},
41
95
"createdAt": {
42
96
"format": "datetime",
43
97
"type": "string"
44
98
},
45
99
"kind": {
46
100
"knownValues": [
47
101
"domain",
48
102
"did",
49
103
"uri",
50
104
"cid",
51
105
"pattern",
52
106
"space"
53
107
],
54
108
"type": "string"
55
109
},
56
110
"reason": {
57
111
"type": "string"
58
112
},
59
113
"subject": {
60
114
"type": "string"
61
115
}
62
116
},
63
117
"required": [
64
118
"subject",
65
119
"kind",
66
120
"createdAt"
67
121
],
68
122
"type": "object"
69
123
},
70
124
"dnsInstruction": {
71
125
"properties": {
72
126
"name": {
73
127
"description": "Fully-qualified record name.",
74
128
"type": "string"
75
129
},
76
130
"purpose": {
77
131
"knownValues": [
78
132
"ownership",
79
133
"certificate",
80
134
"traffic"
81
135
],
82
136
"type": "string"
83
137
},
84
138
"required": {
85
139
"type": "boolean"
86
140
},
87
141
"ttl": {
88
142
"type": "integer"
89
143
},
90
144
"type": {
91
145
"knownValues": [
92
146
"TXT",
93
147
"CNAME",
94
148
"ALIAS",
95
149
"ANAME",
96
150
"A",
97
151
"AAAA"
98
152
],
99
153
"type": "string"
100
154
},
101
155
"value": {
102
156
"type": "string"
103
157
}
104
158
},
105
159
"required": [
106
160
"type",
107
161
"name",
108
162
"value"
109
163
],
110
164
"type": "object"
111
165
},
112
166
"domainEvent": {
113
167
"properties": {
114
168
"actor": {
115
169
"type": "string"
116
170
},
117
171
"createdAt": {
118
172
"format": "datetime",
119
173
"type": "string"
120
174
},
121
175
"detail": {
122
176
"type": "unknown"
123
177
},
124
178
"event": {
125
179
"type": "string"
126
180
}
127
181
},
128
182
"required": [
129
183
"event",
130
184
"createdAt"
131
185
],
132
186
"type": "object"
133
187
},
134
188
"domainStatus": {
135
189
"knownValues": [
136
190
"pending",
137
191
"verifying",
138
192
"verified",
139
193
"active",
140
194
"failed",
141
195
"suspended",
142
196
"released"
143
197
],
144
198
"type": "string"
145
199
},
146
200
"domainView": {
147
201
"properties": {
148
202
"activatedAt": {
149
203
"format": "datetime",
150
204
"type": "string"
151
205
},
152
206
"activeCid": {
153
207
"format": "cid",
154
208
"type": "string"
155
209
},
156
210
"activeRev": {
157
211
"type": "string"
158
212
},
159
213
"activeUri": {
160
214
"format": "at-uri",
161
215
"type": "string"
162
216
},
163
217
"createdAt": {
164
218
"format": "datetime",
165
219
"type": "string"
166
220
},
221
+
"delegatedBase": {
222
+
"description": "On a name reserved under a delegation base: the base whose owner granted it. did is then the identity the name was reserved for, not the base's owner.",
223
+
"type": "string"
224
+
},
225
+
"delegation": {
226
+
"description": "On a base: what its owner has enabled and granted. Absent on a domain that is not a base.",
227
+
"ref": "#delegationView",
228
+
"type": "ref"
229
+
},
167
230
"did": {
168
231
"format": "did",
169
232
"type": "string"
170
233
},
171
234
"domain": {
172
235
"type": "string"
173
236
},
174
237
"entryCount": {
175
238
"type": "integer"
176
239
},
177
240
"pendingCid": {
178
241
"description": "A validated, prepared record awaiting its commit, if any.",
179
242
"format": "cid",
180
243
"type": "string"
181
244
},
182
245
"pendingState": {
183
246
"knownValues": [
184
247
"preparing",
185
248
"pending-publication"
186
249
],
187
250
"type": "string"
188
251
},
189
252
"sourceKind": {
190
253
"knownValues": [
191
254
"inline",
192
255
"tile"
193
256
],
194
257
"type": "string"
195
258
},
196
259
"space": {
197
260
"description": "The space the domain is registered to; absent for a DID-registered domain. The serving record is the space authority's.",
198
261
"format": "at-uri",
199
262
"type": "string"
200
263
},
201
264
"status": {
202
265
"ref": "#domainStatus",
203
266
"type": "ref"
204
267
},
205
268
"tileCid": {
206
269
"format": "cid",
207
270
"type": "string"
208
271
},
209
272
"tileUri": {
210
273
"format": "at-uri",
211
274
"type": "string"
212
275
},
213
276
"tls": {
214
277
"ref": "#tlsStatus",
215
278
"type": "ref"
216
279
},
217
280
"totalBytes": {
218
281
"type": "integer"
219
282
},
220
283
"verifiedAt": {
221
284
"format": "datetime",
222
285
"type": "string"
223
286
}
224
287
},
225
288
"required": [
226
289
"domain",
227
290
"did",
228
291
"status",
229
292
"createdAt"
230
293
],
231
294
"type": "object"
232
295
},
233
296
"edgeReachStatus": {
234
297
"description": "Whether bard's edge routes a serving hostname to this deployment. unknown means no probe has been made and must never be read as a fault; routed means the probe reached this deployment's bard-origin; foreign means something else answered for the hostname; unreachable means nothing answered at all; other-deployment means a bard origin belonging to a different deployment answered; unproven means the answer looked like this deployment's but could not answer the reachability challenge, so something may be imitating it.",
235
298
"knownValues": [
236
299
"unknown",
237
300
"routed",
238
301
"foreign",
239
302
"unreachable",
240
303
"other-deployment",
241
304
"unproven"
242
305
],
243
306
"type": "string"
244
307
},
245
308
"edgeReachability": {
246
309
"description": "What the deployment's own edge answered for a hostname, measured over the network rather than read from edge configuration. A site can be indexed and activated while the edge has nowhere to send its hostname, and this is the only field that says so.",
247
310
"properties": {
248
311
"checkedAt": {
249
312
"description": "When the probe was made. Absent when status is unknown.",
250
313
"format": "datetime",
251
314
"type": "string"
252
315
},
253
316
"detail": {
254
317
"description": "What answered, for a person: a status line, or a transport error. Diagnostic only; nothing branches on it.",
255
318
"type": "string"
256
319
},
257
320
"domain": {
258
321
"description": "The hostname that was probed, so a reader is told which name is not arriving.",
259
322
"maxLength": 253,
260
323
"type": "string"
261
324
},
262
325
"status": {
263
326
"ref": "#edgeReachStatus",
264
327
"type": "ref"
265
328
}
266
329
},
267
330
"required": [
268
331
"status",
269
332
"domain"
270
333
],
271
334
"type": "object"
272
335
},
273
336
"indexState": {
274
337
"knownValues": [
275
338
"preparing",
276
339
"pending-publication",
277
340
"expired",
278
341
"queued",
279
342
"fetching",
280
343
"materializing",
281
344
"active",
282
345
"superseded",
283
346
"rejected",
284
347
"failed"
285
348
],
286
349
"type": "string"
287
350
},
288
351
"jobView": {
289
352
"properties": {
290
353
"action": {
291
354
"type": "string"
292
355
},
293
356
"attempts": {
294
357
"type": "integer"
295
358
},
296
359
"finishedAt": {
297
360
"format": "datetime",
298
361
"type": "string"
299
362
},
300
363
"id": {
301
364
"type": "integer"
302
365
},
303
366
"lastError": {
304
367
"type": "string"
305
368
},
306
369
"scheduledAt": {
307
370
"format": "datetime",
308
371
"type": "string"
309
372
},
310
373
"startedAt": {
311
374
"format": "datetime",
312
375
"type": "string"
313
376
},
314
377
"state": {
315
378
"type": "string"
316
379
},
317
380
"uri": {
318
381
"type": "string"
319
382
}
320
383
},
321
384
"required": [
322
385
"id",
323
386
"uri",
324
387
"action",
325
388
"state",
326
389
"attempts",
327
390
"scheduledAt"
328
391
],
329
392
"type": "object"
330
393
},
331
394
"malwareFinding": {
332
395
"description": "One malware detection. Written before anything is denied or deleted, because the quarantine destroys the sample and nothing after that can re-derive why.",
333
396
"properties": {
334
397
"cid": {
335
398
"description": "The content address. `-` for a detection at upload, where nothing was stored.",
336
399
"type": "string"
337
400
},
338
401
"class": {
339
402
"description": "`unwanted` is a PUA match and stops short of the publishing identity under the default policy.",
340
403
"knownValues": [
341
404
"malware",
342
405
"unwanted"
343
406
],
344
407
"type": "string"
345
408
},
346
409
"did": {
347
410
"description": "The repository the bytes were fetched from โ for a tile resource the tile's author, not the site owner. Absent for content bard authored.",
348
411
"format": "did",
349
412
"type": "string"
350
413
},
351
414
"domain": {
352
415
"description": "The hostname it would have served at.",
353
416
"type": "string"
354
417
},
355
418
"foundAt": {
356
419
"format": "datetime",
357
420
"type": "string"
358
421
},
359
422
"id": {
360
423
"description": "The finding's row id, which the denylist entry's reason names.",
361
424
"type": "integer"
362
425
},
363
426
"path": {
364
427
"description": "The manifest key the bytes were mapped at โ the field that answers which file. Absent where there is no key: the notFound resource, an upload refused before any record referenced it, and a rescan, which starts from a CID.",
365
428
"type": "string"
366
429
},
367
430
"quarantinedAt": {
368
431
"description": "When the response finished. Absent means it has not: the content is denied and may still be served.",
369
432
"format": "datetime",
370
433
"type": "string"
371
434
},
372
435
"signature": {
373
436
"description": "The signature name, verbatim from the engine.",
374
437
"type": "string"
375
438
},
376
439
"source": {
377
440
"description": "Where it was found. `rescan` means the content was clean when it arrived and a signature has caught up with it; `admin` means an operator asked about this CID rather than the sweep reaching it.",
378
441
"knownValues": [
379
442
"fetch",
380
443
"upload",
381
444
"rescan",
382
445
"admin"
383
446
],
384
447
"type": "string"
385
448
},
386
449
"uri": {
387
450
"description": "The record that referenced it.",
388
451
"format": "at-uri",
389
452
"type": "string"
390
453
}
391
454
},
392
455
"required": [
393
456
"id",
394
457
"cid",
395
458
"signature",
396
459
"class",
397
460
"source",
398
461
"foundAt"
399
462
],
400
463
"type": "object"
401
464
},
402
465
"missingBlob": {
403
466
"properties": {
404
467
"cid": {
405
468
"format": "cid",
406
469
"type": "string"
407
470
},
408
471
"role": {
409
472
"knownValues": [
410
473
"manifest",
411
474
"tile",
412
475
"parameter",
413
476
"notFound"
414
477
],
415
478
"type": "string"
416
479
},
417
480
"sourceDid": {
418
481
"format": "did",
419
482
"type": "string"
420
483
}
421
484
},
422
485
"required": [
423
486
"cid",
424
487
"role",
425
488
"sourceDid"
426
489
],
427
490
"type": "object"
428
491
},
429
492
"preparationStatus": {
430
493
"properties": {
431
494
"cid": {
432
495
"format": "cid",
433
496
"type": "string"
434
497
},
435
498
"expiresAt": {
436
499
"format": "datetime",
437
500
"type": "string"
438
501
},
439
502
"failed": {
440
503
"items": {
441
504
"ref": "#blobFailure",
442
505
"type": "ref"
443
506
},
444
507
"type": "array"
445
508
},
446
509
"fetched": {
447
510
"type": "integer"
448
511
},
449
512
"pending": {
450
513
"type": "integer"
451
514
},
452
515
"state": {
453
516
"knownValues": [
454
517
"preparing",
455
518
"pending-publication",
456
519
"expired"
457
520
],
458
521
"type": "string"
459
522
}
460
523
},
461
524
"required": [
462
525
"state",
463
526
"cid",
464
527
"fetched",
465
528
"pending",
466
529
"failed"
467
530
],
468
531
"type": "object"
469
532
},
470
533
"siteView": {
471
534
"properties": {
472
535
"activatedAt": {
473
536
"format": "datetime",
474
537
"type": "string"
475
538
},
476
539
"cid": {
477
540
"format": "cid",
478
541
"type": "string"
479
542
},
480
543
"did": {
481
544
"format": "did",
482
545
"type": "string"
483
546
},
484
547
"domain": {
485
548
"type": "string"
486
549
},
487
550
"rev": {
488
551
"type": "string"
489
552
},
490
553
"sourceKind": {
491
554
"knownValues": [
492
555
"inline",
493
556
"tile"
494
557
],
495
558
"type": "string"
496
559
},
497
560
"space": {
498
561
"description": "Present for a site published from a space; attribution survives the plane.",
499
562
"format": "at-uri",
500
563
"type": "string"
501
564
},
502
565
"tile": {
503
566
"ref": "#tileView",
504
567
"type": "ref"
505
568
},
506
569
"uri": {
507
570
"format": "at-uri",
508
571
"type": "string"
509
572
}
510
573
},
511
574
"required": [
512
575
"domain",
513
576
"did",
514
577
"uri",
515
578
"cid",
516
579
"rev",
517
580
"activatedAt",
518
581
"sourceKind"
519
582
],
520
583
"type": "object"
521
584
},
522
585
"spaceEvent": {
523
586
"properties": {
524
587
"actor": {
525
588
"format": "did",
526
589
"type": "string"
527
590
},
528
591
"at": {
529
592
"format": "datetime",
530
593
"type": "string"
531
594
},
532
595
"cid": {
533
596
"format": "cid",
534
597
"type": "string"
535
598
},
536
599
"kind": {
537
600
"knownValues": [
538
601
"record.created",
539
602
"record.updated",
540
603
"record.deleted",
541
604
"site.activated",
542
605
"site.deactivated",
543
606
"tile.ready",
544
607
"tile.incomplete",
545
608
"tile.deleted",
546
609
"access.granted",
547
610
"access.expired",
548
611
"registration.renewed",
549
612
"registration.lapsed",
550
613
"app-not-allowed",
551
614
"space.deleted"
552
615
],
553
616
"type": "string"
554
617
},
555
618
"seq": {
556
619
"type": "integer"
557
620
},
558
621
"space": {
559
622
"format": "at-uri",
560
623
"type": "string"
561
624
},
562
625
"subject": {
563
626
"type": "string"
564
627
}
565
628
},
566
629
"required": [
567
630
"seq",
568
631
"space",
569
632
"kind",
570
633
"at"
571
634
],
572
635
"type": "object"
573
636
},
574
637
"spaceSyncState": {
575
638
"knownValues": [
576
639
"connecting",
577
640
"syncing",
578
641
"synced",
579
642
"credential-expired",
580
643
"registration-lapsed",
581
644
"app-not-allowed",
582
645
"authority-unreachable",
583
646
"deleted",
584
647
"disconnected"
585
648
],
586
649
"type": "string"
587
650
},
588
651
"spaceView": {
589
652
"properties": {
590
653
"accessExpiresAt": {
591
654
"description": "When bard's current space credential expires; absent when bard holds none.",
592
655
"format": "datetime",
593
656
"type": "string"
594
657
},
595
658
"accessGrantedBy": {
596
659
"format": "did",
597
660
"type": "string"
598
661
},
599
662
"appAccess": {
600
663
"knownValues": [
601
664
"open",
602
665
"allow-list",
603
666
"unknown"
604
667
],
605
668
"type": "string"
606
669
},
607
670
"authority": {
608
671
"format": "did",
609
672
"type": "string"
610
673
},
611
674
"connectedAt": {
612
675
"format": "datetime",
613
676
"type": "string"
614
677
},
615
678
"domainCount": {
616
679
"type": "integer"
617
680
},
618
681
"headRev": {
619
682
"type": "string"
620
683
},
621
684
"lastCheckedAt": {
622
685
"format": "datetime",
623
686
"type": "string"
624
687
},
625
688
"lastNotifiedAt": {
626
689
"format": "datetime",
627
690
"type": "string"
628
691
},
629
692
"policy": {
630
693
"knownValues": [
631
694
"public",
632
695
"member-list",
633
696
"managing-app",
634
697
"unknown"
635
698
],
636
699
"type": "string"
637
700
},
638
701
"queuedNotifications": {
639
702
"description": "Receipts waiting for a credential.",
640
703
"type": "integer"
641
704
},
642
705
"registrationExpiresAt": {
643
706
"format": "datetime",
644
707
"type": "string"
645
708
},
646
709
"skey": {
647
710
"type": "string"
648
711
},
649
712
"syncState": {
650
713
"ref": "#spaceSyncState",
651
714
"type": "ref"
652
715
},
653
716
"tileCount": {
654
717
"type": "integer"
655
718
},
656
719
"uri": {
657
720
"format": "at-uri",
658
721
"type": "string"
659
722
}
660
723
},
661
724
"required": [
662
725
"uri",
663
726
"authority",
664
727
"skey",
665
728
"syncState",
666
729
"connectedAt"
667
730
],
668
731
"type": "object"
669
732
},
670
733
"tileView": {
671
734
"properties": {
672
735
"cid": {
673
736
"format": "cid",
674
737
"type": "string"
675
738
},
676
739
"description": {
677
740
"type": "string"
678
741
},
679
742
"did": {
680
743
"format": "did",
681
744
"type": "string"
682
745
},
683
746
"entryCount": {
684
747
"type": "integer"
685
748
},
686
749
"handle": {
687
750
"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.",
688
751
"format": "handle",
689
752
"type": "string"
690
753
},
691
754
"iconUrl": {
692
755
"description": "https://highport.space/xrpc/space.highport.sites.getTileIcon?cid={cid}; absent if the tile has no icon.",
693
756
"format": "uri",
694
757
"type": "string"
695
758
},
696
759
"indexedAt": {
697
760
"format": "datetime",
698
761
"type": "string"
699
762
},
700
763
"latestCid": {
701
764
"description": "The newest indexed version at this URI, when it differs from cid.",
702
765
"format": "cid",
703
766
"type": "string"
704
767
},
705
768
"name": {
706
769
"type": "string"
707
770
},
708
771
"params": {
709
772
"items": {
710
773
"ref": "space.highport.sites.tile#param",
711
774
"type": "ref"
712
775
},
713
776
"type": "array"
714
777
},
715
778
"space": {
716
779
"description": "Present for a space tile; never on the public surface.",
717
780
"format": "at-uri",
718
781
"type": "string"
719
782
},
720
783
"state": {
721
784
"knownValues": [
722
785
"indexing",
723
786
"ready",
724
787
"incomplete",
725
788
"rejected",
726
789
"suspended",
727
790
"deleted"
728
791
],
729
792
"type": "string"
730
793
},
731
794
"totalBytes": {
732
795
"type": "integer"
733
796
},
734
797
"uri": {
735
798
"format": "at-uri",
736
799
"type": "string"
737
800
}
738
801
},
739
802
"required": [
740
803
"uri",
741
804
"cid",
742
805
"did",
743
806
"name",
744
807
"state",
745
808
"indexedAt"
746
809
],
747
810
"type": "object"
748
811
},
749
812
"tlsStatus": {
750
813
"knownValues": [
751
814
"none",
752
815
"pending",
753
816
"issued",
754
817
"renewing",
755
818
"failed"
756
819
],
757
820
"type": "string"
758
821
},
759
822
"tlsView": {
760
823
"properties": {
761
824
"expiresAt": {
762
825
"format": "datetime",
763
826
"type": "string"
764
827
},
765
828
"issuedAt": {
766
829
"format": "datetime",
767
830
"type": "string"
768
831
},
769
832
"lastError": {
770
833
"type": "string"
771
834
},
772
835
"status": {
773
836
"ref": "#tlsStatus",
774
837
"type": "ref"
775
838
}
776
839
},
777
840
"required": [
778
841
"status"
779
842
],
780
843
"type": "object"
781
844
},
782
845
"validationError": {
783
846
"properties": {
784
847
"message": {
785
848
"type": "string"
786
849
},
787
850
"name": {
788
851
"description": "A DESIGN.md ยง3.8 error name, e.g. DuplicatePath, RedirectTargetNotFound, ParameterTypeMismatch.",
789
852
"type": "string"
790
853
},
791
854
"path": {
792
855
"description": "JSON Pointer into the record, when the error concerns one field or entry.",
793
856
"type": "string"
794
857
}
795
858
},
796
859
"required": [
797
860
"name",
798
861
"message"
799
862
],
800
863
"type": "object"
801
864
},
802
865
"verificationCheck": {
803
866
"properties": {
804
867
"checkedAt": {
805
868
"format": "datetime",
806
869
"type": "string"
807
870
},
808
871
"detail": {
809
872
"type": "string"
810
873
},
811
874
"name": {
812
875
"knownValues": [
813
876
"ownership",
814
877
"traffic",
815
-
"conflict"
878
+
"conflict",
879
+
"certificate"
816
880
],
817
881
"type": "string"
818
882
},
819
883
"passed": {
820
884
"type": "boolean"
821
885
}
822
886
},
823
887
"required": [
824
888
"name",
825
889
"passed",
826
890
"checkedAt"
827
891
],
828
892
"type": "object"
829
893
},
830
894
"verificationView": {
831
895
"properties": {
832
896
"checks": {
833
897
"items": {
834
898
"ref": "#verificationCheck",
835
899
"type": "ref"
836
900
},
837
901
"type": "array"
838
902
},
839
903
"lastCheckedAt": {
840
904
"format": "datetime",
841
905
"type": "string"
842
906
},
843
907
"status": {
844
908
"ref": "#domainStatus",
845
909
"type": "ref"
846
910
}
847
911
},
848
912
"required": [
849
913
"status",
850
914
"checks"
851
915
],
852
916
"type": "object"
853
917
}
854
918
},
855
919
"id": "space.highport.defs",
856
920
"lexicon": 1
857
921
}