Un client per database deve essere prudente nel punto giusto: non cambiare niente che tu non abbia visto, e lasciarti sempre una strada per tornare indietro. Ecco come lo fa Kweris, punto per punto, e cosa non fa mai.
01
Il viaggio di una modifica
Dal clic su una cella al database, ogni passo può fermarla. Nessun passo può allargarla.
Modifichi
La cella diventa arancione: è in attesa, sul Mac. Al server non arriva niente.
Rivedi
Vedi le istruzioni SQL esatte che partiranno, le stesse che Kweris eseguirà.
Una transazione
Tutte insieme o nessuna: se una fallisce, il database resta com’era.
Una riga per volta
Ogni istruzione deve toccare esattamente una riga. Zero o due: si annulla tutto.
Annullabile
La modifica entra nel Registro, con le istruzioni per tornare indietro.
1riga per modifica, mai una di più
14giorni di copie di sicurezza, sul tuo Mac
30giorni di Registro delle modifiche, annullabili
0dati raccolti da Kweris
02
Le protezioni, una per una
Quattro gruppi: cosa succede prima di scrivere, come si torna indietro, cosa cambia in produzione e cosa Kweris non fa mai.
01 / 04
Prima di scrivere
Le modifiche alle righe restano in attesa finché non le rivedi e le applichi.
Le righe si individuano con la chiave primaria intera. Senza, la tabella non si modifica dalla griglia: Kweris non ripiega su «tutte le colonne», che può colpire più righe uguali.
Testi lunghi, su più righe o binari si modificano nell’inspector, con il valore completo: mai partendo dal testo abbreviato della cella.
Mentre ci sono modifiche in attesa, cambiare pagina, filtri o ordinamento è bloccato; chiudere la scheda o uscire da Kweris chiede prima.
Se la connessione cade mentre applichi, Kweris non ritenta: ricarica la tabella e ti dice di controllare.
02 / 04
Tornare indietro
Registro delle modifiche: ogni modifica alle righe fatta da Kweris, con l’SQL eseguito e quello che la annulla. Annulla funziona solo se nel frattempo nessuno ha cambiato quelle righe.
Copia di sicurezza prima di cambiare un’intera tabella (UPDATE o DELETE senza WHERE, TRUNCATE, DROP): il file del database per SQLite e DuckDB, la tabella come script SQL per gli altri motori, fino a 200.000 righe.
Prima di un ripristino, una copia del database di destinazione; su PostgreSQL il ripristino avviene in una sola transazione.
Le copie restano sul tuo Mac per 14 giorni. La libreria dei tuoi database ha una copia al giorno, le ultime 14.
03 / 04
Produzione e sola lettura
Su un database di produzione le scritture partono bloccate: le sblocchi per quella finestra, se vuoi con Touch ID. Poi ogni scrittura chiede conferma; eliminare o svuotare una tabella dal menu chiede di scriverne il nome.
In sola lettura Kweris rifiuta ogni istruzione che può scrivere, con qualunque motore. Su PostgreSQL, MySQL, MariaDB, SQLite e DuckDB anche la sessione sul server è in sola lettura.
UPDATE e DELETE senza WHERE, TRUNCATE e DROP chiedono conferma in ogni ambiente e, quando il motore lo sa, dicono quante righe toccherebbero.
Kweris riconosce le scritture leggendo l’istruzione come il server: commenti e testi tra apici non ingannano, e contano anche le CTE che scrivono, EXPLAIN ANALYZE e funzioni come pg_terminate_backend.
04 / 04
Cosa Kweris non fa mai
Eseguire SQL da solo: link kweris://, comando kweris, file .kweris, schede riaperte e cronologia aprono il testo, non lo eseguono.
Far eseguire qualcosa all’Assistente: propone l’SQL e basta. Per controllarlo usa EXPLAIN, solo su una singola istruzione che EXPLAIN non esegue.
Mandare più istruzioni in una: su PostgreSQL ogni tua istruzione viaggia da sola (protocollo esteso), su MySQL le istruzioni multiple sono spente, su SQLite si esegue solo la prima.
Ripetere un’istruzione dopo che la connessione è caduta, o rieseguire una scrittura con ⌘R (Aggiorna).
Creare in silenzio: un file SQLite spostato o cancellato non diventa un database vuoto.
03
Motore per motore
Non tutti i database offrono le stesse garanzie. Dove Kweris non può controllare le righe prima di confermare, non finge: spegne la modifica dalla griglia e l’import, e scrivi con l’SQL, con le stesse conferme.
Motore
Modifiche dalla griglia
Sola lettura sul server
PostgreSQL, MySQL, MariaDB, SQLite
Transazione, controllo riga per riga
Sì
CockroachDB, Redshift, SQL Server, libSQL
Transazione, controllo riga per riga
Nell’app
DuckDB
Transazione unica con un controllo prima di ogni riga
Chiave per chiave, mai sovrascrivendo un nome esistente
Nell’app
04
I tuoi dati restano tuoi
Niente account, niente statistiche, niente server di mezzo tra te e i tuoi database.
Kweris non raccoglie niente: si collega solo ai tuoi server, a iCloud se attivi la sincronizzazione e a kweris.app per gli aggiornamenti (solo numero di versione e lingua).
Le password stanno nel Portachiavi del Mac. SSH è quello di sistema (OpenSSH), con il tuo agent e 1Password.
L’app è firmata con Developer ID e notarizzata da Apple; gli aggiornamenti sono firmati e verificati prima dell’installazione.
L’Assistente lavora sul Mac: Apple Intelligence, Ollama o un modello scaricato. Le tue tabelle non escono dal computer.
Provato su server veri
Ogni protezione qui sopra ha i suoi test automatici, eseguiti su PostgreSQL, MariaDB, MySQL, SQLite, DuckDB, SQL Server, MongoDB, Redis, ClickHouse, CockroachDB, Cassandra e libSQL in esecuzione: modifiche che toccano più righe annullate, istruzioni multiple rifiutate, annullamenti che non sovrascrivono il lavoro altrui.
Hai trovato un problema?
Scrivi a [email protected]: una segnalazione che riguarda dati o sicurezza ha la precedenza su tutto il resto.
Nessun software è senza bug
Nemmeno Kweris. Per questo non si affida a non averne: ogni protezione di questa pagina esiste perché un errore, nostro, tuo o del server, si fermi prima dei dati.