CluPilotCloud/app/Support
nexxo 200df30b9d Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar
Die alte Hetzner-DNS-API ist abgeschaltet (301 auf die Weboberflaeche).
Jede Bereitstellung starb in ConfigureDnsAndTls, nachdem der Kunde bezahlt
hatte. HttpHetznerDnsClient und DnsTokenCheck sprechen jetzt die Cloud-API:
Bearer statt Auth-API-Token, RRSets ueber {name}/{typ} statt Record-IDs, der
Zonen-Lookup entfaellt. Gegen das Live-Konto gemessen, nicht geraten.

Drei Fallen, die am Konto gemessen wurden: TXT-Werte muessen in
Anfuehrungszeichen (sonst 422, was als read_only gemeldet worden waere), ein
Name mit Zonensuffix wird STILL angenommen (201), und der Fake gab andere IDs
aus als der echte Client -- zwoelf Tests waren gruen ueber einem Abbau, der im
Betrieb geworfen haette.

Bereitschaftspunkte, die nur eine Shell beheben konnte, sind jetzt bedienbar:
SSH-Schluesselpaar erzeugen (Ed25519 ueber phpseclib, privater Teil direkt in
den Tresor), Stripe-Katalog abgleichen (Warteschlange, Trockenlauf, Ausgabe
wortgleich), Mailzustellung als Schalter statt MAIL_MAILER, Neustart der
Arbeiterprozesse. Stripe hat jetzt alle drei Werte in der Konsole: Secret Key,
Signatur-Secret (Tresor, je Modus getrennt) und Publishable Key (Klartext).

Codex-Review (R15), zwei P1 behoben: der Signaturschluessel faellt nicht mehr
vom Live- in den Testplatz, und eine Record-ID aus der alten API macht einen
Host nicht mehr unloeschbar -- was adressierbar ist, wandelt eine Migration um,
der Rest wird beim Loeschen laut uebergangen statt geworfen.

2109 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 19:50:01 +02:00
..
Readiness Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
AdminArea.php Let the console keep its recovery hostnames without breaking route caching 2026-07-27 06:20:44 +02:00
Bytes.php feat(traffic): meter the monthly allowance, show it, throttle instead of blocking 2026-07-25 23:33:47 +02:00
CompanyProfile.php Quote what a person pays, and tab the settings page 2026-07-29 19:18:10 +02:00
HostEnrolment.php Give the operator one line to copy and three steps around it 2026-07-30 20:40:19 +02:00
HostTakeoverCommand.php Give the downloads a hostname of their own, with two halves 2026-07-30 21:37:47 +02:00
KnownHostnames.php Keep IP addresses out of a certificate overview 2026-07-31 01:01:47 +02:00
LocalTime.php Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
MailDelivery.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
Money.php Make the console's access list reach the proxy, price in euros, and answer errors 2026-07-27 06:51:05 +02:00
Navigation.php Put the page in the navigation, and stop files. handing out the portal 2026-07-30 23:21:15 +02:00
NextcloudOcc.php Fix nine defects in the provisioning pipelines 2026-07-30 01:34:55 +02:00
OfficialDomains.php Always name the host we are being served from, and stop promising a duration 2026-07-29 17:10:06 +02:00
OperatingMode.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
ProvisioningSettings.php Read the support mailbox into the console 2026-07-29 21:41:29 +02:00
Readiness.php Notice when nobody is picking up the queue 2026-07-30 14:32:09 +02:00
Settings.php Close the data-loss paths the review found in the mailbox takeover 2026-07-28 01:15:50 +02:00
StripeCatalogueMode.php Never tell anyone to delete a catalogue their contracts bill on 2026-07-30 17:30:56 +02:00
StripePublishableKey.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00
StripeWebhookSecret.php Hetzner-Cloud-DNS, Bereitschaftsseite aus sich heraus behebbar 2026-07-31 19:50:01 +02:00