space.highport.defs
Schema Diff
+166 -26
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
}