-
Notifications
You must be signed in to change notification settings - Fork 2
docs(wiki): document Unix socket connections (local and via SSH forward) #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -92,6 +92,7 @@ Every plugin must include a `manifest.json` that tells Tabularis its capabilitie | |
| | `connection_string_example` | string | Optional placeholder example shown in the connection string import field (e.g. `"clickhouse://user:pass@localhost:9000/db"`). `connectionStringExample` is also accepted. | | ||
| | `manage_tables` | bool | `true` to enable table and column management UI (Create Table, Add/Modify/Drop Column, Drop Table). Does not control index or FK operations. Defaults to `true`. | | ||
| | `readonly` | bool | When `true`, the driver is read-only: all data modification operations (INSERT, UPDATE, DELETE) are disabled in the UI. Table and column management is also hidden regardless of `manage_tables`. Defaults to `false`. | | ||
| | `unix_socket` | bool | `true` if the driver can connect through a local Unix socket instead of host:port. Shows the **Local Socket Path** field in the connection editor; the path reaches the plugin in the connection params as `unix_socket_path`. `unixSocket` is also accepted. Defaults to `false`. | | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SUGGESTION: Inconsistent field name casing\n\nThe connections table uses "Local socket path" (sentence case), but this capability description uses "Local Socket Path" (title case). For consistency, use sentence case.\n\n |
||
|
|
||
| ### Data Type Categories | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -92,6 +92,18 @@ Click **Test** before saving. Tabularis performs a real SSH handshake and report | |
|
|
||
| When you connect, the tunnel is established first, then the database driver connects through it. If the tunnel fails, the exact SSH error is surfaced — no generic "connection refused" messages. | ||
|
|
||
| ## Forwarding to a Unix Socket | ||
|
|
||
| Some databases only listen on a Unix socket: MySQL with `skip_networking`, PostgreSQL with `listen_addresses = ''`. For those, set the optional **Socket Path** field in the SSH section of the connection editor. (For a socket-only database on *your own* machine, no tunnel is needed — use the **Local Socket Path** field instead; see [Connections → Local Unix socket](/wiki/connections#local-unix-socket-mysql--postgresql).) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SUGGESTION: Inconsistent field name casing\n\nThe connections table uses "Socket path" and "Local socket path" (sentence case), but this prose uses "Socket Path" and "Local Socket Path" (title case). For consistency, use sentence case.\n\n |
||
|
|
||
| When a socket path is set: | ||
|
|
||
| - The SSH server connects to that socket instead of Host and Port (both fields grey out). Under the hood this is a `direct-streamlocal@openssh.com` channel on the Russh backend, and `ssh -L <local_port>:/path/to/socket` on the System SSH backend. | ||
| - Database TLS is turned off automatically. A server listening on a Unix socket cannot negotiate TLS, and the SSH tunnel already encrypts the whole path. | ||
| - The path must be absolute, as it appears on the SSH server, and must point at the socket file itself — not the directory holding it. Typical values are `/var/run/mysqld/mysqld.sock` (MySQL) and `/var/run/postgresql/.s.PGSQL.5432` (PostgreSQL). | ||
|
|
||
| The socket path belongs to the database connection, not to the SSH profile, so a single bastion profile can serve both TCP and socket-only databases. | ||
|
|
||
| ## Multi-Hop / ProxyJump | ||
|
|
||
| For databases behind multiple bastion layers, define the chain in `~/.ssh/config` and use the System SSH backend (key-only auth, no password): | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SUGGESTION: Inconsistent field name casing\n\nThe connections table uses "Local socket path" (sentence case), but this prose reference uses "Local Socket Path" (title case). For consistency with the table, use sentence case.\n\n
suggestion\nA database on the same machine can be reached through its Unix socket instead of TCP: set the optional **Local socket path** field in the General tab. No tunnel is involved — the drivers dial the socket directly.\n\n\n---\nReply with@kilocode-bot fix itto have Kilo Code address this issue.