Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Whois deprecation - migrate to RDAP #35

Closed
lyda opened this issue Aug 12, 2023 · 13 comments · Fixed by #36 or #46
Closed

Whois deprecation - migrate to RDAP #35

lyda opened this issue Aug 12, 2023 · 13 comments · Fixed by #36 or #46
Labels
enhancement New feature or request

Comments

@lyda
Copy link
Contributor

lyda commented Aug 12, 2023

The whois "protocol" is being deprecated in favour of RDAP. Would there be interest in looking to adding RDAP functionality to this repo?

The migration seems like it will take a few years since it's based on registrar contract renewals. And a number of registrars have said they'll end whois services after a period of operating both - but again this will be on a rolling schedule. So the solution seems to be to try both to answer queries - specifically try RDAP and if it fails, try whois.

Alternatively there could be an rdap specific plugin. The issue is the overlap period where for some registrars will only support whois, some will support both and some will only support rdap. There's an argument that the name is confusing, but I suspect the term "whois" will refer to the data regardless of the protocol.

There's an existing Go RDAP library that should make it relatively easy to do.

@lyda lyda added the enhancement New feature or request label Aug 12, 2023
@rajlearner17 rajlearner17 linked a pull request Aug 14, 2023 that will close this issue
@cbruno10
Copy link
Contributor

@lyda Thanks for raising this issue and PR!

It feels like RDAP is separate enough to be its own plugin, based on naming for searchability, under, etc. If a domain doesn't support RDAP yet, the WHOIS plugin will still be available for use.

@johnsmyth - Any thoughts on a separate plugin vs. a separate table in this repo, e.g., rdap_domain?

@lyda
Copy link
Contributor Author

lyda commented Aug 15, 2023

I guess my only concern is the transition. Long term I think a separate plugin is the right answer. But short term as a user having to query two tables to get info on a domain - where one or both might give answers - seems suboptimal, you know?

@johnsmyth
Copy link
Contributor

Im not very familiar with the details - how compatible are the responses? Depending on how much they vary, it might not really be useful to capture them in a single table anyway?

@lyda
Copy link
Contributor Author

lyda commented Aug 15, 2023

Im not very familiar with the details - how compatible are the responses? Depending on how much they vary, it might not really be useful to capture them in a single table anyway?

They're pretty compatible. RDAP generally has less contact info. But the creation and other dates are there. The various status flags are there. The handle and name server info is there.

That allows a bunch of query options. Here's some example output:

steampipe=> \x on
Expanded display is on.
steampipe=> select * from whois_domain where domain = 'google.com';
-[ RECORD 1 ]--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
domain                     | google.com
domain_id                  | 2138514_DOMAIN_COM-VRSN
domain_punycode            | GOOGLE.COM
domain_extension           | COM
whois_server               | (null)
status                     | ["clientdeleteprohibited", "clienttransferprohibited", "clientupdateprohibited", "serverdeleteprohibited", "servertransferprohibited", "serverupdateprohibited"]
name_servers               | ["NS1.GOOGLE.COM", "NS2.GOOGLE.COM", "NS3.GOOGLE.COM", "NS4.GOOGLE.COM"]
dns_sec                    | (null)
created_date               | 1997-09-15 04:00:00+00
updated_date               | 2019-09-09 15:39:04+00
expiration_date            | 2028-09-14 04:00:00+00
client_delete_prohibited   | t
client_transfer_prohibited | t
client_update_prohibited   | t
server_delete_prohibited   | t
server_transfer_prohibited | t
server_update_prohibited   | t
registrar                  | {"id": "292", "name": "MarkMonitor Inc.", "email": "abusecomplaints@markmonitor.com", "phone": "tel:+1.2086851750"}
registrant                 | (null)
admin                      | {}
technical                  | (null)
billing                    | (null)
_ctx                       | {"connection_name": "whois"}

@lyda
Copy link
Contributor Author

lyda commented Aug 15, 2023

Oh, and if it helps, these are the corresponding Go types:

As an aside, I suspect people will pronounce RDAP "whois" for a long time. Just like the save icon is still a 3.5" floppy disk and we still talk about "albums" with relation to music. In terms of language, I think the name of this plugin long after nothing listens to port 43.

@misraved
Copy link
Contributor

@lyda @cbruno10 IMO, a new plugin would be a better solution considering we have all means to access the APIs. In future after the deprecation comes through, it would become difficult to rename/deprecate this plugin and create a new one for RDAP.

@johnsmyth
Copy link
Contributor

I think I agree with @lyda that folks will continue to refer to it as whois even when it is technically RDAP, so i dont mind adding support for RDAP in this plugin. We do something similar for RSS - the RSS plugin supports both RSS and Atom.

@cbruno10
Copy link
Contributor

@lyda @johnsmyth That's a good point, in the future if we ever want to have an RDAP plugin, we could create it then and deprecate the table in this plugin (if required).

@lyda Please let us know when #36 is ready for review (or if it already is) and we'll have a pass at it, thanks!

@lyda
Copy link
Contributor Author

lyda commented Aug 22, 2023

Little busy this week but will get to it again Saturday morning Irish time. I think the PR is mostly there but would like to review it and add comments on my decisions.

Also need to see if there are columns we could get from rdap that are missing from that WhoisInfo (sp?) type. At the very least I can document them.

@cbruno10
Copy link
Contributor

Thanks @lyda , no rush of course! Looking forward to adding RDAP support soon 😃

@lyda
Copy link
Contributor Author

lyda commented Aug 25, 2023

OK, looked through it and the PR is ready. I have some thoughts. Might want to add a few columns - maybe an rdap_server and some of the rdap fields.

@github-actions
Copy link

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale No recent activity has been detected on this issue/PR and it will be closed label Oct 24, 2023
@cbruno10 cbruno10 removed the stale No recent activity has been detected on this issue/PR and it will be closed label Oct 25, 2023
@bigdatasourav bigdatasourav linked a pull request Nov 6, 2023 that will close this issue
Copy link

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days.

@github-actions github-actions bot added the stale No recent activity has been detected on this issue/PR and it will be closed label Dec 24, 2023
@ParthaI ParthaI removed the stale No recent activity has been detected on this issue/PR and it will be closed label Dec 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
5 participants