Skip to content

Commit

Permalink
Merge branch 'current' into mwong-remove-callout
Browse files Browse the repository at this point in the history
  • Loading branch information
mirnawong1 authored Nov 7, 2023
2 parents cfac223 + a26e37b commit 7b95f4e
Show file tree
Hide file tree
Showing 20 changed files with 145 additions and 74 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@ my-profile:
role: dev
runtime_config:
properties:
spark.executor.instances: 3
spark.executor.instances: "3"
spark.driver.memory: 1g
```

Expand Down
82 changes: 66 additions & 16 deletions website/docs/docs/deploy/job-notifications.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,83 @@
---
title: "Job notifications"
id: "job-notifications"
description: "Set up notifications in dbt Cloud to receive Email or Slack alerts for job run status."
description: "Set up notifications in dbt Cloud to receive email or Slack alerts about job run status."
---

Set up notifications in dbt Cloud to receive email or Slack alerts when a job run succeeds, fails, or is cancelled.

Setting up notifications in dbt Cloud will allow you to receive alerts via Email or a chosen Slack channel when a job run succeeds, fails, or is cancelled.
## Email notifications

### Email
You can receive email alerts about jobs by configuring the dbt Cloud email notification settings.

These are the following options for setting up email notifications. Refer to [Users and licenses](/docs/cloud/manage-access/seats-and-users) for info on license types eligible for email notifications.
### Prerequisites
- You must be either a _developer user_ or an _account admin_ to configure email notifications in dbt Cloud. For more details, refer to [Users and licenses](/docs/cloud/manage-access/seats-and-users).
- As a developer user, you can set up email notifications for yourself.
- As an account admin, you can set up notifications for yourself and other team members.

- As a **user** — You can set up email notifications for yourself under your Profile.
- As an **admin** — You can set up notifications on behalf of your team members.
### Configure email notifications

To set up job notifications, follow these steps:
1. From the gear menu, choose **Notification settings**.
1. By default, dbt Cloud sends notifications to the email address that's in your **User profile** page.

1. Click the gear menu in the top right corner and select **Notification Settings**.
If you're an account admin, you can choose a different email address to receive notifications. Select the **Notification email** dropdown and choose another address from the list. The list includes **Internal Users** with access to the account and **External Emails** that have been added.
- To add an external email address, select the **Notification email** dropdown and choose **Add external email**. After you add the external email, it becomes available for selection in the **Notification email** dropdown list. External emails can be addresses that are outside of your dbt Cloud account and also for third-party integrations like [channels in Microsoft Teams](https://support.microsoft.com/en-us/office/tip-send-email-to-a-channel-2c17dbae-acdf-4209-a761-b463bdaaa4ca) and [PagerDuty email integration](https://support.pagerduty.com/docs/email-integration-guide).

2. Select **Edit** to begin editing the **Email Notifications** settings.
- **As a user:** Choose the Notification type (Succeeds, Fails, or Is Cancelled) for each Job you want to receive notifications for.
<Lightbox src="/img/docs/deploy/example-notification-external-email.png" width="50%" title="Example of the Notification email dropdown"/>

- **As an admin:** Under **Configure notifications for**, use the dropdown to select one or more users you'd like to set notifications for. If you only see your own name, then you might not have admin privileges. <br /><br />
Choose the Notification type (Succeeds, Fails, or Is Cancelled) for each Job you want them to receive notifications for.
1. Select the **Environment** for the jobs you want to receive notifications about from the dropdown.

3. Click **Save**.
1. Click **Edit** to configure the email notification settings. Choose one or more of the run statuses (**Succeeds**, **Fails**, **Is Canceled**) for each job you want to receive notifications about.

<Lightbox src="/img/docs/dbt-cloud/using-dbt-cloud/email-notifications.png" width="75%" title="Configuring Email Notifications"/>
1. When you're done with the settings, click **Save**.

### Slack
As an account admin, you can add more email recipients by choosing another **Notification email** from the dropdown, **Edit** the job notification settings, and **Save** the changes.

To set up alerts on jobs from a different environment, select another **Environment** from the dropdown, **Edit** those job notification settings, and **Save** the changes.

<Snippet path="slack-notifications-config-steps" />
<Lightbox src="/img/docs/deploy/example-email-notification-settings-page.png" width="100%" title="Example of the Email notifications page"/>

### Unsubscribe from email notifications
1. From the gear menu, choose **Notification settings**.
1. On the **Email notifications** page, click **Unsubscribe from all email notifications**.

## Slack notifications

You can receive Slack alerts about jobs by setting up the Slack integration, then configuring the dbt Cloud Slack notification settings.

:::note
Any account admin can edit the Slack notifications but they'll be limited to configuring the channels that their Slack user has access to. If there has been a change in user roles or Slack permissions where you no longer have access to edit a configured Slack channel, please [contact support](mailto:[email protected]) for assistance.
:::

### Prerequisites
- You must be an administrator of the Slack workspace.
- You must be an account admin to configure Slack notifications in dbt Cloud. For more details, refer to [Users and licenses](/docs/cloud/manage-access/seats-and-users).

### Set up the Slack integration

1. From the gear menu, select **Profile settings**. On your **User profile** page, scroll to the **Linked accounts** section.
1. In the **Linked accounts** section, find the Slack application and click **Link**.
<Lightbox src="/img/docs/dbt-cloud/Link-your-Slack-Profile.png" width="75%" title="Link for the Slack app"/>
1. Allow dbt Labs to access the Slack workspace. If you are a member of multiple workspaces, you can select the appropriate workspace from the dropdown menu in the upper right corner.
<Lightbox src="/img/docs/dbt-cloud/Allow-dbt-to-access-slack.png" width="75%" title="Allow dbt access to Slack"/>

### Configure Slack notifications

1. From the gear menu, choose **Notification settings**.
1. Select **Slack notifications** in the left sidebar.
1. Select the **Notification channel** you want to receive the job run notifications from the dropdown.
<Lightbox src="/img/docs/deploy/example-notification-slack-channels.png" width="75%" title="Example of the Notification channel dropdown"/>
1. Select the **Environment** for the jobs you want to receive notifications about from the dropdown.
1. Click **Edit** to configure the Slack notification settings. Choose one or more of the run statuses (**Succeeds**, **Fails**, **Is Canceled**) for each job you want to receive notifications about.
1. When you're done with the settings, click **Save**.

To send alerts to another Slack channel, select another **Notification channel** from the dropdown, **Edit** those job notification settings, and **Save** the changes.

To set up alerts on jobs from a different environment, select another **Environment** from the dropdown, **Edit** those job notification settings, and **Save** the changes.

<Lightbox src="/img/docs/deploy/example-slack-notification-settings-page.png" width="100%" title="Example of the Slack notifications page"/>

### Disable the Slack integration

1. From the gear menu, select **Profile settings**. On your **User profile** page, scroll to the **Linked accounts** section.
1. Find the Slack application in the **Linked accounts** section, click the trash can icon, and click **Unlink**. Channels that you configured will no longer receive Slack notifications. Channels that are configured by other account admins will continue to receive Slack notifications if they still have active Slack integrations. To migrate ownership of a Slack channel notification configuration, have another account admin edit the configuration.
5 changes: 3 additions & 2 deletions website/docs/docs/deploy/jobs.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In dbt Cloud, there are two types of jobs:
- [Deploy jobs](/docs/deploy/deploy-jobs) &mdash; To create and set up triggers for building production data assets
- [Continuous integration (CI) jobs](/docs/deploy/continuous-integration) &mdash; To create and set up triggers for checking code changes

Below is a comparison table that describes how deploy jobs and CI jobs behave differently:
Below is a comparison table that describes how deploy jobs and CI jobs behave:

| | Deploy Jobs | CI Jobs |
| --- | --- | --- |
Expand All @@ -19,4 +19,5 @@ Below is a comparison table that describes how deploy jobs and CI jobs behave di
| Destination | Builds into a production database and schema. | Builds into a staging database and ephemeral schema, lived for the lifetime of the PR. |
| Execution mode | Runs execute sequentially, so as to not have collisions on the underlying DAG. | Runs execute in parallel to promote team velocity. |
| Efficiency run savings | Detects over-scheduled jobs and cancels unnecessary runs to avoid queue clog. | Cancels existing runs when a newer commit is pushed to avoid redundant work. |
| State comparison | Only sometimes needs to detect state. | Almost always needs to compare state against the production environment to build on modified code and its dependents. |
| State comparison | Only sometimes needs to detect state. | Almost always needs to compare state against the production environment to build on modified code and its dependents. |
| Job run duration | Limit is 24 hours. | Limit is 24 hours. |
8 changes: 0 additions & 8 deletions website/docs/faqs/Accounts/slack.md

This file was deleted.

11 changes: 0 additions & 11 deletions website/docs/faqs/Project/docs-for-multiple-projects.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ slug: zapier-ms-teams
description: Use Zapier and the dbt Cloud API to post to Microsoft Teams
---

This guide will show you how to set up an integration between dbt Cloud jobs and Microsoft Teams using [dbt Cloud Webhooks](/docs/deploy/webhooks) and Zapier, similar to the [native Slack integration](/faqs/accounts/slack).
This guide will show you how to set up an integration between dbt Cloud jobs and Microsoft Teams using [dbt Cloud Webhooks](/docs/deploy/webhooks) and Zapier, similar to the [native Slack integration](/docs/deploy/job-notifications#slack-notifications).

When a dbt Cloud job finishes running, the integration will:

Expand Down
2 changes: 1 addition & 1 deletion website/docs/guides/orchestration/webhooks/zapier-slack.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ slug: zapier-slack
description: Use Zapier and the dbt Cloud API to post error context to Slack
---

This guide will show you how to set up an integration between dbt Cloud jobs and Slack using [dbt Cloud webhooks](/docs/deploy/webhooks) and Zapier. It builds on the native [native Slack integration](/faqs/accounts/slack) by attaching error message details of models and tests in a thread.
This guide will show you how to set up an integration between dbt Cloud jobs and Slack using [dbt Cloud webhooks](/docs/deploy/webhooks) and Zapier. It builds on the native [native Slack integration](/docs/deploy/job-notifications#slack-notifications) by attaching error message details of models and tests in a thread.

Note: Because there is not a webhook for Run Cancelled, you may want to keep the standard Slack integration installed to receive those notifications. You could also use the [alternative integration](#alternate-approach) that augments the native integration without replacing it.

Expand Down
47 changes: 43 additions & 4 deletions website/docs/reference/resource-configs/resource-path.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
The `<resource-path>` nomenclature is used in this documentation when documenting how to configure a model, seed, or snapshot, from your `dbt_project.yml` file. It represents the nested dictionary keys that provide the path to either a directory of models, or a single model.
---
title: Resource path
description: "Learn how to use resource paths to configure resource types in dbt."
id: resource-path
sidebar_label: "About resource paths"
---

The `<resource-path>` nomenclature is used in this documentation when documenting how to configure resource types like models, seeds, snapshots, tests, sources, and others, from your `dbt_project.yml` file.

It represents the nested dictionary keys that provide the path to a directory of that resource type, or a single instance of that resource type by name.

```yml
resource_type:
project_name:
directory_name:
subdirectory_name:
instance_of_resource_type (by name):
...
```
## Example
:::info
This example is for models, but the same concepts apply for seeds and snapshots.
The following examples are mostly for models and a source, but the same concepts apply for seeds, snapshots, tests, sources, and other resource types.
:::
### Apply config to all models
To apply a configuration to all models, do not use a `<resource-path>`:

Expand All @@ -18,6 +35,8 @@ models:

</File>

### Apply config to all models in your project

To apply a configuration to all models in _your_ project only, use your [project name](/reference/project-configs/name) as the `<resource-path>`:

<File name='dbt_project.yml'>
Expand All @@ -32,6 +51,8 @@ models:

</File>

### Apply config to all models in a subdirectory

To apply a configuration to all models in a subdirectory of your project, e.g. `staging`, nest the directory under the project name:

<File name='dbt_project.yml'>
Expand All @@ -57,6 +78,8 @@ In the following project, this would apply to models in the `staging/` directory
```

### Apply config to all models in one model

To apply a configuration to one model, nest the full path under the project name. For a model at `/staging/stripe/payments.sql`, this would look like:

<File name='dbt_project.yml'>
Expand Down Expand Up @@ -92,3 +115,19 @@ In the following project, this would only apply to the `payments` model:
   └── payments.sql

```
### Apply config source nested in a subfolder
To disable a source nested in a YAML file in a subfolder, you will need to supply the path to that YAML file, as well as the source name in the `dbt_project.yml` file.<br /><br />
The following example shows how to disable a source nested in a YAML file in a subfolder:
<File name='dbt_project.yml'>
```yaml
sources:
your_project_name:
subdirectory_name:
source_yaml_file_name:
source_name:
+enabled: false # This will apply to sources nested in subfolders.
```
</File>
2 changes: 1 addition & 1 deletion website/docs/reference/resource-properties/constraints.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ models:
contract:
enforced: true
columns:
- name: customer_id
- name: id
data_type: int
constraints:
- type: not_null
Expand Down
19 changes: 18 additions & 1 deletion website/docs/reference/source-configs.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,24 @@ sources:

## Configuring sources

Sources can be configured via a `config:` block within their `.yml` definitions, or from the `dbt_project.yml` file under the `sources:` key. This configuration is most useful for configuring sources imported from [a package](/docs/build/packages). You can disable sources imported from a package to prevent them from rendering in the documentation, or to prevent [source freshness checks](/docs/build/sources#snapshotting-source-data-freshness) from running on source tables imported from packages.
Sources can be configured via a `config:` block within their `.yml` definitions, or from the `dbt_project.yml` file under the `sources:` key. This configuration is most useful for configuring sources imported from [a package](/docs/build/packages).

You can disable sources imported from a package to prevent them from rendering in the documentation, or to prevent [source freshness checks](/docs/build/sources#snapshotting-source-data-freshness) from running on source tables imported from packages.

- **Note**: To disable a source nested in a YAML file in a subfolder, you will need to supply the path to that YAML file plus the source name in the dbt_project.yml file. For example:

<File name='dbt_project.yml'>

```yml
sources:
your_project_name:
subdirectory_name:
source_yaml_file_name:
source_name:
+enabled: false # This will apply to sources nested in subfolders.
```
</File>
### Examples
Expand Down
1 change: 1 addition & 0 deletions website/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -716,6 +716,7 @@ const sidebarSettings = {
label: "Resource configs and properties",
items: [
"reference/configs-and-properties",
"reference/resource-configs/resource-path",
{
type: "category",
label: "General properties",
Expand Down
28 changes: 0 additions & 28 deletions website/snippets/slack-notifications-config-steps.md

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions website/vercel.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@
"cleanUrls": true,
"trailingSlash": false,
"redirects": [
{
"source": "/faqs/Project/docs-for-multiple-projects",
"destination": "/docs/collaborate/explore-projects#about-project-level-lineage",
"permanent": true
},
{
"source": "/faqs/Accounts/slack",
"destination": "/docs/deploy/job-notifications",
"permanent": true
},
{
"source": "/guides/migration/versions",
"destination": "/docs/dbt-versions/core-upgrade",
Expand Down

0 comments on commit 7b95f4e

Please sign in to comment.