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 +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +10 -0
- data/lib/strata/cli/credentials.rb +2 -0
- data/lib/strata/cli/descriptions/datasource/add.txt +1 -1
- data/lib/strata/cli/helpers/datasource_helper.rb +4 -1
- data/lib/strata/cli/sub_commands/datasource.rb +12 -0
- data/lib/strata/cli/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7cdf350ee694b8dfcac291d7aeb7f13cc3f0cec82535f56e61fe9408ffbcc6f7
|
|
4
|
+
data.tar.gz: eb05515761938400bbad1961110569d46db0a9f6e118b3b091bdcf42c62f0b34
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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(" "))
|
data/lib/strata/cli/version.rb
CHANGED
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.
|
|
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.
|
|
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.
|
|
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
|