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