Skip to content

Add FieldPlan templates: site-hosting and site-hosting-subdomain#1050

Open
dmitrigrabov wants to merge 1 commit into
Domain-Connect:masterfrom
dmitrigrabov:add-fieldplan-templates
Open

Add FieldPlan templates: site-hosting and site-hosting-subdomain#1050
dmitrigrabov wants to merge 1 commit into
Domain-Connect:masterfrom
dmitrigrabov:add-fieldplan-templates

Conversation

@dmitrigrabov
Copy link
Copy Markdown

Description

Add two FieldPlan templates for connecting a customer's domain to a hosted FieldPlan website:

  • fieldplan.ai.site-hosting.json (apex+www): APEXCNAME at apex + CNAME www route the customer's domain to a Cloudflare-for-SaaS host (<siteId>.fieldplan.site); two _cf-custom-hostname and two _acme-challenge TXTs cover Cloudflare ownership and Let's Encrypt DNS-01 ACME validation for both names.
  • fieldplan.ai.site-hosting-subdomain.json (hostRequired: true): same shape minus the www records, applied at a customer-supplied sub-host.

FieldPlan (https://fieldplan.ai) is a chatbot-driven website editor. The five (apex+www) / three (subdomain) template variables are minted at apply time by FieldPlan when the customer adds their domain in the editor.

Verification key published at _dck1.fieldplan.ai.

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
  • resource URL provided with logoUrl is actually served by a webserver

Checklist of common problems

  • syncPubKeyDomain is set
  • warnPhishing is not set alongside syncPubKeyDomain
  • syncRedirectDomain is set whenever the template uses redirect_uri in the synchronous flow — N/A: neither template uses redirect_uri in records.
  • no TXT record contains SPF content
  • txtConflictMatchingMode is set on every TXT record that must be unique per label or content prefix — N/A: each TXT record (_cf-custom-hostname, _acme-challenge) is per-host and reset per Custom Hostname; conflict matching is not applicable.
  • no variable is used as a bare full record value — Justification: the four TXT records (two _cf-custom-hostname, two _acme-challenge) carry opaque tokens minted by Cloudflare and Let's Encrypt respectively. Both verifiers compare the token byte-for-byte against the value they generated; service-prefix wrapping (e.g. fieldplan-token=%cfacme_apex%) would cause Let's Encrypt's DNS-01 challenge and Cloudflare's hostname ownership check to both fail, and would be unique to FieldPlan with no upstream contract permitting it.
  • no bare variable is used as the full host label
  • no variable is used in the host field to create a subdomain — uses the host parameter (subdomain template has hostRequired: true).
  • %host% does not appear explicitly in any host attribute
  • essential is set to OnApply on records the end user may need to modify or remove without breaking the template — N/A: removing any of these records breaks the customer's site (the CNAME) or its SSL certificate (the TXTs); none should be modified by the end user.

Online Editor test results

Editor test link(s):

…domain

FieldPlan (https://fieldplan.ai) is a chatbot-driven website editor where
customers attach their own domain to a generated site. These two templates
publish the DNS records the customer's Cloudflare-for-SaaS Custom Hostname
configuration requires:

- apex+www variant: APEXCNAME @ + CNAME www → site.fieldplan.site, plus
  Cloudflare ownership and Let's Encrypt ACME-DNS-01 TXT records for both.
- subdomain variant (hostRequired): CNAME @ → site.fieldplan.site plus the
  same TXT pair, applied at the customer-supplied sub-host.

Public verification key published at _dck1.fieldplan.ai.
@github-actions github-actions Bot added Test links missing No test links from Online Editor provided hostRequired hostRequired is set labels Apr 28, 2026
@github-actions
Copy link
Copy Markdown

JSON Filename Check Passed

@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  How Has This Been Tested?: all 3 checkboxes ticked
  OK  Checklist of common problems: 9/10 checkboxes ticked
  OK  Online Editor test results: 2 link(s) found

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

PR description check FAILED:
  FAIL  Template coverage: fieldplan.ai.site-hosting.json: missing a test WITH host

@github-actions
Copy link
Copy Markdown

JSON Schema Validation Passed

@github-actions
Copy link
Copy Markdown

Linter OK

fieldplan.ai.site-hosting-subdomain.json

Level Code Note
info DCTL1021 missing from iana definitions

fieldplan.ai.site-hosting.json

Level Code Note
info DCTL1038 APEXCNAME and REDIRxxx records are not widely supported
info DCTL1021 missing from iana definitions
info DCTL1021 missing from iana definitions

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

Labels

hostRequired hostRequired is set Test links missing No test links from Online Editor provided

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant