space.highport.defs

lexicons.highport.space

Schema Diff

+166 -26

From

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

To

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

Compatibility Analysis

Breaking Changes Detected

7 breaking changes, 44 non-breaking changes.

Breaking Changes (7)
  • 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") }
  • 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") }
  • 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\"]" }

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 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.",
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 340
        "unreachable",
240 341
        "other-deployment",
241 342
        "unproven"
242 343
      ],
243 344
      "type": "string"
244 345
    },
245 346
    "edgeReachability": {
246 -
      "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.",
247 348
      "properties": {
248 349
        "checkedAt": {
249 350
          "description": "When the probe was made. Absent when status is unknown.",
250 351
          "format": "datetime",
251 352
          "type": "string"
252 353
        },
253 354
        "detail": {
254 -
          "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.",
255 356
          "type": "string"
256 357
        },
257 358
        "domain": {
258 -
          "description": "The hostname that was probed, so a reader is told which name is not arriving.",
359 +
          "description": "The hostname that was probed.",
259 360
          "maxLength": 253,
260 361
          "type": "string"
261 362
        },
262 363
        "status": {
263 364
          "ref": "#edgeReachStatus",
264 365
          "type": "ref"
265 366
        }
266 367
      },
267 368
      "required": [
268 369
        "status",
269 370
        "domain"
270 371
      ],
271 372
      "type": "object"
272 373
    },
273 374
    "indexState": {
274 375
      "knownValues": [
275 376
        "preparing",
276 377
        "pending-publication",
277 378
        "expired",
278 379
        "queued",
279 380
        "fetching",
280 381
        "materializing",
281 382
        "active",
282 383
        "superseded",
283 384
        "rejected",
284 385
        "failed"
285 386
      ],
286 387
      "type": "string"
287 388
    },
288 389
    "jobView": {
289 390
      "properties": {
290 391
        "action": {
291 392
          "type": "string"
292 393
        },
293 394
        "attempts": {
294 395
          "type": "integer"
295 396
        },
296 397
        "finishedAt": {
297 398
          "format": "datetime",
298 399
          "type": "string"
299 400
        },
300 401
        "id": {
301 402
          "type": "integer"
302 403
        },
303 404
        "lastError": {
304 405
          "type": "string"
305 406
        },
306 407
        "scheduledAt": {
307 408
          "format": "datetime",
308 409
          "type": "string"
309 410
        },
310 411
        "startedAt": {
311 412
          "format": "datetime",
312 413
          "type": "string"
313 414
        },
314 415
        "state": {
315 416
          "type": "string"
316 417
        },
317 418
        "uri": {
318 419
          "type": "string"
319 420
        }
320 421
      },
321 422
      "required": [
322 423
        "id",
323 424
        "uri",
324 425
        "action",
325 426
        "state",
326 427
        "attempts",
327 428
        "scheduledAt"
328 429
      ],
329 430
      "type": "object"
330 431
    },
331 432
    "malwareFinding": {
332 -
      "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.",
333 434
      "properties": {
334 435
        "cid": {
335 -
          "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.",
336 437
          "type": "string"
337 438
        },
338 439
        "class": {
339 -
          "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.",
340 441
          "knownValues": [
341 442
            "malware",
342 443
            "unwanted"
343 444
          ],
344 445
          "type": "string"
345 446
        },
346 447
        "did": {
347 -
          "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.",
348 449
          "format": "did",
349 450
          "type": "string"
350 451
        },
351 452
        "domain": {
352 -
          "description": "The hostname it would have served at.",
453 +
          "description": "The hostname the content would have been served at.",
353 454
          "type": "string"
354 455
        },
355 456
        "foundAt": {
356 457
          "format": "datetime",
357 458
          "type": "string"
358 459
        },
359 460
        "id": {
360 -
          "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.",
361 462
          "type": "integer"
362 463
        },
363 464
        "path": {
364 -
          "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.",
365 466
          "type": "string"
366 467
        },
367 468
        "quarantinedAt": {
368 -
          "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.",
369 470
          "format": "datetime",
370 471
          "type": "string"
371 472
        },
372 473
        "signature": {
373 -
          "description": "The signature name, verbatim from the engine.",
474 +
          "description": "The signature name, exactly as the scanner reported it.",
374 475
          "type": "string"
375 476
        },
376 477
        "source": {
377 -
          "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.",
378 479
          "knownValues": [
379 480
            "fetch",
380 481
            "upload",
381 482
            "rescan",
382 483
            "admin"
383 484
          ],
384 485
          "type": "string"
385 486
        },
386 487
        "uri": {
387 -
          "description": "The record that referenced it.",
488 +
          "description": "The record that referenced the content.",
388 489
          "format": "at-uri",
389 490
          "type": "string"
390 491
        }
391 492
      },
392 493
      "required": [
393 494
        "id",
394 495
        "cid",
395 496
        "signature",
396 497
        "class",
397 498
        "source",
398 499
        "foundAt"
399 500
      ],
400 501
      "type": "object"
401 502
    },
402 503
    "missingBlob": {
403 504
      "properties": {
404 505
        "cid": {
405 506
          "format": "cid",
406 507
          "type": "string"
407 508
        },
408 509
        "role": {
409 510
          "knownValues": [
410 511
            "manifest",
411 512
            "tile",
412 513
            "parameter",
413 514
            "notFound"
414 515
          ],
415 516
          "type": "string"
416 517
        },
417 518
        "sourceDid": {
418 519
          "format": "did",
419 520
          "type": "string"
420 521
        }
421 522
      },
422 523
      "required": [
423 524
        "cid",
424 525
        "role",
425 526
        "sourceDid"
426 527
      ],
427 528
      "type": "object"
428 529
    },
429 530
    "preparationStatus": {
430 531
      "properties": {
431 532
        "cid": {
432 533
          "format": "cid",
433 534
          "type": "string"
434 535
        },
435 536
        "expiresAt": {
436 537
          "format": "datetime",
437 538
          "type": "string"
438 539
        },
439 540
        "failed": {
440 541
          "items": {
441 542
            "ref": "#blobFailure",
442 543
            "type": "ref"
443 544
          },
444 545
          "type": "array"
445 546
        },
446 547
        "fetched": {
447 548
          "type": "integer"
448 549
        },
449 550
        "pending": {
450 551
          "type": "integer"
451 552
        },
452 553
        "state": {
453 554
          "knownValues": [
454 555
            "preparing",
455 556
            "pending-publication",
456 557
            "expired"
457 558
          ],
458 559
          "type": "string"
459 560
        }
460 561
      },
461 562
      "required": [
462 563
        "state",
463 564
        "cid",
464 565
        "fetched",
465 566
        "pending",
466 567
        "failed"
467 568
      ],
468 569
      "type": "object"
469 570
    },
470 571
    "siteView": {
471 572
      "properties": {
472 573
        "activatedAt": {
473 574
          "format": "datetime",
474 575
          "type": "string"
475 576
        },
476 577
        "cid": {
477 578
          "format": "cid",
478 579
          "type": "string"
479 580
        },
480 581
        "did": {
481 582
          "format": "did",
482 583
          "type": "string"
483 584
        },
484 585
        "domain": {
485 586
          "type": "string"
486 587
        },
487 588
        "rev": {
488 589
          "type": "string"
489 590
        },
490 591
        "sourceKind": {
491 592
          "knownValues": [
492 593
            "inline",
493 594
            "tile"
494 595
          ],
495 596
          "type": "string"
496 597
        },
497 598
        "space": {
498 -
          "description": "Present for a site published from a space; attribution survives the plane.",
599 +
          "description": "Present for a site published from a space.",
499 600
          "format": "at-uri",
500 601
          "type": "string"
501 602
        },
502 603
        "tile": {
503 604
          "ref": "#tileView",
504 605
          "type": "ref"
505 606
        },
506 607
        "uri": {
507 608
          "format": "at-uri",
508 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"
509 615
        }
510 616
      },
511 617
      "required": [
512 618
        "domain",
513 619
        "did",
514 620
        "uri",
515 621
        "cid",
516 622
        "rev",
517 623
        "activatedAt",
518 624
        "sourceKind"
519 625
      ],
520 626
      "type": "object"
521 627
    },
522 628
    "spaceEvent": {
523 629
      "properties": {
524 630
        "actor": {
525 631
          "format": "did",
526 632
          "type": "string"
527 633
        },
528 634
        "at": {
529 635
          "format": "datetime",
530 636
          "type": "string"
531 637
        },
532 638
        "cid": {
533 639
          "format": "cid",
534 640
          "type": "string"
535 641
        },
536 642
        "kind": {
537 643
          "knownValues": [
538 644
            "record.created",
539 645
            "record.updated",
540 646
            "record.deleted",
541 647
            "site.activated",
542 648
            "site.deactivated",
543 649
            "tile.ready",
544 650
            "tile.incomplete",
545 651
            "tile.deleted",
546 652
            "access.granted",
547 653
            "access.expired",
548 654
            "registration.renewed",
549 655
            "registration.lapsed",
550 656
            "app-not-allowed",
551 657
            "space.deleted"
552 658
          ],
553 659
          "type": "string"
554 660
        },
555 661
        "seq": {
556 662
          "type": "integer"
557 663
        },
558 664
        "space": {
559 665
          "format": "at-uri",
560 666
          "type": "string"
561 667
        },
562 668
        "subject": {
563 669
          "type": "string"
564 670
        }
565 671
      },
566 672
      "required": [
567 673
        "seq",
568 674
        "space",
569 675
        "kind",
570 676
        "at"
571 677
      ],
572 678
      "type": "object"
573 679
    },
574 680
    "spaceSyncState": {
575 681
      "knownValues": [
576 682
        "connecting",
577 683
        "syncing",
578 684
        "synced",
579 685
        "credential-expired",
580 686
        "registration-lapsed",
581 687
        "app-not-allowed",
582 688
        "authority-unreachable",
583 689
        "deleted",
584 690
        "disconnected"
585 691
      ],
586 692
      "type": "string"
587 693
    },
588 694
    "spaceView": {
589 695
      "properties": {
590 696
        "accessExpiresAt": {
591 -
          "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.",
592 698
          "format": "datetime",
593 699
          "type": "string"
594 700
        },
595 701
        "accessGrantedBy": {
596 702
          "format": "did",
597 703
          "type": "string"
598 704
        },
599 705
        "appAccess": {
600 706
          "knownValues": [
601 707
            "open",
602 708
            "allow-list",
603 709
            "unknown"
604 710
          ],
605 711
          "type": "string"
606 712
        },
607 713
        "authority": {
608 714
          "format": "did",
609 715
          "type": "string"
610 716
        },
611 717
        "connectedAt": {
612 718
          "format": "datetime",
613 719
          "type": "string"
614 720
        },
615 721
        "domainCount": {
616 722
          "type": "integer"
617 723
        },
618 724
        "headRev": {
619 725
          "type": "string"
620 726
        },
621 727
        "lastCheckedAt": {
622 728
          "format": "datetime",
623 729
          "type": "string"
624 730
        },
625 731
        "lastNotifiedAt": {
626 732
          "format": "datetime",
627 733
          "type": "string"
628 734
        },
629 735
        "policy": {
630 736
          "knownValues": [
631 737
            "public",
632 738
            "member-list",
633 739
            "managing-app",
634 740
            "unknown"
635 741
          ],
636 742
          "type": "string"
637 743
        },
638 744
        "queuedNotifications": {
639 -
          "description": "Receipts waiting for a credential.",
745 +
          "description": "Notification receipts waiting for a credential.",
640 746
          "type": "integer"
641 747
        },
642 748
        "registrationExpiresAt": {
643 749
          "format": "datetime",
644 750
          "type": "string"
645 751
        },
646 752
        "skey": {
647 753
          "type": "string"
648 754
        },
649 755
        "syncState": {
650 756
          "ref": "#spaceSyncState",
651 757
          "type": "ref"
652 758
        },
653 759
        "tileCount": {
654 760
          "type": "integer"
655 761
        },
656 762
        "uri": {
657 763
          "format": "at-uri",
658 764
          "type": "string"
659 765
        }
660 766
      },
661 767
      "required": [
662 768
        "uri",
663 769
        "authority",
664 770
        "skey",
665 771
        "syncState",
666 772
        "connectedAt"
667 773
      ],
668 774
      "type": "object"
669 775
    },
670 776
    "tileView": {
671 777
      "properties": {
672 778
        "cid": {
673 779
          "format": "cid",
674 780
          "type": "string"
675 781
        },
676 782
        "description": {
677 783
          "type": "string"
678 784
        },
679 785
        "did": {
680 786
          "format": "did",
681 787
          "type": "string"
682 788
        },
683 789
        "entryCount": {
684 790
          "type": "integer"
685 791
        },
686 792
        "handle": {
687 -
          "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.",
688 794
          "format": "handle",
689 795
          "type": "string"
690 796
        },
691 797
        "iconUrl": {
692 798
          "description": "https://highport.space/xrpc/space.highport.sites.getTileIcon?cid={cid}; absent if the tile has no icon.",
693 799
          "format": "uri",
694 800
          "type": "string"
695 801
        },
696 802
        "indexedAt": {
697 803
          "format": "datetime",
698 804
          "type": "string"
699 805
        },
700 806
        "latestCid": {
701 807
          "description": "The newest indexed version at this URI, when it differs from cid.",
702 808
          "format": "cid",
703 809
          "type": "string"
704 810
        },
705 811
        "name": {
706 812
          "type": "string"
707 813
        },
708 814
        "params": {
709 815
          "items": {
710 816
            "ref": "space.highport.sites.tile#param",
711 817
            "type": "ref"
712 818
          },
713 819
          "type": "array"
714 820
        },
715 821
        "space": {
716 -
          "description": "Present for a space tile; never on the public surface.",
822 +
          "description": "Present for a space tile. Never shown on the public surface.",
717 823
          "format": "at-uri",
718 824
          "type": "string"
719 825
        },
720 826
        "state": {
721 827
          "knownValues": [
722 828
            "indexing",
723 829
            "ready",
724 830
            "incomplete",
725 831
            "rejected",
726 832
            "suspended",
727 833
            "deleted"
728 834
          ],
729 835
          "type": "string"
730 836
        },
731 837
        "totalBytes": {
732 838
          "type": "integer"
733 839
        },
734 840
        "uri": {
735 841
          "format": "at-uri",
736 842
          "type": "string"
737 843
        }
738 844
      },
739 845
      "required": [
740 846
        "uri",
741 847
        "cid",
742 848
        "did",
743 849
        "name",
744 850
        "state",
745 851
        "indexedAt"
746 852
      ],
747 853
      "type": "object"
748 854
    },
749 855
    "tlsStatus": {
750 856
      "knownValues": [
751 857
        "none",
752 858
        "pending",
753 859
        "issued",
754 860
        "renewing",
755 861
        "failed"
756 862
      ],
757 863
      "type": "string"
758 864
    },
759 865
    "tlsView": {
760 866
      "properties": {
761 867
        "expiresAt": {
762 868
          "format": "datetime",
763 869
          "type": "string"
764 870
        },
765 871
        "issuedAt": {
766 872
          "format": "datetime",
767 873
          "type": "string"
768 874
        },
769 875
        "lastError": {
770 876
          "type": "string"
771 877
        },
772 878
        "status": {
773 879
          "ref": "#tlsStatus",
774 880
          "type": "ref"
775 881
        }
776 882
      },
777 883
      "required": [
778 884
        "status"
779 885
      ],
780 886
      "type": "object"
781 887
    },
782 888
    "validationError": {
783 889
      "properties": {
784 890
        "message": {
785 891
          "type": "string"
786 892
        },
787 893
        "name": {
788 -
          "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.",
789 895
          "type": "string"
790 896
        },
791 897
        "path": {
792 -
          "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.",
793 899
          "type": "string"
794 900
        }
795 901
      },
796 902
      "required": [
797 903
        "name",
798 904
        "message"
799 905
      ],
800 906
      "type": "object"
801 907
    },
802 908
    "verificationCheck": {
803 909
      "properties": {
804 910
        "checkedAt": {
805 911
          "format": "datetime",
806 912
          "type": "string"
807 913
        },
808 914
        "detail": {
809 915
          "type": "string"
810 916
        },
811 917
        "name": {
812 918
          "knownValues": [
813 919
            "ownership",
814 920
            "traffic",
815 -
            "conflict"
921 +
            "conflict",
922 +
            "certificate"
816 923
          ],
817 924
          "type": "string"
818 925
        },
819 926
        "passed": {
820 927
          "type": "boolean"
821 928
        }
822 929
      },
823 930
      "required": [
824 931
        "name",
825 932
        "passed",
826 933
        "checkedAt"
827 934
      ],
828 935
      "type": "object"
829 936
    },
830 937
    "verificationView": {
831 938
      "properties": {
832 939
        "checks": {
833 940
          "items": {
834 941
            "ref": "#verificationCheck",
835 942
            "type": "ref"
836 943
          },
837 944
          "type": "array"
838 945
        },
839 946
        "lastCheckedAt": {
840 947
          "format": "datetime",
841 948
          "type": "string"
842 949
        },
843 950
        "status": {
844 951
          "ref": "#domainStatus",
845 952
          "type": "ref"
846 953
        }
847 954
      },
848 955
      "required": [
849 956
        "status",
850 957
        "checks"
851 958
      ],
852 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"
853 993
    }
854 994
  },
855 995
  "id": "space.highport.defs",
856 996
  "lexicon": 1
857 997
}

Compare Other Versions

Lexicon Garden

@