Databricks CLI
Go to file
shreyas-goenka 6feaed4990
Fix host based auth conflicting with DEFAULT profile (#309)
## Changes
Consider the following host based configuration:
```
bundle:
  name: job_with_file_task

workspace:
  host: https://e2-dogfood.staging.cloud.databricks.com/
```

If you have a DEFAULT profile, then this host is ignored. The solution
proposed here is to remove the profile config loader if host is
explicitly specified in the bundle config.

This does come with a cost, namely that if a `DATABRICKS_CONFIG_PROFILE`
env var will be ignored, which maybe goes against unified auth spec

The ideal solution here is probably to make a change to go-SDK to not
select DEFAULT profile if host is not empty

## Tests
<!-- How is this tested? -->
2023-04-05 18:12:11 +02:00
.github Build snapshot release for demo branches (#292) 2023-03-29 21:43:21 +02:00
.vscode Let vscode trim whitespace on save (#172) 2023-01-23 09:52:50 +01:00
bundle Fix host based auth conflicting with DEFAULT profile (#309) 2023-04-05 18:12:11 +02:00
cmd Add mutators to pull and push Terraform state (#288) 2023-03-30 12:01:09 +02:00
docs Add structured logging infrastructure (#246) 2023-03-16 14:46:53 +01:00
experimental/github Make tests pass (#40) 2022-09-07 20:08:42 +02:00
folders Don't depend on working directory in folders.FindDirWithLeaf (#54) 2022-09-14 15:08:55 +02:00
internal Acquire lock prior to deploy (#270) 2023-03-22 16:37:26 +01:00
libs Revert "Configure log level to info by default (#267)" (#307) 2023-04-05 15:37:09 +02:00
project Hardcode `.databricks` ignore pattern to ensure we never sync the cache directory (#295) 2023-04-04 15:44:57 +02:00
python Use new logger throughout codebase (#256) 2023-03-17 15:17:31 +01:00
retries Use new logger throughout codebase (#256) 2023-03-17 15:17:31 +01:00
sandbox updated dependencies 2022-05-14 19:56:09 +02:00
terraform Use new logger throughout codebase (#256) 2023-03-17 15:17:31 +01:00
.gitignore Implement Terraform state synchronization and deploy (#98) 2022-12-06 00:40:45 +01:00
.goreleaser.yaml Include commit hash in snapshot version (#193) 2023-02-20 15:46:57 +01:00
Makefile updated dependencies 2022-05-14 19:56:09 +02:00
README.md Update README.md 2022-05-16 13:31:47 +02:00
go.mod Update go SDK to 0.7.0 (#310) 2023-04-05 15:26:09 +02:00
go.sum Update go SDK to 0.7.0 (#310) 2023-04-05 15:26:09 +02:00
main.go Move and hide launch and test commands (#222) 2023-03-09 10:26:56 +01:00
main_test.go Configure user agent in root command (#195) 2023-02-03 16:47:33 +01:00

README.md

Bricks CLI 🧱 build

Where's "data"? Secured by the unity catalog. Projects build lifecycle is secured by bricks 🧱

This is an early PoC at this stage. make build (or download the latest from releases page).

Reuses authentication from Databricks CLI. And terraform provider. See details here: https://registry.terraform.io/providers/databrickslabs/databricks/latest/docs#environment-variables

Supports:

  • Databricks CLI
  • Databricks CLI Profiles
  • Azure CLI Auth
  • Azure MSI Auth
  • Azure SPN Auth
  • Google OIDC Auth
  • Direct DATABRICKS_HOST, DATABRICKS_TOKEN or DATABRICKS_USERNAME + DATABRICKS_PASSWORD variables.

What works:

  • ./bricks fs ls /
  • ./bricks test
  • ./bricks launch test.py

What doesn't work:

  • Everything else.

This project reuses some code from Databricks Terraform Provider