Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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 @@ -154,6 +154,11 @@ jobs:
DISPLAY_NAME="DuckDB Driver"; SUMMARY="DuckDB analytical database driver"
DB_TYPE_IDS='["DuckDB"]'; ICON="bird"; BUNDLE_NAME="DuckDBDriver"
CATEGORY="database-driver"; HOMEPAGE="https://docs.tablepro.app/databases/duckdb" ;;
beancount)
TARGET="BeancountDriver"; BUNDLE_ID="com.TablePro.BeancountDriver"
DISPLAY_NAME="Beancount Driver"; SUMMARY="Read-only Beancount ledger driver with bundled rustledger BQL helper"
DB_TYPE_IDS='["Beancount"]'; ICON="beancount-icon"; BUNDLE_NAME="BeancountDriver"
CATEGORY="database-driver"; HOMEPAGE="https://docs.tablepro.app/databases/beancount" ;;
cassandra)
TARGET="CassandraDriver"; BUNDLE_ID="com.TablePro.CassandraDriver"
DISPLAY_NAME="Cassandra Driver"; SUMMARY="Apache Cassandra and ScyllaDB driver via DataStax C driver"
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,10 +151,17 @@ Libs/*.a
Libs/.downloaded
Libs/dylibs/
Libs/ios/
Libs/rustledger/
fix-1322-plugin-abi-and-registry-overhaul.diff

# Issue analysis blueprints (local only)
.analysis/
.docs/
Local.xcconfig
/plans/reports

# Local planning and assistant history
.specstory/
.planning/
.plans/
planning/
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Beancount ledger support as a downloadable, read-only file-based driver with SQL projection and BQL queries. (#1474)

### Fixed

- iCloud Sync between the iPhone and Mac apps: the iOS app now uses the Production CloudKit environment, so a development build no longer syncs into a separate database the Mac never reads.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,15 @@ public struct DatabaseType: Hashable, Codable, Sendable, RawRepresentable {
public static let bigquery = DatabaseType(rawValue: "BigQuery")
public static let snowflake = DatabaseType(rawValue: "Snowflake")
public static let libsql = DatabaseType(rawValue: "libSQL")
public static let beancount = DatabaseType(rawValue: "Beancount")
public static let cockroachdb = DatabaseType(rawValue: "CockroachDB")
public static let scylladb = DatabaseType(rawValue: "ScyllaDB")
public static let turso = DatabaseType(rawValue: "Turso")

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

/// Icon name for this database type — asset catalog name (e.g. "mysql-icon") or SF Symbol fallback
Expand All @@ -58,6 +59,7 @@ public struct DatabaseType: Hashable, Codable, Sendable, RawRepresentable {
case .bigquery: return "bigquery-icon"
case .snowflake: return "snowflake-icon"
case .libsql: return "libsql-icon"
case .beancount: return "beancount-icon"
default: return "externaldrive"
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ struct DatabaseTypeTests {
#expect(DatabaseType.cloudflareD1.rawValue == "Cloudflare D1")
#expect(DatabaseType.bigquery.rawValue == "BigQuery")
#expect(DatabaseType.snowflake.rawValue == "Snowflake")
#expect(DatabaseType.beancount.rawValue == "Beancount")
}

@Test("pluginTypeId maps multi-type databases")
Expand Down Expand Up @@ -57,6 +58,7 @@ struct DatabaseTypeTests {
#expect(DatabaseType.allKnownTypes.contains(.bigquery))
#expect(DatabaseType.allKnownTypes.contains(.snowflake))
#expect(DatabaseType.allKnownTypes.contains(.libsql))
#expect(DatabaseType.allKnownTypes.contains(.beancount))
}

@Test("Hashable conformance")
Expand Down
Loading
Loading