0.2.0 • Published 11 months ago

dnsmanager v0.2.0

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
11 months ago

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