liuch / dmarc-srg

A php parser, viewer and summary report generator for incoming DMARC reports.
GNU General Public License v3.0
218 stars 32 forks source link

SUGESTION: Import domains from webhosting control panels #33

Open ghost opened 1 year ago

ghost commented 1 year ago

Would be a nice feature if you can add options to import the domains from the control panels using their API. Almost all control panels allow to curl the a domain list using their API. We won't need to type in hundreds or thousands of domains on the control panel or do an export to add these domains to the conf.php. It would simply import them automatically using the cron.

What do you think?

liuch commented 1 year ago

This is a good idea. But there are probably many control panels with their own API, and I do not use any of them. It is quite difficult to write and debug usage unknown APIs. Maybe you had in mind the import of domains from some standard format, like CSV?

By the way: Do you know that domains can be automatically added to the database by using allowed_domains option in the config file?

ghost commented 1 year ago

This is a good idea. But there are probably many control panels with their own API, and I do not use any of them. It is quite difficult to write and debug usage unknown APIs. Maybe you had in mind the import of domains from some standard format, like CSV?

By the way: Do you know that domains can be automatically added to the database by using allowed_domains option in the config file?

All APIs have 1 thing in common: They can be queried viy curl. So, if you add a form to ask for:

It should be enough for the system to query the control panels.

liuch commented 1 year ago

I see at least two problems:

  1. API can use a temporary token that is passed after authentication.
  2. The complexity of processing the result. You need to know the response format and its structure for each control panel to extract the domain name.

It seems to me more reasonable to do this: your script retrieves a list of domains through the API and passes it as CSV to my script through a temporary file or pipe to import your domains to the database.