DNS
DNS serves each Domain’s records as data, signs every zone with DNSSEC, and flags missing, drifted or dangling records daily.
An Agent reads what a Domain answers and changes it through a previewed Change.
Contract
| Clause | Terms |
|---|---|
| Record | Each DNS Record holds DNSRecord.type, DNSRecord.name and DNSRecord.value: the declared answer. |
| Owner | DNSRecord.owner is platform for records that serve the Site, authenticate mail and validate certificates, or startup for every other record. |
| Changes | DNSRecord.set adds or changes a startup record through a Change, previewed against what the Domain answers today. A revert restores the previous answer. |
| Removes | DNSRecord.remove stops a startup record from answering; its history stays. |
| Refuses | DNSRecord.set and DNSRecord.remove refuse a platform record, so no Agent takes its own Site offline. |
| Checks | Every day the check reads public DNS into DNSRecord.observed and sets DNSRecord.status: ok, missing, drifted or dangling. |
| Dangling | A dangling record points at a target that no longer answers, the opening for a subdomain takeover; Domain.verify names its fix. |
| Signing | Every registered Domain is signed with DNSSEC by Domain.register, and its CAA record names only the certificate authorities the platform uses. |
| Connected names | For a Domain attached with Domain.connect, whose DNS sits at another host, the platform lists the records it needs and observes each one. |
Verbs
Interfaces
Example
fieldnotes.fm type name value owner status
txt @ google-site-verification= 4kq… startup ok
cname help fieldnotes.helpdesk.example startup dangling
txt _dmarc v= DMARC1; p= reject platform ok
caa @ 0 issue "…" platform ok