Skip to content

add NeedTexting, 5 templates#1044

Open
JChapman2 wants to merge 1 commit into
Domain-Connect:masterfrom
JChapman2:add-needtexting-templates
Open

add NeedTexting, 5 templates#1044
JChapman2 wants to merge 1 commit into
Domain-Connect:masterfrom
JChapman2:add-needtexting-templates

Conversation

@JChapman2
Copy link
Copy Markdown

Description

Adds five Domain Connect templates so customers can one-click-provision DNS for the NeedTexting product family on Cloudflare and other participating providers.

File Service Records
needtexting.com.needinbox.email.json NeedInbox — sending email MX · SPFM · DKIM · DMARC · return-path A · tracking A (6)
needtexting.com.needpolling.email.json NeedPolling — poll-invite sending MX · SPFM · DKIM · DMARC (4)
needtexting.com.needvotes.site.json NeedVotes — campaign site at custom domain apex A · www CNAME · ownership TXT (3)
needtexting.com.needdonors.site.json NeedDonors — donation page subdomain donate CNAME · ownership TXT (2)
needtexting.com.needwebpage.site.json NeedWebpage — AI-built site at custom domain apex A · www CNAME · ownership TXT (3)

All five share syncPubKeyDomain=needtexting.com. Public-key TXT record lives at _dcsig._domainconnect.needtexting.com in the spec format (p=N,a=RS256,d=<chunk>, two chunks, each ≤255 chars). Local sign/verify roundtrip against the matching private key passes (PKCS#1 v1.5 / SHA-256).

The Cloudflare review (Sami Kerola) flagged the original key format and a logo 404; both fixed before this PR.

Type of change

  • New template

How Has This Been Tested?

  • Template functionality checked using Online Editorpending; will paste links in a follow-up comment
  • Template file name follows the pattern <providerId>.<serviceId>.json
  • resource URL provided with logoUrl is actually served by a webserver — https://needtexting.com/assets/logo-square.png (HTTP 200, 512×512 PNG)

Checklist of common problems

  • syncPubKeyDomain is set on all five templates
  • warnPhishing is not set
  • syncRedirectDomain is set on all five
  • no TXT record contains SPF content — SPFM used
  • txtConflictMatchingMode=Prefix set on DMARC and ownership-verification TXT records
  • no bare-variable record value — DKIM data has fixed prefix v=DKIM1; k=rsa; p=%DKIM_PUBKEY%; ownership-verification TXTs have fixed prefix needvotes-verify=%TOKEN% (etc.)
  • DKIM host uses fixed ._domainkey suffix (%DKIM_SELECTOR%._domainkey); not bare
  • no variable in host field creates a subdomain
  • %host% does not appear explicitly in any host attribute
  • essential=OnApply set on DMARC records (end user may want to tighten/loosen policy without removing the template)

Online Editor test results

To be added in a follow-up comment after running the editor against each template (per AGENTS.md these must come from real test runs, not be fabricated).

Notes

Adds five Domain Connect templates so customers can one-click-provision
DNS for the NeedTexting product family on Cloudflare and other
participating providers.

  - needtexting.com.needinbox.email.json — sending email (MX, SPFM, DKIM, DMARC, return-path A, tracking A)
  - needtexting.com.needpolling.email.json — poll-invite sending (MX, SPFM, DKIM, DMARC)
  - needtexting.com.needvotes.site.json — campaign site at custom domain (apex A, www CNAME, ownership TXT)
  - needtexting.com.needdonors.site.json — donation page subdomain (donate CNAME, ownership TXT)
  - needtexting.com.needwebpage.site.json — AI-built site at custom domain (apex A, www CNAME, ownership TXT)

All five share syncPubKeyDomain=needtexting.com. Public key TXT lives at
_dcsig._domainconnect.needtexting.com in the spec format
(p=N,a=RS256,d=<chunk>, ≤255 chars per chunk, two chunks total). Roundtrip
sign/verify checked locally.

Validated against template.schema (jsonschema Draft7Validator). SPF
records use SPFM. DMARC records carry txtConflictMatchingMode=Prefix and
essential=OnApply so end users can adjust policy. DKIM records use a
fixed v=DKIM1; k=rsa; p= prefix on the data field.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added 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 27, 2026
@github-actions
Copy link
Copy Markdown

PR Description Check Failed

The PR description is missing required elements. Please update it according to the PR template.

Details
  OK  Type of change: 1/1 checkboxes ticked
  OK  Checklist of common problems: 10/10 checkboxes ticked

Labels to add: PR description incomplete, Test links missing
Labels to remove: Checklist of common problems not complete, Forged editor links

PR description check FAILED:
  FAIL  'How Has This Been Tested?': 1/3 checkboxes are not ticked
  FAIL  'Online Editor test results': no valid editor test link found
  FAIL  Template coverage: needtexting.com.needdonors.site.json: no editor test link found (expected template id 'needtexting.com.needdonors.site')
  FAIL  Template coverage: needtexting.com.needinbox.email.json: no editor test link found (expected template id 'needtexting.com.needinbox.email')
  FAIL  Template coverage: needtexting.com.needpolling.email.json: no editor test link found (expected template id 'needtexting.com.needpolling.email')
  FAIL  Template coverage: needtexting.com.needvotes.site.json: no editor test link found (expected template id 'needtexting.com.needvotes.site')
  FAIL  Template coverage: needtexting.com.needwebpage.site.json: no editor test link found (expected template id 'needtexting.com.needwebpage.site')

@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

needtexting.com.needdonors.site.json

Level Code Note
info DCTL1021 missing from iana definitions

needtexting.com.needinbox.email.json

Level Code Note

needtexting.com.needpolling.email.json

Level Code Note

needtexting.com.needvotes.site.json

Level Code Note
info DCTL1021 missing from iana definitions

needtexting.com.needwebpage.site.json

Level Code Note
info DCTL1021 missing from iana definitions

@JChapman2
Copy link
Copy Markdown
Author

Online Editor test results

All five templates tested through the Online Editor using morbidmonkeyproductions.com/@ as the test domain, with sample variable values (DKIM_SELECTOR=postal, DKIM_PUBKEY=<sample>, ownership tokens populated). Each "Check template" + "Test apply template" passed cleanly.

cc @kerolasa per the email thread.

@pawel-kow
Copy link
Copy Markdown
Member

Online Editor test results

All five templates tested through the Online Editor using morbidmonkeyproductions.com/@ as the test domain, with sample variable values (DKIM_SELECTOR=postal, DKIM_PUBKEY=<sample>, ownership tokens populated). Each "Check template" + "Test apply template" passed cleanly.

This is cool. Please put the links in the proper section of PR description so that the checks pass cleanly.

@pawel-kow pawel-kow enabled auto-merge April 28, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants