Skip to content

Add relaydns.dev.relay-connect template - #1642

Open
endibuka wants to merge 1 commit into
Domain-Connect:masterfrom
endibuka:add-relaydns-relay-connect
Open

Add relaydns.dev.relay-connect template#1642
endibuka wants to merge 1 commit into
Domain-Connect:masterfrom
endibuka:add-relaydns-relay-connect

Conversation

@endibuka

@endibuka endibuka commented Aug 22, 2026

Copy link
Copy Markdown

Description

New template for RelayDNS. It points a customer-supplied subdomain at a RelayDNS
relay host and adds the verification TXT record for that setup, so an end user can
connect a domain without editing DNS by hand.

Type of change

  • New template
  • Bug fix (non-breaking change which fixes an issue in the template)
  • New feature (non-breaking change which adds functionality to the template)
  • Breaking change (fix or feature that would cause existing template behavior to be not backward compatible)

How Has This Been Tested?

Please mark the following checks done

  • Template functionality checked using Online Editor
  • Template file name follows the pattern <providerId>.<serviceId>.json
  • resource URL provided with logoUrl is actually served by a webserver

Checklist of common problems

  • syncPubKeyDomain is set — this is mandatory
  • warnPhishing is not set alongside syncPubKeyDomain
  • syncRedirectDomain is set whenever the template uses redirect_uri
  • no TXT record contains SPF content
  • txtConflictMatchingMode is set on every TXT record that must be unique
  • no variable is used as a bare full record value — justified below
  • no bare variable is used as the full host label
  • no variable is used in the host field to create a subdomain
  • %host% does not appear explicitly in any host attribute
  • essential is set to OnApply on records the end user may need to modify — see note below

Justification — bare variable as a full record value.
The CNAME uses "pointsTo": "%target%". A CNAME's value is by definition a complete
hostname, so unlike a TXT record there is no fixed prefix available to scope it with;
service-foo=%foo% has no CNAME equivalent. The variable is constrained on our side
instead: the service only ever emits relay hostnames we operate, and every apply URL
is RSA-SHA256 signed against the key published at _dcpubkeyv1.relaydns.dev, so a
third party cannot substitute a target of their own.

Note — essential.
Deliberately not set. Neither record is user-modifiable: removing or editing either
breaks the setup rather than degrading it, so OnApply would misrepresent them.

Note — hostRequired.
Set to true. The template places a CNAME at host: "@", and a CNAME on a zone apex
is invalid DNS, so a host must be supplied at apply time. Verified in the editor: an
apply with no host is refused with "Template requires a host name". Per the exception
in the PR template, no apex test link is included.

Note — linter DCTL1031 (shared groupId).
Intentional. Both records carry groupId: "relay" because they are meaningless
apart — a CNAME without its verification TXT produces a domain that is configured
but can never be verified. They must be applied together, not offered as independent
options.

Online Editor test results

Editor test link(s):
https://domainconnect.paulonet.eu/dc/free/templateedit?token=H4sIAMh7iWoC%2F%2B1UXW%2FbOgz9K4KAPsX27HRNGwMD9pE97N7brusybENRBIrF2FodyVei03hF%2F%2FsoOx%2FOWux5A%2FZmieTxOeSh7jnCsioFAk%2FveWXNSkmw7yRPuYVSNFK7SMKKB7vYhVhSLr%2Fy0cnFR4o4sCuVwb4ozIzWkOE%2Btil6090zwaRZCqUZGtYDWoF1ymieJgEvjMMr%2BL9WFggXbQ0BL01uPtmSgArEyqXPnvU57g6hzwuNDkuVFxi5VU7YElxmVYUtPr80SqMjHlnt0CzBMlfPN5wE7jgxoSUTUjqGBTCipxYqEx6DWciMlWxhLMWoxAHWVeRFCKvEvITJwQ9R2BwwbXF26C1h5pVq6g%2FFlOvxcIWpS8kqT5VIBQyiPOpqor7uiLp4C7rDrsCGLZVDtm1GwApYB0w5V4NkdwXotsQzceB85ynGMgvkBumluEZnl%2FX8X2gmLaXHpvAZr0uT3fJ0IUoH3c0VSBpbhrsqUakDysFPMF0zHU%2Bv7zk2VWuVi1fnbymUW1NXe2vxzhl0fOk92Y5xauh41HX4iG4RySLHozh%2BCHZw0y%2FTX4HNtoS8UwSKntKwbWTz4qjt4QE%2Bfa6RPL0oVYbnArNC6fzcSP%2FDSwsLteZPpmxij%2F%2FBH24eAv7daJjtW3JDlLaNvC0bG5VK3%2B6p52YrbKa2%2BZWwYun8Rm8rr3ulN9vaa19Mp651%2FrxZ3INhtRleu09wKtcgERyeno25Z0sXxsLMBwTWFrbLuqxLVDNxJ%2FZXMpuJqiobEucoSniP5627l6JVtZnEk6QOxjCTmRer%2FGSz58NFvEhG4WmSnIbPR%2BNReJYMk3CUxPPk%2BPhkvIjnvefsqafuVw9av%2Bu0NKBRCf8ivSrvROP4wyPPbQTtHBb1pf1sgMP2%2FrYabwJy2d%2FZ%2FZmzo3V2YgVyJnziMB6OwvgsHA6nSUx005NRdHw6PInHgzhO49gLIUmd5nva9%2F6m86%2BT9ZtPg8t1%2Ffod6sH424dmfP4fzicCzUBPC1VN%2Fnl%2FN%2FiM7wc5PW4%2FAFUM6jRtCAAA

This JSON file defines the configuration for the RelayDNS service, including provider details, service information, and DNS records.
@github-actions github-actions Bot added Checklist of common problems not complete See PR template and mark *all* checkboxes, even if not applicable. Explain any discrepancies. hostRequired hostRequired is set PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. Test links missing No test links from Online Editor provided labels Aug 22, 2026
@github-actions

Copy link
Copy Markdown

JSON Filename Check Passed

@github-actions

Copy link
Copy Markdown

JSON Schema Validation Passed

@github-actions

Copy link
Copy Markdown

Linter OK

relaydns.dev.relay-connect.json

Level Code Note
info DCTL1021 missing from iana definitions
info DCTL1031 all record groupId values are the same

@github-actions github-actions Bot removed Checklist of common problems not complete See PR template and mark *all* checkboxes, even if not applicable. Explain any discrepancies. PR description incomplete The PR description template was not filled in at all, altered or filled in improperly. Test links missing No test links from Online Editor provided labels Aug 22, 2026
@github-actions

Copy link
Copy Markdown

PR Description Check Passed

All required sections are filled in correctly.

Details
  OK  Type of change: 1/4 checkboxes ticked
  OK  How Has This Been Tested?: all 3 checkboxes ticked
  OK  Checklist of common problems: 10/10 checkboxes ticked
  OK  Online Editor test results: 1 link(s) found
  OK  Template coverage: all 1 template(s) covered
Labels to remove: Checklist of common problems not complete, Forged editor links, PR description incomplete, Test links missing

PR description check PASSED

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hostRequired hostRequired is set

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant