time first. The editor runs the languages the server accepts: SQL and InfluxQL on 3.x, Flux and InfluxQL on 2.x.
The InfluxDB driver is not in the app. Picking InfluxDB in the Choose a Database sheet offers the
download before the form opens, and opening a saved InfluxDB connection installs it without asking.
See Plugins.
Quick setup
Click New Connection…, select InfluxDB, enter host, port and token, then click Save & Connect. For a server on a private network, open the Network tab and set Connect via to SSH Tunnel, then set Host to the address InfluxDB listens on as the SSH server sees it, usuallylocalhost. See SSH Tunneling.
Connection settings
TablePro reads the server version from
/ping when it connects, and picks the API from it: /api/v3 on 3.x, /api/v2 and the v1 /query endpoint on 2.x. A wrong token fails the connection instead of the first query: 3.x checks it on /ping, and on 2.x TablePro lists one bucket with it. A 1.x server is refused at connect.
Browsing measurements
The sidebar lists databases or buckets, and the measurements in the one that is open._internal, _monitoring and _tasks show as system databases.
Columns come back with time first and the rest by name. Each has a type: timestamp for time, tag for a tag, and the field type (float, integer, unsigned, string, boolean) for a field.
A page opens newest first. Timestamps show as RFC 3339 text in UTC, such as 2024-10-27T03:34:20Z, not as nanosecond integers.
On 3.x the grid runs SQL and sorts by any column. On 2.x it runs InfluxQL, which sorts by time only, so a sort on another column keeps the time order.
Filtering
A filter on
time takes an RFC 3339 timestamp. A tag value is always text, so host = 1 matches the tag "1".
A filter the language cannot run on that column, such as a null test on a 2.x field or a regex on a number, shows an error instead of an empty grid.
Query editor
Type a statement and run it. The language is chosen from the text:
To choose the language yourself, make the first line a comment naming it, such as
-- influxql, -- sql or // flux. Either comment style works for any language, and TablePro removes the line before sending the statement. A language the server does not accept reports which ones it does.
Run InfluxQL one statement at a time. 2.x runs every statement it receives, so an InfluxQL statement with a ; anywhere but at its end is refused, even inside a value or a comment.
pivot() reads as one row per timestamp.
Safe Mode and read-only connections
A Flux script reads when every package it imports only reads, such asstrings, date, array, csv or influxdata/influxdb/schema, and it never names to() or wideTo(). Any other package, such as http, sql, experimental/influxdb or a notification package, counts as a write that reaches outside the database. A host: argument, which reads another server, and a file: argument, which reads the server’s disk, count as reaching outside without writing. Before running a Flux script, TablePro has the 2.x server parse it and refuses one the server reads as writing or reaching outside where TablePro’s own check did not. SQL and InfluxQL are read like any SQL: SELECT ... INTO writes, DROP MEASUREMENT destroys data.
SSL/TLS
New connections start on Disabled, plain HTTP. Every other mode goes over HTTPS. Preferred and Required (skip verify) accept a self-signed certificate. See SSL/TLS.Limitations
- The grid is read-only. Points are written with line protocol, which TablePro does not send.
- InfluxDB 1.x is not supported.
- On 3.x an empty string field and a missing field both show as NULL: the CSV format the driver reads writes them the same way.
- There are no views, routines, foreign keys or schema edits.
- The plugin is registry-only. It is not on iPhone or iPad.
Troubleshooting
InfluxDB refused the token
The token is wrong, expired, or has no read access to the database or bucket. On 3.x with auth on, even/ping needs the token.

