space.highport.defs

lexicons.highport.space

Schema Diff

+169 -27

From

CID
bafyreidatnjlok7...
Indexed At
2026-09-11 04:09 UTC
View this version

To

CID
bafyreiaibsvnskn...
Indexed At
2026-10-11 19:29 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

8 breaking changes, 44 non-breaking changes.

Breaking Changes (8)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#delegationView", src: "space.highport.defs#delegationView", tgt: "space.highport.defs#delegationView.certMode", kind: "prop", name: Some("certMode") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#defaultTileView", src: "space.highport.defs#defaultTileView", tgt: "space.highport.defs#defaultTileView.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#defaultTileView", src: "space.highport.defs#defaultTileView", tgt: "space.highport.defs#defaultTileView.cid", kind: "prop", name: Some("cid") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#webTileView", src: "space.highport.defs#webTileView", tgt: "space.highport.defs#webTileView.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#webTileView", src: "space.highport.defs#webTileView", tgt: "space.highport.defs#webTileView.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "space.highport.defs#webTileView", src: "space.highport.defs#webTileView", tgt: "space.highport.defs#webTileView.cid", kind: "prop", name: Some("cid") }
  • ConstraintTightened ConstraintTightened { vertex_id: "space.highport.defs#edgeReachStatus", sort: "knownValues", old_value: "[\"unknown\",\"routed\",\"foreign\",\"unreachable\"]", new_value: "[\"unknown\",\"routed\",\"foreign\",\"unreachable\",\"other-deployment\",\"unproven\"]" }
  • 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 (44)
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#defaultTileView" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#defaultTileView.appliedTo" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#defaultTileView.cid" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#defaultTileView.name" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#defaultTileView.setAt" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#defaultTileView.uri" }
  • 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.defaultTile" }
  • 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" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#siteView.webTile" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#webTileView" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#webTileView.cid" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#webTileView.description" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#webTileView.did" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#webTileView.name" }
  • AddedVertex AddedVertex { vertex_id: "space.highport.defs#webTileView.uri" }
  • AddedEdge AddedEdge { src: "space.highport.defs#defaultTileView", tgt: "space.highport.defs#defaultTileView.appliedTo", kind: "prop", name: Some("appliedTo") }
  • AddedEdge AddedEdge { src: "space.highport.defs#defaultTileView", tgt: "space.highport.defs#defaultTileView.name", kind: "prop", name: Some("name") }
  • AddedEdge AddedEdge { src: "space.highport.defs#defaultTileView", tgt: "space.highport.defs#defaultTileView.setAt", kind: "prop", name: Some("setAt") }
  • 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.defaultTile", kind: "prop", name: Some("defaultTile") }
  • 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.defaultTile", tgt: "space.highport.defs#defaultTileView", kind: "ref", name: None }
  • 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 }
  • AddedEdge AddedEdge { src: "space.highport.defs#siteView", tgt: "space.highport.defs#siteView.webTile", kind: "prop", name: Some("webTile") }
  • AddedEdge AddedEdge { src: "space.highport.defs#siteView.webTile", tgt: "space.highport.defs#webTileView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "space.highport.defs#webTileView", tgt: "space.highport.defs#webTileView.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "space.highport.defs#webTileView", tgt: "space.highport.defs#webTileView.name", kind: "prop", name: Some("name") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "space.highport.defs#defaultTileView" }
  • AddedVertex { vertex_id: "space.highport.defs#defaultTileView.appliedTo" }
  • AddedVertex { vertex_id: "space.highport.defs#defaultTileView.cid" }
  • AddedVertex { vertex_id: "space.highport.defs#defaultTileView.name" }
  • AddedVertex { vertex_id: "space.highport.defs#defaultTileView.setAt" }
  • AddedVertex { vertex_id: "space.highport.defs#defaultTileView.uri" }
  • 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.defaultTile" }
  • 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" }
  • AddedVertex { vertex_id: "space.highport.defs#siteView.webTile" }
  • AddedVertex { vertex_id: "space.highport.defs#webTileView" }
  • AddedVertex { vertex_id: "space.highport.defs#webTileView.cid" }
  • AddedVertex { vertex_id: "space.highport.defs#webTileView.description" }
  • AddedVertex { vertex_id: "space.highport.defs#webTileView.did" }
  • AddedVertex { vertex_id: "space.highport.defs#webTileView.name" }
  • AddedVertex { vertex_id: "space.highport.defs#webTileView.uri" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "space.highport.defs#verificationCheck.name", sort: "knownValues", old_value: "[\"ownership\",\"traffic\",\"conflict\"]", new_value: "[\"ownership\",\"traffic\",\"conflict\",\"certificate\"]" }
  • ConstraintTightened ConstraintTightened { vertex_id: "space.highport.defs#edgeReachStatus", sort: "knownValues", old_value: "[\"unknown\",\"routed\",\"foreign\",\"unreachable\"]", new_value: "[\"unknown\",\"routed\",\"foreign\",\"unreachable\",\"other-deployment\",\"unproven\"]" }

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

Compare Other Versions

Lexicon Garden

@