0.2.0 • Published 11 months ago
dnsmanager v0.2.0
dnsmanager
DNS Manager
Tunnel
To run test locally a tunnel will have to be created to the LDAP server:
ssh -N staff@dev-db-eu-1.s.optdyn.com -L 1389:localhost:389
Start server
npm run start
Examples
Retrieve all zones:
curl http://localhost:8282/api/dns/zones
["example.com","certplay.tk","letest.ml","foo.com"]
Retrieve zone details
curl http://localhost:8282/api/dns/zone/certplay.tk
{"idnsSOAretry":"900","nSRecord":["devns0.subutai.io.","devns1.subutai.io."],"idnsSOArName":"hostmaster.subutai.io","objectClass":["idnsRecord","idnsZone","top"],"idnsZoneActive":"TRUE","idnsSOAminimum":"604800","idnsSOArefresh":"10800","idnsSOAexpire":"604800","idnsName":"certplay.tk","dNSTTL":"300","idnsSOAmName":"devns0.subutai.io","aRecord":"209.94.90.1","idnsSOAserial":"1593687877"}
Create new zone
Considering a zone file:
{
"idnsSOAretry": "900",
"nSRecord": [
"devns0.subutai.io.",
"devns1.subutai.io."
],
"idnsSOArName": "hostmaster.subutai.io",
"objectClass": [
"idnsRecord",
"idnsZone",
"top"
],
"idnsZoneActive": "TRUE",
"idnsSOAminimum": "604800",
"idnsSOArefresh": "10800",
"idnsSOAexpire": "604800",
"idnsName": "foo.com",
"dNSTTL": "300",
"idnsSOAmName": "devns0.subutai.io",
"aRecord": "209.94.90.1",
"idnsSOAserial": "1"
}
The zone can be created as:
curl -X POST -H "Content-type: application/json" -d @zone.json http://localhost:8282/api/dns/zone
The zone creation can be tested immediately with dig:
dig @devns0 foo.com soa
Delete Zone
curl -X DELETE http://localhost:8282/api/dns/zone/foo.com
Modify Zone
In order to modify a zone, a json object describing the modification will have to be created:
{
"operation": "replace",
"modification": {
"idnsZoneActive": "TRUE"
}
}
The operation will have to be one of replace, add or delete.
This json can now be posted to the server:
curl -X POST -H "Content-type: application/json" -d @mzone.json http://localhost:8282/api/dns/zone/foo.com
List records
The records defined for a zone can either be created in the zone file itself (see ns records in above example) or as sub objects. To get a list of the sub objects retrieve them by:
curl http://localhost:8282/api/dns/zone/certplay.tk/records
["_acme-challenge"]
Get complete record
A complete record can be retrieved by:
curl http://localhost:8282/api/dns/zone/certplay.tk/record/_acme-challenge
{"idnsName":"_acme-challenge","objectClass":["idnsRecord","top"],"tXTRecord":"XeVa9qRuEPrxQvZhPpJoSejE0AmR71Iee1W-SDv2gCU","dNSTTL":"60"}
Get LetsEncrypt certificate for zone
curl http://localhost:8282/api/le/foo.com
0.2.0
11 months ago