iDBQuery Desktop is built so a security-conscious buyer can prove the privacy story themselves with a packet sniffer. Every outbound destination is documented. Every code-protection layer is named. Everything we deliberately don't do is listed.
From the LLM and privacy spec. Every claim below is verifiable on the customer's own machine.
| Feature | Cloud | Desktop |
|---|---|---|
| Data never leaves the customer's machine | No | Yes (for local sources) |
| LLM provider sees zero customer data | No | Yes |
| Database credentials never transit Intrazero | No | Yes |
| Works fully air-gapped | No | Yes (Air-Gapped SKU) |
| Can be deployed on classified / regulated networks | No | Yes |
| Verifiable: customer can run a packet sniffer and confirm zero outbound | No | Yes |
| FedRAMP / HIPAA / SOC2-friendly default | Requires extra work | Yes |
Data never leaves the customer's machine
LLM provider sees zero customer data
Database credentials never transit Intrazero
Works fully air-gapped
Can be deployed on classified / regulated networks
Verifiable: customer can run a packet sniffer and confirm zero outbound
FedRAMP / HIPAA / SOC2-friendly default
When network is available, outbound traffic from a Standard install falls into exactly these categories. No customer data, query content, schema rows, or sample data is ever in any of these payloads.
| Destination | Purpose | Disable? |
|---|---|---|
| Customer's configured data sources | Query execution | Customer chooses sources |
| idbquery.com/api/v1/desktop/* | First login + weekly token refresh + cloud prompt blocks | Cannot disable on Standard; required for entitlement |
| updates.idbquery.com | Tauri updater manifest poll | Settings → Disable updates |
| Crash reports (Sentry-style) | Stack traces on crash | Default OFF — opt-in |
| Anonymous usage analytics | Aggregate feature usage | Default OFF — opt-in |
Customer's configured data sources
idbquery.com/api/v1/desktop/*
updates.idbquery.com
Crash reports (Sentry-style)
Anonymous usage analytics
The auth refresh sends only {refresh_token, device_fingerprint, app_version}. The cloud prompt-block fetch sends only the prompt key + version. Customer data, query content, schema rows, and sample data never leave the machine.
On the Air-Gapped Enterprise SKU, the entire idbquery.com row goes away. Only customer-chosen data sources remain — and even those only if your network policy allows them.
| Destination | Purpose | Disable? |
|---|---|---|
| Customer's configured data sources | Query execution | Customer chooses sources |
| Optional: customer-hosted update mirror | Manual update delivery | Customer's choice; never Intrazero-hosted |
Customer's configured data sources
Optional: customer-hosted update mirror
Customers can run tcpdump or Wireshark and confirm zero packets to anything except their own data sources. That's the whole point of this SKU. More on the Air-Gapped SKU →
No client-side protection is unbreakable. The realistic goal is to stop casual extraction, raise professional RE cost from days to weeks, and tie functionality to server-issued entitlements so even a perfect copy is commercially worthless.
Sensitive Python — chat service, tool executor, query engine, folder ingest, schema introspection, prompt builders — is compiled to native .so / .pyd. No .py files ship. Decompiling requires real binary RE skill, not a pip-install Python decompiler.
The Tauri shell verifies the JWT signature against an embedded public key in compiled native code before spawning the Python backend. If the token is invalid or expired, the Rust binary refuses to start the backend at all. Cannot be bypassed by editing config files.
On every launch the Tauri shell verifies the bundle hash and the SHA256 of every shipped .so module against a manifest signed at build time. Modified bundles refuse to start and report tampering to the cloud (with the device fingerprint).
The most sensitive prompt blocks (e.g. the report-builder system prompt) are fetched at session start from idbquery.com, held in memory, and never written to disk. Tied to the auth token, so revocation kills extraction. Air-Gapped SKU receives a cached snapshot updated out of band.
To extract iDBQuery IP from a Desktop install, an attacker has to defeat OS-keychain encryption, the Tauri Rust binary's JWT verification, the Nuitka-compiled .so modules, and PyArmor's anti-debug — then network-intercept the cloud-fetched prompt blocks while the legitimate app runs under instrumentation. That's weeks of work for a skilled binary RE engineer, and the cloud side sees the unusual prompt-fetch pattern.
The list of things we deliberately skip is just as important as the list of things we ship.
Each of these gets pitched by enterprise security vendors. Each one would cost real customer trust. We pass.
DRM-style kernel hooks are invasive and AV products quarantine them. We don't ship them.
USB license keys are 2010-era enterprise theater. Our entitlement model is JWT + device fingerprint + signed offline license.
We don't refuse to run in Parallels, UTM, VirtualBox, or any VM. Plenty of legitimate users live in VMs.
Crash reports and anonymous usage analytics are opt-in, default OFF. The auth refresh sends only {refresh_token, device_fingerprint, app_version}.
Each session pulls cloud prompt blocks once and caches them. The local backend then runs against the local LLM — no per-query roundtrip to Intrazero.
Encrypting source files without a tamper-resistant key store is pointless. We rely on Nuitka native compilation + Rust enforcer instead, which actually works.
Send us your security questionnaire. We've answered most of them already.
No credit card required · 1M tokens / month free