What is Domain Connect?
Historically a Service Provider would first ask the user for a domain name. The Service Provider would then try to figure out the company providing DNS, typically by querying the top-level-domain (the TLD) for the nameservers for the domain. The TLD for godaddy.com is .com. Based on a hard-coded table, the Service Provider would then give instructions to the user telling them how to set up DNS. This might involve screenshots, videos, or simple instructions.
This is a complex operation for users and they often get lost or confused, resulting in a bad user experience. This often leads to higher support costs for both the Service and DNS Providers. And ironically the more help the Service Provider gives the user, the more likely things go off the rails if and when the DNS Provider updates their interface. Domain Connect solves this problem for the user. The protocol has two components.
The first is in the “discovery” stage of the protocol. Having a hard-coded table of nameservers to determine the DNS Provider is error-prone. So instead of doing a query to the TLD for the nameserver, the Service Provider can query the _domainconnect TXT record directly from DNS for the domain and determine the DNS Provider.
The second component makes the changes to DNS. For this, the Service Provider will have first onboarded a template of changes to enable their service with the DNS Provider. Now when the user types their domain name, the Service Provider links to the DNS Provider providing (amongst other data) the domain name, the template, and any other settings. The DNS Provider signs the user in, verifies the user owns the domain name, confirms the change with the user, and makes changes to DNS by applying the template.
How does the “discovery” stage look like in examples?
For instance, if you look up a TXT records of domain weathernyc.nyc, you will find a TXT record wich contain DNS Provider endpointdig _domainconnect.weathernyc.nyc TXT #RESULT: _domainconnect.weathernyc.nyc. 3600 IN TXT "domainconnect.api.godaddy.com"After you get the URL of DNS Provider, let's try to get more information and
curl --location --request GET 'https://domainconnect.api.godaddy.com/v2/weathernyc.nyc/settings' #RESULT: { "providerName": "GoDaddy", "urlControlPanel": "https://dcc.godaddy.com/manage/dns", "nameServers": [ "ns63.domaincontrol.com", "ns64.domaincontrol.com" ], "urlSyncUX": "https://dcc.godaddy.com/manage", "providerId": "godaddy.com", "urlAsyncUX": "https://dcc.godaddy.com/manage", "providerDisplayName": "GoDaddy", "urlAPI": "https://domainconnect.api.godaddy.com" }
After that, you can take urlSyncUX URL and send a request for applying your
Bonus
I wrote the PHP library which can help you create the correct URL for applying any Domain Connect templates.
PHP Domain Connect Extension -