strata-cli 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e13d7f619d5b03f2c0ab353c8064fe5f1c17e97d8a3bc63d0d32abb11da628de
4
- data.tar.gz: '095c483ea8913658de1d52dbe33bd71491b04b88f91f6e5c957417760bd1db1b'
3
+ metadata.gz: 7cdf350ee694b8dfcac291d7aeb7f13cc3f0cec82535f56e61fe9408ffbcc6f7
4
+ data.tar.gz: eb05515761938400bbad1961110569d46db0a9f6e118b3b091bdcf42c62f0b34
5
5
  SHA512:
6
- metadata.gz: 1444ff06c0d6ad24303c6fec60c925fda1fffa17513cb2c8c8e7a2071af0f070181c882d58f832e1fca088c6601168140b0557a20106a0e23513da47173a0302
7
- data.tar.gz: e952da251f4c0562fcc1f26be54f84245e046ed3041374e5efb17faf4b293a903db3c573142ff43c6efd290306252f2ad37cfce27ec27f0a824b6f6485379bc6
6
+ metadata.gz: a9300ece338d7b455ddf1db63658e95820a96dea1807493e0cfbcbb7931d19d9d5ddef6b5953c16cf083bc28416099a64f3cf5b5263c68b44b5981a018c83487
7
+ data.tar.gz: f5c4575f2ab7415300e22794efedada1cf43bd77da69d9a4d04dd9abb84ac87da109b0b28f911ed2e6e74ad06532ee6b57eed1c1b2dd7693d9da14abbe38147b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.19] - 2026-09-30
4
+
5
+ ### Added
6
+
7
+ - **BigQuery datasource**: `strata datasource add bigquery` prompts for `project_id` and `dataset`; `strata ds auth` stores a service account `keyfile` path (Application Default Credentials when left blank). Requires dwh 0.6.0.
8
+
3
9
  ## [0.1.18] - 2026-09-26
4
10
 
5
11
  ### Changed
data/README.md CHANGED
@@ -434,6 +434,15 @@ my_databricks:
434
434
 
435
435
  Use service principal credentials and run `strata ds auth my_databricks` to save `oauth_client_id` and `oauth_client_secret` in `.strata`.
436
436
 
437
+ ```yaml
438
+ my_bigquery:
439
+ adapter: bigquery
440
+ project_id: my-gcp-project
441
+ dataset: analytics
442
+ ```
443
+
444
+ Run `strata ds auth my_bigquery` to save a service account `keyfile` path in `.strata`, or leave it blank to use `gcloud auth application-default login`.
445
+
437
446
  ## Supported Data Warehouse Adapters
438
447
 
439
448
  - **PostgreSQL** - Full support
@@ -448,6 +457,7 @@ Use service principal credentials and run `strata ds auth my_databricks` to save
448
457
  - **Databricks** - Databricks SQL warehouse support
449
458
  - **ClickHouse** - ClickHouse HTTP/native SQL support
450
459
  - **SQLite** - SQLite database support
460
+ - **BigQuery** - Google BigQuery support (service account keyfile or Application Default Credentials)
451
461
 
452
462
  ## Security
453
463
 
@@ -50,6 +50,8 @@ module Strata
50
50
  credentials["oauth_client_secret"] = @prompt.ask("OAuth Client Secret:")
51
51
  when "clickhouse"
52
52
  credentials["password"] = @prompt.mask("Enter Password (leave blank if none):")
53
+ when "bigquery"
54
+ credentials["keyfile"] = @prompt.ask("Service account keyfile path (leave blank for Application Default Credentials):")
53
55
  else
54
56
  if required?
55
57
  unless %w[postgres mysql trino sqlserver].include?(adapter)
@@ -18,4 +18,4 @@ Examples:
18
18
 
19
19
  strata datasource add snowflake # Directly add Snowflake datasource
20
20
 
21
- Supported adapters: postgres, mysql, sqlserver, snowflake, athena, trino, duckdb, druid, clickhouse, databricks, redshift, sqlite
21
+ Supported adapters: postgres, mysql, sqlserver, snowflake, athena, trino, duckdb, druid, clickhouse, databricks, redshift, sqlite, bigquery
@@ -13,7 +13,8 @@ module Strata
13
13
  athena: %w[aws-sdk-athena aws-sdk-s3 rexml],
14
14
  trino: %w[trino-client],
15
15
  sqlite: %w[sqlite3],
16
- duckdb: %w[duckdb]
16
+ duckdb: %w[duckdb],
17
+ bigquery: %w[google-cloud-bigquery]
17
18
  }.freeze
18
19
 
19
20
  def resolve_datasource(ds_key_arg = nil)
@@ -197,6 +198,8 @@ module Strata
197
198
  "Notes:\n- AWS SDK gems are pure Ruby; no system libraries required."
198
199
  when :trino
199
200
  "Notes:\n- 'trino-client' is pure Ruby; no system libraries required."
201
+ when :bigquery
202
+ "Notes:\n- 'google-cloud-bigquery' is pure Ruby; no system libraries required.\n- Authenticate with a service account keyfile or `gcloud auth application-default login`."
200
203
  when :duckdb
201
204
  "Notes:\n- See https://github.com/suketa/ruby-duckdb"
202
205
  else
@@ -114,6 +114,9 @@ module Strata
114
114
  if adapter == "databricks"
115
115
  say " Databricks uses OAuth M2M with service principal credentials (client ID + client secret).", :cyan
116
116
  end
117
+ if adapter == "bigquery"
118
+ say " BigQuery uses a service account JSON keyfile, or gcloud Application Default Credentials if left blank.", :cyan
119
+ end
117
120
  say ""
118
121
  creds.collect
119
122
  creds.write_local(ds_key, self)
@@ -161,6 +164,9 @@ module Strata
161
164
  if adapter == "databricks"
162
165
  say " Databricks uses OAuth M2M with service principal credentials (client ID + client secret).", :cyan
163
166
  end
167
+ if adapter == "bigquery"
168
+ say " BigQuery uses a service account JSON keyfile, or gcloud Application Default Credentials if left blank.", :cyan
169
+ end
164
170
  say ""
165
171
  creds.collect
166
172
  creds.write_local(ds_key, self)
@@ -396,6 +402,11 @@ module Strata
396
402
  "database" => "dev",
397
403
  "username" => "awsuser"
398
404
  }
405
+ when "bigquery"
406
+ {
407
+ "project_id" => "my-gcp-project",
408
+ "dataset" => "analytics"
409
+ }
399
410
  else
400
411
  {}
401
412
  end
@@ -404,6 +415,7 @@ module Strata
404
415
  def humanize_field(field)
405
416
  {
406
417
  "account_identifier" => "Account identifier",
418
+ "project_id" => "Project ID",
407
419
  "s3_output_location" => "S3 output location",
408
420
  "auth_mode" => "Auth mode"
409
421
  }.fetch(field, field.split("_").map(&:capitalize).join(" "))
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Strata
4
4
  module CLI
5
- VERSION = "0.1.18"
5
+ VERSION = "0.1.19"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strata-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ajo Abraham
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.0
19
+ version: 0.6.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.0
26
+ version: 0.6.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: aws-sdk-athena
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -224,7 +224,7 @@ description: |
224
224
  Comprehensive CLI tool for managing Strata Semantic Analytics projects. Create and initialize
225
225
  projects, manage datasource connections, build semantic table models with AI assistance, run
226
226
  audits and validations, and deploy projects to Strata servers. Supports multiple data warehouse
227
- adapters including PostgreSQL, MySQL, SQL Server, Snowflake, Athena, Trino, ClickHouse, and more.
227
+ adapters including PostgreSQL, MySQL, SQL Server, Snowflake, BigQuery, Athena, Trino, ClickHouse, and more.
228
228
  email:
229
229
  - ajo@strata.site
230
230
  - allen@strata.site