Backup-Engine mit Zugangsdaten per Opt-in
“Backups mit nativem gzip — und ohne versehentlich Passwörter zu exportieren.”
Kompakte Dumps, standardmäßig sicher — niemand exportiert versehentlich Passwort-Hashes.
Erzeugt .sql mit Optionen für Drop-before, Daten einbeziehen, Benutzer einbeziehen, Benutzer-Zugangsdaten einbeziehen (Opt-in, standardmäßig aus) und native gzip-Kompression. CREATE USER / ALTER USER / GRANT werden neutralisiert, wenn Zugangsdaten ausgeschlossen sind. Fortschrittsereignisse mit ETA.
Geplante Backups mit Aufbewahrung
“Backups, die nicht davon abhängen, dass du dich erinnerst.”
Dein Mac macht das Backup pünktlich, auch wenn er geschlafen hat, und füllt deine Platte nicht voll.
Tägliche oder wöchentliche Zeitpläne. Nutzt Security-Scoped-Bookmarks auf das Ziel, um innerhalb der Sandbox zu funktionieren. Verarbeitet verpasste Zeitpläne über App-Neustarts hinweg, Dateinamen mit Nanosekunden-Suffix zur Kollisionsvermeidung, Aufbewahrungs-Bereinigung und Benachrichtigungen bei Erfolg/Fehler/Auslassung.
CSV-/JSON-/XLSX-Import
“Von einer Tabellenkalkulation zu einer Tabelle in drei Klicks.”
Importiere tabellarische Dateien aus der echten Welt — nicht nur das glückliche CSV.
CSV im Stil von RFC 4180 (escapte Anführungszeichen, Felder mit Kommas), JSON (Array von Objekten) und XLSX im Streaming. Modi: INSERT, INSERT IGNORE, REPLACE.
Lokales persistentes Query-Log
“Der Befehl, den du am Dienstag ausgeführt hast, in zwei Sekunden.”
Durchsuche Tausende vergangener Queries nach SQL-Text oder Datum.
Lokaler SQLite-Store in Application Support mit Tabellen für ausgeführte Queries und das DDL-Audit, indexiert nach Query-Text (aufsteigend) und Datum (absteigend).
Synchronisierung des Query-Logs mit iCloud (Opt-in, geschwärzt)
“Dein SQL-Verlauf, in deiner iCloud, ohne deine Zugangsdaten.”
Durchsuche den Verlauf deines Macs von deinem iPad aus — mit entfernten Zugangsdaten.
CloudKit-Container iCloud.org.caliope.caliope, Stapel von 400 Datensätzen, konfigurierbare Aufbewahrung (standardmäßig 30 Tage). Wendet die Schwärzung der Zugangsdaten vor dem Hochladen an. Prüft den Status des iCloud-Kontos vor der Synchronisierung.
Synchronisierungs-Schalter pro Bereich
“Du entscheidest, was in iCloud geht.”
Synchronisiere nur, was dir wichtig ist — nicht alles oder nichts.
Unabhängige Schalter für die iCloud-Synchronisierung des Keychains und des Query-Logs, aus den Einstellungen.
Dumps von vielen Gigabyte
“722 MB gedumpt mit 68 MB Speicher.”
Sichern und Zurückspielen hängen nicht mehr vom RAM der Maschine ab. Ein Dump von 722 MB mit 4 Millionen Zeilen erreicht 68 MB Spitze; das Zurückspielen dauert 19 Sekunden bei 14 MB. Abbrechen stoppt den Dump wirklich, statt ihn bis zum Ende laufen zu lassen.
Die Engine orchestriert, der Provider schreibt SQL: eine Engine zum Backup hinzuzufügen heißt, BackupDataSource zu implementieren und sonst nichts — das Test-Harness implementiert es im Speicher mit SQLite- und Postgres-Dialekten, ohne die Engine anzufassen. Die Wiederherstellung zieht eine Anweisung nach der anderen, statt sie geschoben zu bekommen, denn ein gepufferter Strom verwirft Anweisungen stillschweigend und meldet am Ende Erfolg. Gelesen wird mit read(2) und nicht über eine gemappte Datei: dasselbe Zerteilen maß +201 MB resident mit FileHandle und 1,1 MB so.
Ein Backup deiner Einstellungen
“Bevor iCloud angefasst wird, gibt es eine Kopie.”
Exportiere und importiere alles, was Calíope außerhalb des Geräts aufbewahrt — Profile, Gruppen, Einstellungen — mit geplanten Kopien in den iCloud-Container und lokalen Wiederherstellungspunkten, die vor jedem riskanten Schritt automatisch entstehen: Synchronisierung ein- oder ausschalten, löschen, importieren.
Es existiert wegen eines gemessenen Vorfalls: das Einschalten der Synchronisierung auf einem iPad ersetzte eine connections.json von 16 470 Byte mit 28 Profilen durch eine von 514 Byte mit einem Beispielprofil. Geheimnisse sind Opt-in und immer verschlüsselt (AES-GCM, PBKDF2-SHA256 mit 210 000 Iterationen, Salt und Kosten in der Datei selbst). Was draußen bleibt, wird mit Begründung in die Kopie geschrieben — eine Kopie, die ihre Lücken verschweigt, lässt dich glauben, du könntest alles zurückholen. Wiederherstellen führt zusammen; ein Backup löscht nie.
Calíope auf deinem iPhone
“Der ganze Client, ohne den Mac vor dir.”
Dieselbe Calíope, fürs Telefon eingerichtet — der ganze Client, kein Betrachter. Sie verbindet sich mit deinen Servern und führt deine Abfragen aus, mit dem SQL-Editor, dem Schema-Browser, dem Dashboard, dem ER-Diagramm und den Berichten direkt darin; und deine Verbindungsprofile, deine gespeicherten Snippets, dein Abfrageverlauf und deine Assistenz-Unterhaltungen warten schon dort, über deine eigene iCloud. Face ID zum Entsperren, fünf Sprachen und ein Demomodus, um dich umzusehen, bevor du irgendetwas verbindest. Sie installiert sich von derselben App-Store-Seite wie der Mac und das iPad.
Es ist das iOS-Binary, und es ist derselbe Code wie auf dem iPad: keine einzige Funktion fehlt, und im ganzen Baum steht keine Geräteabfrage — was sich ändert, ist das Layout, nicht der Funktionsumfang. Verbindungsprofile werden in die gemeinsame iCloud-Datei zusammengeführt statt sie zu ersetzen, damit die Felder, die ein schmaler Bildschirm gar nicht zeigt — SSH-Tunnel, Zertifikate, Zeichensatz — unangetastet bleiben. Ohne iCloud nennt sie den geschlossenen Schalter, statt einen leeren Bildschirm zu zeigen und dich annehmen zu lassen, es sei alles in Ordnung.
Calíope auf deiner Apple Watch
“Was deine Server gemacht haben, ohne das Telefon herauszuholen.”
Calíope am Handgelenk, die mit Calíope auf dem iPhone kommt und vom selben Kauf abgedeckt ist, ohne getrennten Kauf. Sie zeigt die Systemmeldungen, die Calíope veröffentlicht: achtzehn Arten in acht Gruppen, mit Backups und Berichten, die abgeschlossen sind oder fehlschlugen, zu lange gelaufenen Abfragen, SSH-Tunneln, die abbrachen und wiederkamen, fehlgeschlagener iCloud-Synchronisierung und Servern nahe an deinen Schwellenwerten. Nach Tagen gruppiert, mit optionalen Mitteilungen auf einem eigenen Schalter und einem Demomodus, der auch die leeren Bildschirme zeigt.
Meldungen reisen als Kennung samt ihrer rohen Zahlen, nie als fertiger Satz: Die Uhr ist häufiger auf eine andere Sprache eingestellt als der Mac, also wird der Satz am Handgelenk geschrieben. Die Kadenz, die du wählst, ist ein Minimum und kein Versprechen — bei geschlossener App entscheidet watchOS, wann sie geweckt wird — und die App sagt das oben in ihrem eigenen Einstellungsbildschirm, nicht grau ganz unten. Die Wasserlinie gehört zur zuletzt gelieferten Meldung und nicht zur Wanduhr, denn Weckvorgänge fallen aus, und die Frage „irgendetwas aus den letzten fünfzehn Minuten?" verwirft den Rest, ohne zu scheitern. Sie liest nur: Sie öffnet keine Verbindung zu irgendeinem deiner Server.
Calíope auf deinem Apple TV
“Der Zustand der Server, quer durch den Raum lesbar.”
Eine Wandanzeige für deine MySQL-, MariaDB- und PostgreSQL-Server: je eine Kachel, mit ihrem Zustand — In Ordnung, Warnung, Kritisch, Nicht erreichbar oder Keine Daten — und, wenn etwas nicht stimmt, was nicht stimmt. Laufzeit, Verbindungen, laufende Threads, Abfragen pro Sekunde, Cache-Trefferquote, längste Abfrage und Replikat-Verzögerung. Zwei Tabs, weil ein Fernseher kein Gerät ist, in dem man navigiert, und eine Demo-Umgebung aus acht Servern, um sich vorher umzusehen.
Die Aktualität rechnet der Lesende selbst aus, aus der Kadenz, die Calíope angibt: Wer veröffentlicht hat, weiß nicht, dass er aufgehört hat zu veröffentlichen — ein am Freitag ausgeschalteter Mac ließe die Anzeige sonst das ganze Wochenende grün. Der Zustand wird nie allein über Farbe unterschieden, und die Schwellenwerte gehören Calíope: Der Fernseher malt, er urteilt nicht. Apple TV hat weder iCloud Drive noch iCloud-Schlüsselbund — „sie liest nur" trägt also die Plattform und kein Versprechen.
Calíope auf der Apple Vision Pro
“Der ganze Client, im Raum aufgehängt.”
Eine Vision Pro installiert Calíope selbst, als iPad-App: den SQL-Editor, den Schema-Browser, das ER-Diagramm, die Backups, die Berichte, den Abfrage-Baukasten — jedes Werkzeug, das das iPad hat, ohne dass eines fehlt. Sie verbindet sich mit deinen Servern und sie schreibt. Du platzierst das Fenster, änderst seine Größe und lässt es stehen, wo du willst, und es kommt von derselben App-Store-Seite und aus demselben Kauf wie der Mac und das iPad.
Wir haben auch eine native visionOS-App gebaut — eine Anzeigetafel, die nur liest, mit der Serverfarm und den Replikationsgruppen — und entschieden, sie nicht zu veröffentlichen. Ein natives visionOS-Binary hat auf diesem Gerät Vorrang vor der iPad-App: Es zu veröffentlichen hieße, dass jemand mit einer Vision Pro denselben Preis zahlt und statt eines Datenbank-Clients eine Anzeigetafel bekommt. Jenes Target deklarierte CloudKit und sonst nichts, band keinen Datenbanktreiber ein und hatte keinen einzigen Schreibpfad. Weniger ist keine Funktion. Wer eine Vision Pro hat, verliert dadurch nichts, was er sonst gehabt hätte: ein Fenster, das für den Raum bemessen, aber nicht für ihn gestaltet ist. Der Code bleibt im Repository; wenn eines Tages eine native Version erscheint, dann weil sie alles kann, was die iPad-Version schon kann.