Security
Network Egress
Every network destination DBCode can reach, in one table.
Don’t trust this page, check it. Run DBCode behind a proxy (mitmproxy, Charles, Burp, or your corporate TLS gateway) and compare. If you see a host that isn’t listed, or one that fires without the trigger described here, that’s a bug: security@dbcode.io.
DBCode’s own endpoints
Section titled “DBCode’s own endpoints”These are the only hosts DBCode contacts that belong to us.
| Domain | Trigger | Payload | Retention |
|---|---|---|---|
dbcode.io | Sign in, license activation and the periodic license refresh | Account identifier and machine key. No database content | Account and license records kept while your account exists |
dbcode.io | An AI feature you invoke (see AI privacy) | Database schema, your prompt, and for AI Data Grid and AI Data Explore the query results in view | Not stored. Processed and discarded |
dbcode.io | Secure Sharing, when you share a result | Ciphertext only, encrypted on your machine. We cannot decrypt it | Deleted at the expiry you choose |
dbcode.io | History Sync, when enabled | Ciphertext only, client-side encrypted | Incrementals 1 month, snapshots 6 months |
dbcode.io/ingest | Product telemetry, disabled by policy or VS Code telemetry settings | Anonymous install id, feature-usage events, redacted error reports. Never query text, connection details or data | Aggregated usage retained; no per-user profile |
Requests to dbcode.io terminate on Cloudflare Workers. AI requests continue to
Cloudflare Workers AI on Cloudflare’s own infrastructure. Nothing else sits in
that path, and no gateway can reroute a request to another model provider. See
Subprocessors.
Driver and tool downloads
Section titled “Driver and tool downloads”Some engines need a driver, native binary or CLI that we can’t bundle, either because we’re not licensed to redistribute it or because it’s platform-specific. DBCode downloads it the first time you use that engine and caches it. No information about your database is sent. These are plain file downloads.
| Using this | Downloads | From |
|---|---|---|
| SQLite | SQLite binary, better_sqlite3.node, and the extensions you enable (sqlite-vec, sqlite-js, sqlean, mod_spatialite, sqlite-regex) | github.com/dbcodeio/public |
| DuckDB | DuckDB binary | github.com, registry.npmjs.org |
| DuckDB engine extensions | Core or community extensions configured or required by a DuckDB-based connection. Automatic installs are blocked when dbcode.disableOnlineServices is enabled | extensions.duckdb.org, community-extensions.duckdb.org |
| libSQL | libSQL binary | registry.npmjs.org |
| LanceDB | LanceDB binary | registry.npmjs.org |
| Db2 | IBM Db2 node binary and ODBC CLI | github.com/ibmdb |
| Teradata | teradatasql, koffi | registry.npmjs.org |
| Dameng | dmdb, iconv-lite, safer-buffer | registry.npmjs.org |
| SAP HANA | SAP HANA client | registry.npmjs.org |
| Any JDBC engine | Java bridge native binding | registry.npmjs.org |
| Access (JDBC) | UCanAccess, Jackcess, HSQLDB | repo1.maven.org |
| Derby (JDBC) | Derby engine, shared and client jars | repo1.maven.org |
| H2 (JDBC) | H2 jar | repo1.maven.org |
| IBM i (JDBC) | JT400 jar | repo1.maven.org |
| SAP ASE (JDBC) | jTDS jar | repo1.maven.org |
| Aerospike (JDBC) | Aerospike JDBC jar | github.com/aerospike |
| Kerberos authentication | Kerberos native binding | github.com/mongodb-js |
| MongoDB import, export, backup, restore | MongoDB Database Tools | fastdl.mongodb.org |
| SQL Server import or export | SqlPackage | download.microsoft.com |
| PostgreSQL backup, restore or import | PG Tools (pg_dump, pg_restore, psql) | get.enterprisedb.com |
| Native drivers on Windows | Visual C++ redistributable | aka.ms |
On Linux, PG Tools aren’t downloaded. DBCode uses the pg_dump, pg_restore and
psql already on your PATH, so install them with your package manager.
Block these hosts and the feature is unavailable rather than silently degraded. Pre-install the tool and DBCode uses your copy.
Webview assets
Section titled “Webview assets”Two DBCode views load assets from a CDN rather than from the extension bundle. This is browser-style egress from the webview, so it appears in a proxy log differently from the rest of this page.
| Domain | Trigger | Payload |
|---|---|---|
cdn.jsdelivr.net | Opening the map viewer (geospatial column preview) | Loads MapLibre GL and Turf.js. No data sent |
tiles.openfreemap.org | Opening the map viewer | Map tile requests. These contain the map area being viewed, which is derived from your geospatial data |
*.vscode-cdn.net | Any webview | VS Code’s own fonts and icons, requested by VS Code rather than by DBCode |
*.r2.cloudflarestorage.com | Opening a Secure Share, or History Sync | Fetches your encrypted blob directly from storage. Ciphertext only |
Map tiles are the one case where an outside host can infer something about your data: the tiles requested match the coordinates you’re looking at. Avoid the map view for sensitive geospatial data.
Destinations you configure
Section titled “Destinations you configure”Everything else DBCode can reach is somewhere you pointed it. We list it here because it will appear in your proxy logs, and a reviewer should know why.
| Category | Domains | Trigger |
|---|---|---|
| Your databases | Whatever host you enter | Connecting, querying |
| Cloud provider import | api.cloudflare.com, console.neon.tech, api.supabase.com, api.turso.io, api.aiven.io, api.digitalocean.com, management.azure.com | Only when you link that provider to list your databases |
| SaaS data sources | api.stripe.com, us.posthog.com or eu.posthog.com, firestore.googleapis.com | Only when you add one of these as a connection. Stripe and PostHog are supported data sources; this traffic is you querying your own account, not DBCode reporting to them |
| Authentication | login.microsoftonline.com, graph.microsoft.com, and the identity provider in your authentication profile | Signing in to a database with OAuth or Entra ID |
| Custom AI provider | Whatever endpoint you set in dbcode.ai.customModel.endpoint | An AI feature, when a custom provider is configured |
Disable DBCode online services
Section titled “Disable DBCode online services”Enable DBCode: Disable Online Services in the Settings UI under DBCode’s
Security settings, or add this to settings.json:
{ "dbcode.disableOnlineServices": true}This machine-scoped setting defaults to false. When it is true, DBCode gates
newly started DBCode-hosted online work and automatic dependency downloads. It
does not cancel an operation that is already in progress. Changing the setting
applies at the next operation entry.
With Remote SSH or a Dev Container, set it in the Remote or Dev Container settings where the DBCode extension runs. A value set only on your local VS Code machine does not configure the remote extension host.
| Area | Blocked when the setting is true | Still allowed |
|---|---|---|
| DBCode API, account and licensing | DBCode API requests, sign-in and account actions, team-permission refresh, and online license activation or refresh | An already installed local or manual license, including an offline license |
| AI | DBCode-hosted AI and DBCode-hosted vector embeddings | Custom AI endpoints and VS Code or GitHub Copilot models that you configured |
| Sharing and history | Starting Secure Sharing and newly started History Sync online work, including background sync and snapshots | Local query history and other local history work |
| Telemetry | DBCode product telemetry events | PostHog and other SaaS endpoints when you explicitly configure them as database connections |
| Drivers, tools and extensions | Automatic driver, CLI, native dependency and DuckDB engine extension downloads | Cached packages, tools found on the system, manual package files and already installed DuckDB extensions |
| Connections and authentication | Nothing in this category | Database and SaaS connections, their authentication traffic, and cloud-provider APIs |
| Assets and maps | Nothing in this category | Icons, CSS and other required webview assets, map assets and tile maps |
| MCP | Nothing in the local or inbound MCP path | The MCP server and local database tools. A tool that starts a blocked DBCode-hosted feature still meets that feature’s gate |
| User-authored requests | Nothing in this category | Arbitrary SQL and URLs that you enter, including SQL that installs an extension or reads a remote URL |
DBCode handles blocked entries according to how they started:
- Telemetry is dropped quietly. DBCode does not create a log entry for every suppressed event.
- Background work is skipped and logged once per blocked feature or package for the current extension session.
- Interactive DBCode-hosted features show a warning with Enable Online Services and Learn More. If you select Enable Online Services, the requested action continues. Learn More opens this section. A setting managed by your administrator cannot be changed from the warning, so the action remains blocked.
- When an automatic package or DuckDB extension download is required, DBCode also offers Select File Manually. Cancelling the picker leaves the feature unavailable instead of silently continuing without its dependency.
For licensing, install an offline license before or after enabling this setting. The installed license is used locally; DBCode does not need an online license refresh while the policy is active.
This is a DBCode application policy, not an operating-system firewall. It does not intercept traffic created by database drivers, VS Code, webviews, custom providers or SQL and URLs that you enter. Use host firewall, proxy or network policy controls as well when you need complete egress isolation.
Feature-specific controls
Section titled “Feature-specific controls”You can still use the narrower controls when you do not need to disable all DBCode-hosted online services:
| To stop | Do this |
|---|---|
| Telemetry | Set VS Code’s telemetry.telemetryLevel to off. DBCode uses VS Code’s telemetry logger, so this silences it at the source |
| Inline completion | dbcode.ai.inlineCompletion: false |
| All hosted AI | Set dbcode.ai.customModel.endpoint to your own or a local model and dbcode.ai.customModel.only: true, which stops any fallback to our hosted model |
| Secure Sharing to our storage | Bring your own S3-compatible storage, or do not share |
| History Sync | Leave it disabled; it is opt-in |
| Sign-in traffic | Use offline license activation |
MCP server
Section titled “MCP server”The MCP server listens on localhost and makes no outbound connections of its own. It is an inbound surface, not an egress one, and it is covered separately in AI privacy and security.