Closed gabydisarli closed 3 months ago
"refinement" label added: @abroddrick requested time to review the scope and ACs further before committing this into the sprint. It work may be too large for one sprint. It may need splitting. Currently, it has been story pointed to a 5.
Decision in sprint planning meeting is to keep this ticket in "Ready" until dev analysis is completed.
Product proposes punting out of 48. Moving to 49. @abroddrick
Note, this was decided to not be split due to not needing to investigate using a third party library as we can just do the parsing ourselves
Nice job investigation, @erinysong. As we discussed in standup, WHOIS is really a legacy, text-based, service originally designed to be human readable. Of course, we have long made attempts to get machines to read this.
However, RDAP is create just for this very purpose, a RESTful protocol in JSON over HTTP.. :-) So this really looks like the right direction.
"Blocked" added: Erin needs guidance on how to proceed with this ticket @abroddrick
@abroddrick @h-m-f-t for context, I've been talking with Cloudflare reps + personally researching since there's incompatibilities with how WHOIS is called (via port 43 and server like the example node script) and get.gov (which is generated via HTML, a client-based language). Cloudflare has recommended using RDAP for querying domain data instead (summary: RDAP is a more modern standard expected to replace WHOIS and is built with more robust cross-platform use and data formatting). I'm also leaning towards RDAP after individual research but wanted to check if we have a specific reason for using WHOIS / if other services rely on it.
More than happy for us to implement RDAP to complete this feature, @erinysong.
@abroddrick I added the "blocked" label on this ticket until we make a final decision on how to proceed with this ticket. If we decide to switch to RAD, we should revisit and revise the ticket description and ACs accordingly. Or we can close this ticket and create a new one. cc: @h-m-f-t @katypies
This ticket wasn't meant to restrict how things should be implemented @vickyszuchin, just provide examples of how things may work. That said updating the AC would make sense. @erinysong what are your feelings on the level of difficulty of using RDAP instead? Will you get a returned value that is easy to parse? Lastly, have you tried this locally or been provided examples from those you talk to already to give you a starting base to go off of?
These questions are just to determine if we need to split things out of this ticket. We could go back to having a ticket for just getting and parsing the info we need (nameservers, etc) and then another ticket for making the UI to use it. Testing the first one would be rather difficult though I imagine since we have no real unit tests there and people would need to test by calling what ever functions were created from their local machine.
closing as wont do as this is now covered in #316 and 2589
Story
A WHOIS search feature needs to be added on a new page in get.gov/domains/whois.
Updated Figma
Acceptance Criteria
[x] A new page for WHOIS search is added under /domains
[x] When the user searches a domain that is registered, they are shown WHOIS data.
[x] Certain data points are pulled from the raw data and styled according to the mockup. Registrar info (Name, Security email, Whois server, Status; Dates (Created, Expires, Updated), Name servers (list name servers + IPs inside of parentheses)
[x] User can only search .gov domains. If they search another TLD, like example.com, they are shown the error: "You can only search in domain names that end in .gov"
[x] If user searches domain that isn't registered, they see the blue info alert: " isn't a registered domain"
[x] Below search field, there's a line: "Want to see if a domain is available? Check availability here.
[x] On get.gov/domains/choosing, add a link to the unavailable error message as shown in this figma that links to the whois page
Additional Context
The google doc for content is the source of truth for the content for this page
For devs: You could use a package from online to help with whois as there are a few. However, if you don't find one that's reliable, you could send the whois message and either parse into a json or do string search to find the values that need to display at the top. Then show the full string output for the full whois section. While string search is not great, for a few values it may be reasonable to do if json seems to difficult.
While not many of these node packages for whois are well maintained, you could use their code as examples for writing your own as most are a single file for executing this function.
Note on difficulty, please keep prod team updated if blockers or issues arise that slow this down Below is a 5 mins js function to retreive whois, this is just an example of how to get whois and retrieve the data as string without any third party dependencies. note net comes with node.
You may copy the below code into a .js, such as whois.js file then run "node whois.js" in terminal.
Issue Links
Design ticket: cisagov/manage.get.gov#1221