Skip to content

feat(domains): Simplify regions and automate domain HTTPS - #190

Merged
yuanzui-cf merged 2 commits into
mainfrom
feat/region-domain-onboarding
Sep 11, 2026
Merged

yuanzui-cf merged 2 commits into
mainfrom
feat/region-domain-onboarding

Conversation

@yuanzui-cf

Copy link
Copy Markdown
Member

Summary

Regional CNAME targets no longer require DNS-provider credentials or their own certificates. Administrators configure entry DNS manually; verified customer domains receive their own HTTPS certificates.

  • Add a shared region catalog with existing-region selection and New Region in platform settings and Node configuration. Preserve tags such as hk_1 and hk_frick; allow one entry per existing region.
  • Check custom-domain DNS and ownership immediately, then every 60–120 seconds with persistent scheduling and leases. Keep review, disabled-binding, and entry-readiness gates before automatic issuance.
  • Select Let's Encrypt or ZeroSSL centrally, use the adding user's email, encrypt ZeroSSL EAB credentials, and enable renewal by default. Show DNS errors, certificate retries, and actual installation readiness; retain valid certificates during failed renewals.
  • Keep regions without entries available for Nodes/deployments, while explaining and rejecting unavailable custom-domain ingress choices.
  • Apply breaking migrations 33–34 to backfill regions and onboarding contacts, remove entry certificate/provider state, and restrict managed certificates to customer bindings and HTTP-01. Existing documentation is unchanged as requested.

Validation

  • just quality passed: formatting, Clippy with warnings denied, workspace tests/check/build, Console checks/tests/build, and license checks. Control API: 488 tests passed; Console: 235 tests passed.
  • PostgreSQL disposable-schema integration tests passed for region backfill/references/uniqueness and domain onboarding. Inspected columns, defaults, nullability, foreign keys, indexes, constraints, and migration tracking; exercised up/down/up, DNS mismatch/ownership checks, 60–120 second scheduling, lease recovery, adding-user contacts, certificate idempotency, and encrypted CA settings.
  • Mock ACME issuance, multi-node challenge acknowledgement, certificate withdrawal, and renewal-failure regression tests passed. Console tests cover region creation/selection, Node configuration saving, manual entry forms, unavailable regions, CA settings, and installation/renewal states.
  • git diff --check passed.

Tracking

Closes #189.
Parent capability: #179. Related work: #181.

Known Limitations

  • Public CA issuance was tested against a mock CA, not a live Let's Encrypt or ZeroSSL account. Operators must route public HTTP port 80 and HTTPS port 443 to TLS-enabled regional entry nodes; Cloudflare entry records should use DNS-only mode.
  • Legacy custom bindings without a known project creator must be re-added to capture their contact account. Rollback restores the old schema, not removed entry credentials/certificates.
  • An additional vp exec tsc --noEmit check remains blocked by existing repository type issues, including missing React/Node type declarations. The repository's required Console checks, tests, and production build pass.

Replace regional certificate and DNS-provider management with manual CNAME entries, persistent DNS checks, and platform-managed customer certificates.

Refs #189
@yuanzui-cf yuanzui-cf added this to the 0.1.0 milestone Sep 10, 2026
@yuanzui-cf yuanzui-cf added type: feat New product functionality area: backend Control API and backend domain logic area: frontend Console user interface and browser behavior area: node Build and serve node behavior labels Sep 10, 2026
@yuanzui-cf yuanzui-cf self-assigned this Sep 10, 2026
@yuanzui-cf
yuanzui-cf merged commit 1611029 into main Sep 11, 2026
3 checks passed
@yuanzui-cf
yuanzui-cf deleted the feat/region-domain-onboarding branch September 11, 2026 01:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: backend Control API and backend domain logic area: frontend Console user interface and browser behavior area: node Build and serve node behavior type: feat New product functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Simplify regions and automate custom domain onboarding

1 participant