at.marque.dns

marque.at

Schema Diff

+8 -2

From

CID
bafyreid3cdaw4if...
Indexed At
2026-06-11 19:38 UTC
View this version

To

CID
bafyreibrkxbao4z...
Indexed At
2026-07-30 14:38 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 3 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "at.marque.dns:body", src: "at.marque.dns:body", tgt: "at.marque.dns:body.subject", kind: "prop", name: Some("subject") }
Non-Breaking Changes (3)
  • AddedVertex AddedVertex { vertex_id: "at.marque.dns:body.subject" }
  • AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedEdge AddedEdge { src: "at.marque.dns:body.subject", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "at.marque.dns:body.subject" }
  • AddedVertex { vertex_id: "com.atproto.repo.strongRef" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "at.marque.dns:body", src: "at.marque.dns:body", tgt: "at.marque.dns:body.subject", kind: "prop", name: Some("subject") }
  • Non-breaking: AddedEdge { src: "at.marque.dns:body.subject", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "entry": {
5 5
      "description": "A single DNS resource record.",
6 6
      "properties": {
7 7
        "name": {
8 8
          "description": "Record name relative to the zone apex. Use '@' for the apex itself.",
9 9
          "maxLength": 253,
10 10
          "type": "string"
11 11
        },
12 12
        "priority": {
13 13
          "description": "Priority value for MX and SRV records.",
14 14
          "type": "integer"
15 15
        },
16 16
        "recordType": {
17 17
          "description": "DNS record type.",
18 18
          "knownValues": [
19 19
            "A",
20 20
            "AAAA",
21 21
            "CNAME",
22 22
            "MX",
23 23
            "TXT",
24 24
            "SRV",
25 25
            "NS",
26 26
            "CAA"
27 27
          ],
28 28
          "type": "string"
29 29
        },
30 30
        "ttl": {
31 31
          "description": "Time-to-live in seconds.",
32 32
          "minimum": 1,
33 33
          "type": "integer"
34 34
        },
35 35
        "value": {
36 36
          "description": "Record value / rdata.",
37 37
          "maxLength": 4096,
38 38
          "type": "string"
39 39
        }
40 40
      },
41 41
      "required": [
42 42
        "name",
43 43
        "recordType",
44 44
        "value",
45 45
        "ttl"
46 46
      ],
47 47
      "type": "object"
48 48
    },
49 49
    "main": {
50 50
      "description": "Record containing the DNS zone entries for a domain managed by Marque. The record key matches the corresponding at.marque.domain record key (the FQDN).",
51 51
      "key": "any",
52 52
      "record": {
53 53
        "properties": {
54 54
          "createdAt": {
55 -
            "description": "Client-declared timestamp when this record was last written.",
55 +
            "description": "Client-declared timestamp when this record was last written. Consumers that need authoritative ordering should use the repository commit metadata and event time from the AT Protocol firehose.",
56 56
            "format": "datetime",
57 57
            "type": "string"
58 58
          },
59 59
          "domain": {
60 -
            "description": "Fully qualified domain name this zone belongs to.",
60 +
            "description": "Fully qualified domain name this zone belongs to. Denormalized from the subject record so consumers can read the FQDN without resolving the reference.",
61 61
            "maxLength": 253,
62 62
            "type": "string"
63 63
          },
64 64
          "records": {
65 65
            "description": "The DNS resource records in this zone.",
66 66
            "items": {
67 67
              "ref": "#entry",
68 68
              "type": "ref"
69 69
            },
70 70
            "type": "array"
71 +
          },
72 +
          "subject": {
73 +
            "description": "Strong reference to the at.marque.domain record this zone belongs to.",
74 +
            "ref": "com.atproto.repo.strongRef",
75 +
            "type": "ref"
71 76
          }
72 77
        },
73 78
        "required": [
74 79
          "domain",
80 +
          "subject",
75 81
          "records",
76 82
          "createdAt"
77 83
        ],
78 84
        "type": "object"
79 85
      },
80 86
      "type": "record"
81 87
    }
82 88
  },
83 89
  "description": "DNS zone records for a domain where Marque handles the nameservers. Stored in the user's repository.",
84 90
  "id": "at.marque.dns",
85 91
  "lexicon": 1
86 92
}

Compare Other Versions

Lexicon Garden

@