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