DNS: allow automatic DNS that publishes no records #306

Merged
jcoffey-dev merged 1 commits from fix/dns-01-without-records-304 into main 2026-11-06 22:29:29 +00:00
Owner

Fixes #304.

DNS-01 orders take their DNS server from the domain's automatic DNS settings, and those wouldn't save with an empty list of record types. A domain that only needed DNS for certificates had to publish a record type it didn't want.

  • Validation and schema: publishRecords may now be empty. The served schema drops minItems: 1, so the console's domain form allows it too, and the field's description says to leave it empty for a domain that only needs DNS-01.
  • No task that can only fail: saving a domain with nothing to publish and no certificate to order afterwards no longer queues a DNS task that ends as "No DNS records to update". This also covered domains whose only record type is DKIM, which publishes its own keys.

Tests (automation::automation_tests against Pebble, all parts pass):

  • cert-only.org: empty list, DNS-01 provider, gets its certificate.
  • no-records.org: empty list, manual certificates, no DNS task queued.

With the minimum put back, creating cert-only.org is refused (publishRecords). With the task queued regardless, the second test fails. Fork checks pass.

Console wizard and docs follow in separate PRs.

Fixes #304. DNS-01 orders take their DNS server from the domain's automatic DNS settings, and those wouldn't save with an empty list of record types. A domain that only needed DNS for certificates had to publish a record type it didn't want. - **Validation and schema:** `publishRecords` may now be empty. The served schema drops `minItems: 1`, so the console's domain form allows it too, and the field's description says to leave it empty for a domain that only needs DNS-01. - **No task that can only fail:** saving a domain with nothing to publish and no certificate to order afterwards no longer queues a DNS task that ends as "No DNS records to update". This also covered domains whose only record type is DKIM, which publishes its own keys. **Tests** (`automation::automation_tests` against Pebble, all parts pass): - `cert-only.org`: empty list, DNS-01 provider, gets its certificate. - `no-records.org`: empty list, manual certificates, no DNS task queued. With the minimum put back, creating `cert-only.org` is refused (`publishRecords`). With the task queued regardless, the second test fails. Fork checks pass. Console wizard and docs follow in separate PRs.
jcoffey-dev added 1 commit 2026-11-06 22:04:44 +00:00
DNS: allow automatic DNS that publishes no records
ci / fork-checks (pull_request) Skipped
ci / build (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 11m7s
9285788a5e
DNS-01 orders take their DNS server from the domain's automatic DNS
settings, and those wouldn't save with an empty list of record types,
so a domain that only needed DNS for certificates had to publish a
record it didn't want (#304). The list may now be empty, in the
validation and in the served schema, whose description says when to
leave it so.

Saving a domain with nothing to publish and no certificate to order
afterwards no longer queues a DNS task that can only end as a failure.

Fixes #304
jcoffey-dev merged commit 653155f12a into main 2026-11-06 22:29:29 +00:00
jcoffey-dev deleted branch fix/dns-01-without-records-304 2026-11-06 22:29:29 +00:00
Sign in to join this conversation.