CluPilotCloud/app/Support
nexxo d4f534fbbb Interne Pakete gehören nicht nach Stripe
stripe:sync-catalogue überspringt jetzt jede Familie mit internal = true —
weder Produkt noch Preis, im Trockenlauf wie im echten Lauf, und zwar bevor
irgendetwas über sie gelesen oder geschrieben wird. Ein Stripe-Preis lässt
sich nicht löschen, nur archivieren, und ein Paket, das nie über Stripe
abgerechnet wird, gehört deshalb nicht ins Konto. Eine Familie, die bereits
Stripe-IDs trägt (verkäuflich war, jetzt intern ist, wie Enterprise), bleibt
unangetastet: nichts wird gelöscht oder ersetzt, es kommt nur nichts Neues
mehr hinzu.

BillingChecks::billing.catalogue_synced bekam dieselbe Ausnahme — sonst wäre
die Bereitschaftsseite durch genau diese Änderung dauerhaft rot geworden,
weil das interne Testpaket und Enterprise veröffentlicht und sales_enabled
sind, ihre Preise aber nie synchronisiert werden.

AddonPrices, SyncStripeAddonItems, stripe:reprice-subscriptions und
stripe:sweep-orphan-prices wurden geprüft: alle vier sind bereits sicher,
weil ein verschenkter Vertrag nie ein stripe_subscription_id trägt und die
anderen beiden Befehle nur über vorhandene Stripe-Objekte laufen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 18:31:37 +02:00
..
Readiness Interne Pakete gehören nicht nach Stripe 2026-08-01 18:31:37 +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 Release v1.3.85 — Handshake-Prüfung hing an einem Programm, das es nicht gibt 2026-08-01 03:00:19 +02:00
HostName.php Fix-Runde 2: Warnung fuer nicht reparierte Hosts, case-sichere Vorabpruefung, wiederholbare Migration 2026-08-01 14:52:15 +02:00
HostTakeoverCommand.php Hostnamen vergibt CluPilot: ein Name statt zweier, und der Zaehler ueberlebt das Loeschen 2026-08-01 13:45:43 +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 Zahlungsprobleme: geplatzte Kaeufe aufzeichnen, beide Arten an einer Stelle 2026-07-31 21:58:52 +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
PasswordPolicy.php Passwortrichtlinie einstellbar, doppelte Anmelde-Mail behoben 2026-07-31 20:53:19 +02:00
ProvisioningSettings.php Read the support mailbox into the console 2026-07-29 21:41:29 +02:00
PveVersion.php Release v1.3.91 — die Host-Seite zeigt Last statt Ausstattung 2026-08-01 10:24:21 +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