Skip to content

Libdns: Core interfaces for universal DNS record manipulation across providers

github.com/libdns
39 pointsimran-iq5 comments
On HN

Comments

There's this note about Octodns and Dnscontrol that needs clearing:

  WARNING: OctoDNS assumes ownership of any domain you point it to. When you tell it to act it will do whatever is necessary to try and match up states including deleting any unexpected records. Be careful when playing around with OctoDNS.
That makes it sound like a design failure, but Octodns and Dnscontrol are not the same type of tool. Those tools are declarative, and libdns is imperative.

With Octodns you declare a state, and the tool makes whatever is needed to sync it. That's why it will delete any records that aren't declared in your configuration (you can configure it to ignore certain records, though). Hence, it's idempotent.

Libdns is imperative, you ask it to do certain task (be it creation, modification or deletion) regardless of the initial or final state.

So, both are useful, but for different tasks.

Namecheap's API is like this. It's baffling. People wipe out their entire zones by accident

https://www.namecheap.com/support/api/methods/domains-dns/se...

Wow, big zone management must be a pain!

The declarative API is interesting, but it's weird there isn't any other method for imperatively adding or deleting records...

To be fair, that is also explained:

This is incredibly useful when you are maintaining your own zone file, but risky when you just need incremental changes.

But I agree including the warning is a bit over-the-top.

I've been thinking about making something like this for years, so I'm really glad it exists now!

A cool idea now would be to make a little lightweight web GUI out of it to manage all your domains in one place...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.