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
5 changes: 5 additions & 0 deletions .github/workflows/build-plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,11 @@ jobs:
DISPLAY_NAME="Elasticsearch Driver"; SUMMARY="Elasticsearch driver via the REST API with a Query DSL console"
DB_TYPE_IDS='["Elasticsearch"]'; ICON="elasticsearch-icon"; BUNDLE_NAME="ElasticsearchDriverPlugin"
CATEGORY="database-driver"; HOMEPAGE="https://docs.tablepro.app/databases/elasticsearch" ;;
surrealdb)
TARGET="SurrealDBDriverPlugin"; BUNDLE_ID="com.TablePro.SurrealDBDriverPlugin"
DISPLAY_NAME="SurrealDB Driver"; SUMMARY="SurrealDB driver over the HTTP RPC protocol with SurrealQL"
DB_TYPE_IDS='["SurrealDB"]'; ICON="surrealdb-icon"; BUNDLE_NAME="SurrealDBDriverPlugin"
CATEGORY="database-driver"; HOMEPAGE="https://docs.tablepro.app/databases/surrealdb" ;;
bigquery)
TARGET="BigQueryDriverPlugin"; BUNDLE_ID="com.TablePro.BigQueryDriverPlugin"
DISPLAY_NAME="BigQuery Driver"; SUMMARY="Google BigQuery analytics database driver via REST API"
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- SurrealDB support as a downloadable driver for SurrealDB 2.x and 3.x. Browse namespaces and databases in the sidebar, run SurrealQL, and edit records in the grid. Record links, datetimes, durations, decimals, and UUIDs keep their types, and saving a cell writes only the field you changed. (#1862)
- xAI (Grok) as an AI provider. Paste a key from the xAI Console to use Grok 4.5 or Grok 4.3 on API credits, or click **Sign in with xAI** to use a SuperGrok or X Premium+ subscription with no key. Supports reasoning effort and image attachments.
- Connect to Google Cloud SQL through the Cloud SQL Auth Proxy without starting it yourself. Enable it on a MySQL, PostgreSQL, or SQL Server connection, set the instance connection name, and TablePro runs and stops the proxy with the connection. Supports Application Default Credentials, a service account key, and IAM database authentication, and can download the proxy or use one already on your Mac. (#1728)
- Beancount ledger support as a downloadable, read-only file-based driver. Transactions, postings (with resolved cost basis), accounts, prices, computed balances, and balance assertions project to SQL tables through user-provided `rledger` or Python Beancount, and BQL runs with a `BQL:` prefix when `rledger` is available. (#1474)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,13 @@ public struct DatabaseType: Hashable, Codable, Sendable, RawRepresentable {
public static let cockroachdb = DatabaseType(rawValue: "CockroachDB")
public static let scylladb = DatabaseType(rawValue: "ScyllaDB")
public static let turso = DatabaseType(rawValue: "Turso")
public static let surrealdb = DatabaseType(rawValue: "SurrealDB")

public static let allKnownTypes: [DatabaseType] = [
.mysql, .mariadb, .postgresql, .sqlite, .redis, .mongodb,
.clickhouse, .mssql, .oracle, .duckdb, .cassandra, .redshift,
.etcd, .cloudflareD1, .dynamodb, .bigquery, .snowflake, .libsql, .beancount
.etcd, .cloudflareD1, .dynamodb, .bigquery, .snowflake, .libsql, .beancount,
.surrealdb
]

/// Icon name for this database type — asset catalog name (e.g. "mysql-icon") or SF Symbol fallback
Expand All @@ -60,6 +62,7 @@ public struct DatabaseType: Hashable, Codable, Sendable, RawRepresentable {
case .snowflake: return "snowflake-icon"
case .libsql: return "libsql-icon"
case .beancount: return "beancount-icon"
case .surrealdb: return "surrealdb-icon"
default: return "externaldrive"
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,13 @@ struct DatabaseTypeTests {

@Test("allKnownTypes contains all expected types")
func allKnownTypesComplete() {
#expect(DatabaseType.allKnownTypes.count == 19)
#expect(DatabaseType.allKnownTypes.count == 20)
#expect(DatabaseType.allKnownTypes.contains(.mysql))
#expect(DatabaseType.allKnownTypes.contains(.bigquery))
#expect(DatabaseType.allKnownTypes.contains(.snowflake))
#expect(DatabaseType.allKnownTypes.contains(.libsql))
#expect(DatabaseType.allKnownTypes.contains(.beancount))
#expect(DatabaseType.allKnownTypes.contains(.surrealdb))
}

@Test("Hashable conformance")
Expand Down
12 changes: 12 additions & 0 deletions Plugins/SurrealDBDriverPlugin/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>TableProPluginKitVersion</key>
<integer>18</integer>
<key>TableProProvidesDatabaseTypeIds</key>
<array>
<string>SurrealDB</string>
</array>
</dict>
</plist>
Loading
Loading