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.

Foglio di custodiaSQAI · modalità locale
contract_hash sha256:79f1c5a6c716…be9a1Rilasciato a: il tuo processo
  • 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.

  1. 01

    Una chiave accettata

    Le release sono firmate RS256 con un'unica chiave RSA-4096. Una sola chiave verifica; nient'altro è considerato attendibile.

  2. 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.

  3. 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.

  4. 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.

  5. 05

    Non elencato o symlink — rifiutato

    Un file non elencato nel manifest, o qualsiasi symlink, causa il rifiuto immediato del bundle.

  6. 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.

L'artefatto in esameruntime_bundle 0.1.0sha256 4d64142e4c1ff63d299cfc8b172fdf97cb59169b545e1e02978e678a632ce6e1MIN_ACCEPTED_RUNTIME_VERSION 0.1.0 · below → rollback_protected

IVChiavi 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

Generato nel tuo processoENOENT: no such file or directory — /Users/dana/finance/q3-actuals.csv
Consegnato al modelloENOENT: no such file or directory

sanitizeMessage 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))

tenant emittente→ ok
qualsiasi altro tenant→ result_not_found

Non 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.

  1. 01

    Disabilita installazione automatica

    SQAI non scaricherà mai il runtime in modo implicito.

    $export SQAI_RUNTIME_AUTO_INSTALL=0
  2. 02

    Trasferisci il bundle

    Scarica il bundle firmato su una macchina connessa e trasferiscilo secondo la tua policy di trasferimento.

  3. 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>
  4. 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.