Änderungsverlauf

Was sich geändert hat.

Änderungen, die tatsächlich im Produkt und auf der Website angekommen sind. Keine Luftnummern, keine Roadmap zum Interpretieren.

Cloudflare Workers, Netlify und acht Sprachen

  • -Verbinde ein Cloudflare-Konto, und CapyDB setzt eine Hyperdrive-Konfiguration vor deine Zelle, bindet sie an dein Worker- oder Pages-Projekt und hält sie aktuell. Die Zugangsdaten bleiben auf Cloudflare-Seite - eine Rotation erreicht deinen Worker also ohne erneutes Deployment.
  • -Hyperdrive-Origins zeigen auf den gepoolten Endpunkt, mit einem Verbindungsbudget passend zu deinem Tarif statt Cloudflares Standardwert - der größer sein kann als das gesamte Verbindungskontingent eines kleinen Tarifs.
  • -Eine erneute Synchronisation ändert jetzt nichts, solange sich nichts geändert hat. Rotationen, Wiederherstellungen und Importe veröffentlichen nicht länger still eine neue Version deines Workers.
  • -Eine CapyDB-Erweiterung für Netlify: ein API-Schlüssel auf Team-Ebene, pro Site eine Datenbank auswählen, und die Connection Strings werden zur Build-Zeit aufgelöst. In den Umgebungsvariablen deiner Site landet nichts außer einem Feature-Flag.
  • -Über den Vercel Marketplace installierte Datenbanken lassen sich zwischen Vercel-Konten übertragen. Zelle, Speicher und Connection Strings wandern mit dem Projekt mit, Deployments laufen also weiter; projektgebundene API-Schlüssel werden widerrufen.
  • -Website und Dashboard sprechen jetzt Englisch, Deutsch, Spanisch, Französisch, Japanisch, Koreanisch, Portugiesisch und Chinesisch. Englische URLs sind unverändert geblieben.
  • -Das Zeitfenster für Point-in-Time-Recovery in der Dokumentation korrigiert: Es sind 7 Tage, nicht die etwa 30, die auf der Notfallwiederherstellungs-Seite standen. Die Wiederherstellung nutzte immer nur Speicher-Checkpoints, 7 Tage waren also stets die richtige Antwort.

Verifiziertes TLS, warme Previews und veröffentlichte Benchmarks

  • -Verbindungs-Strings nutzen jetzt sslmode=verify-full gegen das CapyDB-Stammzertifikat, bestehende Projekte wurden direkt umgestellt - eine Verbindung lässt sich nicht mehr unbemerkt abfangen.
  • -Eine Benchmark-Seite mit vollständiger Methodik und exakten Perzentilen veröffentlicht, gemessen auf Produktionsknoten und über denselben TLS-Proxy, über den jedes Projekt läuft.
  • -Die Kernzahlen: p95 unter einer Millisekunde für eine Query auf warmer Verbindung, 2.301 Transaktionen pro Sekunde bei 32 Clients und 15 ms, um eine neue gepoolte Verbindung zu öffnen und eine Antwort zu bekommen.
  • -Auch die Nachbarschaftszahl veröffentlicht, die die meisten Anbieter verschweigen: mit einer dauerhaft schwer belasteten Zelle auf demselben Knoten behielt eine Zelle 49 % ihres Solo-Durchsatzes. Das ist proportionaler Fair Share, ehrlich gemessen, statt einer ungemessenen Isolationsbehauptung.
  • -capybench als Open Source veröffentlicht - das Werkzeug hinter diesen Zahlen, damit jede und jeder sie gegen uns oder gegen andere nachmessen kann.
  • -Preview-Datenbanken starten jetzt warm - eine Preview zweigt vom Speicher ihrer Eltern-Zelle ab, deshalb lief ihr allererster Full Table Scan in 255 ms, genauso schnell wie ein warmer Scan auf der Eltern-Zelle.
  • -Pausierte Zellen kommen schneller zurück: Das Aufwachen wird aus dem eigenen Verkehrsmuster der Zelle vorhergesehen, und ein einmaliger Massen-Scan drängt den Arbeitsdatensatz nicht mehr aus dem Cache.
  • -Client-Pakete aktualisiert - @capydb/sdk 1.5.0, @capydb/mcp 1.4.1 und @capydb/drizzle 1.6.0.

Postgres 18, vollwertig

  • -capydb.uuidv7() gibt es jetzt auf jeder Zelle und löst auf Postgres 16, 17 und 18 zur passenden Implementierung auf - ein zeitsortierbarer UUID-Default übersteht damit ein Major-Upgrade, statt auf der anderen Seite zu brechen.
  • -Postgres-18-Zellen fahren das neue asynchrone I/O in der Größe ihres Plans, und die Vacuum-Fortschrittsansichten dieser Version stehen zur Einsicht bereit.
  • -Einen Postgres-18-Guide veröffentlicht - zeitsortierbare UUIDs, temporale Constraints, virtuelle generierte Spalten und die Rückgabe der alten Zeile - samt der Frage, wie man sie nutzt, ohne das Schema auf einen Major festzunageln.
  • -capydb doctor hat neue Regeln für die Schema-Entscheidungen, die später am teuersten werden: nicht portable uuidv7()-Defaults und nullable Spalten, die es nicht sein sollten.
  • -Generierte Spalten werden jetzt von der Schema-Introspektion und von capydb generate ausgewiesen, damit die generierten Typen zur Datenbank passen.
  • -Gepoolte Verbindungen sprechen das Wire-Protokoll von Postgres 18.

Index-Advisor und Supabase-RLS-Konvertierung

  • -Einen Index-Advisor ergänzt, der Indizes aus den Queries vorschlägt, die deine Datenbank tatsächlich ausgeführt hat, sortiert nach dem, was sie einsparen würden.
  • -Jeder Kandidat wird als hypothetischer Index gemessen - es wird nichts angelegt und nichts geschrieben -, deshalb ist der Advisor auch gegen Produktion sicher.
  • -Der Advisor steht im Dashboard, in capydb advisor indexes, in der API und als MCP-Tool für Agents bereit.
  • -capydb migrate rls ergänzt: konvertiert Supabase-Row-Level-Security-Policies nach reinem Postgres und berichtet genau, welche Claims deine Anwendung ab jetzt liefern muss.
  • -capyrls als Open Source veröffentlicht - den Konverter dahinter.
  • -Eine Schema-Seite im Dashboard ergänzt, um Tabellen, Spalten, Indizes und Enums der laufenden Datenbank zu durchsuchen.
  • -@capydb/drizzle hat withAuthContext bekommen - ein Pooler-sicherer Weg, Queries unter einer Row-Level-Security-Identität auszuführen.
  • -Alarm-Benachrichtigungen gehen jetzt zusätzlich an die Rechnungs-E-Mail der Organisation, neben Dashboard und Webhooks.

Versions-Upgrades, Webhook-Zustellungen und Repository-Checks

  • -Minor-Upgrades von Postgres liegen jetzt bei dir im Zeitplan - eine pausierte Zelle nimmt eines beim nächsten Aufwachen gratis mit, eine laufende meldet die anstehende Version und startet neu, wenn du es sagst.
  • -Einen Bereitschaftscheck für Major-Versionen ergänzt, der Blocker meldet, bevor irgendetwas gebaut wird - damit ein Major-Upgrade nicht auf halbem Weg scheitert.
  • -Dokumentiert, wie Major-Upgrades hier wirklich ablaufen: eine vollständige Kopie mit Prüffenster, ein Cutover, den du bestätigst, und ein Rollback, das danach verfügbar bleibt.
  • -Webhook-Endpunkte führen jetzt eine Zustellhistorie mit Status pro Versuch, und eine einzelne Zustellung lässt sich erneut ausspielen.
  • -capydb webhooks test ergänzt, um ein signiertes Testereignis an einen Endpunkt zu schicken.
  • -capydb doctor ergänzt: liest ein Repository und markiert Datenbankkonfiguration, die später weh tut - .env-Dateien, die eine Variable auf zwei verschiedene Datenbanken zeigen lassen, unsicher vermischte Migrationswerkzeuge und Treiber auf dem falschen Port.

Postgres 16-18, gepoolte Verbindungen und eine Welle an Entwicklerwerkzeugen

  • -Auswahl der Postgres-Hauptversion ergänzt – Projekte laufen wahlweise auf Postgres 16, 17 oder 18.
  • -Connection Pooling pro Projekt auf Port 6432 ergänzt, mit Poolgrößen passend zum Tarif.
  • -Schema-Introspektion und Typgenerierung ergänzt – capydb generate erzeugt TypeScript-, Zod- oder Drizzle-Definitionen direkt aus dem laufenden Schema.
  • -@capydb/drizzle veröffentlicht: ein Drizzle-ORM-Setup mit pooler-sicheren Voreinstellungen für CapyDB-Verbindungen.
  • -Importe mit nahezu null Ausfallzeit über capydb import --follow ergänzt: Änderungen werden aus der alten Datenbank weiter repliziert, bis du umstellst.
  • -Rotation der Zugangsdaten ohne Ausfallzeit ergänzt – die alten Zugangsdaten funktionieren während einer Übergangsfrist weiter, während du die neuen ausrollst.
  • -Live-Logs und Query-Insights im Dashboard und über capydb logs ergänzt.
  • -Postgres-Extensions werden jetzt automatisch aktualisiert, sichtbar als Plattform-Update-Hinweise im Dashboard.

Pause im Leerlauf, Bestätigung vor Zerstörerischem

  • -Zellen pausieren jetzt, wenn niemand sie abfragt, und kommen bei der nächsten Verbindung in etwa einer Drittelsekunde zurück. Eine untätige Datenbank kostet keine Rechenzeit mehr.
  • -Pausiert und Aufwachend werden überall gemeldet - Dashboard, API und CLI -, damit eine aufwachende Datenbank als aufwachend gelesen wird und nicht als Fehler.
  • -Point-in-Time-Recovery direkt über eine Produktionsdatenbank ergänzt, hinter einer ausdrücklichen Bestätigung.
  • -Zerstörerische Operationen verlangen diese Bestätigung jetzt ausdrücklich: Ein Import, der Daten überschreiben würde, oder das Löschen eines Produktionsprojekts scheitert ohne sie, statt still durchzulaufen.
  • -pg_cron in den Extension-Katalog aufgenommen.
  • -Einen Projekt-Event-Stream und eine Job-Historie ergänzt, damit sich eine lange laufende Operation beobachten statt abfragen lässt.

Ein Postgres pro Zelle

  • -Jede Zelle läuft jetzt als eigenes Postgres mit eigenem Speicher und eigenen CPU- und Speichergrenzen, statt sich einen Server mit anderen Projekten zu teilen.
  • -Verbindungslimits und Arbeitsspeicher kommen aus deinem Plan, nicht aus dem, was die Nachbarn übrig gelassen haben.
  • -Previews und Restores wurden zu Abzweigungen vom Speicher einer Zelle - deshalb entstehen sie schnell, egal wie viele Daten dahinterstehen.
  • -Eine neue Zelle landet nur auf einem Knoten mit Luft, sie zu bedienen, und die Grenzen pro Zelle sorgen dafür, dass der Ausbruch eines Nachbarn nicht den ganzen Knoten nimmt.
  • -Dashboard, API, CLI und der Terraform-Provider sprechen seither eine Sprache: Zellen, auf Knoten, in Regionen.

Extensions, Nutzungswarnungen und eine Welle an Plattformwerkzeugen

  • -Dashboard überarbeitet: Sidebar mit Projektkontext und eine Onboarding-Checkliste in jedem neuen Projekt.
  • -Verwaltung von Postgres-Extensions ergänzt – PostGIS, pgcrypto und weitere kuratierte Extensions pro Projekt aus dem Dashboard aktivieren.
  • -Schwellenwert-Warnungen für Speicher und Verbindungen ergänzt, ausgeliefert im Dashboard, per Webhook (alert.triggered / alert.resolved) und per E-Mail.
  • -Live-Statusseite mit Zustand je Region gestartet.
  • -CLI um eine neue Welle an Befehlen für den laufenden Betrieb erweitert.
  • -@capydb/mcp veröffentlicht, damit KI-Agenten Projekte, Previews und Backups über MCP verwalten können.
  • -Terraform-Provider für deklarative Projekt- und Preview-Verwaltung veröffentlicht.
  • -GitHub Action für Preview-Datenbanken pro Pull Request gehärtet.
  • -Neue Doku zu Connection Pooling, Notfallwiederherstellung, Umstellungen, Compliance und llms.txt veröffentlicht.

API-Schlüssel, Webhooks und Provider-Integrationen

  • -API-Schlüssel mit Scopes ergänzt - je Schlüssel eigene Berechtigungen, Auflistung und Widerruf.
  • -Webhook-Endpunkte mit signierten Ereignissen für Projekt- und Job-Lebenszyklus ergänzt, jeder mit eigenem Secret und Rotation.
  • -Vercel- und Netlify-Integrationen ergänzt, die Verbindungs-Strings in die Umgebung deines Projekts schreiben und nach Rotationen, Restores und Importen neu setzen.
  • -User-Sync-Integrationen für Clerk, Auth0 und Better Auth ergänzt.

Marken- und Marketing-Auffrischung

  • -Öffentliche Website neu positioniert: Managed Postgres ohne Marketing-Sprech.
  • -Texte für Preise, Über uns, Kontakt, Doku und Blog mit schärferer, entwicklernaher Stimme überarbeitet.
  • -Botschaften auf Wegwerf-Datenbanken, direkten Zugriff und klare Produktgrenzen ausgerichtet.

Organisations-Login über Clerk im Dashboard

  • -Backend prüft jetzt Clerk-Sitzungstoken.
  • -Aktive Clerk-Organisationen werden in den Metadaten auf CapyDB-Organisationen abgebildet.
  • -Der globale Admin-Token wird für normale Dashboard-Routen im Frontend nicht mehr benötigt.

Admin-Oberfläche und Organisationseinstellungen

  • -Admin-Oberfläche zum Auflisten und Anlegen von Organisationen und Grid-Knoten ergänzt.
  • -Wechsel zwischen mehreren Organisationen über den Clerk OrganizationSwitcher ergänzt.
  • -Bearbeitung der Abrechnungs-Metadaten, Teamverwaltung und Widerruf von API-Schlüsseln in den Einstellungen ergänzt.

Aufräumen der öffentlichen Website

  • -Platzhalter-Routen für Doku, Blog, Rechtliches, Über uns, Kontakt und Änderungsverlauf durch echte Inhalte ersetzt.
  • -Verweise auf noch nicht ausgelieferte CLI-Funktionen und „bald verfügbar“ von der Marketing-Oberfläche entfernt.