space.highport.defs

lexicons.highport.space

Schema Diff

+65 -1

From

CID
bafyreibscqyuzch...
Indexed At
2026-09-12 20:59 UTC
View this version

To

CID
bafyreigzwpq2ewe...
Indexed At
2026-09-15 17:46 UTC
View this version

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
  "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 164
        "handle": {
165 165
          "type": "string",
166 166
          "format": "handle",
167 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 168
        },
169 169
        "params": {
170 170
          "type": "array",
171 171
          "items": {
172 172
            "ref": "space.highport.sites.tile#param",
173 173
            "type": "ref"
174 174
          }
175 175
        },
176 176
        "iconUrl": {
177 177
          "type": "string",
178 178
          "format": "uri",
179 179
          "description": "https://highport.space/xrpc/space.highport.sites.getTileIcon?cid={cid}; absent if the tile has no icon."
180 180
        },
181 181
        "indexedAt": {
182 182
          "type": "string",
183 183
          "format": "datetime"
184 184
        },
185 185
        "latestCid": {
186 186
          "type": "string",
187 187
          "format": "cid",
188 188
          "description": "The newest indexed version at this URI, when it differs from cid."
189 189
        },
190 190
        "entryCount": {
191 191
          "type": "integer"
192 192
        },
193 193
        "totalBytes": {
194 194
          "type": "integer"
195 195
        },
196 196
        "description": {
197 197
          "type": "string"
198 198
        }
199 199
      }
200 200
    },
201 201
    "spaceView": {
202 202
      "type": "object",
203 203
      "required": [
204 204
        "uri",
205 205
        "authority",
206 206
        "skey",
207 207
        "syncState",
208 208
        "connectedAt"
209 209
      ],
210 210
      "properties": {
211 211
        "uri": {
212 212
          "type": "string",
213 213
          "format": "at-uri"
214 214
        },
215 215
        "skey": {
216 216
          "type": "string"
217 217
        },
218 218
        "policy": {
219 219
          "type": "string",
220 220
          "knownValues": [
221 221
            "public",
222 222
            "member-list",
223 223
            "managing-app",
224 224
            "unknown"
225 225
          ]
226 226
        },
227 227
        "headRev": {
228 228
          "type": "string"
229 229
        },
230 230
        "appAccess": {
231 231
          "type": "string",
232 232
          "knownValues": [
233 233
            "open",
234 234
            "allow-list",
235 235
            "unknown"
236 236
          ]
237 237
        },
238 238
        "authority": {
239 239
          "type": "string",
240 240
          "format": "did"
241 241
        },
242 242
        "syncState": {
243 243
          "ref": "#spaceSyncState",
244 244
          "type": "ref"
245 245
        },
246 246
        "tileCount": {
247 247
          "type": "integer"
248 248
        },
249 249
        "connectedAt": {
250 250
          "type": "string",
251 251
          "format": "datetime"
252 252
        },
253 253
        "domainCount": {
254 254
          "type": "integer"
255 255
        },
256 256
        "lastCheckedAt": {
257 257
          "type": "string",
258 258
          "format": "datetime"
259 259
        },
260 260
        "lastNotifiedAt": {
261 261
          "type": "string",
262 262
          "format": "datetime"
263 263
        },
264 264
        "accessExpiresAt": {
265 265
          "type": "string",
266 266
          "format": "datetime",
267 267
          "description": "When bard's current space credential expires; absent when bard holds none."
268 268
        },
269 269
        "accessGrantedBy": {
270 270
          "type": "string",
271 271
          "format": "did"
272 272
        },
273 273
        "queuedNotifications": {
274 274
          "type": "integer",
275 275
          "description": "Receipts waiting for a credential."
276 276
        },
277 277
        "registrationExpiresAt": {
278 278
          "type": "string",
279 279
          "format": "datetime"
280 280
        }
281 281
      }
282 282
    },
283 283
    "tlsStatus": {
284 284
      "type": "string",
285 285
      "knownValues": [
286 286
        "none",
287 287
        "pending",
288 288
        "issued",
289 289
        "renewing",
290 290
        "failed"
291 291
      ]
292 292
    },
293 293
    "domainView": {
294 294
      "type": "object",
295 295
      "required": [
296 296
        "domain",
297 297
        "did",
298 298
        "status",
299 299
        "createdAt"
300 300
      ],
301 301
      "properties": {
302 302
        "did": {
303 303
          "type": "string",
304 304
          "format": "did"
305 305
        },
306 306
        "tls": {
307 307
          "ref": "#tlsStatus",
308 308
          "type": "ref"
309 309
        },
310 310
        "space": {
311 311
          "type": "string",
312 312
          "format": "at-uri",
313 313
          "description": "The space the domain is registered to; absent for a DID-registered domain. The serving record is the space authority's."
314 314
        },
315 315
        "domain": {
316 316
          "type": "string"
317 317
        },
318 318
        "status": {
319 319
          "ref": "#domainStatus",
320 320
          "type": "ref"
321 321
        },
322 322
        "tileCid": {
323 323
          "type": "string",
324 324
          "format": "cid"
325 325
        },
326 326
        "tileUri": {
327 327
          "type": "string",
328 328
          "format": "at-uri"
329 329
        },
330 330
        "activeCid": {
331 331
          "type": "string",
332 332
          "format": "cid"
333 333
        },
334 334
        "activeRev": {
335 335
          "type": "string"
336 336
        },
337 337
        "activeUri": {
338 338
          "type": "string",
339 339
          "format": "at-uri"
340 340
        },
341 341
        "createdAt": {
342 342
          "type": "string",
343 343
          "format": "datetime"
344 344
        },
345 +
        "delegation": {
346 +
          "ref": "#delegationView",
347 +
          "type": "ref",
348 +
          "description": "On a base: what its owner has enabled and granted. Absent on a domain that is not a base."
349 +
        },
345 350
        "entryCount": {
346 351
          "type": "integer"
347 352
        },
348 353
        "pendingCid": {
349 354
          "type": "string",
350 355
          "format": "cid",
351 356
          "description": "A validated, prepared record awaiting its commit, if any."
352 357
        },
353 358
        "sourceKind": {
354 359
          "type": "string",
355 360
          "knownValues": [
356 361
            "inline",
357 362
            "tile"
358 363
          ]
359 364
        },
360 365
        "totalBytes": {
361 366
          "type": "integer"
362 367
        },
363 368
        "verifiedAt": {
364 369
          "type": "string",
365 370
          "format": "datetime"
366 371
        },
367 372
        "activatedAt": {
368 373
          "type": "string",
369 374
          "format": "datetime"
370 375
        },
371 376
        "pendingState": {
372 377
          "type": "string",
373 378
          "knownValues": [
374 379
            "preparing",
375 380
            "pending-publication"
376 381
          ]
382 +
        },
383 +
        "delegatedBase": {
384 +
          "type": "string",
385 +
          "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."
377 386
        }
378 387
      }
379 388
    },
380 389
    "indexState": {
381 390
      "type": "string",
382 391
      "knownValues": [
383 392
        "preparing",
384 393
        "pending-publication",
385 394
        "expired",
386 395
        "queued",
387 396
        "fetching",
388 397
        "materializing",
389 398
        "active",
390 399
        "superseded",
391 400
        "rejected",
392 401
        "failed"
393 402
      ]
394 403
    },
395 404
    "spaceEvent": {
396 405
      "type": "object",
397 406
      "required": [
398 407
        "seq",
399 408
        "space",
400 409
        "kind",
401 410
        "at"
402 411
      ],
403 412
      "properties": {
404 413
        "at": {
405 414
          "type": "string",
406 415
          "format": "datetime"
407 416
        },
408 417
        "cid": {
409 418
          "type": "string",
410 419
          "format": "cid"
411 420
        },
412 421
        "seq": {
413 422
          "type": "integer"
414 423
        },
415 424
        "kind": {
416 425
          "type": "string",
417 426
          "knownValues": [
418 427
            "record.created",
419 428
            "record.updated",
420 429
            "record.deleted",
421 430
            "site.activated",
422 431
            "site.deactivated",
423 432
            "tile.ready",
424 433
            "tile.incomplete",
425 434
            "tile.deleted",
426 435
            "access.granted",
427 436
            "access.expired",
428 437
            "registration.renewed",
429 438
            "registration.lapsed",
430 439
            "app-not-allowed",
431 440
            "space.deleted"
432 441
          ]
433 442
        },
434 443
        "actor": {
435 444
          "type": "string",
436 445
          "format": "did"
437 446
        },
438 447
        "space": {
439 448
          "type": "string",
440 449
          "format": "at-uri"
441 450
        },
442 451
        "subject": {
443 452
          "type": "string"
444 453
        }
445 454
      }
446 455
    },
447 456
    "blobFailure": {
448 457
      "type": "object",
449 458
      "required": [
450 459
        "cid",
451 460
        "role",
452 461
        "sourceDid",
453 462
        "error"
454 463
      ],
455 464
      "properties": {
456 465
        "cid": {
457 466
          "type": "string",
458 467
          "format": "cid"
459 468
        },
460 469
        "role": {
461 470
          "type": "string",
462 471
          "knownValues": [
463 472
            "manifest",
464 473
            "tile",
465 474
            "parameter",
466 475
            "notFound"
467 476
          ]
468 477
        },
469 478
        "error": {
470 479
          "type": "string",
471 480
          "description": "BlobUnavailable, CidMismatch, FetchFailed."
472 481
        },
473 482
        "sourceDid": {
474 483
          "type": "string",
475 484
          "format": "did"
476 485
        }
477 486
      }
478 487
    },
479 488
    "domainEvent": {
480 489
      "type": "object",
481 490
      "required": [
482 491
        "event",
483 492
        "createdAt"
484 493
      ],
485 494
      "properties": {
486 495
        "actor": {
487 496
          "type": "string"
488 497
        },
489 498
        "event": {
490 499
          "type": "string"
491 500
        },
492 501
        "detail": {
493 502
          "type": "unknown"
494 503
        },
495 504
        "createdAt": {
496 505
          "type": "string",
497 506
          "format": "datetime"
498 507
        }
499 508
      }
500 509
    },
501 510
    "missingBlob": {
502 511
      "type": "object",
503 512
      "required": [
504 513
        "cid",
505 514
        "role",
506 515
        "sourceDid"
507 516
      ],
508 517
      "properties": {
509 518
        "cid": {
510 519
          "type": "string",
511 520
          "format": "cid"
512 521
        },
513 522
        "role": {
514 523
          "type": "string",
515 524
          "knownValues": [
516 525
            "manifest",
517 526
            "tile",
518 527
            "parameter",
519 528
            "notFound"
520 529
          ]
521 530
        },
522 531
        "sourceDid": {
523 532
          "type": "string",
524 533
          "format": "did"
525 534
        }
526 535
      }
527 536
    },
528 537
    "domainStatus": {
529 538
      "type": "string",
530 539
      "knownValues": [
531 540
        "pending",
532 541
        "verifying",
533 542
        "verified",
534 543
        "active",
535 544
        "failed",
536 545
        "suspended",
537 546
        "released"
538 547
      ]
539 548
    },
540 549
    "denylistEntry": {
541 550
      "type": "object",
542 551
      "required": [
543 552
        "subject",
544 553
        "kind",
545 554
        "createdAt"
546 555
      ],
547 556
      "properties": {
548 557
        "kind": {
549 558
          "type": "string",
550 559
          "knownValues": [
551 560
            "domain",
552 561
            "did",
553 562
            "uri",
554 563
            "cid",
555 564
            "pattern",
556 565
            "space"
557 566
          ]
558 567
        },
559 568
        "actor": {
560 569
          "type": "string"
561 570
        },
562 571
        "reason": {
563 572
          "type": "string"
564 573
        },
565 574
        "subject": {
566 575
          "type": "string"
567 576
        },
568 577
        "createdAt": {
569 578
          "type": "string",
570 579
          "format": "datetime"
571 580
        }
572 581
      }
573 582
    },
583 +
    "delegationView": {
584 +
      "type": "object",
585 +
      "required": [
586 +
        "certMode"
587 +
      ],
588 +
      "properties": {
589 +
        "state": {
590 +
          "ref": "#delegationState",
591 +
          "type": "ref",
592 +
          "description": "Absent on a base that has not enabled delegation."
593 +
        },
594 +
        "certMode": {
595 +
          "type": "string",
596 +
          "description": "How names under the base obtain certificates. Every base starts per-name.",
597 +
          "knownValues": [
598 +
            "per-name",
599 +
            "wildcard"
600 +
          ]
601 +
        },
602 +
        "maxNames": {
603 +
          "type": "integer",
604 +
          "description": "The most names the base may hold in reservation."
605 +
        },
606 +
        "grantedAt": {
607 +
          "type": "string",
608 +
          "format": "datetime",
609 +
          "description": "When the live wildcard grant was made."
610 +
        },
611 +
        "probeHostname": {
612 +
          "type": "string",
613 +
          "maxLength": 253,
614 +
          "description": "The random name under the base through which the wildcard is proven to route."
615 +
        },
616 +
        "challengeTarget": {
617 +
          "type": "string",
618 +
          "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."
619 +
        },
620 +
        "wildcardObservedAt": {
621 +
          "type": "string",
622 +
          "format": "datetime",
623 +
          "description": "When the base's wildcard certificate was first seen in certificate storage."
624 +
        }
625 +
      },
626 +
      "description": "What a base's owner has enabled and granted. Each field but certMode is absent where the base has no such fact."
627 +
    },
574 628
    "dnsInstruction": {
575 629
      "type": "object",
576 630
      "required": [
577 631
        "type",
578 632
        "name",
579 633
        "value"
580 634
      ],
581 635
      "properties": {
582 636
        "ttl": {
583 637
          "type": "integer"
584 638
        },
585 639
        "name": {
586 640
          "type": "string",
587 641
          "description": "Fully-qualified record name."
588 642
        },
589 643
        "type": {
590 644
          "type": "string",
591 645
          "knownValues": [
592 646
            "TXT",
593 647
            "CNAME",
594 648
            "ALIAS",
595 649
            "ANAME",
596 650
            "A",
597 651
            "AAAA"
598 652
          ]
599 653
        },
600 654
        "value": {
601 655
          "type": "string"
602 656
        },
603 657
        "purpose": {
604 658
          "type": "string",
605 659
          "knownValues": [
606 660
            "ownership",
607 661
            "certificate",
608 662
            "traffic"
609 663
          ]
610 664
        },
611 665
        "required": {
612 666
          "type": "boolean"
613 667
        }
614 668
      }
615 669
    },
616 670
    "malwareFinding": {
617 671
      "type": "object",
618 672
      "required": [
619 673
        "id",
620 674
        "cid",
621 675
        "signature",
622 676
        "class",
623 677
        "source",
624 678
        "foundAt"
625 679
      ],
626 680
      "properties": {
627 681
        "id": {
628 682
          "type": "integer",
629 683
          "description": "The finding's row id, which the denylist entry's reason names."
630 684
        },
631 685
        "cid": {
632 686
          "type": "string",
633 687
          "description": "The content address. `-` for a detection at upload, where nothing was stored."
634 688
        },
635 689
        "did": {
636 690
          "type": "string",
637 691
          "format": "did",
638 692
          "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."
639 693
        },
640 694
        "uri": {
641 695
          "type": "string",
642 696
          "format": "at-uri",
643 697
          "description": "The record that referenced it."
644 698
        },
645 699
        "path": {
646 700
          "type": "string",
647 701
          "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."
648 702
        },
649 703
        "class": {
650 704
          "type": "string",
651 705
          "description": "`unwanted` is a PUA match and stops short of the publishing identity under the default policy.",
652 706
          "knownValues": [
653 707
            "malware",
654 708
            "unwanted"
655 709
          ]
656 710
        },
657 711
        "domain": {
658 712
          "type": "string",
659 713
          "description": "The hostname it would have served at."
660 714
        },
661 715
        "source": {
662 716
          "type": "string",
663 717
          "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.",
664 718
          "knownValues": [
665 719
            "fetch",
666 720
            "upload",
667 721
            "rescan",
668 722
            "admin"
669 723
          ]
670 724
        },
671 725
        "foundAt": {
672 726
          "type": "string",
673 727
          "format": "datetime"
674 728
        },
675 729
        "signature": {
676 730
          "type": "string",
677 731
          "description": "The signature name, verbatim from the engine."
678 732
        },
679 733
        "quarantinedAt": {
680 734
          "type": "string",
681 735
          "format": "datetime",
682 736
          "description": "When the response finished. Absent means it has not: the content is denied and may still be served."
683 737
        }
684 738
      },
685 739
      "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."
686 740
    },
687 741
    "spaceSyncState": {
688 742
      "type": "string",
689 743
      "knownValues": [
690 744
        "connecting",
691 745
        "syncing",
692 746
        "synced",
693 747
        "credential-expired",
694 748
        "registration-lapsed",
695 749
        "app-not-allowed",
696 750
        "authority-unreachable",
697 751
        "deleted",
698 752
        "disconnected"
699 753
      ]
700 754
    },
755 +
    "delegationState": {
756 +
      "type": "string",
757 +
      "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.",
758 +
      "knownValues": [
759 +
        "probing",
760 +
        "enabled",
761 +
        "routing-lapsed"
762 +
      ]
763 +
    },
701 764
    "edgeReachStatus": {
702 765
      "type": "string",
703 766
      "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.",
704 767
      "knownValues": [
705 768
        "unknown",
706 769
        "routed",
707 770
        "foreign",
708 771
        "unreachable",
709 772
        "other-deployment",
710 773
        "unproven"
711 774
      ]
712 775
    },
713 776
    "validationError": {
714 777
      "type": "object",
715 778
      "required": [
716 779
        "name",
717 780
        "message"
718 781
      ],
719 782
      "properties": {
720 783
        "name": {
721 784
          "type": "string",
722 785
          "description": "A DESIGN.md ยง3.8 error name, e.g. DuplicatePath, RedirectTargetNotFound, ParameterTypeMismatch."
723 786
        },
724 787
        "path": {
725 788
          "type": "string",
726 789
          "description": "JSON Pointer into the record, when the error concerns one field or entry."
727 790
        },
728 791
        "message": {
729 792
          "type": "string"
730 793
        }
731 794
      }
732 795
    },
733 796
    "edgeReachability": {
734 797
      "type": "object",
735 798
      "required": [
736 799
        "status",
737 800
        "domain"
738 801
      ],
739 802
      "properties": {
740 803
        "detail": {
741 804
          "type": "string",
742 805
          "description": "What answered, for a person: a status line, or a transport error. Diagnostic only; nothing branches on it."
743 806
        },
744 807
        "domain": {
745 808
          "type": "string",
746 809
          "maxLength": 253,
747 810
          "description": "The hostname that was probed, so a reader is told which name is not arriving."
748 811
        },
749 812
        "status": {
750 813
          "ref": "#edgeReachStatus",
751 814
          "type": "ref"
752 815
        },
753 816
        "checkedAt": {
754 817
          "type": "string",
755 818
          "format": "datetime",
756 819
          "description": "When the probe was made. Absent when status is unknown."
757 820
        }
758 821
      },
759 822
      "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."
760 823
    },
761 824
    "verificationView": {
762 825
      "type": "object",
763 826
      "required": [
764 827
        "status",
765 828
        "checks"
766 829
      ],
767 830
      "properties": {
768 831
        "checks": {
769 832
          "type": "array",
770 833
          "items": {
771 834
            "ref": "#verificationCheck",
772 835
            "type": "ref"
773 836
          }
774 837
        },
775 838
        "status": {
776 839
          "ref": "#domainStatus",
777 840
          "type": "ref"
778 841
        },
779 842
        "lastCheckedAt": {
780 843
          "type": "string",
781 844
          "format": "datetime"
782 845
        }
783 846
      }
784 847
    },
785 848
    "preparationStatus": {
786 849
      "type": "object",
787 850
      "required": [
788 851
        "state",
789 852
        "cid",
790 853
        "fetched",
791 854
        "pending",
792 855
        "failed"
793 856
      ],
794 857
      "properties": {
795 858
        "cid": {
796 859
          "type": "string",
797 860
          "format": "cid"
798 861
        },
799 862
        "state": {
800 863
          "type": "string",
801 864
          "knownValues": [
802 865
            "preparing",
803 866
            "pending-publication",
804 867
            "expired"
805 868
          ]
806 869
        },
807 870
        "failed": {
808 871
          "type": "array",
809 872
          "items": {
810 873
            "ref": "#blobFailure",
811 874
            "type": "ref"
812 875
          }
813 876
        },
814 877
        "fetched": {
815 878
          "type": "integer"
816 879
        },
817 880
        "pending": {
818 881
          "type": "integer"
819 882
        },
820 883
        "expiresAt": {
821 884
          "type": "string",
822 885
          "format": "datetime"
823 886
        }
824 887
      }
825 888
    },
826 889
    "verificationCheck": {
827 890
      "type": "object",
828 891
      "required": [
829 892
        "name",
830 893
        "passed",
831 894
        "checkedAt"
832 895
      ],
833 896
      "properties": {
834 897
        "name": {
835 898
          "type": "string",
836 899
          "knownValues": [
837 900
            "ownership",
838 901
            "traffic",
839 -
            "conflict"
902 +
            "conflict",
903 +
            "certificate"
840 904
          ]
841 905
        },
842 906
        "detail": {
843 907
          "type": "string"
844 908
        },
845 909
        "passed": {
846 910
          "type": "boolean"
847 911
        },
848 912
        "checkedAt": {
849 913
          "type": "string",
850 914
          "format": "datetime"
851 915
        }
852 916
      }
853 917
    }
854 918
  },
855 919
  "$type": "com.atproto.lexicon.schema",
856 920
  "lexicon": 1
857 921
}

Compare Other Versions

Lexicon Garden

@