Databricks CLI
Go to file
shreyas-goenka 715a4dfb21
Path escape filepaths in the URL (#250)
Before we were using url query escaping to escape the file path. This is
wrong since the file path is a part of the URL path rather than URL
query. These encoding schemes are similar but do not have identical
encodings which was why we got these weird edge cases

Fixed, and added nightly test for assert for this

```
2023/03/15 16:07:50 [INFO] Action: PUT: .gitignore, a b/bar.py, c+d/uno.py, foo.py
2023/03/15 16:07:51 [INFO] Uploaded foo.py
2023/03/15 16:07:51 [INFO] Uploaded a b/bar.py
2023/03/15 16:07:51 [INFO] Uploaded .gitignore
2023/03/15 16:07:51 [INFO] Uploaded c+d/uno.py
2023/03/15 16:07:51 [INFO] Initial Sync Complete
```

```
[VSCODE] bricks cli path: /Users/shreyas.goenka/.vscode/extensions/databricks.databricks-0.3.4-darwin-arm64/bin/bricks
[VSCODE] sync command args: sync,.,/Repos/shreyas.goenka@databricks.com/sync-fail.ide,--watch,--output,json
--------------------------------------------------------
Starting synchronization (4 files)
Uploaded .gitignore
Uploaded foo.py
Uploaded c+d/uno.py
Uploaded a b/bar.py
Completed synchronization
```
2023-03-15 17:25:57 +01:00
.github Bump Go version to 1.19 (#197) 2023-02-03 15:13:29 +01:00
.vscode Let vscode trim whitespace on save (#172) 2023-01-23 09:52:50 +01:00
bundle skip flaky cross reference test (#251) 2023-03-15 17:09:52 +01:00
cmd Add openapi descriptions to bundle resources (#229) 2023-03-15 03:18:51 +01:00
docs Add optional JSON output for sync command (#230) 2023-03-08 10:27:19 +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 Path escape filepaths in the URL (#250) 2023-03-15 17:25:57 +01:00
libs Path escape filepaths in the URL (#250) 2023-03-15 17:25:57 +01:00
project Move git package to libs/git (#189) 2023-01-31 19:19:16 +01:00
python Update to Go SDK v0.2.0 (#157) 2022-12-28 11:32:04 +01:00
retries Experimental sync command 2022-07-07 20:56:59 +02:00
sandbox updated dependencies 2022-05-14 19:56:09 +02:00
terraform Ensure Go code is formatted (#37) 2022-09-07 15:15:23 +02: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 Add openapi descriptions to bundle resources (#229) 2023-03-15 03:18:51 +01:00
go.sum Bump github.com/hashicorp/terraform-json from 0.15.0 to 0.16.0 (#241) 2023-03-10 11:57:33 +01: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