2017-10-06 21:34:36 +00:00
|
|
|
'use strict';
|
|
|
|
|
2017-11-02 04:56:44 +00:00
|
|
|
module.exports =
|
|
|
|
{
|
|
|
|
"primaryNameservers": [ "localhost" ] // 'ns1.vanity-dns.org'
|
2017-10-09 21:54:18 +00:00
|
|
|
, "domains": [
|
2017-10-19 00:24:41 +00:00
|
|
|
{ "id": "example.com", "revokedAt": 0 }
|
|
|
|
, { "id": "smith.example.com", "revokedAt": 0 }
|
|
|
|
, { "id": "in-delegated.example.com", "revokedAt": 0 }
|
2017-11-02 04:56:44 +00:00
|
|
|
, { "id": "john.smith.example.com", "revokedAt": 0, "vanityNs": [ "ns1.dns-server.net", "ns2.dns-server.net" ] }
|
2017-10-19 00:24:41 +00:00
|
|
|
// test and probably remove
|
|
|
|
//, { "id": "out-delegated.example.com", "revokedAt": 0 }
|
2017-10-06 21:34:36 +00:00
|
|
|
]
|
|
|
|
, "records": [
|
2017-10-19 00:24:41 +00:00
|
|
|
// zone example.com should be able to have some records on its own
|
|
|
|
{ "zone": "example.com", "name": "example.com", "tld": "com", "sld": "example", "sub": ""
|
|
|
|
, "type": "A", "address": "1.2.3.4", "aname": "fido.devices.example.com" }
|
|
|
|
, { "zone": "example.com", "name": "example.com", "tld": "com", "sld": "example", "sub": ""
|
|
|
|
, "type": "MX", "priority": 10, "exchange": "mxa.example.org" }
|
|
|
|
, { "zone": "example.com", "name": "example.com", "tld": "com", "sld": "example", "sub": ""
|
|
|
|
, "type": "MX", "priority": 10, "exchange": "mxb.example.org" }
|
|
|
|
, { "zone": "example.com", "name": "example.com", "tld": "com", "sld": "example", "sub": ""
|
|
|
|
, "type": "SRV", "priority": 10, "weight": 20, "port": 65065, "target": "spot.devices.example.com" }
|
|
|
|
, { "zone": "example.com", "name": "example.com", "tld": "com", "sld": "example", "sub": ""
|
|
|
|
, "type": "TXT", "data": [ "foo bar baz" ] }
|
|
|
|
, { "zone": "example.com", "name": "example.com", "tld": "com", "sld": "example", "sub": ""
|
|
|
|
, "type": "TXT", "data": [ "foo", "bar", "baz" ] }
|
2017-10-07 00:31:59 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
// A, CNAME, ANAME, MX, SRV, TXT
|
|
|
|
, { "zone": "example.com", "name": "a.example.com", "tld": "com", "sld": "example", "sub": "a"
|
|
|
|
, "type": "A", "address": "4.3.2.1" }
|
|
|
|
, { "zone": "example.com", "name": "aaaa.example.com", "tld": "com", "sld": "example", "sub": "aaaa"
|
2017-10-24 02:39:32 +00:00
|
|
|
, "type": "AAAA", "address": "::1" }
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "example.com", "name": "aname.example.com", "tld": "com", "sld": "example", "sub": "aname"
|
|
|
|
, "type": "A", "aname": "amazon.com" }
|
|
|
|
, { "zone": "example.com", "name": "devname.example.com", "tld": "com", "sld": "example", "sub": "devname"
|
|
|
|
, "type": "A", "address": "1.2.3.4", "aname": "fido.devices.example.com" }
|
|
|
|
, { "zone": "example.com", "name": "cname.example.com", "tld": "com", "sld": "example", "sub": "cname"
|
|
|
|
, "type": "CNAME", "data": "example.com" } // TODO should return additional
|
|
|
|
, { "zone": "example.com", "name": "mx.example.com", "tld": "com", "sld": "example", "sub": "mx"
|
|
|
|
, "type": "MX", "priority": 10, "exchange": "mxa.example.org" }
|
|
|
|
, { "zone": "example.com", "name": "mx.example.com", "tld": "com", "sld": "example", "sub": "mx"
|
|
|
|
, "type": "MX", "priority": 10, "exchange": "mxb.example.org" }
|
|
|
|
, { "zone": "example.com", "name": "srv.example.com", "tld": "com", "sld": "example", "sub": "srv"
|
|
|
|
, "type": "SRV", "priority": 10, "weight": 20, "port": 65065, "target": "spot.devices.example.com" }
|
|
|
|
, { "zone": "example.com", "name": "txt.example.com", "tld": "com", "sld": "example", "sub": "txt"
|
|
|
|
, "type": "TXT", "data": [ "foo bar baz" ] }
|
|
|
|
, { "zone": "example.com", "name": "mtxt.example.com", "tld": "com", "sld": "example", "sub": "mtxt"
|
|
|
|
, "type": "TXT", "data": [ "foo", "bar", "baz" ] }
|
2017-10-19 18:55:22 +00:00
|
|
|
, { "zone": "example.com", "type": "NS", "name": "ns.example.com"
|
|
|
|
, "tld": "com", "sld": "example", "sub": "ns", "data": "ns1.vanity-dns.org" }
|
|
|
|
, { "zone": "example.com", "type": "NS", "name": "ns.example.com"
|
|
|
|
, "tld": "com", "sld": "example", "sub": "ns", "data": "ns2.vanity-dns.org" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
// www., email., etc just for fun
|
|
|
|
, { "zone": "example.com", "name": "www.example.com", "tld": "com", "sld": "example", "sub": "www"
|
|
|
|
, "type": "A", "address": "1.2.3.4", "aname": "fido.devices.example.com" }
|
|
|
|
, { "zone": "example.com", "name": "email.example.com", "tld": "com", "sld": "example", "sub": "email"
|
2017-10-10 01:17:34 +00:00
|
|
|
, "type": "CNAME", "data": "mailgun.org" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-24 03:14:52 +00:00
|
|
|
// a wildcard domain
|
|
|
|
// wild.example.com does NOT match
|
|
|
|
// exists.wild.example.com DOES match, statically
|
|
|
|
// doesntexist.wild.example.com DOES match, wildly
|
|
|
|
, { "zone": "example.com", "name": "*.wild.example.com", "tld": "com", "sld": "example", "sub": "*.wild"
|
|
|
|
, "type": "A", "address": "12.34.56.78" }
|
|
|
|
, { "zone": "example.com", "name": "exists.wild.example.com", "tld": "com", "sld": "example", "sub": "exists.wild"
|
|
|
|
, "type": "A", "address": "123.0.0.45" }
|
2017-10-19 00:24:41 +00:00
|
|
|
|
|
|
|
// Out-delegated Domains
|
|
|
|
, { "zone": "example.com", "type": "NS", "name": "out-delegated.example.com"
|
|
|
|
, "tld": "com", "sld": "example", "sub": "out-delegated", "data": "ns1.vanity-dns.org" }
|
|
|
|
, { "zone": "example.com", "type": "NS", "name": "out-delegated.example.com"
|
|
|
|
, "tld": "com", "sld": "example", "sub": "out-delegated", "data": "ns2.vanity-dns.org" }
|
|
|
|
|
|
|
|
// In-delegated Domains
|
|
|
|
, { "zone": "example.com", "type": "NS", "name": "in-delegated.example.com"
|
|
|
|
, "tld": "com", "sld": "example", "sub": "in-delegated", "data": "localhost" }
|
|
|
|
|
|
|
|
, { "zone": "example.com", "name": "fido.devices.example.com", "tld": "com", "sld": "example", "sub": "fido.devices"
|
2017-10-10 01:17:34 +00:00
|
|
|
, "device": "abcdef123"
|
2017-10-19 00:24:41 +00:00
|
|
|
, "type": "ANAME", "address": "1.2.3.4" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
// zone example.com can delegate smith.example.com to the same nameserver
|
2017-10-06 21:34:36 +00:00
|
|
|
// (it's probably programmatically and politically simplest to always delegate from a parent zone)
|
2017-10-19 00:24:41 +00:00
|
|
|
// Thought Experiment: could we delegate the root to a child? i.e. example.com -> www.example.com
|
2017-10-06 21:34:36 +00:00
|
|
|
// to let someone exclusively "own" the root domain, but none of the children?
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "example.com", "type": "NS", "name": "smith.example.com"
|
|
|
|
, "tld": "com", "sld": "example", "sub": "smith", "data": "ns1.vanity-dns.org" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "example.com", "name": "smith.example.com", "tld": "com", "sld": "example", "sub": "smith"
|
|
|
|
, "type": "NS", "data": "ns2.vanity-dns.org" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
|
|
|
//
|
2017-10-19 00:24:41 +00:00
|
|
|
// now the zone "smith.example.com" can be independently owned (and delegated)
|
|
|
|
// ... but what about email for john@example.com with john@example.com?
|
|
|
|
, { "zone": "smith.example.com", "name": "smith.example.com", "tld": "example.com", "sld": "smith", "sub": ""
|
|
|
|
, "type": "A", "address": "45.56.59.142", "aname": "rex.devices.smith.example.com" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "smith.example.com", "name": "www.smith.example.com", "tld": "example.com", "sld": "smith", "sub": "www"
|
|
|
|
, "type": "CNAME", "data": "smith.example.com" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "smith.example.com", "name": "john.smith.example.com", "tld": "example.com", "sld": "smith", "sub": "john"
|
|
|
|
, "type": "NS", "data": "ns1.vanity-dns.org" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "smith.example.com", "name": "john.smith.example.com", "tld": "example.com", "sld": "smith", "sub": "john"
|
|
|
|
, "type": "NS", "data": "ns2.vanity-dns.org" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
|
|
|
// there can be a wildcard, to which a delegation is the exception
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "smith.example.com", "name": "*.smith.example.com", "tld": "example.com", "sld": "smith", "sub": "*"
|
|
|
|
, "type": "A", "address": "45.56.59.142", "aname": "rex.devices.smith.example.com" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
|
|
|
// there can be an exception to the delegation
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "smith.example.com", "name": "exception.john.smith.example.com", "tld": "example.com", "sld": "smith", "sub": "exception.john"
|
|
|
|
, "type": "A", "address": "45.56.59.142", "aname": "rex.devices.smith.example.com" }
|
2017-10-06 21:34:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
//
|
2017-10-19 00:24:41 +00:00
|
|
|
// john.smith.example.com
|
2017-10-06 21:34:36 +00:00
|
|
|
//
|
2017-10-19 00:24:41 +00:00
|
|
|
, { "zone": "john.smith.example.com", "name": "john.smith.example.com", "tld": "smith.example.com", "sld": "john", "sub": ""
|
|
|
|
, "type": "A", "address": "45.56.59.142", "aname": "rex.devices.smith.example.com" }
|
2017-10-06 21:34:36 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
;
|