Skip to content

Epic: ACME DNS-01 provider coverage — registry refactor + curated providers #77

Description

@mhenrixon

Tracking epic for ACME DNS-01 provider coverage in dash-proxy. Split out of the R1–R5 roadmap epic (zoolutions/kamal#13) because it is a distinct concern: R1–R7 is proxy features and the gem flag surface that exposes them, this is credential plumbing for certificate issuance.

Goal: an operator on a mainstream registrar can get a wildcard certificate without patching the proxy, and adding provider number thirteen is a one-line table entry rather than a seven-file change.

Why now

internal/server/acme/providers/factory.go supports eight providers, all US/global hosts. Each one is spread across five edit sites — the lego import, a ProviderInfo entry, a NewProvider switch case, a bespoke newXProvider() credential check, and two separately-maintained ordered lists (autoDetectProvider's providerOrder and DetectProviderName's checks). Those two lists must agree and nothing asserts that they do.

So the refactor comes first and everything else is cheap after it.

Order

Strictly sequential for the first two; the provider batches are independent of each other once the registry exists.

Doing #75 second means the two provider batches get the README drift check for free instead of hand-editing a 20-row table twice.

Coverage after this epic

8 providers today → 21. Verified present in the pinned lego v4.30.1:

cloudflare route53 digitalocean gcloud namecheap godaddy hetzner vultr — today
loopia ovh gandiv5 netcup njalla desec — European batch
dnsimple linode porkbun bunny azuredns alidns — remaining batch

Curated rather than all ~150 of lego's: each provider pulls its SDK into the binary, and the credential metadata has to be honest per provider. Both batch issues require recording the go build size delta so the curated-vs-everything tradeoff stays evidence-backed rather than assumed.

Not in scope

Release

This epic does not gate the proxy v1.0.0.0 release. The registry refactor is behaviour-preserving and the provider batches are additive, so they can land before or after the tag. If they land after, they ship in the next fork counter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicTracking epicproxydash-proxy (Go) work

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions