Skip to content

Require condition on multi-table update triggers at validate time - #7107

Open
yuri-rod wants to merge 4 commits into
databricks:mainfrom
yuri-rod:fix/bundle-validate-table-update-condition
Open

yuri-rod wants to merge 4 commits into
databricks:mainfrom
yuri-rod:fix/bundle-validate-table-update-condition

Conversation

@yuri-rod

Copy link
Copy Markdown

Changes

New read-only check that errors when a job trigger lists more than one table in table_names without setting condition. Registered in FastValidate so both bundle validate and bundle deploy catch it.

Why

Validate passed jobs the Jobs API rejects at deploy with a 400 after files are uploaded. Fixes #7101.

Error severity is deliberate: this shape always fails at deploy, so no working bundle can break.

Tests

  • New unit tests for missing, set, single-table, and no-trigger cases
  • Full bundle/config/validate package passes
  • Rebuilt binary: missing condition errors with path and file location; condition-set and single-table variants pass
  • Trigger-related acceptance subtests pass (18 invariant subtests, config-remote-sync/job_fields)

Bundle validate passed jobs the Jobs API rejects at deploy. Fixes databricks#7101.
Copilot AI balanced review requested due to automatic review settings October 19, 2026 14:20
@yuri-rod
yuri-rod requested review from a team as code owners October 19, 2026 14:20
@yuri-rod
yuri-rod requested a review from denik October 19, 2026 14:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added the DABs DABs related issues label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! This pull request was opened from a fork.

If you're a member of the Databricks organization, please request access to the cli-contrib team and open your pull request from a branch in this repository instead of a fork — fork PRs don't run integration tests automatically and have reduced CI access.

If you're an external contributor, no action is needed; a maintainer will review your pull request.

The Jobs API applies the same condition requirement to each entry of
the triggers list, so check those entries alongside the singular
trigger. Add tests for the plural path and the ALL_UPDATED value.
@yuri-rod

Copy link
Copy Markdown
Author

Self-review follow-up in 663c8e9: the first version only checked the singular trigger block, but JobSettings.triggers entries use the same TableUpdateTriggerConfiguration type and the API applies the same condition requirement there, so those entries are now checked too (reported at resources.jobs.<name>.triggers[i].table_update). Also added tests for the plural path and the ALL_UPDATED value. Package tests and repo-pinned golangci-lint pass.

Cover a trigger without a table_update block and an empty table list,
both of which must not report the multi-table condition error.
@github-actions

Copy link
Copy Markdown
Contributor

An authorized user can trigger integration tests manually by following the instructions below:

Trigger:
go/deco-tests-run/cli

Inputs:

  • PR number: 7107
  • Commit SHA: 6ecd36096e44fc5983c090f07ee3ab1d26c8048c

Checks will be approved automatically on success.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bundle validate does not catch missing trigger.table_update.condition with multiple tables

3 participants