Commit a3bea05
Add validation for required dashboard fields (#3761)
## Summary
This PR adds validation to ensure dashboards have both required fields:
`display_name` (name) and `warehouse_id`. The validation returns
**errors** (not warnings) for missing required fields, preventing
deployment until they are added.
## Changes
**bundle/config/validate/required.go:**
- Split `Apply()` method into two helper functions:
- `warnForMissingFields()` - Validates fields based on OpenAPI spec
annotations (existing behavior)
- `errorForMissingFields()` - Bespoke validation for fields not marked
as required in SDK/OpenAPI
- Added dashboard-specific validation in `errorForMissingFields()`:
- Checks `display_name` is not empty
- Checks `warehouse_id` is not empty
- Updated `Apply()` to call `errorForMissingFields()` first, then
`warnForMissingFields()`
## Why This Change?
These fields are marked as required in Terraform:
https://github.com/databricks/terraform-provider-databricks/blob/0c0272a8ae678a12e6d7c106245b083d10ba5e07/dashboards/resource_dashboard.go#L33
Adding this here has to benefits:
1. catch missing values without needing to go to Terraform or waiting
for deployment. These will surface early during bundle validate.
2. We ensure that these fields remain required for direct deployment.
## Test Coverage
New acceptance tests
---------
Co-authored-by: Claude <[email protected]>1 parent e53ca69 commit a3bea05
File tree
20 files changed
+157
-10
lines changed- acceptance/bundle
- generate/dashboard-inplace
- sync
- dryrun
- validate
- dashboard_defaults
- dashboard_required_name
- dashboard_required_warehouse_id
- empty_resources
- empty_dict
- with_grants
- with_permissions
- no_dashboard_etag
- bundle/config/validate
20 files changed
+157
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
Lines changed: 17 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
7 | 10 | | |
8 | 11 | | |
9 | 12 | | |
10 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
11 | 17 | | |
12 | 18 | | |
13 | 19 | | |
14 | 20 | | |
| 21 | + | |
15 | 22 | | |
| 23 | + | |
16 | 24 | | |
17 | 25 | | |
18 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
19 | 30 | | |
20 | 31 | | |
21 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | 2 | | |
7 | 3 | | |
8 | 4 | | |
9 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | 15 | | |
17 | 16 | | |
18 | 17 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
0 commit comments