komuw / sewer

Let's Encrypt(ACME) client. Python library & CLI app.
MIT License
145 stars 52 forks source link

Add support for name.com API #207

Open f5-rahm opened 4 years ago

f5-rahm commented 4 years ago

Which version of python are you using?

3.8

What operating system and version of operating system are you using?

OSX latest / Win10 latest / Ubuntu 18.04

What version of sewer are you using?

latest pypi

What is it that you would like to propose to add/remove/change?

My dns provider is name.com and their API is defined here: https://www.name.com/api-docs. I can probably do the work and contribute it back but would need a little guidance on steps as the docs seem to indicate that it should be done using a new method that none of the existing providers, AFAICT, are using yet.

mmaney commented 4 years ago

Hurrah! Actually, the new interface can be as simple as inheriting from auth.DNSProviderBase and three essential methods:

setup is like create_dns_record but it gets a list of challenges instead of one at a time
unpropagated which can just be  `return []`
clear is like delete_dns_record but ditto

There is a semi-working example of using this interface in providers/demo.py. Since that stops at the point of actually publishing (it's a non-waiting manual publisher, too handy for testing to actually make it wait), all that's missing is the service-provider specific stuff. More or less. :-)

There are many written words in the docs directory, but they vary from actually intended as docs to design essays written mostly for myself.