Below is information to get started as a Service Provider or a DNS Provider. If you need more help, reach us on the Slack channel. The community is more than willing to help.
Oh, and don't forget to give us your logo so we can list it on this website.
To start as a service provider you'll need to define and publish your template.
As a protocol, Domain Connect has a synchronous flow and an asynchronous flow. It is highly recommended that people new to Domain Connect start with the synchronous flow.
It is easier to implement and understand, and since a very limited number of DNS Providers support the asynchronous flow you'll get more coverage.
The first step is to define and publish your template. The best approach is to copy and edit one of the existing templates. Pick a service similar to yours.
View TemplatesFor the details of the template, refer to the Domain Connect Objects and Templates section of the Specification. You can also use the template editor to create and validate your template interactively.
acme.com.hosting.json.For a comprehensive guide to template authoring — including naming conventions, variable usage, record types, and common pitfalls — refer to the Templates repository README.
For security purposes, it is highly recommended that synchronously applied templates with certain variables be digitally signed by the service provider. To facilitate the testing of digital signatures on a template, there are tools available to test and verify signatures.
Test SignaturesOnce your template is defined and published on GitHub, you'll need to onboard your template with the different DNS Providers. At the moment, this is done by contacting them. Contact information can be found on the DNS Provider page.
Some DNS Providers may require contractual terms and further template review before publishing your template.
After your template is live with one of the DNS Providers, you'll need to implement Domain Connect into your flow. Fortunately there is an example implementation available.
To get started as a DNS Provider, you'll need to implement the various endpoints of the Domain Connect protocol. This includes the methods for discovery, signing the user in and gaining consent, and applying templates.
It is recommended that a DNS Provider new to the protocol start with the synchronous flow, potentially adding asynchronous OAuth at a later time.
DNS Providers need to support the discovery protocol. This means responding to the _domainconnect TXT records in the relevant zones, implementing the API to return the JSON structure with the endpoints for the DNS Provider, and supporting the API to query if templates are supported.
These are all unauthenticated endpoints or APIs.
The user will ultimately link to the DNS Provider UX. This UX will need to sign the user in, verify domain ownership, display any conflicting DNS data, and gain consent from the user.
At this point if part of an asynchronous flow, the OAuth response would be generated. For the synchronous flow the DNS changes would be applied directly.
Applying the changes to the zone file is a bit complex. Variables need to be resolved, conflicts detected, records added, records deleted, and even some records merged.
To aid with this a library is provided that will take the contents of a zone file, a template, and variable values and return the set of changes required to the underlying zone.
View LibraryThe DNS Provider needs to format the data properly before calling this library, and process the changes based on the output, but the tricky work is handled for the DNS Provider.
To test a DNS Provider implementation it is recommended that the DNS Provider onboard exampleservice.domainconnect.org.template1.json and exampleservice.domainconnect.org.template2.json.
With a compliant implementation synchronous application of these two templates should work with no modifications. If the DNS Provider wishes to test their asynchronous implementation, please ask in the Slack channel and we'll onboard the example service as an OAuth partner.
Once your implementation is done you may want to onboard as many Service Providers as possible. Some of them will work out of the box after you onboard their template, some others would need to be contacted to enable your provider or to onboard an OAuth client.
At the moment, this is done by contacting them. Contact information can be found on the Service Provider page.
View TemplatesJoin our community on Slack. We're here to help you succeed with Domain Connect.