diff --git a/docs/databases/aws-iam.mdx b/docs/connections/aws-iam.mdx
similarity index 100%
rename from docs/databases/aws-iam.mdx
rename to docs/connections/aws-iam.mdx
diff --git a/docs/databases/cloud-sql-proxy.mdx b/docs/connections/cloud-sql-proxy.mdx
similarity index 97%
rename from docs/databases/cloud-sql-proxy.mdx
rename to docs/connections/cloud-sql-proxy.mdx
index e079b08aa..9a17c481b 100644
--- a/docs/databases/cloud-sql-proxy.mdx
+++ b/docs/connections/cloud-sql-proxy.mdx
@@ -3,7 +3,7 @@ title: Cloud SQL Auth Proxy
description: Connect to Google Cloud SQL by letting TablePro manage the Cloud SQL Auth Proxy
---
-The [Cloud SQL Auth Proxy](https://cloud.google.com/sql/docs/mysql/sql-proxy) carries an encrypted, IAM-authorized channel to your instance, so the database can stay off the public internet with no client certificates to hand out. Running it is part of the connection here, so the process comes up when you connect, goes away when you disconnect, and never needs a terminal window of its own, the same as an [SSH tunnel](/databases/ssh-tunneling) or a [Cloudflare tunnel](/databases/cloudflare-tunnel).
+The [Cloud SQL Auth Proxy](https://cloud.google.com/sql/docs/mysql/sql-proxy) carries an encrypted, IAM-authorized channel to your instance, so the database can stay off the public internet with no client certificates to hand out. Running it is part of the connection here, so the process comes up when you connect, goes away when you disconnect, and never needs a terminal window of its own, the same as an [SSH tunnel](/connections/ssh-tunneling) or a [Cloudflare tunnel](/connections/cloudflare-tunnel).
This works for Cloud SQL instances running MySQL, PostgreSQL, or SQL Server.
diff --git a/docs/databases/cloudflare-tunnel.mdx b/docs/connections/cloudflare-tunnel.mdx
similarity index 96%
rename from docs/databases/cloudflare-tunnel.mdx
rename to docs/connections/cloudflare-tunnel.mdx
index 8ba5e88bf..09bc3d807 100644
--- a/docs/databases/cloudflare-tunnel.mdx
+++ b/docs/connections/cloudflare-tunnel.mdx
@@ -39,7 +39,7 @@ TablePro looks for cloudflared on your `PATH` and in the common Homebrew locatio
## Setting up
-The Cloudflare Tunnel pane appears for the same databases that support [SSH tunneling](/databases/ssh-tunneling), so file-based and HTTP-API databases such as SQLite, BigQuery, DynamoDB, and Snowflake don't show it.
+The Cloudflare Tunnel pane appears for the same databases that support [SSH tunneling](/connections/ssh-tunneling), so file-based and HTTP-API databases such as SQLite, BigQuery, DynamoDB, and Snowflake don't show it.
Open the connection form, switch to the **Cloudflare Tunnel** pane, toggle **Enable Cloudflare Tunnel** on, enter the Access **hostname**, choose how to authenticate, then go back to **General** and click **Test Connection**.
diff --git a/docs/databases/overview.mdx b/docs/connections/index.mdx
similarity index 96%
rename from docs/databases/overview.mdx
rename to docs/connections/index.mdx
index 2f0ad7c5a..9af67c62a 100644
--- a/docs/databases/overview.mdx
+++ b/docs/connections/index.mdx
@@ -36,7 +36,7 @@ TablePro connects to 27 databases through its plugin system. This page covers cr
| [Cloudflare D1](/databases/cloudflare-d1) | Cloud API | No | No | No | No | No |
| [libSQL / Turso](/databases/libsql) | URL | No | No | No | No | No |
-Transport details: [SSH Tunneling](/databases/ssh-tunneling), [SSL/TLS](/features/ssl), [Cloudflare Tunnel](/databases/cloudflare-tunnel), [Cloud SQL Auth Proxy](/databases/cloud-sql-proxy), [SOCKS Proxy](/databases/socks-proxy).
+Transport details: [SSH Tunneling](/connections/ssh-tunneling), [SSL/TLS](/connections/ssl), [Cloudflare Tunnel](/connections/cloudflare-tunnel), [Cloud SQL Auth Proxy](/connections/cloud-sql-proxy), [SOCKS Proxy](/connections/socks-proxy).
## Creating a connection
@@ -62,7 +62,7 @@ The chooser groups drivers by category: Relational, Document, Key-Value, Analyti
### Import from URL
-Paste a connection string and let TablePro fill in the form. In the chooser sheet footer, click **Import from URL…**, paste the URL, review the parsed preview, and click **Import**. The form opens pre-filled so you can review and save. See [Connection URL Reference](/databases/connection-urls) for schemes and formats.
+Paste a connection string and let TablePro fill in the form. In the chooser sheet footer, click **Import from URL…**, paste the URL, review the parsed preview, and click **Import**. The form opens pre-filled so you can review and save. See [Connection URL Reference](/connections/urls) for schemes and formats.
@@ -89,7 +89,7 @@ What happens on open:
- If a saved connection matches the host, port, database, and username, TablePro reuses it. Otherwise it creates a temporary session that is not added to your connection list
- The URL password stays in memory for the session. It is never written to the Keychain
- If the connection has a pre-connect script, TablePro shows the script and asks before running it
-- URLs can target a table or apply a filter via query parameters; filters also require confirmation. See [Connection URL Reference](/databases/connection-urls)
+- URLs can target a table or apply a filter via query parameters; filters also require confirmation. See [Connection URL Reference](/connections/urls)
## Connection form
@@ -98,11 +98,11 @@ The form is a sidebar with up to nine panes. Tunnel and SSL panes appear only fo
| Pane | Contents |
|------|----------|
| **General** | Name, host, port, database, credentials, Test Connection |
-| **SSH Tunnel** | Reach databases behind a bastion host. See [SSH Tunneling](/databases/ssh-tunneling) |
-| **Cloudflare Tunnel** | Connect through `cloudflared`. See [Cloudflare Tunnel](/databases/cloudflare-tunnel) |
-| **Cloud SQL Auth Proxy** | Google Cloud SQL proxy for MySQL, PostgreSQL, SQL Server. See [Cloud SQL Auth Proxy](/databases/cloud-sql-proxy) |
-| **SOCKS Proxy** | Route the connection through a SOCKS5 proxy. See [SOCKS Proxy](/databases/socks-proxy) |
-| **SSL/TLS** | Encryption mode and certificates. See [SSL/TLS](/features/ssl) |
+| **SSH Tunnel** | Reach databases behind a bastion host. See [SSH Tunneling](/connections/ssh-tunneling) |
+| **Cloudflare Tunnel** | Connect through `cloudflared`. See [Cloudflare Tunnel](/connections/cloudflare-tunnel) |
+| **Cloud SQL Auth Proxy** | Google Cloud SQL proxy for MySQL, PostgreSQL, SQL Server. See [Cloud SQL Auth Proxy](/connections/cloud-sql-proxy) |
+| **SOCKS Proxy** | Route the connection through a SOCKS5 proxy. See [SOCKS Proxy](/connections/socks-proxy) |
+| **SSL/TLS** | Encryption mode and certificates. See [SSL/TLS](/connections/ssl) |
| **Customization** | Color, tags, group, Safe Mode |
| **Advanced** | Startup commands, pre-connect script, external access, plugin-specific fields |
| **AI Rules** | Per-connection guidance the AI assistant sees on every chat turn. See [AI Assistant](/features/ai-assistant) |
diff --git a/docs/databases/socks-proxy.mdx b/docs/connections/socks-proxy.mdx
similarity index 100%
rename from docs/databases/socks-proxy.mdx
rename to docs/connections/socks-proxy.mdx
diff --git a/docs/features/ssh-profiles.mdx b/docs/connections/ssh-profiles.mdx
similarity index 98%
rename from docs/features/ssh-profiles.mdx
rename to docs/connections/ssh-profiles.mdx
index dda146970..0413a6b50 100644
--- a/docs/features/ssh-profiles.mdx
+++ b/docs/connections/ssh-profiles.mdx
@@ -3,7 +3,7 @@ title: SSH Profiles
description: Save SSH tunnel configurations as reusable profiles shared across connections
---
-Define an SSH tunnel config once, then reuse it across multiple connections. A profile stores the server (host, port, username), the authentication method, optional two-factor (TOTP) settings, and jump hosts. For tunnel mechanics (auth methods, TOTP modes, jump hosts, `~/.ssh/config` resolution, troubleshooting), see [SSH Tunneling](/databases/ssh-tunneling).
+Define an SSH tunnel config once, then reuse it across multiple connections. A profile stores the server (host, port, username), the authentication method, optional two-factor (TOTP) settings, and jump hosts. For tunnel mechanics (auth methods, TOTP modes, jump hosts, `~/.ssh/config` resolution, troubleshooting), see [SSH Tunneling](/connections/ssh-tunneling).
## Creating a profile
diff --git a/docs/databases/ssh-tunneling.mdx b/docs/connections/ssh-tunneling.mdx
similarity index 98%
rename from docs/databases/ssh-tunneling.mdx
rename to docs/connections/ssh-tunneling.mdx
index b516e8069..5f0592761 100644
--- a/docs/databases/ssh-tunneling.mdx
+++ b/docs/connections/ssh-tunneling.mdx
@@ -26,7 +26,7 @@ The database **Host** and **Port** on the General pane are what the SSH server u
A connection uses one connection method at a time. If a Cloudflare tunnel, Cloud SQL Auth Proxy, or SOCKS proxy is already enabled, the pane shows a button to disable it.
-To reuse one SSH config across several connections, save it as a profile with **Save Current as Profile…** or pick one from the **Profile** picker. A selected profile replaces the inline fields with a read-only **Profile Details** summary. Switch the picker back to **Inline Configuration** to edit the settings on this connection. See [SSH Profiles](/features/ssh-profiles).
+To reuse one SSH config across several connections, save it as a profile with **Save Current as Profile…** or pick one from the **Profile** picker. A selected profile replaces the inline fields with a read-only **Profile Details** summary. Switch the picker back to **Inline Configuration** to edit the settings on this connection. See [SSH Profiles](/connections/ssh-profiles).
@@ -128,7 +128,7 @@ The SSH server has to allow socket forwarding. It is on by default, but if `sshd
## Import from URL
-Paste a `scheme+ssh://` URL to create a connection with SSH pre-filled. The `+ssh` suffix works with any non-file-based scheme (`mysql+ssh`, `postgres+ssh`, `redis+ssh`, `mongodb+ssh`, …). TablePlus SSH URLs import directly. See the [Connection URL Reference](/databases/connection-urls#ssh-tunnel-format) for the format and parameters.
+Paste a `scheme+ssh://` URL to create a connection with SSH pre-filled. The `+ssh` suffix works with any non-file-based scheme (`mysql+ssh`, `postgres+ssh`, `redis+ssh`, `mongodb+ssh`, …). TablePlus SSH URLs import directly. See the [Connection URL Reference](/connections/urls#ssh-tunnel-format) for the format and parameters.
## Troubleshooting
diff --git a/docs/features/ssl.mdx b/docs/connections/ssl.mdx
similarity index 100%
rename from docs/features/ssl.mdx
rename to docs/connections/ssl.mdx
diff --git a/docs/databases/connection-urls.mdx b/docs/connections/urls.mdx
similarity index 98%
rename from docs/databases/connection-urls.mdx
rename to docs/connections/urls.mdx
index 9ea80f0f2..beeebc720 100644
--- a/docs/databases/connection-urls.mdx
+++ b/docs/connections/urls.mdx
@@ -256,7 +256,7 @@ d1://account-id/database-name
|-----------|-------------|
| `usePrivateKey` | `true` to use key-based SSH authentication instead of password |
| `useSSHAgent` | `true` to use SSH agent for authentication |
-| `sshNoAuth` | `true` to authenticate with no password or key, for servers like Tailscale SSH. See [Authentication Methods](/databases/ssh-tunneling#authentication-methods) |
+| `sshNoAuth` | `true` to authenticate with no password or key, for servers like Tailscale SSH. See [Authentication Methods](/connections/ssh-tunneling#authentication-methods) |
| `agentSocket` | Custom SSH agent socket path |
**Example:**
diff --git a/docs/databases/beancount.mdx b/docs/databases/beancount.mdx
index f0434fe18..d206d90ef 100644
--- a/docs/databases/beancount.mdx
+++ b/docs/databases/beancount.mdx
@@ -79,7 +79,7 @@ launchctl setenv TABLEPRO_BEANCOUNT_BACKEND python
beancount:///path/to/main.beancount
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Tables
diff --git a/docs/databases/cassandra.mdx b/docs/databases/cassandra.mdx
index 9312cf5b6..a6057f3eb 100644
--- a/docs/databases/cassandra.mdx
+++ b/docs/databases/cassandra.mdx
@@ -29,7 +29,7 @@ cassandra://user:password@host:9042/keyspace
scylladb://user:password@host:9042/keyspace
```
-`cql://` and `scylla://` work too. See [Connection URL Reference](/databases/connection-urls#cassandra-/-scylladb).
+`cql://` and `scylla://` work too. See [Connection URL Reference](/connections/urls#cassandra-/-scylladb).
## Example configurations
@@ -37,7 +37,7 @@ scylladb://user:password@host:9042/keyspace
**Docker**: `cassandra:latest`, user/pass `cassandra:cassandra`
-**Remote**: use [SSH tunneling](/databases/ssh-tunneling) for production clusters
+**Remote**: use [SSH tunneling](/connections/ssh-tunneling) for production clusters
## Amazon Keyspaces (IAM)
@@ -45,7 +45,7 @@ Set **Authentication** to an AWS IAM mode (Access Key, Profile, or SSO) to conne
## SSL/TLS
-The Cassandra driver has no TLS fallback. **Preferred** behaves the same as **Required** (the SSL pane shows a warning). Use **Verify CA** with a CA certificate path for private PKI. For mutual TLS, set the client certificate and key paths; if the key is encrypted, enter its passphrase in the **Key Passphrase** field (stored in the Keychain). See [SSL/TLS](/features/ssl) for details.
+The Cassandra driver has no TLS fallback. **Preferred** behaves the same as **Required** (the SSL pane shows a warning). Use **Verify CA** with a CA certificate path for private PKI. For mutual TLS, set the client certificate and key paths; if the key is encrypted, enter its passphrase in the **Key Passphrase** field (stored in the Keychain). See [SSL/TLS](/connections/ssl) for details.
## Features
diff --git a/docs/databases/clickhouse.mdx b/docs/databases/clickhouse.mdx
index 47eb6fa27..1f758dd9d 100644
--- a/docs/databases/clickhouse.mdx
+++ b/docs/databases/clickhouse.mdx
@@ -18,11 +18,11 @@ Click **Create Connection…**, select **ClickHouse**, enter host, port, credent
| **Username** | `default` | Leave empty and TablePro sends `default`. Set a password in production |
| **Database** | `default` | Leave empty and the server uses `default`. Switch with Cmd+K |
-**SSL/TLS**: Setting any non-Disabled SSL Mode switches the URL scheme to `https`. **Preferred** and **Required** skip certificate verification, **Verify CA** validates against the supplied CA file, **Verify Identity** uses system default HTTPS trust (certificate chain plus hostname). Use **Verify Identity** for ClickHouse Cloud (port 8443); its certificates chain to a public CA. Use **Required** only for a self-signed certificate you have no CA file for. See [SSL/TLS](/features/ssl).
+**SSL/TLS**: Setting any non-Disabled SSL Mode switches the URL scheme to `https`. **Preferred** and **Required** skip certificate verification, **Verify CA** validates against the supplied CA file, **Verify Identity** uses system default HTTPS trust (certificate chain plus hostname). Use **Verify Identity** for ClickHouse Cloud (port 8443); its certificates chain to a public CA. Use **Required** only for a self-signed certificate you have no CA file for. See [SSL/TLS](/connections/ssl).
The CA file may be PEM or DER. If **Verify CA** cannot read the file you point it at, the connection fails rather than falling back to the public root store.
-For unencrypted HTTP to a remote server, use [SSH tunneling](/databases/ssh-tunneling).
+For unencrypted HTTP to a remote server, use [SSH tunneling](/connections/ssh-tunneling).
## Connection URL
@@ -30,7 +30,7 @@ For unencrypted HTTP to a remote server, use [SSH tunneling](/databases/ssh-tunn
clickhouse://user:password@host:8123/database
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Features
diff --git a/docs/databases/cockroachdb.mdx b/docs/databases/cockroachdb.mdx
index 1ff4b58e4..364ce093c 100644
--- a/docs/databases/cockroachdb.mdx
+++ b/docs/databases/cockroachdb.mdx
@@ -32,7 +32,7 @@ Set SSL Mode to **Verify Identity** for Cloud clusters. The Connection Options f
cockroachdb://user:password@host:26257/defaultdb
```
-`cockroach://` also works. See [Connection URL Reference](/databases/connection-urls) for all parameters.
+`cockroach://` also works. See [Connection URL Reference](/connections/urls) for all parameters.
## Features
diff --git a/docs/databases/duckdb.mdx b/docs/databases/duckdb.mdx
index 07877de88..f523c6416 100644
--- a/docs/databases/duckdb.mdx
+++ b/docs/databases/duckdb.mdx
@@ -58,7 +58,7 @@ duckdb:///path/to/database.duckdb
quack://host:9494/alias
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Opening DuckDB files from Finder
diff --git a/docs/databases/elasticsearch.mdx b/docs/databases/elasticsearch.mdx
index 03e9c35ac..125968fe8 100644
--- a/docs/databases/elasticsearch.mdx
+++ b/docs/databases/elasticsearch.mdx
@@ -99,6 +99,6 @@ Search responses render as a grid; `_cat` and other array responses tabularize;
- The SQL endpoint (`_sql`) is not supported. Use the Query DSL console.
- No schema editing and no transactions.
-- [SSH tunneling](/databases/ssh-tunneling) is not available for Elasticsearch connections.
+- [SSH tunneling](/connections/ssh-tunneling) is not available for Elasticsearch connections.
- Deep paging past 10,000 documents uses `search_after`, which can drift under concurrent writes.
- OpenSearch is not supported.
diff --git a/docs/databases/etcd.mdx b/docs/databases/etcd.mdx
index a002bfd11..ef545cdd9 100644
--- a/docs/databases/etcd.mdx
+++ b/docs/databases/etcd.mdx
@@ -93,7 +93,7 @@ role list
## SSH Tunnel
-etcd connections support [SSH tunneling](/databases/ssh-tunneling) for reaching remote clusters through a bastion host.
+etcd connections support [SSH tunneling](/connections/ssh-tunneling) for reaching remote clusters through a bastion host.
## Troubleshooting
diff --git a/docs/databases/mariadb.mdx b/docs/databases/mariadb.mdx
index f9b1f00d1..219b6e3db 100644
--- a/docs/databases/mariadb.mdx
+++ b/docs/databases/mariadb.mdx
@@ -3,7 +3,7 @@ title: MariaDB
description: Connect to MariaDB 10.x and later through the bundled MySQL driver
---
-Setup lives on the [MySQL](/databases/mysql) page. Picking **MySQL** or **MariaDB** in the connection form loads the same plugin, built on MariaDB Connector/C 3.4.8, so the fields, [AWS IAM](/databases/aws-iam), SSL/TLS and the rest of the feature set behave identically. Cloud SQL Auth Proxy is the one exception: that pane is offered for MySQL, PostgreSQL, and SQL Server only.
+Setup lives on the [MySQL](/databases/mysql) page. Picking **MySQL** or **MariaDB** in the connection form loads the same plugin, built on MariaDB Connector/C 3.4.8, so the fields, [AWS IAM](/connections/aws-iam), SSL/TLS and the rest of the feature set behave identically. Cloud SQL Auth Proxy is the one exception: that pane is offered for MySQL, PostgreSQL, and SQL Server only.
## Connection URL
@@ -13,7 +13,7 @@ Both schemes open a connection; `mariadb://` creates a MariaDB connection, `mysq
mariadb://user:password@host:3306/database
```
-See [Connection URL Reference](/databases/connection-urls).
+See [Connection URL Reference](/connections/urls).
## Differences from MySQL
@@ -28,4 +28,4 @@ See [Connection URL Reference](/databases/connection-urls).
## See also
- [MySQL](/databases/mysql): setup, connection fields, SSL/TLS, troubleshooting
-- [SSH Tunneling](/databases/ssh-tunneling)
+- [SSH Tunneling](/connections/ssh-tunneling)
diff --git a/docs/databases/mongodb.mdx b/docs/databases/mongodb.mdx
index ec1e4d6c0..bfb8e4819 100644
--- a/docs/databases/mongodb.mdx
+++ b/docs/databases/mongodb.mdx
@@ -61,7 +61,7 @@ Over an SSH tunnel TablePro connects to the first host only and drops the rest o
## SSL/TLS
-The MongoDB driver has no TLS fallback. **Preferred** behaves the same as **Required** (the SSL pane shows a warning). For unencrypted local instances, use **Disabled** or [SSH tunneling](/databases/ssh-tunneling). See [SSL/TLS](/features/ssl) for details.
+The MongoDB driver has no TLS fallback. **Preferred** behaves the same as **Required** (the SSL pane shows a warning). For unencrypted local instances, use **Disabled** or [SSH tunneling](/connections/ssh-tunneling). See [SSL/TLS](/connections/ssl) for details.
## Connection URL
@@ -72,7 +72,7 @@ mongodb+srv://user:password@cluster.mongodb.net/database
The `mongodb+srv://` scheme resolves hosts through DNS SRV records and does not allow a port. If you paste an SRV URL that includes one (for example `cluster.mongodb.net:27017`), TablePro strips it before connecting. The plain `mongodb://` scheme keeps any port you provide.
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Features
diff --git a/docs/databases/mssql.mdx b/docs/databases/mssql.mdx
index 270b1a1e4..98d071a21 100644
--- a/docs/databases/mssql.mdx
+++ b/docs/databases/mssql.mdx
@@ -137,7 +137,7 @@ sqlserver://user:password@host:1433/database
mssql://user:password@host:1433/database
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Databases and schemas
@@ -170,11 +170,11 @@ TablePro maps the SSL mode to FreeTDS `DBSETENCRYPT`. New connections default to
FreeTDS reads certificate settings from a config file rather than from the connection, so the two verifying modes make TablePro write a one-entry config for that connection and point FreeTDS at it. Nothing on your machine changes: your own `freetds.conf` is used for every other connection.
-Verification uses the macOS system roots at `/etc/ssl/cert.pem`, which covers Azure SQL and any server with a publicly trusted certificate. For a private authority, set the CA certificate on the SSL tab and that file is used instead. See [SSL/TLS](/features/ssl) for concepts.
+Verification uses the macOS system roots at `/etc/ssl/cert.pem`, which covers Azure SQL and any server with a publicly trusted certificate. For a private authority, set the CA certificate on the SSL tab and that file is used instead. See [SSL/TLS](/connections/ssl) for concepts.
## Google Cloud SQL
-SQL Server connections can run through the Cloud SQL Auth Proxy; TablePro starts and stops the proxy for you. See [Cloud SQL Auth Proxy](/databases/cloud-sql-proxy).
+SQL Server connections can run through the Cloud SQL Auth Proxy; TablePro starts and stops the proxy for you. See [Cloud SQL Auth Proxy](/connections/cloud-sql-proxy).
## Troubleshooting
diff --git a/docs/databases/mysql.mdx b/docs/databases/mysql.mdx
index c2c8dab29..3e96da158 100644
--- a/docs/databases/mysql.mdx
+++ b/docs/databases/mysql.mdx
@@ -31,7 +31,7 @@ MySQL 8 accounts on `caching_sha2_password` connect on the first try, with no au
mysql://user:password@host:3306/database
```
-Opening a URL connects directly. See [Connection URL Reference](/databases/connection-urls).
+Opening a URL connects directly. See [Connection URL Reference](/connections/urls).
## Common setups
@@ -40,17 +40,17 @@ Opening a URL connects directly. See [Connection URL Reference](/databases/conne
| Homebrew | `localhost:3306` |
| Docker | `localhost` with the mapped port, password from `MYSQL_ROOT_PASSWORD` |
| MAMP Pro | `localhost:8889`, user and password `root` |
-| AWS RDS / Aurora | Endpoint hostname, password or [AWS IAM](/databases/aws-iam) |
-| Google Cloud SQL | [Cloud SQL Auth Proxy](/databases/cloud-sql-proxy) |
-| Remote production | [SSH tunnel](/databases/ssh-tunneling) |
+| AWS RDS / Aurora | Endpoint hostname, password or [AWS IAM](/connections/aws-iam) |
+| Google Cloud SQL | [Cloud SQL Auth Proxy](/connections/cloud-sql-proxy) |
+| Remote production | [SSH tunnel](/connections/ssh-tunneling) |
## AWS IAM authentication
-RDS and Aurora connections can use your AWS identity instead of a static password: TablePro signs a fresh 15-minute token on every connect and reconnect. Setup and troubleshooting are on [AWS IAM Authentication](/databases/aws-iam).
+RDS and Aurora connections can use your AWS identity instead of a static password: TablePro signs a fresh 15-minute token on every connect and reconnect. Setup and troubleshooting are on [AWS IAM Authentication](/connections/aws-iam).
## Google Cloud SQL
-Turn on **Cloud SQL Auth Proxy** in the connection form and enter the instance connection name; TablePro starts and stops the proxy for you. See [Cloud SQL Auth Proxy](/databases/cloud-sql-proxy).
+Turn on **Cloud SQL Auth Proxy** in the connection form and enter the instance connection name; TablePro starts and stops the proxy for you. See [Cloud SQL Auth Proxy](/connections/cloud-sql-proxy).
## Users & Roles
@@ -71,11 +71,11 @@ The sidebar lists all accessible databases with each table's structure (columns,
Table and column comments show in the UI: the sidebar dims a table's comment after its name, and the data grid header tooltip includes the column comment. Toggle this by right-clicking the sidebar and choosing **View Options > Comments**.
-Set session variables (timezone, encoding) on connect with [Startup Commands](/databases/overview#startup-commands).
+Set session variables (timezone, encoding) on connect with [Startup Commands](/connections#startup-commands).
## SSL/TLS
-New connections default to **Preferred**: the driver tries TLS first and retries in plain text only after an SSL handshake error (auth and network errors are not retried). This works for Cloud SQL, Azure MySQL, and local Docker alike. Use **Verify CA** with the provider's certificate for strict validation. See [SSL/TLS](/features/ssl).
+New connections default to **Preferred**: the driver tries TLS first and retries in plain text only after an SSL handshake error (auth and network errors are not retried). This works for Cloud SQL, Azure MySQL, and local Docker alike. Use **Verify CA** with the provider's certificate for strict validation. See [SSL/TLS](/connections/ssl).
## Troubleshooting
diff --git a/docs/databases/oracle.mdx b/docs/databases/oracle.mdx
index 0fea224b5..2b48adbbe 100644
--- a/docs/databases/oracle.mdx
+++ b/docs/databases/oracle.mdx
@@ -58,7 +58,7 @@ If you have an older wallet that stopped working, this is the path to switch to.
## SSL/TLS
-OracleNIO has no TLS fallback. **Preferred** connects in plain TCP (the SSL pane shows a warning). Use **Required** for TCPS, **Verify CA** with a CA certificate path for strict validation. See [SSL/TLS](/features/ssl) for details.
+OracleNIO has no TLS fallback. **Preferred** connects in plain TCP (the SSL pane shows a warning). Use **Required** for TCPS, **Verify CA** with a CA certificate path for strict validation. See [SSL/TLS](/connections/ssl) for details.
## Connection URL
@@ -66,7 +66,7 @@ OracleNIO has no TLS fallback. **Preferred** connects in plain TCP (the SSL pane
oracle://user:password@host:1521/service_name
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Features
diff --git a/docs/databases/pglite.mdx b/docs/databases/pglite.mdx
index f391c3dfb..61eb6f80d 100644
--- a/docs/databases/pglite.mdx
+++ b/docs/databases/pglite.mdx
@@ -36,7 +36,7 @@ The socket server never checks a password, so the form has no password field. SS
pglite://postgres@127.0.0.1:5432/postgres
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Features
diff --git a/docs/databases/postgresql.mdx b/docs/databases/postgresql.mdx
index ca33ad67b..48f417fb3 100644
--- a/docs/databases/postgresql.mdx
+++ b/docs/databases/postgresql.mdx
@@ -14,7 +14,7 @@ TablePro supports PostgreSQL 12 and later via the libpq C connector. The same dr
| **Username** | - | Not pre-filled; most servers use `postgres` |
| **Database** | - | **Required** (unlike MySQL) |
-Fill in the form and click **Save & Connect**. For remote servers use [SSH tunneling](/databases/ssh-tunneling); Google Cloud SQL instances can connect through the [Cloud SQL Auth Proxy](/databases/cloud-sql-proxy).
+Fill in the form and click **Save & Connect**. For remote servers use [SSH tunneling](/connections/ssh-tunneling); Google Cloud SQL instances can connect through the [Cloud SQL Auth Proxy](/connections/cloud-sql-proxy).
@@ -27,11 +27,11 @@ Fill in the form and click **Save & Connect**. For remote servers use [SSH tunne
postgresql://user:password@host:5432/database
```
-`postgres://` also works. Opening a URL connects directly. See [Connection URL Reference](/databases/connection-urls).
+`postgres://` also works. Opening a URL connects directly. See [Connection URL Reference](/connections/urls).
## AWS IAM authentication
-Connect to RDS or Aurora with your AWS identity instead of a static password: set **Authentication** to an AWS IAM option and set **Username** to a database role granted `rds_iam`. See [AWS IAM Authentication](/databases/aws-iam) for setup, credential sources, and troubleshooting.
+Connect to RDS or Aurora with your AWS identity instead of a static password: set **Authentication** to an AWS IAM option and set **Username** to a database role granted `rds_iam`. See [AWS IAM Authentication](/connections/aws-iam) for setup, credential sources, and troubleshooting.
## Features
@@ -71,7 +71,7 @@ That separate connection means the tab does not share temp tables, session varia
## SSL/TLS
-New connections default to **Preferred** (libpq `sslmode=prefer`), which tries TLS first and falls back to plain. Pick **Verify CA** to validate the server certificate. See [SSL/TLS](/features/ssl).
+New connections default to **Preferred** (libpq `sslmode=prefer`), which tries TLS first and falls back to plain. Pick **Verify CA** to validate the server certificate. See [SSL/TLS](/connections/ssl).
## Troubleshooting
diff --git a/docs/databases/redis.mdx b/docs/databases/redis.mdx
index e95f5cc11..888880d40 100644
--- a/docs/databases/redis.mdx
+++ b/docs/databases/redis.mdx
@@ -29,7 +29,7 @@ TablePro connects to standalone Redis servers, Sentinel-managed primaries and Re
| **Key Separator** | `:` | Groups keys by prefix in sidebar (Advanced) |
-Open URLs like `redis://:password@host:6379/0` or `rediss://` (TLS) from your browser. See [Connection URL Reference](/databases/connection-urls#redis).
+Open URLs like `redis://:password@host:6379/0` or `rediss://` (TLS) from your browser. See [Connection URL Reference](/connections/urls#redis).
## Connection modes
diff --git a/docs/databases/redshift.mdx b/docs/databases/redshift.mdx
index 39d01fcca..2d65c9d76 100644
--- a/docs/databases/redshift.mdx
+++ b/docs/databases/redshift.mdx
@@ -25,7 +25,7 @@ AWS IAM authentication is not available for Redshift connections (unlike MySQL a
redshift://user:password@my-cluster.abc123xyz.us-east-1.redshift.amazonaws.com:5439/dev
```
-See [Connection URL Reference](/databases/connection-urls).
+See [Connection URL Reference](/connections/urls).
## Features
@@ -64,7 +64,7 @@ Redshift is a columnar warehouse, not a general-purpose RDBMS.
## Troubleshooting
-**Connection refused**: check the security group allows port 5439, the cluster is publicly accessible (or use an [SSH tunnel](/databases/ssh-tunneling)), and the cluster is not paused.
+**Connection refused**: check the security group allows port 5439, the cluster is publicly accessible (or use an [SSH tunnel](/connections/ssh-tunneling)), and the cluster is not paused.
**Auth failed**: verify the master username and password in the AWS Console.
diff --git a/docs/databases/sqlite.mdx b/docs/databases/sqlite.mdx
index 198558745..b64bb22df 100644
--- a/docs/databases/sqlite.mdx
+++ b/docs/databases/sqlite.mdx
@@ -41,7 +41,7 @@ System databases may also be locked. Quit their parent app before opening.
sqlite:///path/to/database.db
```
-See [Connection URL Reference](/databases/connection-urls) for all parameters.
+See [Connection URL Reference](/connections/urls) for all parameters.
## Features
diff --git a/docs/databases/surrealdb.mdx b/docs/databases/surrealdb.mdx
index de1456bbb..e5751d7c6 100644
--- a/docs/databases/surrealdb.mdx
+++ b/docs/databases/surrealdb.mdx
@@ -13,7 +13,7 @@ Click **Create Connection…**, select **SurrealDB**, enter the host and port (d
SurrealDB is a registry plugin. Picking it in the **Choose a Database** sheet prompts to install; connecting to a saved SurrealDB connection installs it without asking. You can also install **SurrealDB Driver** from **Settings > Plugins > Browse**.
-TablePro registers the `surrealdb://` URL scheme, so `surrealdb://user:pass@host:8000` links pre-fill the connection form (see [Connection URL Reference](/databases/connection-urls)). For a remote server, connect through an [SSH tunnel](/databases/ssh-tunneling).
+TablePro registers the `surrealdb://` URL scheme, so `surrealdb://user:pass@host:8000` links pre-fill the connection form (see [Connection URL Reference](/connections/urls)). For a remote server, connect through an [SSH tunnel](/connections/ssh-tunneling).
## Namespaces and databases
diff --git a/docs/docs.json b/docs/docs.json
index ed1dcbbda..f4ed9eb40 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -63,6 +63,42 @@
{
"source": "/features/import",
"destination": "/features/import-export"
+ },
+ {
+ "source": "/databases/connection-urls",
+ "destination": "/connections/urls"
+ },
+ {
+ "source": "/databases/ssh-tunneling",
+ "destination": "/connections/ssh-tunneling"
+ },
+ {
+ "source": "/databases/cloudflare-tunnel",
+ "destination": "/connections/cloudflare-tunnel"
+ },
+ {
+ "source": "/databases/cloud-sql-proxy",
+ "destination": "/connections/cloud-sql-proxy"
+ },
+ {
+ "source": "/databases/socks-proxy",
+ "destination": "/connections/socks-proxy"
+ },
+ {
+ "source": "/databases/aws-iam",
+ "destination": "/connections/aws-iam"
+ },
+ {
+ "source": "/databases/overview",
+ "destination": "/connections"
+ },
+ {
+ "source": "/features/ssh-profiles",
+ "destination": "/connections/ssh-profiles"
+ },
+ {
+ "source": "/features/ssl",
+ "destination": "/connections/ssl"
}
],
"navigation": {
@@ -84,41 +120,47 @@
},
{
"group": "Connections",
+ "icon": "plug",
"pages": [
- "databases/overview",
- "databases/connection-urls",
- "databases/ssh-tunneling",
- "databases/cloudflare-tunnel",
- "databases/cloud-sql-proxy",
- "databases/socks-proxy",
- "databases/aws-iam"
+ "connections/index",
+ "connections/urls",
+ "connections/ssh-tunneling",
+ "connections/ssh-profiles",
+ "connections/cloudflare-tunnel",
+ "connections/cloud-sql-proxy",
+ "connections/socks-proxy",
+ "connections/aws-iam",
+ "connections/ssl",
+ "features/connection-sharing",
+ "features/project-folder-import"
]
},
{
"group": "Databases",
"icon": "database",
"pages": [
+ "features/plugins",
+ "databases/dynamodb",
+ "databases/redshift",
"databases/beancount",
- "databases/bigquery",
"databases/cassandra",
"databases/clickhouse",
"databases/cloudflare-d1",
"databases/cockroachdb",
"databases/dameng",
"databases/duckdb",
- "databases/dynamodb",
"databases/elasticsearch",
"databases/etcd",
+ "databases/bigquery",
"databases/libsql",
"databases/mariadb",
- "databases/mongodb",
"databases/mssql",
+ "databases/mongodb",
"databases/mysql",
"databases/oracle",
"databases/pglite",
"databases/postgresql",
"databases/redis",
- "databases/redshift",
"databases/snowflake",
"databases/sqlite",
"databases/surrealdb",
@@ -127,84 +169,76 @@
]
},
{
- "group": "Features",
+ "group": "Write SQL",
+ "icon": "code",
+ "pages": [
+ "features/sql-editor",
+ "features/autocomplete",
+ "features/query-parameters",
+ "features/vim-mode",
+ "features/query-history",
+ "features/query-insights"
+ ]
+ },
+ {
+ "group": "Browse and edit data",
+ "icon": "table",
+ "pages": [
+ "features/data-grid",
+ "features/filtering",
+ "features/change-tracking",
+ "features/json-viewer",
+ "features/csv-inspector"
+ ]
+ },
+ {
+ "group": "Schema and server",
+ "icon": "sitemap",
+ "pages": [
+ "features/table-structure",
+ "features/table-operations",
+ "features/er-diagram",
+ "features/explain-visualization",
+ "features/server-dashboard",
+ "features/users-roles"
+ ]
+ },
+ {
+ "group": "Import and export",
+ "icon": "arrow-right-arrow-left",
+ "pages": [
+ "features/import-export",
+ "features/backup-restore"
+ ]
+ },
+ {
+ "group": "AI",
+ "icon": "sparkles",
+ "pages": [
+ "features/ai-assistant",
+ "features/mcp"
+ ]
+ },
+ {
+ "group": "Around the app",
+ "icon": "window-maximize",
"pages": [
"features/overview",
- {
- "group": "Editor & Data",
- "pages": [
- "features/sql-editor",
- "features/query-parameters",
- "features/data-grid",
- "features/table-structure",
- "features/table-operations",
- "features/autocomplete",
- "features/vim-mode"
- ]
- },
- {
- "group": "AI",
- "pages": [
- "features/ai-assistant",
- "features/mcp"
- ]
- },
- {
- "group": "Views & Visualization",
- "pages": [
- "features/er-diagram",
- "features/explain-visualization",
- "features/json-viewer",
- "features/server-dashboard",
- "features/users-roles"
- ]
- },
- {
- "group": "Data Management",
- "pages": [
- "features/csv-inspector",
- "features/import-export",
- "features/backup-restore",
- "features/change-tracking",
- "features/filtering"
- ]
- },
- {
- "group": "Workflow",
- "pages": [
- "features/tabs",
- "features/workspace-rail",
- "features/open-quickly",
- "features/query-history",
- "features/query-insights",
- "features/favorites",
- "features/project-folder-import",
- "features/keyboard-shortcuts"
- ]
- },
- {
- "group": "Sharing",
- "pages": [
- "features/ssh-profiles",
- "features/connection-sharing"
- ]
- },
- {
- "group": "Sync",
- "pages": [
- "features/icloud-sync",
- "features/handoff"
- ]
- },
- {
- "group": "Team & Licensing",
- "pages": [
- "features/team",
- "features/licensing"
- ]
- },
- "features/plugins",
- "features/acknowledgements"
+ "features/tabs",
+ "features/workspace-rail",
+ "features/open-quickly",
+ "features/favorites",
+ "features/keyboard-shortcuts"
+ ]
+ },
+ {
+ "group": "Sync and licensing",
+ "icon": "arrows-rotate",
+ "pages": [
+ "features/icloud-sync",
+ "features/handoff",
+ "features/licensing",
+ "features/team"
]
},
{
@@ -229,7 +263,7 @@
"pages": [
"security/privacy",
"features/safe-mode",
- "features/ssl"
+ "features/acknowledgements"
]
}
]
diff --git a/docs/external-api/terminal.mdx b/docs/external-api/terminal.mdx
index 79378ad9a..463c57ac8 100644
--- a/docs/external-api/terminal.mdx
+++ b/docs/external-api/terminal.mdx
@@ -7,7 +7,7 @@ Run `open -b com.TablePro "mysql://root@127.0.0.1:3306/shop"` from any shell and
## Open a database from the shell
-Pass a [connection URL](/databases/connection-urls) to `open`:
+Pass a [connection URL](/connections/urls) to `open`:
```bash
open "mysql://root@127.0.0.1:3306/shop"
diff --git a/docs/faq.mdx b/docs/faq.mdx
index 953a1d67a..d16e4e272 100644
--- a/docs/faq.mdx
+++ b/docs/faq.mdx
@@ -46,7 +46,7 @@ Passwords go into the macOS Keychain, not the connections file, and an ordinary
-27, from MySQL, PostgreSQL, and SQLite through MongoDB, Redis, ClickHouse, BigQuery, and DuckDB. The table on the [home page](/) lists each one, and [Managing Connections](/databases/overview) adds the transport each supports and whether it can go through an SSH tunnel, SSL, Cloudflare Tunnel, Cloud SQL Proxy, or a SOCKS proxy.
+27, from MySQL, PostgreSQL, and SQLite through MongoDB, Redis, ClickHouse, BigQuery, and DuckDB. The table on the [home page](/) lists each one, and [Managing Connections](/connections) adds the transport each supports and whether it can go through an SSH tunnel, SSL, Cloudflare Tunnel, Cloud SQL Proxy, or a SOCKS proxy.
diff --git a/docs/features/connection-sharing.mdx b/docs/features/connection-sharing.mdx
index 61d661135..bd3e7e23b 100644
--- a/docs/features/connection-sharing.mdx
+++ b/docs/features/connection-sharing.mdx
@@ -21,7 +21,7 @@ The Share menu also has three copy items. **Copy Connection String** writes a fu
## Import
- **File > Import Connections…**
-- **File > Import from URL…** (paste a database URL, see [Connection URLs](/databases/connection-urls))
+- **File > Import from URL…** (paste a database URL, see [Connection URLs](/connections/urls))
- Right-click empty area > **Import Connections…**
- Double-click a `.tablepro` file
- Drag onto TablePro
diff --git a/docs/features/icloud-sync.mdx b/docs/features/icloud-sync.mdx
index 715ec5bde..c1708c94c 100644
--- a/docs/features/icloud-sync.mdx
+++ b/docs/features/icloud-sync.mdx
@@ -12,7 +12,7 @@ Sync is off by default, and it needs an active license, Starter or Team (see [Li
| **Connections** | Yes | Host, port, username, database type, SSH/SSL config |
| **Passwords** | Opt-in | Via iCloud Keychain (end-to-end encrypted), nested under the Connections toggle |
| **Groups & Tags** | Yes | Full connection organization, including nested group hierarchy and sort order |
-| **SSH Profiles** | Yes | Named [SSH profiles](/features/ssh-profiles). Has its own toggle. |
+| **SSH Profiles** | Yes | Named [SSH profiles](/connections/ssh-profiles). Has its own toggle. |
| **Table Favorites** | Yes | Favorited table names shown in the Favorites tab and pinned in table lists |
| **Saved Queries** | Yes | Saved SQL queries and their folders. Has its own toggle. |
| **Settings** | Yes | General, Appearance, Editor, Data Grid, History, Tabs, Keyboard, and AI settings, plus custom AI slash commands and saved per-table column widths and order |
diff --git a/docs/features/overview.mdx b/docs/features/overview.mdx
index 5bbeb9546..20288e47f 100644
--- a/docs/features/overview.mdx
+++ b/docs/features/overview.mdx
@@ -1,67 +1,98 @@
---
title: Features Overview
-description: Index of TablePro features grouped by editor, AI, views, data management, workflow, security, sync, team and licensing, and extensibility
+description: Every feature page, grouped the way the sidebar groups them
---
Every feature in TablePro, grouped so you can jump straight to what you need.
TablePro opens with a welcome window: an actions panel on the left and your saved connections on the right. The panel has **Create Connection…** and an **Add from Existing** menu holding Import from URL, Import from Other App, Open Project Folder, and Import Connections. Search sits in the connections panel header; press `Cmd+F` to focus it. With nothing saved yet, the connections panel offers **Try Sample Database**, a bundled Chinook SQLite database. Reset it any time from **Help > Reset Sample Database…**.
-## Editor & data
+## Connections
-
- Tree-sitter highlighting, multi-statement execution, formatting.
+
+ Reach a database behind a bastion. Built-in libssh2, no `ssh` binary required.
-
- `:name` placeholders filled in a panel, run as prepared statements.
+
+ Reusable SSH tunnel configurations.
-
- Inline editing, sorting, filtering, change tracking with undo.
+
+ Encrypted connections, per-engine defaults, certificate verification.
-
- Alter columns, indexes, foreign keys, primary keys.
+
+ Export and import connection definitions.
-
- Truncate, drop, rename, duplicate, copy DDL.
+
+ Create a connection from the database settings in a project's config files.
+
+
+
+## Databases
+
+
+
+ Install drivers, import and export formats, and themes from the registry.
+
+
+
+## Write SQL
+
+
+
+ Tree-sitter highlighting, multi-statement execution, formatting.
Schema-aware completions backed by cached column metadata.
+
+ `:name` placeholders filled in a panel, run as prepared statements.
+
Modal editing in the SQL editor with motions, operators, text objects, and macros.
+
+ SQLite FTS5-backed history with full-text search.
+
+
+ What your own query history says about which statements are slow and which repeat. Starter feature.
+
-## AI
+## Browse and edit data
-
- Chat, inline suggestions, explain, optimize, and fix-error.
+
+ Inline editing, sorting, filtering, change tracking with undo.
-
- Expose TablePro to Claude and other MCP clients.
+
+ Per-column filters, presets, persisted per table.
-
- URL scheme, MCP, and pairing for Raycast, Cursor, Claude Desktop.
+
+ Stage edits, preview SQL, save or discard.
-
- Search connections, run queries, focus tabs from Raycast.
+
+ JSON, PHP serialized, and binary viewers, per-column display formats, row details inspector.
+
+
+ Open and edit CSV and TSV files without importing them.
-## Views & visualization
+## Schema and server
+
+ Alter columns, indexes, foreign keys, primary keys.
+
+
+ Truncate, drop, rename, duplicate, copy DDL.
+
Visualize tables and foreign keys.
Inspect query plans as a tree.
-
- JSON, PHP serialized, and binary viewers, per-column display formats, row details inspector.
-
Live server stats and activity.
@@ -70,70 +101,58 @@ TablePro opens with a welcome window: an actions panel on the left and your save
-## Data management
+## Import and export
-
- Open and edit CSV and TSV files without importing them.
-
CSV, JSON, SQL dumps in and out.
pg_dump and pg_restore for PostgreSQL and Redshift.
-
- Stage edits, preview SQL, save or discard.
-
-
- Per-column filters, presets, persisted per table.
-
-## Workflow
+## AI
-
- A tab strip per connection, in one window.
-
-
- Cmd+Shift+O fuzzy search across tables, databases, and saved queries.
-
-
- SQLite FTS5-backed history with full-text search.
+
+ Chat, inline suggestions, explain, optimize, and fix-error.
-
- Pin tables and save reusable queries.
+
+ Expose TablePro to Claude and other MCP clients.
-
- Create a connection from the database settings in a project's config files.
+
+ URL scheme, MCP, and pairing for Raycast, Cursor, Claude Desktop.
-
- Full shortcut reference.
+
+ Search connections, run queries, focus tabs from Raycast.
`tablepro://` URLs to open connections, tables, and queries.
-## Security & sharing
+## Around the app
-
- Prompt before destructive statements on production.
+
+ A tab strip per connection, in one window.
-
- Reusable SSH tunnel configurations.
+
+ The narrow column listing every connection and database you have open.
-
- Encrypted connections, per-engine defaults, certificate verification.
+
+ Cmd+Shift+O fuzzy search across tables, databases, and saved queries.
-
- Export and import connection definitions.
+
+ Pin tables and save reusable queries.
+
+
+ Full shortcut reference.
-## Sync
+## Sync and licensing
@@ -142,23 +161,18 @@ TablePro opens with a welcome window: an actions panel on the left and your save
Resume the active connection or table on another Mac.
-
-
-## Team & licensing
-
-
-
- Share one license, manage seats on the web, join with an invite code.
-
Activate a license key, tier comparison, offline validation.
+
+ Share one license, manage seats on the web, join with an invite code.
+
-## Extensibility
+## Security and privacy
-
- Install drivers, import and export formats, and themes from the registry.
+
+ Prompt before destructive statements on production.
diff --git a/docs/features/project-folder-import.mdx b/docs/features/project-folder-import.mdx
index 8154742cd..8da863cd0 100644
--- a/docs/features/project-folder-import.mdx
+++ b/docs/features/project-folder-import.mdx
@@ -48,7 +48,7 @@ The scan does not follow symlinks, skips `node_modules`, `.git`, `vendor`, `dist
## When a value cannot be read
-Some settings point somewhere else instead of holding a value, like `${{Postgres.DATABASE_URL}}` on Railway or a Rails credential lookup. TablePro leaves those out rather than guessing, so a row you expected may be missing. Fill those connections in by hand, or paste the URL with [Import from URL](/databases/connection-urls).
+Some settings point somewhere else instead of holding a value, like `${{Postgres.DATABASE_URL}}` on Railway or a Rails credential lookup. TablePro leaves those out rather than guessing, so a row you expected may be missing. Fill those connections in by hand, or paste the URL with [Import from URL](/connections/urls).
## Related
diff --git a/docs/features/query-insights.mdx b/docs/features/query-insights.mdx
index 85cd579ca..164f9a30f 100644
--- a/docs/features/query-insights.mdx
+++ b/docs/features/query-insights.mdx
@@ -76,4 +76,4 @@ Insights refreshes itself as you run queries. The refresh button is there for wh
It only knows what your Mac recorded. Queries run before you installed TablePro, run by other people, or run while [capture was paused](/features/query-history#pausing) are not in it. Queries pruned by your [retention settings](/features/query-history#storage-and-retention), 10,000 entries and 90 days by default, are gone too, so a long **All Time** range does not reach further back than retention allows.
-Durations are measured by TablePro, from sending the query to getting the result. That includes network time and any [SSH tunnel](/features/ssh-profiles), so a query is "slower" here if your connection got slower, not only if the server did. For server-side timings see the [Server Dashboard](/features/server-dashboard) and [EXPLAIN](/features/explain-visualization).
+Durations are measured by TablePro, from sending the query to getting the result. That includes network time and any [SSH tunnel](/connections/ssh-profiles), so a query is "slower" here if your connection got slower, not only if the server did. For server-side timings see the [Server Dashboard](/features/server-dashboard) and [EXPLAIN](/features/explain-visualization).
diff --git a/docs/features/workspace-rail.mdx b/docs/features/workspace-rail.mdx
index 3eef8d44e..a12d7d21c 100644
--- a/docs/features/workspace-rail.mdx
+++ b/docs/features/workspace-rail.mdx
@@ -1,5 +1,5 @@
---
-title: Connections
+title: Connections strip
description: Switch between every connection and database you have open from a narrow strip on the leading edge of the window
---
diff --git a/docs/index.mdx b/docs/index.mdx
index bd65d35e3..fbb3576b0 100644
--- a/docs/index.mdx
+++ b/docs/index.mdx
@@ -29,7 +29,7 @@ Native macOS client for 27 databases. Built with SwiftUI and AppKit, no Electron
**[AI Assistant](/features/ai-assistant)**: Chat, inline suggestions, and Explain/Optimize across 14 providers, including GitHub Copilot, Claude, OpenAI, Gemini, xAI, and local llama.cpp, MLX, and Ollama.
**[MCP Server](/features/mcp)**: Expose your connections to Claude Desktop, Cursor, Raycast, and other MCP clients. The [External API](/external-api) adds a `tablepro://` URL scheme and one-click pairing.
**[Users & Roles](/features/users-roles)**: Manage database users, roles, and privileges on MySQL and PostgreSQL. Changes are staged, undoable, and shown as SQL before they run.
-**[Secure Connections](/databases/ssh-tunneling)**: SSH tunnels authenticate with a password, a private key, an SSH agent, keyboard-interactive, or no credentials at all. Passwords stay in the Keychain, or [resolve at connect time](/features/connection-sharing#password-sources) from a file, an environment variable, a command, 1Password, HashiCorp Vault, or AWS Secrets Manager.
+**[Secure Connections](/connections/ssh-tunneling)**: SSH tunnels authenticate with a password, a private key, an SSH agent, keyboard-interactive, or no credentials at all. Passwords stay in the Keychain, or [resolve at connect time](/features/connection-sharing#password-sources) from a file, an environment variable, a command, 1Password, HashiCorp Vault, or AWS Secrets Manager.
**[Safe Mode](/features/safe-mode)**: 6 per-connection protection levels, from no prompt at all to confirmation dialogs, Touch ID, and read-only.
**[Import & Export](/features/import-export)**: CSV, JSON, SQL, XLSX, MQL. Streaming export for large datasets.
**[CSV Inspector](/features/csv-inspector)**: Open `.csv` and `.tsv` files directly. Edit cells, insert and delete rows and columns, save in the original dialect.
diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx
index 19e7542ef..ab1694078 100644
--- a/docs/quickstart.mdx
+++ b/docs/quickstart.mdx
@@ -101,6 +101,6 @@ SELECT * FROM users LIMIT 10;
## What's next
-Explore [connections](/databases/overview), [SSH tunneling](/databases/ssh-tunneling), [keyboard shortcuts](/features/keyboard-shortcuts), or [AI features](/features/ai-assistant).
+Explore [connections](/connections), [SSH tunneling](/connections/ssh-tunneling), [keyboard shortcuts](/features/keyboard-shortcuts), or [AI features](/features/ai-assistant).
Need help? [Open an issue](https://github.com/TableProApp/TablePro/issues) on GitHub.
diff --git a/docs/switching.mdx b/docs/switching.mdx
index 3a21cb352..0ae20c5ec 100644
--- a/docs/switching.mdx
+++ b/docs/switching.mdx
@@ -116,4 +116,4 @@ TablePro ships 5 drivers inside the app and installs 17 more from the plugin reg
-If it is genuinely not there, open a request on [GitHub](https://github.com/TableProApp/TablePro/issues). Driver coverage is tracked in the open, and the [supported database list](/databases/overview) is the current answer.
+If it is genuinely not there, open a request on [GitHub](https://github.com/TableProApp/TablePro/issues). Driver coverage is tracked in the open, and the [supported database list](/connections) is the current answer.
diff --git a/docs/troubleshooting.mdx b/docs/troubleshooting.mdx
index 8f77373d9..88f88be27 100644
--- a/docs/troubleshooting.mdx
+++ b/docs/troubleshooting.mdx
@@ -22,7 +22,7 @@ A failed connect paints the window with **Could not connect to ``** and th
## TLS and certificates
-A handshake failure is reported with the cause named and a specific SSL Mode to switch to, with the driver's original error underneath. The ladder is Disabled, Preferred, Required, Verify CA, Verify Identity. Every handshake error string and the mode that fixes it is on [SSL/TLS](/features/ssl).
+A handshake failure is reported with the cause named and a specific SSL Mode to switch to, with the driver's original error underneath. The ladder is Disabled, Preferred, Required, Verify CA, Verify Identity. Every handshake error string and the mode that fixes it is on [SSL/TLS](/connections/ssl).
## A plugin will not install or load
@@ -60,7 +60,7 @@ The server presented a key that does not match the stored one, or you declined t
The tunnel binds a local port between 60000 and 65000 and found none free. List what is holding them with `lsof -nP -iTCP -sTCP:LISTEN`. Quit those processes and reconnect.
-Failures on the far side start with "The SSH server could not reach …". Those and the authentication rejections are in [SSH Tunneling](/databases/ssh-tunneling).
+Failures on the far side start with "The SSH server could not reach …". Those and the authentication rejections are in [SSH Tunneling](/connections/ssh-tunneling).
## A query is slow, or the results stop short