Skip to content

Add support for generate for alerts - #4108

Merged
shreyas-goenka merged 13 commits into
mainfrom
alerts-generate
Jan 7, 2026
Merged

Add support for generate for alerts#4108
shreyas-goenka merged 13 commits into
mainfrom
alerts-generate

Conversation

@shreyas-goenka

@shreyas-goenkashreyas-goenka commented Dec 8, 2025

Copy link
Copy Markdown
Contributor

Changes

Adds support for databricks bundle generate alert command to generate bundle configuration from existing SQL alerts.

Why

This allows users to import existing alerts into bundles

Usage

Generate configuration from existing alert

databricks bundle generate alert --existing-id <alert-id>

This creates:

  • resources/<alert-name>.alert.yml - Bundle configuration with alert settings
  • src/<alert-name>.dbalert.json - Complete alert definition

Update existing bundle resource

databricks bundle generate alert --resource my_alert --force

Tests

  • Added acceptance tests for successful generation and error cases

Note: It should be merged after: #3602

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Dec 8, 2025

Copy link
Copy Markdown
Collaborator

Commit: 834b5b0

Run: 20777490070

Env❌​FAIL🟨​KNOWN🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🟨​aws windows194238367061:15
❌​aws-ucws linux2158253054984:23
🟨​aws-ucws windows194253454765:23
🟨​azure linux2993379671197:56
🟨​azure windows18338366970:09
🟨​azure-ucws windows18353054668:47
🟨​gcp linux279337067726:12
🟨​gcp windows18337267520:56
27 interesting tests: 21 KNOWN, 3 RECOVERED, 2 FAIL, 1 SKIP
Test Nameaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K🟨​K🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestAccept/bundle/deployment/bind/alert🙈​S🙈​S🙈​S🔄​f🟨​K🟨​K🔄​f🟨​K
🟨​TestAccept/bundle/generate/alert🟨​K🟨​K🟨​K💚​R🟨​K🟨​K🔄​f🟨​K
🟨​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🔄​f🟨​K🟨​K💚​R🟨​K
🟨​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🟨​K🟨​K🔄​f🟨​K🟨​K🔄​f🟨​K
🟨​TestAccept/bundle/resources/alerts/basic🟨​K🟨​K🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestAccept/bundle/resources/alerts/basic/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🔄​f🟨​K🟨​K🔄​f🟨​K
🟨​TestAccept/bundle/resources/alerts/basic/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🟨​K🟨​K🔄​f🟨​K🟨​K🔄​f🟨​K
🟨​TestAccept/bundle/resources/alerts/with_file🟨​K🟨​K🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestAccept/bundle/resources/alerts/with_file/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🔄​f🟨​K🟨​K🔄​f🟨​K
🟨​TestAccept/bundle/resources/alerts/with_file/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🟨​K🟨​K🔄​f🟨​K🟨​K🔄​f🟨​K
🙈​TestAccept/bundle/resources/permissions🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions🟨​K🟨​K🟨​K🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R🟨​K💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R💚​R
❌​TestAccept/bundle/resources/secret_scopes/permissions✅​p❌​F✅​p🔄​f✅​p✅​p🙈​s🙈​s
❌​TestAccept/bundle/resources/secret_scopes/permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p❌​F✅​p🔄​f✅​p✅​p
🟨​TestExport🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K
🟨​TestExportWithFileFlag🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K
🟨​TestImportDir🟨​K💚​R🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestImportDirDoesNotOverwrite🟨​K💚​R🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestImportDirWithOverwriteFlag🟨​K💚​R🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestImportFileFormatAuto🟨​K💚​R🟨​K💚​R🟨​K🟨​K💚​R🟨​K
🟨​TestImportFileFormatSource🟨​K💚​R🟨​K💚​R🟨​K🟨​K💚​R🟨​K
Top 18 slowest tests (at least 2 minutes):
durationenvtestname
8:29aws-ucws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
8:04aws-ucws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
7:32azure windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
7:14aws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
6:35aws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
6:30aws-ucws windowsTestAccept/bundle/resources/synced_database_tables/basic
6:21aws-ucws linuxTestAccept/bundle/resources/synced_database_tables/basic
5:42aws-ucws linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
5:36gcp linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
5:32gcp linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
5:29aws-ucws linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
5:19gcp windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
5:14gcp windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
4:55azure windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
4:17azure linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
4:13azure-ucws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
4:10azure linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
3:59azure-ucws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct

@denikdenik 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.

looks good, but tests need fixing

}

cmd.Flags().StringVar(&alertID, "existing-id", "", `ID of the alert to generate configuration for`)
cmd.Flags().StringVar(&alertID, "existing-alert-id", "", `ID of the alert to generate configuration for`)

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.

cmd.Flags().StringVar(&alertID, "existing-id", "", ID of the alert to generate configuration for)
cmd.Flags().StringVar(&alertID, "existing-alert-id", "", ID of the alert to generate configuration for)

what the difference between these two?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

We have something similar in dashboards as well, so to keep things consistent:

	// Alias lookup flags that include the resource type name.
// Included for symmetry with the other generate commands, but we prefer the shorter flags.
cmd.Flags().StringVar(&d.existingPath, "existing-dashboard-path", "", `workspace path of the dashboard to generate configuration for`)
cmd.Flags().StringVar(&d.existingID, "existing-dashboard-id", "", `ID of the dashboard to generate configuration for`)
cmd.Flags().MarkHidden("existing-dashboard-path")
cmd.Flags().MarkHidden("existing-dashboard-id")

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I'll add a comment clarifying this.

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.

If we have a preferred way then the other is deprecated? In that case, we can skip it for new resources?

@shreyas-goenkashreyas-goenkaJan 7, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I think the goal was symmetry (cc: @pietern ). I don't mind it either way. The flag is hidden so users will not be encouraged to use it.

if errors.As(err, &apiErr) && apiErr.StatusCode == 404 {
return fmt.Errorf("alert with ID %s not found", alertID)
}
return err

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.

could libs/diag/sdk_error.go be useful here to show error in full? or perhaps somewhere at the caller side?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Good idea but I don't think we should do it here. We can solve this in general by modifying the main function and logging the API error details everytime we see an apierr.APIError.


// FilePath points to the local `.dbalert.json` file containing the alert definition.
// This is inlined into the alert during deployment.
FilePath string `json:"file_path,omitempty"`

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.

this is part of https://github.com/databricks/cli/pull/3602/files right? You can specify different target branch so that this does not show up in diff (for easier review).

@shreyas-goenka

Copy link
Copy Markdown
ContributorAuthor

TestAccept/bundle/generate/alert is failing on CI due to alerts quota issues, but I've added it to the skip list.

@shreyas-goenka
shreyas-goenka merged commit 04d744a into mainJan 7, 2026
18 of 19 checks passed
@shreyas-goenka
shreyas-goenka deleted the alerts-generate branch January 7, 2026 12:46
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Commit: 04d744a

Run: 20781972445

Env❌​FAIL🟨​KNOWN🤯​MISS🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🟨​aws linux1492417662317:22
❌​aws windows5194241466091:59
🟨​aws-ucws linux14292584533338:43
❌​aws-ucws windows21942586531111:03
🟨​azure linux2315341566154:00
🟨​azure windows1116341965962:38
❌​azure-ucws linux610453576531120:00
❌​azure-ucws windows11183573530117:17
🟨​gcp linux135339767051:47
🟨​gcp windows18339966847:06
50 interesting tests: 22 FAIL, 20 KNOWN, 4 RECOVERED, 2 flaky, 1 SKIP, 1 MISS
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K🟨​K🟨​K🟨​K💚​R🟨​K🤯​M🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/deployment/bind/alert🙈​S🙈​S🙈​S🙈​S🔄​f🔄​f🟨​K🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/generate/alert🟨​K🟨​K🟨​K🟨​K💚​R🟨​K🤯​M🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🟨​K💚​R🟨​K🤯​M🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🟨​K🟨​K🟨​K💚​R🟨​K🟨​K🟨​K🟨​K🟨​K
❌​TestAccept/bundle/integration_whl/interactive_cluster✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version✅​p✅​p✅​p✅​p🔄​f✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION✅​p✅​p✅​p✅​p🔄​f✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_single_user✅​p✅​p✅​p✅​p✅​p✅​p❌​F❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p✅​p✅​p✅​p❌​F❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p✅​p
🟨​TestAccept/bundle/resources/alerts/basic🟨​K🟨​K🟨​K🟨​K💚​R💚​R🟨​K🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/resources/alerts/basic/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🟨​K💚​R💚​R🟨​K🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/resources/alerts/basic/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🟨​K🟨​K🟨​K💚​R💚​R🟨​K🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/resources/alerts/with_file🟨​K🟨​K🟨​K🟨​K💚​R💚​R🟨​K🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/resources/alerts/with_file/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🟨​K💚​R💚​R🟨​K🟨​K🟨​K🟨​K
🟨​TestAccept/bundle/resources/alerts/with_file/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🟨​K🟨​K🟨​K💚​R💚​R🟨​K🟨​K🟨​K🟨​K
❌​TestAccept/bundle/resources/clusters/run/spark_python_task✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p✅​p
❌​TestAccept/bundle/resources/clusters/run/spark_python_task/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p✅​p
❌​TestAccept/bundle/resources/clusters/run/spark_python_task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p✅​p✅​p✅​p❌​F✅​p✅​p✅​p
🔄​TestAccept/bundle/resources/dashboards/simple✅​p✅​p🔄​f✅​p✅​p✅​p✅​p✅​p✅​p✅​p
🔄​TestAccept/bundle/resources/dashboards/simple/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🔄​f✅​p✅​p✅​p✅​p✅​p✅​p✅​p
🙈​TestAccept/bundle/resources/permissions🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
❌​TestAccept/bundle/resources/permissions/factcheck✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F🙈​s🙈​s
❌​TestAccept/bundle/resources/permissions/factcheck/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p✅​p✅​p✅​p✅​p❌​F
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions🟨​K🟨​K🟨​K🟨​K🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🟨​K🟨​K🟨​K
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions💚​R💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R💚​R💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R💚​R💚​R
❌​TestAccept/bundle/resources/secret_scopes/permissions✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p🙈​s🙈​s
❌​TestAccept/bundle/resources/secret_scopes/permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p
❌​TestAccept/bundle/run/app-with-job✅​p✅​p✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p
❌​TestAccept/bundle/run/app-with-job/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p
❌​TestAccept/bundle/templates/default-python/combinations/classic✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p✅​p✅​p
❌​TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_BUNDLE_ENGINE=direct/DLT=no/NBOOK=no/PY=no/READPLAN=✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p✅​p✅​p
❌​TestAccept/bundle/templates/default-python/combinations/classic/DATABRICKS_BUNDLE_ENGINE=terraform/DLT=yes/NBOOK=yes/PY=yes/READPLAN=✅​p❌​F✅​p✅​p✅​p✅​p✅​p✅​p✅​p✅​p
🤯​TestInprocessMode🙈​s🙈​s🙈​s🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🟨​TestExport🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K
🟨​TestExportWithFileFlag🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K
🟨​TestImportDir💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K
🟨​TestImportDirDoesNotOverwrite💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K
🟨​TestImportDirWithOverwriteFlag💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K
🟨​TestImportFileFormatAuto💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K
🟨​TestImportFileFormatSource💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K💚​R🟨​K
Top 50 slowest tests (at least 2 minutes):
durationenvtestname
15:03azure-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
14:51gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
11:58aws-ucws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
11:19azure-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
11:01gcp windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
11:00azure windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
10:58azure-ucws windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:55gcp windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
10:37gcp linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:37azure-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
10:35aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform
10:14aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=direct
10:04gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
9:52azure-ucws linuxTestAccept/bundle/resources/permissions/factcheck/DATABRICKS_BUNDLE_ENGINE=terraform
9:34azure windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
9:25aws-ucws windowsTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform
9:14aws-ucws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
8:56aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
8:47gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
8:39azure-ucws linuxTestSparkJarTaskDeployAndRunOnVolumes/Databricks_Runtime_15.4_LTS
8:35gcp linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
8:33aws-ucws linuxTestSparkJarTaskDeployAndRunOnVolumes/Databricks_Runtime_15.4_LTS
8:18aws-ucws linuxTestAccept/bundle/resources/database_catalogs/basic/DATABRICKS_BUNDLE_ENGINE=direct
8:18aws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
8:06aws-ucws windowsTestSparkJarTaskDeployAndRunOnVolumes/Databricks_Runtime_15.4_LTS
8:01gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION
8:00aws linuxTestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_15.4_LTS
7:58aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
7:57aws-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=direct
7:56aws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
7:54azure-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct
7:50gcp linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
7:48aws-ucws linuxTestSparkJarTaskDeployAndRunOnVolumes/Databricks_Runtime_13.3_LTS
7:47aws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
7:44azure windowsTestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_14.3_LTS
7:44aws-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
7:39gcp windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
7:38gcp linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
7:37gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
7:33gcp windowsTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
7:27aws-ucws windowsTestSparkJarTaskDeployAndRunOnVolumes/Databricks_Runtime_13.3_LTS
7:26aws-ucws linuxTestSparkJarTaskDeployAndRunOnVolumes/Databricks_Runtime_14.3_LTS
7:21gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
7:21aws-ucws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
7:14aws-ucws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
7:12aws-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
7:06azure windowsTestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_15.4_LTS
7:06azure linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
7:05gcp windowsTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct
7:05aws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER

pietern added a commit that referenced this pull request Jan 8, 2026
- Remove #4135 (already released in v0.281.0)
- Update #4081 reference to #4101 (use PR instead of issue)
- Add #4108 (bundle generate alert command)
- Add #3602 (.dbalert.json files support)
- Add #4169 (SYSTEM_TEAMFOUNDATIONCOLLECTIONURI for Azure DevOps OIDC)
- Move domain_friendly_name entry from CLI to Bundles section
- Normalize formatting (backticks, verb tense, wording consistency)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
pietern added a commit that referenced this pull request Jan 8, 2026
## Changes
- Remove #4135 (already released in v0.281.0)
- Update #4081 reference to #4101 (use PR instead of issue)
- Add #4108 (bundle generate alert command)
- Add #3602 (.dbalert.json files support)
- Add #4169 (SYSTEM_TEAMFOUNDATIONCOLLECTIONURI for Azure DevOps OIDC)
- Move domain_friendly_name entry from CLI to Bundles section
- Normalize formatting (backticks, verb tense, wording consistency)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
deco-sdk-taggingBot added a commit that referenced this pull request Jan 8, 2026
## Release v0.282.0
### Notable Changes
* engine/direct: New plan format (v2) ([#4201](#4201))
### CLI
* Skip non-exportable objects (e.g., `MLFLOW_EXPERIMENT`) during `workspace export-dir` instead of failing ([#4101](#4101))
### Bundles
* Allow `domain_friendly_name` to be used in `name_prefix` in development mode ([#4173](#4173))
* Add missing schema grants privileges ([#4139](#4139))
* Add support for `bundle generate alert` command ([#4108](#4108))
* Add support for `.dbalert.json` files ([#3602](#3602))
* Pass `SYSTEM_TEAMFOUNDATIONCOLLECTIONURI` from env to the Terraform provider for Azure DevOps OIDC auth ([#4169](#4169))
* Add `ipykernel` to the `default` template to enable Databricks Connect notebooks in Cursor/VS Code ([#4164](#4164))
* Add interactive SQL warehouse picker to `default-sql` and `dbt-sql` bundle templates ([#4170](#4170))
* Add `name`, `target` and `mode` fields to the deployment metadata file ([#4180](#4180))
* engine/direct: Fix app deployment failure when app is in `DELETING` state ([#4176](#4176))
* engine/direct: Changes in config that match remote changes no longer trigger an update ([#4201](#4201))
denik pushed a commit that referenced this pull request May 20, 2026
## Changes
Adds support for `databricks bundle generate alert` command to generate
bundle configuration from existing SQL alerts.
## Why
This allows users to import existing alerts into bundles
## Usage
### Generate configuration from existing alert
```bash
databricks bundle generate alert --existing-id <alert-id>
```
This creates:
- `resources/<alert-name>.alert.yml` - Bundle configuration with alert
settings
- `src/<alert-name>.dbalert.json` - Complete alert definition
### Update existing bundle resource
```bash
databricks bundle generate alert --resource my_alert --force
```
## Tests
- Added acceptance tests for successful generation and error cases
Note: It should be merged after:
#3602
denik pushed a commit that referenced this pull request May 20, 2026
## Changes
- Remove #4135 (already released in v0.281.0)
- Update #4081 reference to #4101 (use PR instead of issue)
- Add #4108 (bundle generate alert command)
- Add #3602 (.dbalert.json files support)
- Add #4169 (SYSTEM_TEAMFOUNDATIONCOLLECTIONURI for Azure DevOps OIDC)
- Move domain_friendly_name entry from CLI to Bundles section
- Normalize formatting (backticks, verb tense, wording consistency)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
denik pushed a commit that referenced this pull request May 20, 2026
## Release v0.282.0
### Notable Changes
* engine/direct: New plan format (v2) ([#4201](#4201))
### CLI
* Skip non-exportable objects (e.g., `MLFLOW_EXPERIMENT`) during `workspace export-dir` instead of failing ([#4101](#4101))
### Bundles
* Allow `domain_friendly_name` to be used in `name_prefix` in development mode ([#4173](#4173))
* Add missing schema grants privileges ([#4139](#4139))
* Add support for `bundle generate alert` command ([#4108](#4108))
* Add support for `.dbalert.json` files ([#3602](#3602))
* Pass `SYSTEM_TEAMFOUNDATIONCOLLECTIONURI` from env to the Terraform provider for Azure DevOps OIDC auth ([#4169](#4169))
* Add `ipykernel` to the `default` template to enable Databricks Connect notebooks in Cursor/VS Code ([#4164](#4164))
* Add interactive SQL warehouse picker to `default-sql` and `dbt-sql` bundle templates ([#4170](#4170))
* Add `name`, `target` and `mode` fields to the deployment metadata file ([#4180](#4180))
* engine/direct: Fix app deployment failure when app is in `DELETING` state ([#4176](#4176))
* engine/direct: Changes in config that match remote changes no longer trigger an update ([#4201](#4201))
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@shreyas-goenka@eng-dev-ecosystem-bot@denik@andrewnester