at.marque.domain
Schema Diff
+7 -6
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 0 non-breaking changes.
Breaking Changes (3)
- RemovedVertex RemovedVertex { vertex_id: "at.marque.domain:body.autoRenew" }
- RemovedEdge RemovedEdge { src: "at.marque.domain:body", tgt: "at.marque.domain:body.autoRenew", kind: "prop", name: Some("autoRenew") }
- KindChanged KindChanged { vertex_id: "at.marque.domain:body.whoisPrivacy", old_kind: "boolean", new_kind: "string" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "at.marque.domain:body.autoRenew" }
Additional Notes
- Breaking: RemovedEdge { src: "at.marque.domain:body", tgt: "at.marque.domain:body.autoRenew", kind: "prop", name: Some("autoRenew") }
- Breaking: KindChanged { vertex_id: "at.marque.domain:body.whoisPrivacy", old_kind: "boolean", new_kind: "string" }
1
1
{
2
2
"id": "at.marque.domain",
3
3
"defs": {
4
4
"main": {
5
5
"key": "any",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"domain",
11
11
"status",
12
12
"registeredAt",
13
13
"expiresAt",
14
14
"createdAt"
15
15
],
16
16
"properties": {
17
17
"dnssec": {
18
18
"type": "boolean",
19
19
"description": "Whether DNSSEC is enabled."
20
20
},
21
21
"domain": {
22
22
"type": "string",
23
23
"maxLength": 253,
24
24
"description": "Fully qualified domain name, e.g. example.com."
25
25
},
26
26
"status": {
27
27
"type": "string",
28
28
"description": "Current lifecycle status of the domain.",
29
29
"knownValues": [
30
30
"active",
31
31
"expiring",
32
32
"expired",
33
33
"transferPending"
34
34
]
35
35
},
36
-
"autoRenew": {
37
-
"type": "boolean",
38
-
"description": "Whether auto-renewal is enabled."
39
-
},
40
36
"createdAt": {
41
37
"type": "string",
42
38
"format": "datetime",
43
39
"description": "Client-declared timestamp when this record was created."
44
40
},
45
41
"expiresAt": {
46
42
"type": "string",
47
43
"format": "datetime",
48
44
"description": "When the domain registration expires."
49
45
},
50
46
"nameServers": {
51
47
"type": "array",
52
48
"items": {
53
49
"type": "string",
54
50
"maxLength": 253
55
51
},
56
52
"maxLength": 8,
57
53
"description": "Authoritative name servers for this domain."
58
54
},
59
55
"registeredAt": {
60
56
"type": "string",
61
57
"format": "datetime",
62
58
"description": "When the domain was registered with the upstream registrar."
63
59
},
64
60
"whoisPrivacy": {
65
-
"type": "boolean",
66
-
"description": "Whether WHOIS privacy protection is enabled."
61
+
"type": "string",
62
+
"description": "WHOIS privacy status: on, off, or gdpr (for TLDs with mandated data protection).",
63
+
"knownValues": [
64
+
"on",
65
+
"off",
66
+
"gdpr"
67
+
]
67
68
},
68
69
"atprotoHandle": {
69
70
"type": "string",
70
71
"maxLength": 253,
71
72
"description": "AT Protocol handle set on this domain, if any."
72
73
},
73
74
"atprotoVerified": {
74
75
"type": "boolean",
75
76
"description": "Whether the atproto handle has been verified via DNS."
76
77
}
77
78
}
78
79
},
79
80
"description": "Record representing a domain registered through Marque. The record key is the fully qualified domain name (e.g. example.com)."
80
81
}
81
82
},
82
83
"$type": "com.atproto.lexicon.schema",
83
84
"lexicon": 1,
84
85
"description": "A domain registration managed by Marque. Stored in the user's repository."
85
86
}