Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 2 additions & 25 deletions docs/customization/editor-settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,7 @@ The font picker shows installed monospaced families on your Mac.
| **Monaco** | Traditional Mac programming font |
| **Courier New** | Cross-platform standard |

<Tip>
**System Mono** automatically uses the best available system monospace font.
</Tip>

If a saved font is no longer available, TablePro falls back to System Mono.
Falls back to System Mono if a saved font is unavailable.

{/* Screenshot: Font family selector */}
<Frame caption="Font family selector with available fonts">
Expand Down Expand Up @@ -75,15 +71,6 @@ If a saved font is no longer available, TablePro falls back to System Mono.
/>
</Frame>

**Recommendations**:

| Size | Best For |
|------|----------|
| 11-12 pt | Small screens, seeing more code |
| 13-14 pt | Standard usage (default) |
| 15-16 pt | Better readability |
| 17-18 pt | Large screens, accessibility |

## Display Settings

### Line Numbers
Expand Down Expand Up @@ -157,14 +144,6 @@ If a saved font is no longer available, TablePro falls back to System Mono.
|---------|---------|---------|
| Tab Width | 1-16 spaces | 4 |

Common choices:

| Width | Usage |
|-------|-------|
| 2 spaces | Compact, JavaScript-style |
| 4 spaces | Standard SQL formatting (recommended) |
| 8 spaces | Traditional Unix-style |

{/* Screenshot: Tab width setting */}
<Frame caption="Tab width setting for indentation">
<img
Expand Down Expand Up @@ -216,14 +195,12 @@ SELECT
| **Off** | Keywords stay as typed (default) |
| **On** | SQL keywords auto-uppercase when you type a space or delimiter |

When enabled, recognized SQL keywords (`select`, `from`, `where`, `join`, etc.) are converted to uppercase as soon as you type a word boundary character (space, tab, newline, parenthesis, comma, or semicolon). Keywords inside strings, comments, and backtick-quoted identifiers are left unchanged.
SQL keywords auto-uppercase on word boundaries. Keywords inside strings, comments, and quoted identifiers are unaffected.

### Autocomplete

Autocomplete is always on. Dismiss with `Escape`. See [Autocomplete](/features/autocomplete) for details.

All editor settings apply immediately. No restart required.

## Keyboard Shortcuts

| Action | Shortcut |
Expand Down
13 changes: 9 additions & 4 deletions docs/customization/settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -411,19 +411,24 @@ Manage database driver plugins from the **Plugins** tab in Settings.

Split-view: plugin list on the left, details on the right. Each row shows version, capability, and source (built-in or user-installed). Filter by name using the search field.

TablePro ships with 3 built-in database driver plugins (MySQL, PostgreSQL, SQLite) and 3 built-in export plugins (CSV, JSON, SQL). Additional plugins are available from the plugin registry and can be installed from the Browse tab or downloaded automatically when you select a database type:
TablePro ships with 6 built-in database driver plugins (MySQL, PostgreSQL, SQLite, ClickHouse, SQL Server, Redis) and 3 built-in export plugins (CSV, JSON, SQL). Additional plugins are available from the plugin registry and can be installed from the Browse tab or downloaded automatically when you select a database type:

| Plugin | Database Types | Default Port | Distribution |
|--------|---------------|--------------|--------------|
| MySQL | MySQL, MariaDB | 3306 | Built-in |
| PostgreSQL | PostgreSQL, Redshift | 5432 | Built-in |
| SQLite | SQLite | -- | Built-in |
| ClickHouse | ClickHouse | 8123 | Registry |
| SQL Server | SQL Server | 1433 | Registry |
| ClickHouse | ClickHouse | 8123 | Built-in |
| SQL Server | SQL Server | 1433 | Built-in |
| Redis | Redis | 6379 | Built-in |
| MongoDB | MongoDB | 27017 | Registry |
| Redis | Redis | 6379 | Registry |
| DuckDB | DuckDB | -- | Registry |
| Oracle | Oracle | 1521 | Registry |
| Cassandra | Cassandra, ScyllaDB | 9042 | Registry |
| Etcd | Etcd | 2379 | Registry |
| Cloudflare D1 | Cloudflare D1 | -- | Registry |
| DynamoDB | DynamoDB | -- | Registry |
| BigQuery | BigQuery | -- | Registry |

Toggle plugins on/off in the detail pane. Disabled plugins hide their database type from the connection dialog.

Expand Down
29 changes: 2 additions & 27 deletions docs/databases/cloudflare-d1.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -71,26 +71,7 @@ Store your API token securely. TablePro saves it in the macOS Keychain, but the

### Create a D1 Database

If you don't have a D1 database yet:

```bash
# Install Wrangler CLI
npm install -g wrangler

# Login to Cloudflare
wrangler login

# Create a database
wrangler d1 create my-app-db

# Seed with test data
wrangler d1 execute my-app-db --remote \
--command "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)"
wrangler d1 execute my-app-db --remote \
--command "INSERT INTO users VALUES (1, 'Alice', 'alice@example.com')"
```

You can also create databases directly from TablePro using the **Create Database** button in the database switcher.
Create databases with `wrangler d1 create my-app-db` or from TablePro's **Create Database** button.

## Example Configuration

Expand Down Expand Up @@ -160,13 +141,7 @@ Export query results or table data to CSV, JSON, SQL, and other formats.

## SQL Dialect

D1 uses SQLite's SQL syntax. Key points:

- **Identifier quoting**: Double quotes (`"column_name"`)
- **String literals**: Single quotes (`'value'`)
- **Auto-increment**: `INTEGER PRIMARY KEY AUTOINCREMENT`
- **Type affinity**: SQLite's flexible type system applies
- **PRAGMA support**: Most SQLite PRAGMAs work (`PRAGMA table_info`, `PRAGMA foreign_key_list`, etc.)
D1 uses SQLite syntax. See [SQLite](/databases/sqlite) for details.

## Troubleshooting

Expand Down
2 changes: 1 addition & 1 deletion docs/databases/connection-urls.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Every supported database URL scheme, format, and query parameter fo

# Connection URL Reference

TablePro parses standard database connection URLs for importing connections, opening them directly from a browser or terminal, and configuring SSH tunnels. This page covers every supported scheme, format, and query parameter.
TablePro parses standard database connection URLs for importing connections, opening them directly from a browser or terminal, and configuring SSH tunnels.

## URL Schemes

Expand Down
14 changes: 6 additions & 8 deletions docs/databases/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ description: Create, organize, and manage database connections across 18+ suppor

# Connection Management

TablePro connects to 18+ database systems. Create connections, organize them with colors, tags, and groups, and switch between them instantly.

## Supported Databases

Natively supported:
Expand Down Expand Up @@ -359,9 +357,9 @@ For MySQL, MariaDB, and PostgreSQL, TablePro pings (`SELECT 1`) every **30 secon

When a connection drops, TablePro reconnects with exponential backoff:

1. **Attempt 1** -- waits 2 seconds, then reconnects
2. **Attempt 2** -- waits 4 seconds, then reconnects
3. **Attempt 3** -- waits 8 seconds, then reconnects
1. **Attempt 1**: waits 2 seconds, then reconnects
2. **Attempt 2**: waits 4 seconds, then reconnects
3. **Attempt 3**: waits 8 seconds, then reconnects

After three failures, the connection enters an error state. A **Reconnect** button appears in the toolbar.

Expand Down Expand Up @@ -395,7 +393,7 @@ SQLite connections are file-based and don't require health monitoring or auto-re

## Startup Commands

SQL statements that run automatically on every connection. Use them to set session variables, timezone, encoding, or other session options.
SQL statements that run automatically on every connection.

Configure startup commands in the **Advanced** tab of the connection form. Enter one SQL statement per line.

Expand All @@ -416,12 +414,12 @@ Set a timezone here to ensure datetime results are consistent across team member
</Tip>

<Note>
Startup commands run on every connection, including auto-reconnects. They are database-specific: use MySQL syntax for MySQL connections, PostgreSQL syntax for PostgreSQL, and so on.
Startup commands run on every connection, including auto-reconnects.
</Note>

## Editing and Deleting Connections

Right-click a connection to edit or delete it. Changes take effect on the next connection. Deleting removes the saved settings only; your database is unaffected.
Right-click a connection to edit or delete it. Changes take effect on the next connection. Deleting removes the saved settings only.

## Backup and Restore

Expand Down
2 changes: 1 addition & 1 deletion docs/databases/sqlite.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ SQLite is a self-contained, file-based database engine. No server required. The
</Step>
</Steps>

File-based database, no server/auth required. Double-click `.duckdb` files in Finder to open directly.
File-based database, no server/auth required. Double-click `.sqlite`/`.db`/`.sqlite3` files in Finder to open directly.

## Common Locations

Expand Down
51 changes: 1 addition & 50 deletions docs/databases/ssh-tunneling.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,6 @@ flowchart LR
TablePro -->|"Encrypted<br>Tunnel"| Jump -->|"Internal<br>Network"| Database
```

1. TablePro opens an SSH connection to your jump server
2. A local port (e.g., 60000) forwards through the tunnel
3. All traffic between your Mac and the SSH server is encrypted
4. The SSH server connects to the database on your behalf

## When to Use SSH Tunneling

- Database in private network
Expand Down Expand Up @@ -337,51 +332,7 @@ Jump hosts only support **Private Key** and **SSH Agent** authentication. Passwo

## SSH Key Setup

### Generating SSH Keys

If you don't have SSH keys:

```bash
# Generate a new key pair
ssh-keygen -t ed25519 -C "your_email@example.com"

# Or use RSA for broader compatibility
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```

### Key Locations

Default key locations on macOS:

| Key Type | Private Key | Public Key |
|----------|-------------|------------|
| Ed25519 | `~/.ssh/id_ed25519` | `~/.ssh/id_ed25519.pub` |
| RSA | `~/.ssh/id_rsa` | `~/.ssh/id_rsa.pub` |
| ECDSA | `~/.ssh/id_ecdsa` | `~/.ssh/id_ecdsa.pub` |

### Adding Key to Server

Copy your public key to the SSH server:

```bash
# Using ssh-copy-id
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

# Or manually
cat ~/.ssh/id_ed25519.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
```

### Key Permissions

SSH keys must have correct permissions:

```bash
# Fix permissions
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_*
chmod 644 ~/.ssh/id_*.pub
chmod 644 ~/.ssh/config
```
Generate keys: `ssh-keygen -t ed25519`. Copy to server: `ssh-copy-id user@server`. Keys must be `chmod 600`.

## Import from URL

Expand Down
Loading
Loading