Skip to content

Add Traaaction service provider — affiliate tracking CNAME template#1060

Open
Whiskerweb wants to merge 1 commit into
Domain-Connect:masterfrom
Whiskerweb:add-traaaction-cname-template
Open

Add Traaaction service provider — affiliate tracking CNAME template#1060
Whiskerweb wants to merge 1 commit into
Domain-Connect:masterfrom
Whiskerweb:add-traaaction-cname-template

Conversation

@Whiskerweb
Copy link
Copy Markdown

@Whiskerweb Whiskerweb commented Apr 30, 2026

Description

Adds a sync template for Traaaction (https://traaaction.com), a SaaS that lets startups run their own affiliate-tracking program with a custom-branded subdomain on their customers' / partners' own domains.

The template provisions a single CNAME (%track%cname.traaaction.com) on the customer's zone so affiliate links resolve under the customer's own domain — enabling first-party click tracking and ad-blocker-resistant short links.

This PR is part of the Cloudflare Domain Connect onboarding (step 1 per https://developers.cloudflare.com/dns/reference/domain-connect/).

Type of change

  • New template

How Has This Been Tested?

  • Template functionality checked using Online Editor
  • Template file name follows the pattern <providerId>.<serviceId>.json (traaaction.com.cname.json)
  • resource URL provided with logoUrl is actually served by a webserver — no logoUrl set in this template; will be added once we provide a hosted SVG to Cloudflare separately.

The signature flow has additionally been tested end-to-end against our private/public key pair (dig txt dc.traaaction.com reconstructs to a valid RSA-2048 public key with e=65537). HTTP-served template returns the JSON from this PR byte-identically.

Checklist of common problems

  • syncPubKeyDomain is set (traaaction.com) — TXT records published at dc.traaaction.com.
  • warnPhishing is not set alongside syncPubKeyDomain.
  • syncRedirectDomain is set (traaaction.com) — sync flow uses redirect_uri for the post-apply callback.
  • no TXT record contains SPF content — only one CNAME record in this template.
  • txtConflictMatchingMode — N/A, no TXT records.
  • no variable used as a bare full record value — N/A, no TXT records.
  • no bare variable used as the full host label — %track% IS the only host component, intentionally. Justification: the entire purpose of this template is to provision a customer-chosen tracking subdomain (<chosen>.<root>cname.traaaction.com); the customer must pick the prefix label themselves, so the host must be a single user-supplied variable. The associated linter info DCTL1037 (advising apex/empty host with hostRequired=true) does not apply here — our template is not a delegation template, it's a single-prefix CNAME provisioning template, and hostRequired=true is set precisely to force the customer to supply the prefix rather than defaulting to apex (which would clobber their MX/email).
  • no variable used in the host field to create a subdomain — %track% is the entire host, not a substring forming a subdomain prefix; the customer picks the literal prefix label.
  • %host% does not appear explicitly in any host attribute.
  • essential is not set — N/A, no records the user would safely modify or remove independently of the service.

Online Editor test results

Editor test link(s):

Test traaaction.com/cname example.com/track

Per the editor template comment, the apex test is not required when hostRequired=true (which is the case here). Only the subdomain test (host=track) is shown above.

Adds a sync template for Traaaction (https://traaaction.com), a SaaS that lets
startups run their own affiliate tracking program. The template provisions a
single CNAME (`%track%` → `cname.traaaction.com`) on the customer's zone so
their affiliate links resolve under their own domain (first-party tracking +
custom-branded short links).

- Public key (DNS): dig txt dc.traaaction.com
- Service URL: https://traaaction.com
- Contact: contact@traaaction.com
@github-actions github-actions Bot added hostRequired hostRequired is set 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 Apr 30, 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

traaaction.com.cname.json

Level Code Note
info DCTL1039 all records use the same variable as suffix, consider using host parameter instead
info DCTL1037 hostRequired template should be combined with NS or CNAME record that uses host @ or empty

@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 May 3, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 3, 2026

PR Description Check Passed

All required sections are filled in correctly.

Details
  OK  Type of change: 1/1 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

Comment thread traaaction.com.cname.json
"records": [
{
"type": "CNAME",
"host": "%track%",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test link posted has an empty %track% variable. What is the purpose of this variable if hostRequired is defined anyway? Why the whole host cannot be posted with host parameter?

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

Labels

hostRequired hostRequired is set question

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants