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
2 changes: 1 addition & 1 deletion connections/cloud-sql-proxy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ The transport appears for Cloud SQL instances running MySQL, PostgreSQL, or SQL
gcloud auth application-default login
```

Install the binary, or click **Download cloud-sql-proxy…** on the Network tab, which fetches 2.23.0 and checks its SHA-256 against the value pinned for your CPU architecture.
Install the binary, or click **Download cloud-sql-proxy** on the Network tab, which fetches 2.23.0 and checks its SHA-256 against the value pinned for your CPU architecture. A bar shows the download, and **Cancel** stops it. Connecting with no binary installed downloads the same one first, and the connecting card says **Downloading Cloud SQL Auth Proxy** while it does.

```bash
brew install cloud-sql-proxy
Expand Down
13 changes: 9 additions & 4 deletions customization/notifications.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,24 @@ You only get told when the result is somewhere you are not. That means TablePro
| **Notify when long-running work finishes** | On | Every kind of work below |
| **Only after** | 20 seconds | How long work has to run to count: 5, 10, 20 or 30 seconds, or 1, 2, 5 or 10 minutes |

The kinds that count: editor queries including Explain, Execute All Statements as one notification for the batch, saving edited rows, structure changes, imports, exports, Copy To and Duplicate Database, database dumps, fetching every row of a truncated result, and queries an AI assistant, an MCP client or [a script](/developers/applescript) runs.
The kinds that count: editor queries including Explain, Execute All Statements as one notification for the batch, saving edited rows, structure changes, imports, exports, Copy To and Duplicate Database, database dumps and restores, comparisons and sync scripts from [Compare & Sync](/features/compare-sync), fetching every row of a truncated result, and queries an AI assistant, an MCP client or [a script](/developers/applescript) runs.

Two more ignore **Only after**, because they need you rather than report a result:

- An [agent session](/features/agent-mode) that is waiting for your answer, or whose reply failed, while it is not on screen. Answering removes the notification, and clicking it opens the session.
- A [plugin](/features/plugins) update that failed in the background.

Keep **Only after** below the [query timeout](/customization/general-settings#query-timeout), or a query that times out finishes before its notification is due.

## What a notification carries

The connection name is the title, the database is the subtitle, and the body is the outcome with a duration: "1,204 rows in 3m 12s", or "Failed after 2m 45s" with the reason. A failure adds a **Copy Error** button, and anything that wrote a file adds **Show in Finder**. Clicking the notification brings TablePro forward on the tab that ran the work.
The connection name is the title, the database is the subtitle, and the body is the outcome with a duration: "1,204 rows in 3m 12s", or "Failed after 2m 45s" with the reason. A failure adds a **Copy Error** button, and anything that wrote a file adds **Show in Finder**. Clicking the notification brings TablePro forward on the tab that ran the work, or on the Compare & Sync window for a comparison.

Banners group by connection. Re-running the same kind of work in the same tab replaces that tab's earlier banner instead of stacking a second one.

## The tab dot
## The tab mark

A tab whose work finished while you were looking elsewhere carries a dot beside its name until you select it. That dot is not a notification: it appears whatever the settings say, and whether or not you ever granted permission.
A tab whose work finished while you were looking elsewhere carries a mark beside its name until you select it: a checkmark when the work succeeded, a red triangle when it failed. The mark is not a notification: it appears whatever the settings say, and whether or not you ever granted permission.

## Permission

Expand Down
10 changes: 10 additions & 0 deletions features/connection-sharing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,16 @@ Groups and saved queries come across the way they do on the Mac. The review list

Press `Cmd+,`, then **Settings > General > Linked Folders > Add Folder…** and point it at a directory of `.tablepro` files: a Git repo, a Dropbox folder, a network drive. Those connections appear read-only in the sidebar, and each person enters their own password.

Each folder's row says what the last scan found: how many connections, or why it found none.

| Status | Meaning |
|---|---|
| **3 connections** | The scan read the folder and is watching it for changes |
| **2 files couldn't be read** | Those files were skipped: unreadable, not a connection file, or encrypted with a passphrase |
| **Folder not found** | The path no longer exists. Reconnect the drive or remove the folder |
| **Can't read this folder** | macOS refused access. Check the folder's permissions |
| **Not watching this folder for changes** | Read once; changes show after the next relaunch or toggle |

<Frame caption="Linked Folders settings">
<img className="block dark:hidden" src="/images/linked-folders-settings.png" alt="General pane with one linked folder, its on switch and the Add Folder button" />
<img className="hidden dark:block" src="/images/linked-folders-settings-dark.png" alt="General pane with one linked folder, its on switch and the Add Folder button" />
Expand Down
13 changes: 13 additions & 0 deletions features/connection-window.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,19 @@ The ellipsis at the trailing end holds that surface's own commands: **Fields** a

`Cmd+Option+I` opens and closes the pane, and `Cmd+Option+A` swaps an open inspector for the assistant rather than closing the column. **View > Show Inspector** and **View > Show Assistant** are the same two, each reading **Hide** once its surface is on screen.

## Work still running

Quit, **Relaunch to Update**, closing a window, a connection or a tab, and Disconnect each check for work still running there and ask once, in one alert that lists it:

- a query run from an editor tab
- a restore, backup, import, export, table transfer or object copy
- an agent reply, including one waiting for your answer
- a comparison or a sync script in Compare & Sync

**Quit Anyway**, **Relaunch Anyway**, **Close Anyway** or **Disconnect Anyway** stops each item on the list. **Cancel**, or Escape, keeps everything running. Quitting lists unsaved tabs on the same alert, and closing or disconnecting lists an open transaction there. When you close a window or a connection, unsaved edits still get **Do you want to save changes?** after it.

A stopped restore can leave the database partly restored, and a stopped sync script keeps the statements it already ran.

## Related

- [Query Tabs](/features/tabs) for the strip under the toolbar and what a tab is bound to
Expand Down
6 changes: 5 additions & 1 deletion features/plugins.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ A registry plugin installs where you need it:
- A `.duckdb` file opened from Finder, which asks for the DuckDB driver.
- **Install Parquet Export…** at the end of the format menu in the Export dialog. Parquet is selected once the download finishes.

A sheet shows the download and then the install. **Cancel**, or Escape, stops the download and leaves nothing behind; once the install step starts it runs to the end. **Settings > Extensions** shows the same install at the bottom of the list, with its own **Cancel**.

On a Mac with no network, install from a file: drag a `.tableplugin` or `.zip` onto **Settings > Extensions**, or click the **+** button there. A file for a plugin that is already loaded replaces it the next time TablePro starts. User-installed plugins live in `~/Library/Application Support/TablePro/Plugins`.

Every plugin is verified before it loads. A registry download must match the SHA-256 checksum in the registry manifest, and the bundle must be signed by TablePro. A bundle signed by anyone else, ad-hoc signed or unsigned is refused, with no override.
Expand All @@ -71,7 +73,9 @@ Every plugin is verified before it loads. A registry download must match the SHA
Registry plugins follow the app. After a TablePro update, each plugin installed from the registry with an older build than the app is fetched again at launch:

- A plugin that is not loaded, such as one rejected after the update, installs and loads at once.
- A plugin that is loaded downloads in the background and replaces the old one the next time TablePro starts. Its row in **Settings > Extensions** reads "Updates when TablePro relaunches" until then. **Relaunch to Update**, in a connection window's title bar, loads it now.
- A plugin that is loaded downloads in the background and replaces the old one the next time TablePro starts. Its row in **Settings > Extensions** reads **Downloading update…** while it runs and "Updates when TablePro relaunches" after. **Relaunch to Update**, in a connection window's title bar, loads it now.

An update that fails stays on the plugin's row with the reason, **Try Again** and **Dismiss**, and posts a notification when **Settings > Notifications** has notifications on.

Offline, the check waits and runs once the Mac is back online. If the registry has no newer build yet, the check tries again in the background, on the schedule in [A plugin will not install or load](/troubleshooting#a-plugin-will-not-install-or-load). Connecting to a database whose plugin is outdated checks again first.

Expand Down
2 changes: 2 additions & 0 deletions features/tabs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ Close Other Tabs and Close All Tabs act on the tabs in the strip, never on anoth

**Close Tabs for Other Databases** takes every tab of the connection's other databases, never the tab in front of you, and never another connection's tabs. On engines that switch schemas instead, such as BigQuery, Spanner and Oracle, it reads **Close Tabs for Other Schemas**.

A tab whose query is still running asks **Close while work is still running?** first, and **Close Anyway** stops the query. A table tab still loading its rows closes without asking. See [Work still running](/features/connection-window#work-still-running).

Closing asks **Do you want to save changes?** when the tab holds unsaved cell edits, a `.sql` file that differs from disk, or staged structure, Create Table, or user and role changes. Save closes the tab once the save lands, except for user and role changes, where it opens the review sheet instead and leaves the tab open. Closing one tab selects it first, putting the work in front of you before you answer. Once it closes, or you cancel, the tab you were on comes back to the front.

A bulk close asks once, and Cancel stops the rest. Save writes what it can reach in every tab it is closing: their `.sql` files and their staged structure changes, plus everything in the tab on screen. Cell edits, Create Table drafts, and staged user and role changes can only be saved from their own tab, so those tabs stay open instead and the alert says so. **Don't Save** closes all of them.
Expand Down
2 changes: 1 addition & 1 deletion features/team.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ Two routes, and the choice is whether your team already shares a folder. If it d

Right-click a connection and choose **Share > Publish to Team Library…**, or publish saved queries from the Favorites sidebar with **Publish Saved Queries to Team…**. Only the connection definition and the query text are sent, never passwords.

Teammates get the connections in their list the way a Linked Folder delivers them, and shared queries in their Favorites sidebar labeled with whoever published each one. Their app pulls the library every 7 days. A pulled connection arrives without its startup SQL, because it lands with no confirmation step and nothing that would run by itself travels with it.
Teammates get the connections in their list the way a Linked Folder delivers them, and shared queries in their Favorites sidebar labeled with whoever published each one. Their app pulls the library every 7 days, and **Settings > License > Team** shows when it last did, with **Refresh** to pull now. A pull that fails keeps what was there and says **Couldn't refresh the team library** with the reason. A pulled connection arrives without its startup SQL, because it lands with no confirmation step and nothing that would run by itself travels with it.

You review and remove what you published from your account at [tablepro.app/account](https://tablepro.app/account).
Loading