Deployment
Air-gapped / offline
- The extension makes no network connections of its own: no telemetry, no update checks, no remote configuration. A test (
apps/extension/src/activation.test.ts) fails if activation opens a socket or if extension/core sources import network modules. - Install from a VSIX (
code --install-extension rizomadb-x.y.z.vsix) or from an internal Open VSX mirror. VerifySHA256SUMSand the build provenance attestation attached to each release. - Pin the version in your management tooling; updates are explicit.
Mass installation
- Intune / GPO / Ansible: distribute the VSIX and run
code --install-extensionper user, or use your internal marketplace. Deliverrizomadb.policy.teamandrizomadb.catalog.teamFilethrough managed VS Code settings (machine scope). - Dev Containers / Codespaces: add the extension id to
devcontainer.json; connections are made from the remote side, so the database must be reachable from the container.
Proxies and internal certificates
- Database connections can go through an SSH tunnel (bastion host), an HTTP CONNECT proxy or a SOCKS5 proxy, chosen per connection under Network path (a connection uses a tunnel or a proxy). The proxy code is tested against local fake proxy servers and, in CI, against a real Squid 6 (HTTP CONNECT, with and without basic authentication) and a real SOCKS5 server (
go-socks5-proxy, username/password) reaching a real PostgreSQL. It has not been tested against Dante or other proxy products, or against proxies that require NTLM/Kerberos. - The extension's own AI calls (off by default) and nothing else are the only traffic that does not go to a database you configured.
- Internal CAs: PostgreSQL and MySQL accept a CA file per connection (
sslCaFile); for everything else setNODE_EXTRA_CA_CERTSfor VS Code. TLS verification is on by default and disabling it shows a modal warning.
Shared connection catalogs
.rizomadb/connections.json (project) and the file named by rizomadb.catalog.teamFile (team) list connections without secrets; each user is asked for secretKeys once and the answer stays in their own VS Code SecretStorage. Entries containing plain-text secrets are rejected. Later layers override earlier ones by id. Catalog entries cannot be edited or deleted from the UI.
json
{ "version": 1, "connections": [ { "id": "orders-stg", "name": "Orders (staging)", "driver": "postgres", "environment": "staging", "options": { "host": "orders.stg.internal", "port": 5432, "database": "orders", "user": "app", "ssl": true }, "secretKeys": ["password"] } ] }${env:VAR} and ${workspaceFolder} are expanded in option values.
Workspace Trust
In an untrusted workspace the project policy, the project catalog and .rizomadb files are not loaded; user and team layers still apply.