Pro features
These need a Pro, Team or Founder license. Without one, the pages show what the plan would add; data you made on a paid plan is kept, and the rules stop applying until the plan comes back.
More servers. Settings → Servers → Add server gives a one-time token and a docker-compose.yml for the other machine. Its agent only connects out (no ports to open), and that server’s databases appear here with a server badge: browse, edit, query, import and back them up as if they were local. If the link drops, the server shows offline and reconnects by itself.
Who sees which database. Database → Settings → Access sets a level per person or per role: none, read, write or admin. A setting for a person beats one for their role; admins and the owner always have full access.
Views. Save a table’s filter, sort, columns and widths as a view, private or shared, listed under the table. Kanban groups rows by a column (drag a card to change it), Calendar lays them out by a date column, Gallery shows cards with an image.
Import a CSV. Table → Import: Wharfbase guesses the encoding and delimiter, you map columns, and it checks every row before writing. Rows go in batches in one transaction (all or nothing), or only the good ones if you choose.
ER diagram. Diagram in the workspace header draws a schema’s tables, keys and references; export it as PNG or SVG.
Schema diff. Compare in the workspace header compares two schemas of the same kind: PostgreSQL or CockroachDB, MySQL or MariaDB, SQLite. They can be on different connections or servers.
- A and B: A is the model (often development or staging) and B is the one that changes (often production).
- What it shows: each table that B would get, lose or change, with both sides of every difference in columns, keys, indexes, foreign keys and checks.
- The script: it makes B look like A. Statements that delete data (dropped tables and columns) are commented out until you include them.
- Running it: Open in SQL editor puts the script in a SQL tab on B’s connection. Read it, run it there, then Compare again.
- SQLite can’t change a column in place: the script says which tables to rebuild.
Excel. Exports also come as .xlsx, JSON and NDJSON, without a row limit.
Scheduled scans and alerts. Settings → Alerts: scan a server on a schedule, and send email, a webhook, Slack, Discord or Telegram when a database appears, disappears, goes down, gets a new finding or grows fast.
Backups. Database → Backups (admins). A job dumps the database with its own tools (pg_dump, mysqldump/mariadb-dump, mongodump, redis-cli --rdb; SQLite without a container) on a schedule or now, keeps the newest copies, and stores them in Wharfbase’s data folder, also for databases on other servers. It runs a short-lived container from the database’s image, so the socket proxy must allow that: WB_GUARD_ALLOW_EPHEMERAL=true in .env. Restore… on a backup puts it back (PostgreSQL, MySQL, MariaDB, MongoDB), into the same database or another of the same kind, after a safety backup of the target and with its name typed to confirm. Redis and SQLite backups are restored by hand, and the tab shows how. See Backups.
Live consumers. The Consumers tab’s Check now asks the database who is connected and traces each address to a container (or “Docker host”, or another machine). Activated databases with a saved password are checked every 5 minutes. To see other users’ connections, the database user needs pg_read_all_stats (PostgreSQL), PROCESS (MySQL/MariaDB), clusterMonitor (MongoDB) or VIEW SERVER STATE (SQL Server).
More engines. SQL Server, Oracle, CockroachDB, ClickHouse, Elasticsearch, OpenSearch, Cassandra/Scylla, Neo4j, CouchDB and InfluxDB open like the others, each with its own console (T-SQL, SQL, CQL, Cypher, REST, Flux). ClickHouse and InfluxDB are read-only.
AI-assisted SQL. Settings → AI (admins) connects the SQL editor to your own AI provider: Anthropic, or any OpenAI-compatible endpoint, a model on your own machines included. Set the model, the API key (stored encrypted) and the lowest role that may use it. It’s off until you do, and nothing is sent anywhere before that.
- In the SQL editor, the AI menu has three actions:
- Ask turns a question into SQL;
- Explain puts an explanation of the statement at the cursor above it, as comments;
- Fix puts a corrected version of the statement that just failed below it.
- Nothing runs by itself: the answer goes in the editor, and you run it if it’s right.
- What is sent: the question or the SQL, the engine and version, and the names and types of the tab’s tables and columns. With Fix, also the error. Never rows, and never columns masked from you. Settings → AI shows the exact text for an example.
- Audit: each request is audited (who, where, which action), without the question or the answer.
DuckDB and Parquet. Scans also find DuckDB database files and Parquet files in container volumes, and on the host with the host scan. Add any other DuckDB, Parquet, CSV or JSON file by its path (Databases → Add).
- Opening: like SQLite files. A file in a container opens as a snapshot, and a file Wharfbase can see opens live, read-only unless you allow writes.
- Parquet, CSV and JSON: each opens as one read-only view named after the file (
events.parquet→events.main.events). - What works: the grid, Structure, the SQL editor (DuckDB’s SQL), Explain, charts, exports and the ER diagram.
- What SQL can’t do here: read or write other files, attach databases, or install extensions. Wharfbase turns that off in DuckDB.
On read-only connections:
- SQL Server and Oracle scripts run in a transaction that is rolled back, and statements that write or end that transaction are refused. On SQL Server that means anywhere in the batch.
- A function that already exists in the database and writes in its own transaction still looks like a read. For a hard guarantee there, connect with a database user that only has read grants.
- The Flux console refuses
to(),wideTo(), other servers (host:) and packages that write or call out (http,sql,csv,influxdata/influxdb…). Computation packages such asstrings,math,date,array,join,experimentalandinfluxdata/influxdb/schemawork. - The REST consoles (Elasticsearch, OpenSearch, CouchDB) allow GET and the search POSTs only, on plain paths (no
#,.or..segments).