space.highport.defs
Schema Diff
+228 -10
Compatibility Analysis
Breaking Changes Detected
12 breaking changes, 61 non-breaking changes.
Breaking Changes (12)
- 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") }
- 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#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 (61)
- 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" }
- AddedVertex AddedVertex { vertex_id: "space.highport.defs#tileView.handle" }
- 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") }
- AddedEdge AddedEdge { src: "space.highport.defs#tileView", tgt: "space.highport.defs#tileView.handle", kind: "prop", name: Some("handle") }
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" }AddedVertex { vertex_id: "space.highport.defs#tileView.handle" }
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#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") }
- 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#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") }
- 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") }
- Non-breaking: AddedEdge { src: "space.highport.defs#tileView", tgt: "space.highport.defs#tileView.handle", kind: "prop", name: Some("handle") }
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
+
"handle": {
165
+
"type": "string",
166
+
"format": "handle",
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
+
},
164
169
"params": {
165
170
"type": "array",
166
171
"items": {
167
172
"ref": "space.highport.sites.tile#param",
168
173
"type": "ref"
169
174
}
170
175
},
171
176
"iconUrl": {
172
177
"type": "string",
173
178
"format": "uri",
174
179
"description": "https://highport.space/xrpc/space.highport.sites.getTileIcon?cid={cid}; absent if the tile has no icon."
175
180
},
176
181
"indexedAt": {
177
182
"type": "string",
178
183
"format": "datetime"
179
184
},
180
185
"latestCid": {
181
186
"type": "string",
182
187
"format": "cid",
183
188
"description": "The newest indexed version at this URI, when it differs from cid."
184
189
},
185
190
"entryCount": {
186
191
"type": "integer"
187
192
},
188
193
"totalBytes": {
189
194
"type": "integer"
190
195
},
191
196
"description": {
192
197
"type": "string"
193
198
}
194
199
}
195
200
},
196
201
"spaceView": {
197
202
"type": "object",
198
203
"required": [
199
204
"uri",
200
205
"authority",
201
206
"skey",
202
207
"syncState",
203
208
"connectedAt"
204
209
],
205
210
"properties": {
206
211
"uri": {
207
212
"type": "string",
208
213
"format": "at-uri"
209
214
},
210
215
"skey": {
211
216
"type": "string"
212
217
},
213
218
"policy": {
214
219
"type": "string",
215
220
"knownValues": [
216
221
"public",
217
222
"member-list",
218
223
"managing-app",
219
224
"unknown"
220
225
]
221
226
},
222
227
"headRev": {
223
228
"type": "string"
224
229
},
225
230
"appAccess": {
226
231
"type": "string",
227
232
"knownValues": [
228
233
"open",
229
234
"allow-list",
230
235
"unknown"
231
236
]
232
237
},
233
238
"authority": {
234
239
"type": "string",
235
240
"format": "did"
236
241
},
237
242
"syncState": {
238
243
"ref": "#spaceSyncState",
239
244
"type": "ref"
240
245
},
241
246
"tileCount": {
242
247
"type": "integer"
243
248
},
244
249
"connectedAt": {
245
250
"type": "string",
246
251
"format": "datetime"
247
252
},
248
253
"domainCount": {
249
254
"type": "integer"
250
255
},
251
256
"lastCheckedAt": {
252
257
"type": "string",
253
258
"format": "datetime"
254
259
},
255
260
"lastNotifiedAt": {
256
261
"type": "string",
257
262
"format": "datetime"
258
263
},
259
264
"accessExpiresAt": {
260
265
"type": "string",
261
266
"format": "datetime",
262
-
"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."
263
268
},
264
269
"accessGrantedBy": {
265
270
"type": "string",
266
271
"format": "did"
267
272
},
268
273
"queuedNotifications": {
269
274
"type": "integer",
270
-
"description": "Receipts waiting for a credential."
275
+
"description": "Notification receipts waiting for a credential."
271
276
},
272
277
"registrationExpiresAt": {
273
278
"type": "string",
274
279
"format": "datetime"
275
280
}
276
281
}
277
282
},
278
283
"tlsStatus": {
279
284
"type": "string",
280
285
"knownValues": [
281
286
"none",
282
287
"pending",
283
288
"issued",
284
289
"renewing",
285
290
"failed"
286
291
]
287
292
},
288
293
"domainView": {
289
294
"type": "object",
290
295
"required": [
291
296
"domain",
292
297
"did",
293
298
"status",
294
299
"createdAt"
295
300
],
296
301
"properties": {
297
302
"did": {
298
303
"type": "string",
299
304
"format": "did"
300
305
},
301
306
"tls": {
302
307
"ref": "#tlsStatus",
303
308
"type": "ref"
304
309
},
305
310
"space": {
306
311
"type": "string",
307
312
"format": "at-uri",
308
-
"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."
309
314
},
310
315
"domain": {
311
316
"type": "string"
312
317
},
313
318
"status": {
314
319
"ref": "#domainStatus",
315
320
"type": "ref"
316
321
},
317
322
"tileCid": {
318
323
"type": "string",
319
324
"format": "cid"
320
325
},
321
326
"tileUri": {
322
327
"type": "string",
323
328
"format": "at-uri"
324
329
},
325
330
"activeCid": {
326
331
"type": "string",
327
332
"format": "cid"
328
333
},
329
334
"activeRev": {
330
335
"type": "string"
331
336
},
332
337
"activeUri": {
333
338
"type": "string",
334
339
"format": "at-uri"
335
340
},
336
341
"createdAt": {
337
342
"type": "string",
338
343
"format": "datetime"
339
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
+
},
340
350
"entryCount": {
341
351
"type": "integer"
342
352
},
343
353
"pendingCid": {
344
354
"type": "string",
345
355
"format": "cid",
346
-
"description": "A validated, prepared record awaiting its commit, if any."
356
+
"description": "A validated record waiting to be committed, if there is one."
347
357
},
348
358
"sourceKind": {
349
359
"type": "string",
350
360
"knownValues": [
351
361
"inline",
352
362
"tile"
353
363
]
354
364
},
355
365
"totalBytes": {
356
366
"type": "integer"
357
367
},
358
368
"verifiedAt": {
359
369
"type": "string",
360
370
"format": "datetime"
361
371
},
362
372
"activatedAt": {
363
373
"type": "string",
364
374
"format": "datetime"
365
375
},
366
376
"pendingState": {
367
377
"type": "string",
368
378
"knownValues": [
369
379
"preparing",
370
380
"pending-publication"
371
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."
372
386
}
373
387
}
374
388
},
375
389
"indexState": {
376
390
"type": "string",
377
391
"knownValues": [
378
392
"preparing",
379
393
"pending-publication",
380
394
"expired",
381
395
"queued",
382
396
"fetching",
383
397
"materializing",
384
398
"active",
385
399
"superseded",
386
400
"rejected",
387
401
"failed"
388
402
]
389
403
},
390
404
"spaceEvent": {
391
405
"type": "object",
392
406
"required": [
393
407
"seq",
394
408
"space",
395
409
"kind",
396
410
"at"
397
411
],
398
412
"properties": {
399
413
"at": {
400
414
"type": "string",
401
415
"format": "datetime"
402
416
},
403
417
"cid": {
404
418
"type": "string",
405
419
"format": "cid"
406
420
},
407
421
"seq": {
408
422
"type": "integer"
409
423
},
410
424
"kind": {
411
425
"type": "string",
412
426
"knownValues": [
413
427
"record.created",
414
428
"record.updated",
415
429
"record.deleted",
416
430
"site.activated",
417
431
"site.deactivated",
418
432
"tile.ready",
419
433
"tile.incomplete",
420
434
"tile.deleted",
421
435
"access.granted",
422
436
"access.expired",
423
437
"registration.renewed",
424
438
"registration.lapsed",
425
439
"app-not-allowed",
426
440
"space.deleted"
427
441
]
428
442
},
429
443
"actor": {
430
444
"type": "string",
431
445
"format": "did"
432
446
},
433
447
"space": {
434
448
"type": "string",
435
449
"format": "at-uri"
436
450
},
437
451
"subject": {
438
452
"type": "string"
439
453
}
440
454
}
441
455
},
442
456
"blobFailure": {
443
457
"type": "object",
444
458
"required": [
445
459
"cid",
446
460
"role",
447
461
"sourceDid",
448
462
"error"
449
463
],
450
464
"properties": {
451
465
"cid": {
452
466
"type": "string",
453
467
"format": "cid"
454
468
},
455
469
"role": {
456
470
"type": "string",
457
471
"knownValues": [
458
472
"manifest",
459
473
"tile",
460
474
"parameter",
461
475
"notFound"
462
476
]
463
477
},
464
478
"error": {
465
479
"type": "string",
466
-
"description": "BlobUnavailable, CidMismatch, FetchFailed."
480
+
"description": "One of BlobUnavailable, CidMismatch or FetchFailed."
467
481
},
468
482
"sourceDid": {
469
483
"type": "string",
470
484
"format": "did"
471
485
}
472
486
}
473
487
},
474
488
"domainEvent": {
475
489
"type": "object",
476
490
"required": [
477
491
"event",
478
492
"createdAt"
479
493
],
480
494
"properties": {
481
495
"actor": {
482
496
"type": "string"
483
497
},
484
498
"event": {
485
499
"type": "string"
486
500
},
487
501
"detail": {
488
502
"type": "unknown"
489
503
},
490
504
"createdAt": {
491
505
"type": "string",
492
506
"format": "datetime"
493
507
}
494
508
}
495
509
},
496
510
"missingBlob": {
497
511
"type": "object",
498
512
"required": [
499
513
"cid",
500
514
"role",
501
515
"sourceDid"
502
516
],
503
517
"properties": {
504
518
"cid": {
505
519
"type": "string",
506
520
"format": "cid"
507
521
},
508
522
"role": {
509
523
"type": "string",
510
524
"knownValues": [
511
525
"manifest",
512
526
"tile",
513
527
"parameter",
514
528
"notFound"
515
529
]
516
530
},
517
531
"sourceDid": {
518
532
"type": "string",
519
533
"format": "did"
520
534
}
521
535
}
522
536
},
523
537
"domainStatus": {
524
538
"type": "string",
525
539
"knownValues": [
526
540
"pending",
527
541
"verifying",
528
542
"verified",
529
543
"active",
530
544
"failed",
531
545
"suspended",
532
546
"released"
533
547
]
534
548
},
535
549
"denylistEntry": {
536
550
"type": "object",
537
551
"required": [
538
552
"subject",
539
553
"kind",
540
554
"createdAt"
541
555
],
542
556
"properties": {
543
557
"kind": {
544
558
"type": "string",
545
559
"knownValues": [
546
560
"domain",
547
561
"did",
548
562
"uri",
549
563
"cid",
550
564
"pattern",
551
565
"space"
552
566
]
553
567
},
554
568
"actor": {
555
569
"type": "string"
556
570
},
557
571
"reason": {
558
572
"type": "string"
559
573
},
560
574
"subject": {
561
575
"type": "string"
562
576
},
563
577
"createdAt": {
564
578
"type": "string",
565
579
"format": "datetime"
566
580
}
567
581
}
568
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
+
},
569
633
"dnsInstruction": {
570
634
"type": "object",
571
635
"required": [
572
636
"type",
573
637
"name",
574
638
"value"
575
639
],
576
640
"properties": {
577
641
"ttl": {
578
642
"type": "integer"
579
643
},
580
644
"name": {
581
645
"type": "string",
582
646
"description": "Fully-qualified record name."
583
647
},
584
648
"type": {
585
649
"type": "string",
586
650
"knownValues": [
587
651
"TXT",
588
652
"CNAME",
589
653
"ALIAS",
590
654
"ANAME",
591
655
"A",
592
656
"AAAA"
593
657
]
594
658
},
595
659
"value": {
596
660
"type": "string"
597
661
},
598
662
"purpose": {
599
663
"type": "string",
600
664
"knownValues": [
601
665
"ownership",
602
666
"certificate",
603
667
"traffic"
604
668
]
605
669
},
606
670
"required": {
607
671
"type": "boolean"
608
672
}
609
673
}
610
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
+
},
611
746
"spaceSyncState": {
612
747
"type": "string",
613
748
"knownValues": [
614
749
"connecting",
615
750
"syncing",
616
751
"synced",
617
752
"credential-expired",
618
753
"registration-lapsed",
619
754
"app-not-allowed",
620
755
"authority-unreachable",
621
756
"deleted",
622
757
"disconnected"
623
758
]
624
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
+
},
625
814
"validationError": {
626
815
"type": "object",
627
816
"required": [
628
817
"name",
629
818
"message"
630
819
],
631
820
"properties": {
632
821
"name": {
633
822
"type": "string",
634
-
"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."
635
824
},
636
825
"path": {
637
826
"type": "string",
638
-
"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."
639
828
},
640
829
"message": {
641
830
"type": "string"
642
831
}
643
832
}
644
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
+
},
645
862
"verificationView": {
646
863
"type": "object",
647
864
"required": [
648
865
"status",
649
866
"checks"
650
867
],
651
868
"properties": {
652
869
"checks": {
653
870
"type": "array",
654
871
"items": {
655
872
"ref": "#verificationCheck",
656
873
"type": "ref"
657
874
}
658
875
},
659
876
"status": {
660
877
"ref": "#domainStatus",
661
878
"type": "ref"
662
879
},
663
880
"lastCheckedAt": {
664
881
"type": "string",
665
882
"format": "datetime"
666
883
}
667
884
}
668
885
},
669
886
"preparationStatus": {
670
887
"type": "object",
671
888
"required": [
672
889
"state",
673
890
"cid",
674
891
"fetched",
675
892
"pending",
676
893
"failed"
677
894
],
678
895
"properties": {
679
896
"cid": {
680
897
"type": "string",
681
898
"format": "cid"
682
899
},
683
900
"state": {
684
901
"type": "string",
685
902
"knownValues": [
686
903
"preparing",
687
904
"pending-publication",
688
905
"expired"
689
906
]
690
907
},
691
908
"failed": {
692
909
"type": "array",
693
910
"items": {
694
911
"ref": "#blobFailure",
695
912
"type": "ref"
696
913
}
697
914
},
698
915
"fetched": {
699
916
"type": "integer"
700
917
},
701
918
"pending": {
702
919
"type": "integer"
703
920
},
704
921
"expiresAt": {
705
922
"type": "string",
706
923
"format": "datetime"
707
924
}
708
925
}
709
926
},
710
927
"verificationCheck": {
711
928
"type": "object",
712
929
"required": [
713
930
"name",
714
931
"passed",
715
932
"checkedAt"
716
933
],
717
934
"properties": {
718
935
"name": {
719
936
"type": "string",
720
937
"knownValues": [
721
938
"ownership",
722
939
"traffic",
723
-
"conflict"
940
+
"conflict",
941
+
"certificate"
724
942
]
725
943
},
726
944
"detail": {
727
945
"type": "string"
728
946
},
729
947
"passed": {
730
948
"type": "boolean"
731
949
},
732
950
"checkedAt": {
733
951
"type": "string",
734
952
"format": "datetime"
735
953
}
736
954
}
737
955
}
738
956
},
739
957
"$type": "com.atproto.lexicon.schema",
740
958
"lexicon": 1
741
959
}