Motore di backup con credenziali opt-in
“Backup con gzip nativo — e senza esportare password per sbaglio.”
Dump compatti e sicuri di default — nessuno esporta hash di password senza volerlo.
Genera .sql con opzioni di drop-before, includere i dati, includere gli utenti, includere le credenziali utente (opt-in, off di default) e compressione gzip nativa. CREATE USER / ALTER USER / GRANT vengono neutralizzati quando si escludono le credenziali. Eventi di avanzamento con ETA.
Backup programmati con retention
“Backup che non dipendono dal fatto che tu te ne ricordi.”
Il tuo Mac esegue il backup in tempo, anche se era in sospensione, e non riempie il tuo disco.
Pianificazioni giornaliere o settimanali. Usa bookmark security-scoped alla destinazione per funzionare dentro il sandbox. Gestisce le pianificazioni perse tra i riavvii dell'app, nomi di file con suffisso in nanosecondi per evitare collisioni, purga per retention e notifiche di successo/errore/omissione.
Importazione CSV / JSON / XLSX
“Da un foglio di calcolo a una tabella in tre clic.”
Importa file tabulari del mondo reale — non solo il CSV ideale.
CSV in stile RFC 4180 (virgolette con escape, campi con virgole), JSON (array di oggetti) e XLSX in streaming. Modalità: INSERT, INSERT IGNORE, REPLACE.
Log locale persistente delle query
“Il comando che hai eseguito martedì, in due secondi.”
Cerca tra migliaia di query passate per testo SQL o data.
Store SQLite locale in Application Support con tabelle per le query eseguite e l'audit DDL, indicizzato per testo della query (asc) e data (desc).
Sincronizzazione del log delle query con iCloud (opt-in, oscurata)
“La tua cronologia SQL, nel tuo iCloud, senza le tue credenziali.”
Cerca nella cronologia del tuo Mac dal tuo iPad — con le credenziali rimosse.
Contenitore CloudKit iCloud.org.caliope.caliope, lotti di 400 record, retention configurabile (30 giorni di default). Applica l'oscuramento delle credenziali prima del caricamento. Verifica lo stato dell'account iCloud prima di sincronizzare.
Toggle di sincronizzazione per sezione
“Decidi tu cosa va su iCloud.”
Sincronizza solo ciò che ti interessa — non tutto o niente.
Toggle indipendenti per la sincronizzazione iCloud del Keychain e del log delle query, dalle Preferenze.
Dump di molti gigabyte
“722 MB scaricati con 68 MB di memoria.”
Backup e ripristino non dipendono più dalla RAM della macchina. Un dump di 722 MB con 4 milioni di righe tocca un picco di 68 MB; ripristinarlo richiede 19 secondi usando 14 MB. Annullare ferma davvero il dump, invece di lasciarlo arrivare alla fine.
Il motore orchestra e il provider scrive SQL: aggiungere un motore al backup significa implementare BackupDataSource e nient'altro — il banco di prova lo implementa in memoria con dialetti SQLite e Postgres senza toccare il motore. Il ripristino tira una istruzione alla volta invece di riceverle spinte, perché un flusso con buffer scarta istruzioni in silenzio e finisce annunciando successo. La lettura usa read(2) e non un file mappato: lo stesso spezzettamento ha misurato +201 MB residenti con FileHandle e 1,1 MB così.
Un backup della tua configurazione
“Prima di toccare iCloud c'è una copia.”
Esporta e importa tutto ciò che Calíope conserva fuori dal dispositivo — profili, gruppi, preferenze — con copie programmate nel contenitore iCloud e punti di ripristino locali creati da soli prima di ogni operazione rischiosa: attivare o disattivare la sincronizzazione, cancellare, importare.
Esiste per un incidente misurato: attivare la sincronizzazione su un iPad ha sostituito un connections.json di 16 470 byte con 28 profili con uno di 514 byte contenente un profilo di esempio. I segreti sono opt-in e sempre cifrati (AES-GCM, PBKDF2-SHA256 con 210 000 iterazioni, sale e costo scritti nel file stesso). Ciò che resta fuori viene scritto nella copia con il suo motivo — una copia che tace le proprie assenze è quella che fa credere di poter ripristinare tutto. Ripristinare unisce; un backup non cancella mai.
Calíope sul tuo iPhone
“Il client intero, senza il Mac davanti.”
La stessa Calíope, disposta per il telefono — il client intero, non un visualizzatore. Si connette ai tuoi server ed esegue le tue query, con l'editor SQL, l'esploratore di schema, il cruscotto, il diagramma ER e i report lì dentro; e i tuoi profili di connessione, i tuoi snippet salvati, la cronologia e le conversazioni con l'assistente sono già lì ad aspettarti, portati dal tuo iCloud. Face ID per sbloccare, cinque lingue e una modalità dimostrativa per dare un'occhiata prima di collegare qualcosa. Si installa dalla stessa pagina dell'App Store del Mac e dell'iPad.
È il binario di iOS, ed è lo stesso codice dell'iPad: non manca un solo strumento, e in tutto l'albero non c'è una sola verifica del dispositivo — ciò che cambia è la disposizione, non l'elenco delle funzioni. I profili di connessione vengono uniti al file iCloud condiviso invece di sostituirlo, perché i campi che uno schermo stretto non mostra — tunnel SSH, certificati, set di caratteri — restino intatti. Senza iCloud dice quale interruttore è chiuso, invece di mostrare una schermata vuota lasciandoti supporre che vada tutto bene.
Calíope sul tuo Apple Watch
“Cosa hanno fatto i tuoi server, senza tirare fuori il telefono.”
Calíope al polso, che arriva con Calíope su iPhone ed è coperta dallo stesso acquisto, senza acquisti a parte. Mostra i messaggi di sistema che Calíope pubblica: diciotto tipi in otto gruppi, con i backup e i report terminati o non riusciti, le query lente, i tunnel SSH caduti e ripristinati, la sincronizzazione iCloud non riuscita e i server vicini alle tue soglie. Raggruppati per giorni, con notifiche facoltative su un interruttore a parte, e una modalità demo che mostra anche le schermate vuote.
I messaggi viaggiano come identificatore più le loro cifre grezze, mai come una frase già scritta: l'orologio è impostato su una lingua diversa da quella del Mac più spesso che no, quindi la frase si scrive al polso. La cadenza che scegli è un minimo e non una promessa — con l'app chiusa decide watchOS quando svegliarla — e l'app lo dice in alto nella sua schermata di impostazioni, non in grigio in fondo. Il segnalibro è dell'ultimo messaggio consegnato e non dell'orologio da parete, perché i risvegli saltano e chiedere «qualcosa negli ultimi quindici minuti?» scarta il resto senza fallire. Si limita a leggere: non apre nessuna connessione verso un tuo server.
Calíope sulla tua Apple TV
“La salute dei server, letta dall'altro capo della stanza.”
Un pannello a muro per i tuoi server MySQL, MariaDB e PostgreSQL: un riquadro ciascuno, con il suo stato — A posto, Avviso, Critico, Irraggiungibile o Nessun dato — e, quando qualcosa non va, che cosa non va. Tempo di attività, connessioni, thread in esecuzione, query al secondo, tasso di successo della cache, query più lunga e ritardo della replica. Due schede, perché un televisore non è un apparecchio in cui si naviga, e un gruppo dimostrativo di otto server per dare un'occhiata prima.
L'attualità la calcola chi legge, a partire dalla cadenza che Calíope dichiara: chi ha pubblicato non sa di aver smesso di pubblicare, quindi un Mac spento il venerdì lascerebbe il pannello verde per tutto il fine settimana. Lo stato non si distingue mai solo dal colore, e le soglie sono di Calíope: il televisore disegna, non giudica. Apple TV non ha né iCloud Drive né Portachiavi iCloud, quindi «si limita a leggere» lo sostiene la piattaforma e non una promessa.
Calíope su Apple Vision Pro
“Il client intero, appeso nella stanza.”
Un Vision Pro installa Calíope stessa, come app per iPad: l'editor SQL, il navigatore di schema, il diagramma ER, i backup, i report, il costruttore di query — tutti gli strumenti che ha l'iPad, senza toglierne nessuno. Si connette ai tuoi server e scrive. Collochi la finestra, la ridimensioni e la lasci dove vuoi, e arriva dalla stessa pagina dell'App Store e dallo stesso acquisto del Mac e dell'iPad.
Abbiamo costruito anche un'app nativa visionOS — un pannello di sola lettura con il parco e i gruppi di replicazione — e abbiamo deciso di non pubblicarla. Un binario visionOS nativo ha la precedenza sull'app per iPad su quel dispositivo: pubblicarlo vorrebbe dire che chi ha un Vision Pro paga lo stesso prezzo e riceve un pannello invece di un client per database. Quel target dichiarava CloudKit e nient'altro, non collegava alcun driver di database e non aveva un solo percorso di scrittura. Meno non è una funzione. A chi ha un Vision Pro questo non toglie niente che avrebbe avuto altrimenti: una finestra dimensionata per la stanza invece che disposta per essa. Il codice resta nel repository; se un giorno uscirà una versione nativa, sarà perché fa tutto ciò che già fa quella per iPad.