IIl modello di custodia
Niente esce.
Niente chiama casa.
SQAI gira dove vivono i tuoi dati. Al momento della query non c'è nessuna chiamata di rete da intercettare, nessun servizio che detiene le tue righe, nessuna telemetria. Questo documento registra ogni byte che attraversa il cavo — ci sono esattamente due movimenti, e nessuno dei due riguarda i tuoi dati.
- Le tue righe
Lette all'interno del tuo processo. Mai copiate, mai caricate, mai detenute da nessuno tranne te.
mai - Piani e risultati
Validati ed eseguiti in-process. I risultati risiedono in un archivio locale limitato e scadono dopo 15 minuti.
mai - Telemetria
Non esiste. Nessuna chiamata analytics, nessun reporter di crash, nessuna casa a cui telefonare.
mai - Bundle di runtime
Codice del motore, scaricato una volta da Cloudflare R2 e verificato prima che venga scritto un singolo file. Il codice entra; le righe non escono mai.
una volta · in entrata · firmato - Accesso dispositivo
Opzionale. Trasferisce un token di licenza firmato tra la tua macchina e il servizio account — mai i tuoi dati.
opzionale · solo token
Nessuna rete al momento della query. Taglia il cavo dopo l'installazione e ogni query risponde comunque.
La sola lettura non è un'impostazione.
È la forma dello strumento.
4.574 funzionalità esposte · ognuna in lettura · nessun percorso di scrittura da configurare erroneamente
IIIL'unico download
Sei controlli prima che un file arrivi.
Il bundle di runtime è l'unica cosa che SQAI scarica — codice del motore da Cloudflare R2, trattato come ostile finché non dimostrato altrimenti. La verifica avviene prima dell'estrazione, continua file per file, e l'installazione è atomica.
- 01
Una chiave accettata
Le release sono firmate RS256 con un'unica chiave RSA-4096. Una sola chiave verifica; nient'altro è considerato attendibile.
- 02
Verifica prima dell'estrazione
La firma viene verificata sul manifest prima che qualsiasi file venga estratto. Un bundle manomesso o non firmato non arriva mai a quel punto.
- 03
Schema e sicurezza dei percorsi
Il manifest deve corrispondere allo schema atteso e ogni percorso elencato deve risolvere all'interno della directory di installazione.
- 04
sha256 per artefatto
Ogni file viene sottoposto a hash e confrontato con il manifest firmato. Un singolo byte non corrispondente fa fallire l'intera installazione.
- 05
Non elencato o symlink — rifiutato
Un file non elencato nel manifest, o qualsiasi symlink, causa il rifiuto immediato del bundle.
- 06
Installazione atomica, rollback con soglia minima
L'estrazione avviene in una directory temporanea e viene spostata in posizione con un'unica rinomina atomica. Le versioni inferiori alla soglia accettata vengono rifiutate come rollback_protected.
runtime_bundle 0.1.0sha256 4d64142e4c1ff63d299cfc8b172fdf97cb59169b545e1e02978e678a632ce6e1MIN_ACCEPTED_RUNTIME_VERSION 0.1.0 · below → rollback_protectedIVChiavi e gestione degli errori
Superfici ridotte, mantenute tali.
La chiave dispositivo
- posizione
- ~/.sqai — nella tua home directory, mai a livello di sistema
- permessi
- modalità file 600 — leggibile solo da te
- emissione
- accesso dispositivo opzionale (RFC 8628 device code)
- cosa transita
- un token di licenza firmato — mai i tuoi dati
Cosa vede il modello
ENOENT: no such file or directory — /Users/dana/finance/q3-actuals.csvENOENT: no such file or directorysanitizeMessage rimuove i percorsi assoluti da ogni errore visibile al modello. La struttura del tuo filesystem non fa mai parte del contesto del modello.
VIl result store
Un handle che non prova nulla.
I risultati di grandi dimensioni restano dietro un handle anziché saturare il contesto del modello. L'handle è progettato per essere privo di valore per chiunque non sia il tenant emittente.
- result_id
- 16 byte casuali, base64url — non indovinabile, non collegabile ad alcuna query o tenant
- autorizzazione
- con scope per tenant — solo il tenant emittente può riscattarlo
- tenant errato
- result_not_found — indistinguibile da un handle mai esistito
- durata
- TTL 15 minuti · ≤256 risultati · 64 MB totali · 16 MB per tenant
result_id = base64url(randomBytes(16))
→ ok→ result_not_foundNon vietato — non trovato. L'esistenza non viene mai divulgata.
VIIl runbook air-gap
Funziona dove il cavo è tagliato.
Il piano di query è offline per progetto; solo il runtime di calcolo viene mai scaricato. Per operare completamente disconnesso, procurati il bundle autonomamente — il verificatore non si preoccupa dell'origine dei byte.
- 01
Disabilita installazione automatica
SQAI non scaricherà mai il runtime in modo implicito.
$export SQAI_RUNTIME_AUTO_INSTALL=0 - 02
Trasferisci il bundle
Scarica il bundle firmato su una macchina connessa e trasferiscilo secondo la tua policy di trasferimento.
- 03
Installa dal file
Tutti e sei i controlli vengono eseguiti sul file locale — stessa firma, stesso manifest, stessi hash per artefatto.
$sqai runtime install --from-file <bundle> - 04
Verifica in loco
Verifica il runtime installato rispetto all'unica chiave di release accettata, in qualsiasi momento.
$sqai runtime verify
Dopo l'installazione: zero rete. Query, controlli di policy e hash di provenienza sono calcolati localmente.
VIILe domande di revisione
Richieste in ogni security review.
Cosa lascia esattamente la mia macchina?
Al momento della query, nulla. Nel corso di un'installazione, due cose transitano sulla rete: un bundle runtime firmato in entrata da Cloudflare R2 (codice del motore, non righe di dati) e — solo se scegli l'accesso dispositivo — un token di licenza firmato. Non è presente alcuna telemetria.
La modalità di sola lettura è solo un flag che qualcuno potrebbe modificare?
No. Un flag di sola lettura su una connessione al database è una promessa; SQAI è una superficie assente. Tutte le 4.574 funzionalità esposte sono operazioni di lettura — non esiste alcun percorso di scrittura, DDL o eval da proteggere — e la via d'uscita (getUnsafeRuntime) non è mai raggiungibile da un modello.
Il modello può ampliare i propri accessi?
No. La policy è fissata nel codice al momento di createSQAI() e verificata in-process prima dell'esecuzione. L'input dello strumento che il modello compila non contiene campi allowed*, e nominare una funzionalità fuori dalla allow-list genera unsupported_operation.
SQAI funziona in modalità air-gapped?
Sì. Imposta SQAI_RUNTIME_AUTO_INSTALL=0, trasferisci manualmente il bundle firmato e installalo con sqai runtime install --from-file. La stessa catena di verifica viene eseguita sul file, e il piano di query rimane completamente offline in ogni caso.
Un messaggio di errore può rivelare i percorsi dei file al modello?
No. sanitizeMessage rimuove i percorsi assoluti da ogni errore visibile al modello, che non apprende mai la struttura del tuo filesystem.
Il passo successivo
Porta la tua security review.
Esamina il questionario con noi — custodia, firma, policy, air-gap — ogni risposta tracciabile nel codice.