From 4fb6d561a9ea33826c8e67391210474a37865ebb Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Wed, 21 Oct 2026 22:12:35 +0000 Subject: [PATCH 1/7] Add job notifications and health example Co-authored-by: omnigent --- .../job_notifications_and_health/README.md | 169 ++++++++++++++++++ .../databricks.yml | 51 ++++++ .../resources/notification_health_job.job.yml | 55 ++++++ .../job_notifications_and_health/src/main.py | 19 ++ 4 files changed, 294 insertions(+) create mode 100644 knowledge_base/job_notifications_and_health/README.md create mode 100644 knowledge_base/job_notifications_and_health/databricks.yml create mode 100644 knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml create mode 100644 knowledge_base/job_notifications_and_health/src/main.py diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md new file mode 100644 index 0000000..32b5df8 --- /dev/null +++ b/knowledge_base/job_notifications_and_health/README.md @@ -0,0 +1,169 @@ +# Job notifications and health + +## What this example shows + +This example defines a serverless job with email notifications, webhook notifications, health rules, timeouts, and retries. + +The Python task can sleep or fail. Use its job parameters to test notifications. + +The `dev` target overrides all recipient lists with empty lists. The `prod` target adds the configured recipients. + +## Prerequisites + +- Install Databricks CLI 0.218.0 or later. +- Configure a Databricks CLI profile for the target workspace. +- Use a workspace that supports serverless jobs environment version `4`. +- Create a webhook notification destination in the workspace. +- Use an email address for an active workspace user. + +## Configure + +Set variables with `--var`, environment variables, or a target variable file. + +| Variable | Required value | Example placeholder | +| --- | --- | --- | +| `notification_email` | An address that receives job email notifications | `replace-me@example.com` | +| `notification_destination_id` | The UUID of a workspace notification destination | `00000000-0000-0000-0000-000000000000` | + +Do not put webhook credentials in this bundle. Store credentials in the workspace notification destination. + +## Deploy and run + +1. Validate the development target. + + ```bash + databricks bundle validate -t dev + ``` + +2. Deploy the development target. + + ```bash + databricks bundle deploy -t dev + ``` + +3. Run the development job without notifications. + + ```bash + databricks bundle run -t dev notification_health_job + ``` + +4. Validate the production target with production variable values. + + ```bash + databricks bundle validate -t prod --var="notification_email=USER@example.com,notification_destination_id=DESTINATION_UUID" + ``` + +5. Deploy the production target with the same values. + + ```bash + databricks bundle deploy -t prod --var="notification_email=USER@example.com,notification_destination_id=DESTINATION_UUID" + ``` + +6. Run the production job. + + ```bash + databricks bundle run -t prod notification_health_job + ``` + +## How notifications and health rules work + +| Key | What it does | Dev value | Prod value | +| --- | --- | --- | --- | +| `email_notifications.on_failure` | Sends email after the final failed or timed-out run | Empty | `notification_email` | +| `email_notifications.on_duration_warning_threshold_exceeded` | Sends email when run duration exceeds 60 seconds | Empty | `notification_email` | +| `email_notifications.on_streaming_backlog_exceeded` | Sends email when a streaming backlog rule is exceeded | Empty | `notification_email` | +| `webhook_notifications.on_failure` | Calls the destination after the final failed or timed-out run | Empty | `notification_destination_id` | +| `webhook_notifications.on_duration_warning_threshold_exceeded` | Calls the destination when run duration exceeds 60 seconds | Empty | `notification_destination_id` | +| `webhook_notifications.on_streaming_backlog_exceeded` | Calls the destination when a streaming backlog rule is exceeded | Empty | `notification_destination_id` | +| `notification_settings.no_alert_for_skipped_runs` | Suppresses failure notifications for skipped runs | `true` | `true` | +| `notification_settings.no_alert_for_canceled_runs` | Suppresses failure notifications for canceled runs | `true` | `true` | +| `health.rules[0]` | Warns when `RUN_DURATION_SECONDS` is greater than 60 | 60 seconds | 60 seconds | +| `health.rules[1]` | Warns when `STREAMING_BACKLOG_RECORDS` is greater than 1,000 | 1,000 records | 1,000 records | +| `timeout_seconds` | Stops each task attempt after 120 seconds | 120 seconds | 120 seconds | +| `max_retries` | Retries one failed task attempt | 1 | 1 | +| `min_retry_interval_millis` | Waits at least 10 seconds before retrying | 10,000 ms | 10,000 ms | +| `retry_on_timeout` | Retries an attempt after a timeout | `true` | `true` | + +## Test the alerts + +Use the `prod` target for notification tests. The `dev` target suppresses all recipients. + +### Force a duration warning + +1. Run the task for more than 60 seconds. + + ```bash + databricks bundle run -t prod notification_health_job --params sleep_seconds=90,fail=false + ``` + +2. Check for a duration warning email and webhook call. + +The notification identifies the job, run, workspace, and duration threshold event. + +### Force a timeout + +1. Run the task for more than 120 seconds. + + ```bash + databricks bundle run -t prod notification_health_job --params sleep_seconds=180,fail=false + ``` + +2. Wait for the retry and the final run result. + +The task times out twice because `retry_on_timeout` is `true`. The final failure notification follows the last attempt. + +### Force a failure + +1. Request an intentional failure. + + ```bash + databricks bundle run -t prod notification_health_job --params sleep_seconds=0,fail=true + ``` + +2. Wait for the retry and the final run result. + +The task fails twice because `max_retries` is `1`. The email and webhook report the final failed run. + +Webhook payload fields can change by event type and workspace version. A representative payload has this form: + +```json +{ + "event_type": "jobs.on_failure", + "workspace_id": "WORKSPACE_ID", + "run": { + "run_id": "RUN_ID", + "name": "Job notifications and health", + "state": "FAILED", + "url": "RUN_URL" + } +} +``` + +## Edge cases and limits + +- This example uses serverless compute. It does not configure classic job clusters. +- Serverless availability and environment versions can differ across AWS, Azure, GCP, and regions. +- This example uses no storage URI, node type, or cloud identity. +- Retries start only after an attempt fails or times out. +- Each retry receives a new 120-second timeout. +- Failure notifications occur after retries finish. +- Duration warnings can occur before a later timeout or failure. +- The streaming backlog rule is Public Preview and has no effect on this batch task. +- Use the rule with a streaming task to test streaming backlog notifications. +- Skipped and canceled runs do not send failure notifications in either target. +- Deployment is idempotent. You can safely repeat an interrupted deployment. +- Destruction removes only resources that this bundle owns. + +## Clean up + +1. Remove development resources. + + ```bash + databricks bundle destroy -t dev + ``` + +2. Remove production resources. + + ```bash + databricks bundle destroy -t prod --var="notification_email=USER@example.com,notification_destination_id=DESTINATION_UUID" + ``` diff --git a/knowledge_base/job_notifications_and_health/databricks.yml b/knowledge_base/job_notifications_and_health/databricks.yml new file mode 100644 index 0000000..86bd480 --- /dev/null +++ b/knowledge_base/job_notifications_and_health/databricks.yml @@ -0,0 +1,51 @@ +bundle: + name: job_notifications_and_health + +include: + - resources/*.job.yml + +variables: + notification_email: + description: Email address that receives job notifications. + default: replace-me@example.com + notification_destination_id: + description: ID of a configured webhook notification destination. + default: 00000000-0000-0000-0000-000000000000 + +targets: + dev: + default: true + mode: development + resources: + jobs: + notification_health_job: + email_notifications: + on_failure: [] + on_duration_warning_threshold_exceeded: [] + on_streaming_backlog_exceeded: [] + webhook_notifications: + on_failure: [] + on_duration_warning_threshold_exceeded: [] + on_streaming_backlog_exceeded: [] + + prod: + mode: production + workspace: + root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target} + resources: + jobs: + notification_health_job: + email_notifications: + on_failure: + - ${var.notification_email} + on_duration_warning_threshold_exceeded: + - ${var.notification_email} + on_streaming_backlog_exceeded: + - ${var.notification_email} + webhook_notifications: + on_failure: + - id: ${var.notification_destination_id} + on_duration_warning_threshold_exceeded: + - id: ${var.notification_destination_id} + on_streaming_backlog_exceeded: + - id: ${var.notification_destination_id} diff --git a/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml b/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml new file mode 100644 index 0000000..0d403ea --- /dev/null +++ b/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml @@ -0,0 +1,55 @@ +resources: + jobs: + notification_health_job: + name: Job notifications and health + description: Demonstrates notifications, health rules, timeouts, and retries. + + parameters: + - name: sleep_seconds + default: "0" + - name: fail + default: "false" + + email_notifications: + on_failure: [] + on_duration_warning_threshold_exceeded: [] + on_streaming_backlog_exceeded: [] + + webhook_notifications: + on_failure: [] + on_duration_warning_threshold_exceeded: [] + on_streaming_backlog_exceeded: [] + + notification_settings: + no_alert_for_skipped_runs: true + no_alert_for_canceled_runs: true + + health: + rules: + - metric: RUN_DURATION_SECONDS + op: GREATER_THAN + value: 60 + # This preview metric applies only when the job runs a stream. + - metric: STREAMING_BACKLOG_RECORDS + op: GREATER_THAN + value: 1000 + + tasks: + - task_key: controllable_task + spark_python_task: + python_file: ../src/main.py + parameters: + - --sleep-seconds + - "{{job.parameters.sleep_seconds}}" + - --fail + - "{{job.parameters.fail}}" + environment_key: default + timeout_seconds: 120 + max_retries: 1 + min_retry_interval_millis: 10000 + retry_on_timeout: true + + environments: + - environment_key: default + spec: + environment_version: "4" diff --git a/knowledge_base/job_notifications_and_health/src/main.py b/knowledge_base/job_notifications_and_health/src/main.py new file mode 100644 index 0000000..cc3d918 --- /dev/null +++ b/knowledge_base/job_notifications_and_health/src/main.py @@ -0,0 +1,19 @@ +import argparse +import time + + +parser = argparse.ArgumentParser() +parser.add_argument("--sleep-seconds", type=int, default=0) +parser.add_argument("--fail", choices=("true", "false"), default="false") +args = parser.parse_args() + +if args.sleep_seconds < 0: + parser.error("--sleep-seconds must be zero or greater") + +print(f"Sleeping for {args.sleep_seconds} seconds") +time.sleep(args.sleep_seconds) + +if args.fail == "true": + raise RuntimeError("Intentional failure requested") + +print("Task completed successfully") From cd9c77f4ad78f1642461b0c84c5b780c6ca815b8 Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Wed, 21 Oct 2026 22:18:42 +0000 Subject: [PATCH 2/7] Address job notifications review Co-authored-by: omnigent --- .../job_notifications_and_health/README.md | 153 +++--------------- .../databricks.yml | 11 -- 2 files changed, 22 insertions(+), 142 deletions(-) diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md index 32b5df8..f32362c 100644 --- a/knowledge_base/job_notifications_and_health/README.md +++ b/knowledge_base/job_notifications_and_health/README.md @@ -1,169 +1,60 @@ # Job notifications and health -## What this example shows +This Declarative Automation Bundles example defines a serverless job with notifications, health rules, timeouts, and retries. -This example defines a serverless job with email notifications, webhook notifications, health rules, timeouts, and retries. +The Python task can sleep or fail. Use its job parameters to test alerts. -The Python task can sleep or fail. Use its job parameters to test notifications. - -The `dev` target overrides all recipient lists with empty lists. The `prod` target adds the configured recipients. +For configuration details, see the [job notifications documentation](https://docs.databricks.com/aws/en/jobs/notifications). ## Prerequisites -- Install Databricks CLI 0.218.0 or later. +- Databricks CLI v1.20.0 or above - Configure a Databricks CLI profile for the target workspace. - Use a workspace that supports serverless jobs environment version `4`. - Create a webhook notification destination in the workspace. -- Use an email address for an active workspace user. - -## Configure - -Set variables with `--var`, environment variables, or a target variable file. +- Use an email address that can receive notifications. -| Variable | Required value | Example placeholder | -| --- | --- | --- | -| `notification_email` | An address that receives job email notifications | `replace-me@example.com` | -| `notification_destination_id` | The UUID of a workspace notification destination | `00000000-0000-0000-0000-000000000000` | +## Usage -Do not put webhook credentials in this bundle. Store credentials in the workspace notification destination. +1. Set the notification variables. -## Deploy and run - -1. Validate the development target. + Replace both placeholder values with real production values. ```bash - databricks bundle validate -t dev + export BUNDLE_VAR_notification_email=USER@example.com + export BUNDLE_VAR_notification_destination_id=DESTINATION_UUID ``` -2. Deploy the development target. +2. Deploy the development target without notifications. ```bash databricks bundle deploy -t dev ``` -3. Run the development job without notifications. - - ```bash - databricks bundle run -t dev notification_health_job - ``` - -4. Validate the production target with production variable values. - - ```bash - databricks bundle validate -t prod --var="notification_email=USER@example.com,notification_destination_id=DESTINATION_UUID" - ``` - -5. Deploy the production target with the same values. - - ```bash - databricks bundle deploy -t prod --var="notification_email=USER@example.com,notification_destination_id=DESTINATION_UUID" - ``` - -6. Run the production job. +3. Deploy and run the production target. ```bash + databricks bundle deploy -t prod databricks bundle run -t prod notification_health_job ``` -## How notifications and health rules work - -| Key | What it does | Dev value | Prod value | -| --- | --- | --- | --- | -| `email_notifications.on_failure` | Sends email after the final failed or timed-out run | Empty | `notification_email` | -| `email_notifications.on_duration_warning_threshold_exceeded` | Sends email when run duration exceeds 60 seconds | Empty | `notification_email` | -| `email_notifications.on_streaming_backlog_exceeded` | Sends email when a streaming backlog rule is exceeded | Empty | `notification_email` | -| `webhook_notifications.on_failure` | Calls the destination after the final failed or timed-out run | Empty | `notification_destination_id` | -| `webhook_notifications.on_duration_warning_threshold_exceeded` | Calls the destination when run duration exceeds 60 seconds | Empty | `notification_destination_id` | -| `webhook_notifications.on_streaming_backlog_exceeded` | Calls the destination when a streaming backlog rule is exceeded | Empty | `notification_destination_id` | -| `notification_settings.no_alert_for_skipped_runs` | Suppresses failure notifications for skipped runs | `true` | `true` | -| `notification_settings.no_alert_for_canceled_runs` | Suppresses failure notifications for canceled runs | `true` | `true` | -| `health.rules[0]` | Warns when `RUN_DURATION_SECONDS` is greater than 60 | 60 seconds | 60 seconds | -| `health.rules[1]` | Warns when `STREAMING_BACKLOG_RECORDS` is greater than 1,000 | 1,000 records | 1,000 records | -| `timeout_seconds` | Stops each task attempt after 120 seconds | 120 seconds | 120 seconds | -| `max_retries` | Retries one failed task attempt | 1 | 1 | -| `min_retry_interval_millis` | Waits at least 10 seconds before retrying | 10,000 ms | 10,000 ms | -| `retry_on_timeout` | Retries an attempt after a timeout | `true` | `true` | - -## Test the alerts - -Use the `prod` target for notification tests. The `dev` target suppresses all recipients. - -### Force a duration warning - -1. Run the task for more than 60 seconds. +4. Test a duration alert by running the task for 90 seconds. ```bash databricks bundle run -t prod notification_health_job --params sleep_seconds=90,fail=false ``` -2. Check for a duration warning email and webhook call. - -The notification identifies the job, run, workspace, and duration threshold event. - -### Force a timeout - -1. Run the task for more than 120 seconds. - - ```bash - databricks bundle run -t prod notification_health_job --params sleep_seconds=180,fail=false - ``` - -2. Wait for the retry and the final run result. - -The task times out twice because `retry_on_timeout` is `true`. The final failure notification follows the last attempt. - -### Force a failure - -1. Request an intentional failure. - - ```bash - databricks bundle run -t prod notification_health_job --params sleep_seconds=0,fail=true - ``` - -2. Wait for the retry and the final run result. - -The task fails twice because `max_retries` is `1`. The email and webhook report the final failed run. - -Webhook payload fields can change by event type and workspace version. A representative payload has this form: - -```json -{ - "event_type": "jobs.on_failure", - "workspace_id": "WORKSPACE_ID", - "run": { - "run_id": "RUN_ID", - "name": "Job notifications and health", - "state": "FAILED", - "url": "RUN_URL" - } -} -``` - -## Edge cases and limits - -- This example uses serverless compute. It does not configure classic job clusters. -- Serverless availability and environment versions can differ across AWS, Azure, GCP, and regions. -- This example uses no storage URI, node type, or cloud identity. -- Retries start only after an attempt fails or times out. -- Each retry receives a new 120-second timeout. -- Failure notifications occur after retries finish. -- Duration warnings can occur before a later timeout or failure. -- The streaming backlog rule is Public Preview and has no effect on this batch task. -- Use the rule with a streaming task to test streaming backlog notifications. -- Skipped and canceled runs do not send failure notifications in either target. -- Deployment is idempotent. You can safely repeat an interrupted deployment. -- Destruction removes only resources that this bundle owns. - -## Clean up - -1. Remove development resources. +5. Remove the deployed resources after testing. ```bash databricks bundle destroy -t dev + databricks bundle destroy -t prod ``` -2. Remove production resources. +## Notes - ```bash - databricks bundle destroy -t prod --var="notification_email=USER@example.com,notification_destination_id=DESTINATION_UUID" - ``` +- The base job has empty recipient lists, so the `dev` target sends no notifications. +- Target lists add to base lists. They do not replace base lists. +- The `prod` target adds `notification_email` and `notification_destination_id` recipients. +- `max_retries: 1` starts one retry after a failed attempt. The final failure notification follows that retry. +- The streaming backlog rule needs a streaming task and is Public Preview. diff --git a/knowledge_base/job_notifications_and_health/databricks.yml b/knowledge_base/job_notifications_and_health/databricks.yml index 86bd480..5b1930a 100644 --- a/knowledge_base/job_notifications_and_health/databricks.yml +++ b/knowledge_base/job_notifications_and_health/databricks.yml @@ -16,17 +16,6 @@ targets: dev: default: true mode: development - resources: - jobs: - notification_health_job: - email_notifications: - on_failure: [] - on_duration_warning_threshold_exceeded: [] - on_streaming_backlog_exceeded: [] - webhook_notifications: - on_failure: [] - on_duration_warning_threshold_exceeded: [] - on_streaming_backlog_exceeded: [] prod: mode: production From 6deb243810f590be82668f196ef34d93c1f3efdd Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Wed, 21 Oct 2026 22:45:50 +0000 Subject: [PATCH 3/7] Use shared bundle examples root Co-authored-by: omnigent --- knowledge_base/job_notifications_and_health/README.md | 4 ++-- knowledge_base/job_notifications_and_health/databricks.yml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md index f32362c..8dd77d7 100644 --- a/knowledge_base/job_notifications_and_health/README.md +++ b/knowledge_base/job_notifications_and_health/README.md @@ -53,8 +53,8 @@ For configuration details, see the [job notifications documentation](https://doc ## Notes -- The base job has empty recipient lists, so the `dev` target sends no notifications. -- Target lists add to base lists. They do not replace base lists. +- The base job has empty recipient lists. Target lists add to base lists and do not replace them. - The `prod` target adds `notification_email` and `notification_destination_id` recipients. - `max_retries: 1` starts one retry after a failed attempt. The final failure notification follows that retry. - The streaming backlog rule needs a streaming task and is Public Preview. +- The bundle deploys under `/Workspace/bundle-examples`. Secure that folder, or change `root_path`. diff --git a/knowledge_base/job_notifications_and_health/databricks.yml b/knowledge_base/job_notifications_and_health/databricks.yml index 5b1930a..5aebaeb 100644 --- a/knowledge_base/job_notifications_and_health/databricks.yml +++ b/knowledge_base/job_notifications_and_health/databricks.yml @@ -16,11 +16,13 @@ targets: dev: default: true mode: development + workspace: + root_path: /Workspace/bundle-examples/${bundle.name}/${bundle.target}/${workspace.current_user.short_name} prod: mode: production workspace: - root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target} + root_path: /Workspace/bundle-examples/${bundle.name}/${bundle.target} resources: jobs: notification_health_job: From 3393f04902380a52142b4a53d80b9aed69e7922d Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Wed, 21 Oct 2026 22:48:00 +0000 Subject: [PATCH 4/7] Clarify job notifications README notes Co-authored-by: omnigent --- knowledge_base/job_notifications_and_health/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md index 8dd77d7..b909228 100644 --- a/knowledge_base/job_notifications_and_health/README.md +++ b/knowledge_base/job_notifications_and_health/README.md @@ -53,8 +53,8 @@ For configuration details, see the [job notifications documentation](https://doc ## Notes -- The base job has empty recipient lists. Target lists add to base lists and do not replace them. +- The base job has empty recipient lists, so the `dev` target sends no notifications. - The `prod` target adds `notification_email` and `notification_destination_id` recipients. - `max_retries: 1` starts one retry after a failed attempt. The final failure notification follows that retry. - The streaming backlog rule needs a streaming task and is Public Preview. -- The bundle deploys under `/Workspace/bundle-examples`. Secure that folder, or change `root_path`. +- Create `/Workspace/bundle-examples` and limit who can manage it. Or, change `root_path` in `databricks.yml`. From 7b97b00e37d05118fb3e247413a9302f01966875 Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Wed, 21 Oct 2026 22:50:13 +0000 Subject: [PATCH 5/7] Remove root path note from job notifications README Co-authored-by: omnigent --- knowledge_base/job_notifications_and_health/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md index b909228..6b57def 100644 --- a/knowledge_base/job_notifications_and_health/README.md +++ b/knowledge_base/job_notifications_and_health/README.md @@ -57,4 +57,3 @@ For configuration details, see the [job notifications documentation](https://doc - The `prod` target adds `notification_email` and `notification_destination_id` recipients. - `max_retries: 1` starts one retry after a failed attempt. The final failure notification follows that retry. - The streaming backlog rule needs a streaming task and is Public Preview. -- Create `/Workspace/bundle-examples` and limit who can manage it. Or, change `root_path` in `databricks.yml`. From e399212f4a57ce469c8b423a2e8ddce9315aa898 Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Wed, 21 Oct 2026 22:54:16 +0000 Subject: [PATCH 6/7] Align README with sibling examples Co-authored-by: omnigent --- knowledge_base/job_notifications_and_health/README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md index 6b57def..e593f8e 100644 --- a/knowledge_base/job_notifications_and_health/README.md +++ b/knowledge_base/job_notifications_and_health/README.md @@ -50,10 +50,3 @@ For configuration details, see the [job notifications documentation](https://doc databricks bundle destroy -t dev databricks bundle destroy -t prod ``` - -## Notes - -- The base job has empty recipient lists, so the `dev` target sends no notifications. -- The `prod` target adds `notification_email` and `notification_destination_id` recipients. -- `max_retries: 1` starts one retry after a failed attempt. The final failure notification follows that retry. -- The streaming backlog rule needs a streaming task and is Public Preview. From 7cceb231eff08d2b9f211807a4faabe577aa6528 Mon Sep 17 00:00:00 2001 From: Andres Garcia Date: Thu, 22 Oct 2026 02:35:20 +0000 Subject: [PATCH 7/7] Update job notifications serverless environment Co-authored-by: omnigent --- knowledge_base/job_notifications_and_health/README.md | 2 +- .../resources/notification_health_job.job.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/knowledge_base/job_notifications_and_health/README.md b/knowledge_base/job_notifications_and_health/README.md index e593f8e..fb71be8 100644 --- a/knowledge_base/job_notifications_and_health/README.md +++ b/knowledge_base/job_notifications_and_health/README.md @@ -10,7 +10,7 @@ For configuration details, see the [job notifications documentation](https://doc - Databricks CLI v1.20.0 or above - Configure a Databricks CLI profile for the target workspace. -- Use a workspace that supports serverless jobs environment version `4`. +- Use a workspace that supports serverless jobs environment version `6`. - Create a webhook notification destination in the workspace. - Use an email address that can receive notifications. diff --git a/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml b/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml index 0d403ea..3b13e49 100644 --- a/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml +++ b/knowledge_base/job_notifications_and_health/resources/notification_health_job.job.yml @@ -52,4 +52,4 @@ resources: environments: - environment_key: default spec: - environment_version: "4" + environment_version: "6"