Databricks CLI
Go to file
shreyas-goenka cddc5f97f8
Fix the generated DABs JSON schema (#1322)
## Changes
This PR fixes bundle schema being broken because `for_each_task: null`
was set in the generated schema. This is not valid according to the JSON
schema specification and thus the Red Hat YAML VSCode extension was
failing to parse the YAML configuration.

This PR fixes: https://github.com/databricks/cli/issues/1312

## Tests
The fix itself was tested manually. I asserted that the autocompletion
works now. This was mistakenly overlooked the first time around when the
regression was introduced in https://github.com/databricks/cli/pull/1204
because the YAML extension provides best-effort autocomplete suggestions
even if the JSON schema fails to load.

To prevent future regressions we also add a test to assert that the JSON
schema generated itself is a valid JSON schema object. This is done via
using the `ajv-cli` to validate the schema. This package is also used by
the Red Hat YAML extension and thus provides a high fidelity check for
ensuring the JSON schema is valid.

Before, with the old schema:
```
shreyas.goenka@THW32HFW6T cli-versions % ajv validate -s proj/schema-216.json -d ../bundle-playground-3/databricks.yml
schema proj/schema-216.json is invalid
error: schema is invalid: data/properties/resources/properties/jobs/additionalProperties/properties/tasks/items/properties/for_each_task must be object,boolean, data/properties/resources/properties/jobs/additionalProperties/properties/tasks/items must be array, data/properties/resources/properties/jobs/additionalProperties/properties/tasks/items must match a schema in anyOf
```

After, with the new schema:
```
shreyas.goenka@THW32HFW6T cli-versions % ajv validate -s proj/schema-dev.json -d ../bundle-playground-3/databricks.yml
../bundle-playground-3/databricks.yml valid
```

After, autocomplete suggestions:

<img width="600" alt="Screenshot 2024-03-27 at 6 35 57 PM"
src="https://github.com/databricks/cli/assets/88374338/d0a62402-e323-4f36-854d-332b33cbeab8">
2024-03-28 11:25:36 +00:00
.codegen Update Go SDK to v0.36.0 (#1304) 2024-03-22 13:15:54 +00:00
.github Fix the generated DABs JSON schema (#1322) 2024-03-28 11:25:36 +00:00
.vscode Cleanup after previous PR comments (#724) 2023-09-04 07:07:17 +00:00
bundle Fix the generated DABs JSON schema (#1322) 2024-03-28 11:25:36 +00:00
cmd Return diagnostics from `config.Load` (#1324) 2024-03-28 10:59:03 +00:00
docs Rename bricks -> databricks (#389) 2023-05-16 18:35:39 +02:00
internal Move path field to bundle type (#1316) 2024-03-27 09:03:24 +00:00
libs Load bundle configuration from mutator (#1318) 2024-03-27 10:49:05 +00:00
.codegen.json Allow referencing bundle resources by name (#872) 2024-01-04 21:04:42 +00:00
.gitattributes Update Go SDK to v0.34.0 (#1256) 2024-03-06 09:53:44 +00:00
.gitignore Add a foundation for built-in templates (#685) 2023-08-25 09:03:42 +00:00
.goreleaser.yaml Discontinue 32-bit Windows build (#1024) 2023-11-29 14:06:51 +00:00
.mockery.yaml Use mockery to generate mocks compatible with testify/mock (#1190) 2024-02-08 15:18:53 +00:00
CHANGELOG.md Release v0.216.0 (#1309) 2024-03-25 10:43:16 +00:00
LICENSE Trim trailing whitespace (#1206) 2024-02-15 16:23:48 +00:00
Makefile `make snapshot` to build file in `.databricks/databricks` (#927) 2023-10-27 10:50:41 +00:00
NOTICE Use dynamic configuration model in bundles (#1098) 2024-02-16 19:41:58 +00:00
README.md Fix typo in README.md (#510) 2023-06-21 20:26:09 +02:00
go.mod Update Go SDK to v0.36.0 (#1304) 2024-03-22 13:15:54 +00:00
go.sum Update Go SDK to v0.36.0 (#1304) 2024-03-22 13:15:54 +00:00
main.go Consolidate environment variable interaction (#747) 2023-09-11 08:18:43 +00:00
main_test.go Consolidate environment variable interaction (#747) 2023-09-11 08:18:43 +00:00

README.md

Databricks CLI

build

This project is in Public Preview.

Documentation about the full REST API coverage is available in the docs folder.

Documentation is available at https://docs.databricks.com/dev-tools/cli/databricks-cli.html.

Installation

This CLI is packaged as a dependency-free binary executable and may be located in any directory. See https://github.com/databricks/cli/releases for releases and the docs pages for installation instructions.

Authentication

This CLI follows the Databricks Unified Authentication principles.

You can find a detailed description at https://github.com/databricks/databricks-sdk-go#authentication.