Databricks CLI
Go to file
Pieter Noordhuis ab05f8e6e7
New YAML loader to support configuration location (#828)
## Changes

In order to support variable interpolation on fields that aren't a
string in the resource types, we need a separate representation of the
bundle configuration tree with the type equivalent of Go's `any`. But
instead of using `any` directly, we can do better and use a custom type
equivalent to `any` that captures additional metadata. In this PR, the
additional metadata is limited to the origin of the configuration value
(file, line number, and column).

The YAML in this commit uses the upstream YAML parser's `yaml.Node` type
to get access to location information. It reimplements the loader that
takes the `yaml.Node` structure and turns it into the configuration tree
we need.

Next steps after this PR:
* Implement configuration tree type checking (against a Go type)
* Implement configuration tree merging (to replace the current merge
functionality)
* Implement conversion to and from the bundle configuration struct
* Perform variable interpolation against this configuration tree (to
support variable interpolation for ints)
* (later) Implement a `jsonloader` that produces the same tree and
includes location information

## Tests

The tests in `yamlloader` perform an equality check on the untyped
output of loading a YAML file between the upstream YAML loader and this
loader. The YAML examples were generated by prompting ChatGPT for
examples that showcase anchors, primitive values, edge cases, etc.
2023-10-20 12:56:59 +00:00
.codegen Fixed requiring positional arguments for API URL parameters (#878) 2023-10-19 14:19:17 +00:00
.github Define goreleaser job output (#861) 2023-10-11 13:50:55 +00:00
.vscode Cleanup after previous PR comments (#724) 2023-09-04 07:07:17 +00:00
bundle Do not emit wheel wrapper error when python_wheel_wrapper setting is true (#894) 2023-10-20 12:32:04 +00:00
cmd Fixed requiring positional arguments for API URL parameters (#878) 2023-10-19 14:19:17 +00:00
docs Rename bricks -> databricks (#389) 2023-05-16 18:35:39 +02:00
folders Don't depend on working directory in folders.FindDirWithLeaf (#54) 2022-09-14 15:08:55 +02:00
internal Make default dev semver a const (#891) 2023-10-19 18:56:54 +00:00
libs New YAML loader to support configuration location (#828) 2023-10-20 12:56:59 +00:00
.codegen.json Integrate with auto-release infra (#581) 2023-07-18 17:48:35 +02:00
.gitattributes Update Go SDK to 0.23.0 and use custom marshaller (#772) 2023-10-16 06:56:06 +00:00
.gitignore Add a foundation for built-in templates (#685) 2023-08-25 09:03:42 +00:00
.goreleaser.yaml Rename bricks -> databricks (#389) 2023-05-16 18:35:39 +02:00
CHANGELOG.md Release v0.208.1 (#887) 2023-10-19 11:48:09 +00:00
LICENSE Create LICENSE (#467) 2023-06-14 14:38:52 +00:00
Makefile Support Unity Catalog Registered Models in bundles (#846) 2023-10-16 15:32:49 +00:00
NOTICE Create NOTICE (#468) 2023-06-14 20:05:08 +02:00
README.md Fix typo in README.md (#510) 2023-06-21 20:26:09 +02:00
go.mod New YAML loader to support configuration location (#828) 2023-10-20 12:56:59 +00:00
go.sum Bump github.com/hashicorp/hc-install from 0.6.0 to 0.6.1 (#870) 2023-10-16 13:58:53 +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.