From 8ec2acba40e82f19b973ea8f8928902cef6474db Mon Sep 17 00:00:00 2001 From: Andrey Avtomonov Date: Mon, 25 May 2026 13:33:03 +0200 Subject: [PATCH] refactor(cli): standardize BigQuery scope listing --- packages/cli/src/connectors/bigquery/connector.ts | 2 +- packages/cli/src/context/scan/types.ts | 2 ++ packages/cli/src/setup-databases.ts | 2 +- packages/cli/test/connectors/bigquery/connector.test.ts | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/connectors/bigquery/connector.ts b/packages/cli/src/connectors/bigquery/connector.ts index 38a21cfc..2b72e47b 100644 --- a/packages/cli/src/connectors/bigquery/connector.ts +++ b/packages/cli/src/connectors/bigquery/connector.ts @@ -428,7 +428,7 @@ export class KtxBigQueryScanConnector implements KtxScanConnector { return this.dialect.quoteIdentifier(identifier); } - async listDatasets(): Promise { + async listSchemas(): Promise { const [datasets] = await this.getClient().getDatasets(); return datasets.map((dataset) => dataset.id).filter((id): id is string => Boolean(id)); } diff --git a/packages/cli/src/context/scan/types.ts b/packages/cli/src/context/scan/types.ts index 5590b465..ed794775 100644 --- a/packages/cli/src/context/scan/types.ts +++ b/packages/cli/src/context/scan/types.ts @@ -313,6 +313,8 @@ export interface KtxScanConnector { capabilities: KtxConnectorCapabilities; eventStreamDiscovery?: KtxEventStreamDiscoveryPort; introspect(input: KtxScanInput, ctx: KtxScanContext): Promise; + listSchemas(): Promise; + listTables(schemas?: string[]): Promise; testConnection?(): Promise; sampleColumn?(input: KtxColumnSampleInput, ctx: KtxScanContext): Promise; sampleTable?(input: KtxTableSampleInput, ctx: KtxScanContext): Promise; diff --git a/packages/cli/src/setup-databases.ts b/packages/cli/src/setup-databases.ts index ec2f017f..218d2a32 100644 --- a/packages/cli/src/setup-databases.ts +++ b/packages/cli/src/setup-databases.ts @@ -411,7 +411,7 @@ async function defaultListSchemas(projectDir: string, connectionId: string): Pro if (!isKtxBigQueryConnectionConfig(connection)) return []; const connector = new KtxBigQueryScanConnector({ connectionId, connection }); try { - return await connector.listDatasets(); + return await connector.listSchemas(); } finally { await connector.cleanup(); } diff --git a/packages/cli/test/connectors/bigquery/connector.test.ts b/packages/cli/test/connectors/bigquery/connector.test.ts index 93662320..c1bbf9b4 100644 --- a/packages/cli/test/connectors/bigquery/connector.test.ts +++ b/packages/cli/test/connectors/bigquery/connector.test.ts @@ -267,7 +267,7 @@ describe('KtxBigQueryScanConnector', () => { ), ).resolves.toEqual({ values: ['open', 'paid'], cardinality: 2 }); await expect(connector.getTableRowCount('orders')).resolves.toBe(12); - await expect(connector.listDatasets()).resolves.toEqual(['analytics', 'staging']); + await expect(connector.listSchemas()).resolves.toEqual(['analytics', 'staging']); await expect( connector.columnStats( { connectionId: 'warehouse', table: { catalog: 'project-1', db: 'analytics', name: 'orders' }, column: 'status' },