Repository navigation
Include variable locations in --include-locations output - #7351
Conversation
The location map that `bundle validate` and `bundle summary` emit with --include-locations now covers variables: - variables.<name>: where the variable is declared. - variables.<name>.value: where the resolved value comes from, such as a target override or .databricks/bundle/<target>/variable-overrides.json. It is absent when the value has no file, as with --var, BUNDLE_VAR_*, and lookups. The workspace UI uses this to link each variable to its file. Co-authored-by: Isaac <no-reply@databricks.com>
|
Commit: Regression test reportSelected 1 changed tests (limit=20, 0 not selected) 2 tests: regression=2 unreleased=0 coverage=0 failing=0
TestAccept/bundle/variables/locations/DMS=: branch ✅ | main (663e1f7) ❌ | latest (v1.24.0) ❌main (663e1f7): latest (v1.24.0): same output as main (663e1f7) TestAccept/bundle/variables/locations/DMS=true: branch ✅ | main (663e1f7) ❌ | latest (v1.24.0) ❌main (663e1f7): latest (v1.24.0): same output as main (663e1f7) |
✅ Integration test reportCommit: f969f68
Top 3 slowest tests (at least 2 minutes):
|
| dyn.NewPattern(dyn.Key("resources"), dyn.Key("jobs"), dyn.AnyKey(), dyn.Key("tasks")), // Job tasks ("resources.jobs.my_job.tasks") | ||
| dyn.NewPattern(dyn.Key("resources"), dyn.Key("jobs"), dyn.AnyKey(), dyn.Key("tasks"), dyn.AnyIndex()), // Job task items ("resources.jobs.my_job.tasks[2]") | ||
| dyn.NewPattern(dyn.Key("variables"), dyn.AnyKey()), // Variable definitions ("variables.my_var") | ||
| dyn.NewPattern(dyn.Key("variables"), dyn.AnyKey(), dyn.Key("value")), // Resolved variable values ("variables.my_var.value") |
There was a problem hiding this comment.
Should this get a .nextchanges/bundles/ entry? The last --include-locations change (#7185) has one in the changelog, and the UI side will want to know which CLI version ships the variable keys.
| @@ -0,0 +1,10 @@ | |||
| [[Server]] | |||
| Pattern = "GET /api/2.0/preview/scim/v2/ServicePrincipals" | |||
There was a problem hiding this comment.
This is the same stub as in variables/lookup/test.toml, and issue_3039_lookup_with_ref carries a third variant. Maybe time to add a ServicePrincipals handler to libs/testserver instead, like .agents/rules/testing.md asks?
There was a problem hiding this comment.
you're right. i removed the variable and the stub instead, I think adding service principals handler should be a separate pr. in my case, it wasn't needed, the variable with no value location test case is already covered by from_cli
| "databricks.yml:18:5" | ||
| ], | ||
| "variables.complex_var.value": [ | ||
| "databricks.yml:46:9" |
There was a problem hiding this comment.
Is it expected that the complex value points at the first key inside the override (46:9) rather than the override itself (complex_var: at 45:7)? Probably fine if the UI only needs a line to link to, just checking it's intentional.
There was a problem hiding this comment.
yes, it is intentional (kept consistent with resources ) and the ui only needs to link the file
## Release v1.25.0 ### CLI * `databricks aitools install --output json` now reports a more specific `error_category` (`MANIFEST_NOT_FOUND`, `PERMISSION_DENIED`, `FILESYSTEM`) for some failures it reported as `UNCATEGORIZED`. ([#7380](#7380)) * Suggest `databricks auth logout --profile <profile-name> --delete` when multiple profiles match the same workspace in `databricks auth docker` commands. ([#7363](#7363)) * Fix `%pip` in Jupyter notebooks opened over `databricks ssh connect` on serverless environment versions 5 and 6 and on dedicated clusters running recent Databricks Runtime versions, which fell back to the stock IPython magic instead of the Databricks one. ([#7263](#7263)) ### AI Runtime * `databricks air run` now validates the config server-side while it uploads the run artifacts, instead of before, which shortens submission. ([#7368](#7368)) * Remove `CRITICAL` as a valid `compute.priority_class` value; the AI Runtime API no longer accepts it. ([#7371](#7371)) ### Bundles * Built-in templates add the workspace ID to `workspace.host` (`?w=<id>`) when the profile or an environment variable sets it, so generated bundles select the right workspace on hosts shared by several workspaces. Welcome messages show the same URL, and `dbt-sql` also adds `?o=<id>` to the HTTP path it suggests for `dbt init`. ([#7350](#7350)) * Fix grants of a renamed or recreated catalog, schema, volume or other UC resource staying recorded under the old name, which made the next `bundle plan` propose to apply them again. ([#7345](#7345)) * Fix permissions of a recreated pipeline, app, dashboard, model serving endpoint or other resource staying recorded under the old ID, which made every later `bundle plan` propose to apply them again. ([#7361](#7361)) * Add the `postgres_data_apis` resource (Private Preview) for enabling and configuring the Data API of a Lakebase Postgres database. ([#7160](#7160)) * Fixes [#4012](#4012): registered model `aliases` are now set in Unity Catalog on deploy instead of being silently ignored. A model without an `aliases` section keeps the aliases set outside the bundle (for example by MLflow), and `aliases: []` removes them. ([#7163](#7163)) * Include variable declarations and the source of each resolved value in the `--include-locations` output of `bundle validate` and `bundle summary`. ([#7351](#7351)) * Add `.workspace.URLID` to bundle templates: the workspace ID that `.workspace.URL` adds, or empty, so templates can use it without failing when the ID is unknown. ([#7388](#7388)) * Expose the workspace of the selected profile to bundle templates as `.workspace`, with `Hostname`, `ID`, and `URL`, so templates can address a workspace on a host shared by several workspaces. A template input named `workspace` takes precedence. ([#7349](#7349)) ### Dependency Updates * Bump dependencies with known vulnerabilities. ([#7394](#7394)) * Upgrade `github.com/mattn/go-runewidth` to v0.0.31, which removes ~30ms of startup time from every command. ([#7391](#7391)) * Update the Go SDK to [v0.194.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.194.0). ([#7371](#7371)) * Update the Go SDK to [v0.195.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.195.0). ([#7384](#7384))
The location map that
bundle validateandbundle summaryemit with --include-locations now covers variables:The workspace UI uses this to link each variable to its file in the deployments modal.