From 72adec8d2e4eaea6342451a9663c89a7b8750511 Mon Sep 17 00:00:00 2001 From: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:31:15 -0400 Subject: [PATCH 1/5] PrivateLink availability banner --- website/docs/docs/cloud/secure/about-privatelink.md | 4 ++++ website/docs/docs/cloud/secure/databricks-privatelink.md | 4 ++++ website/docs/docs/cloud/secure/postgres-privatelink.md | 3 +++ website/docs/docs/cloud/secure/redshift-privatelink.md | 4 ++++ website/docs/docs/cloud/secure/snowflake-privatelink.md | 4 ++++ website/snippets/_available-tiers-privatelink.md | 9 +++++++++ 6 files changed, 28 insertions(+) create mode 100644 website/snippets/_available-tiers-privatelink.md diff --git a/website/docs/docs/cloud/secure/about-privatelink.md b/website/docs/docs/cloud/secure/about-privatelink.md index 29003f65a21..b31e4c08a26 100644 --- a/website/docs/docs/cloud/secure/about-privatelink.md +++ b/website/docs/docs/cloud/secure/about-privatelink.md @@ -5,6 +5,10 @@ description: "Configuring PrivateLink for AWS" sidebar_label: "About PrivateLink" --- +import SetUpPages from '/snippets/_available-tiers-privatelink.md'; + + + PrivateLink enables a private connection from any dbt Cloud Multi-Tenant environment to your data platform hosted on AWS using [AWS PrivateLink](https://aws.amazon.com/privatelink/) technology. PrivateLink allows dbt Cloud customers to meet security and compliance controls as it allows connectivity between dbt Cloud and your data platform without traversing the public internet. This feature is supported in most regions across NA, Europe, and Asia, but [contact us](https://www.getdbt.com/contact/) if you have questions about availability. ### Cross-region PrivateLink diff --git a/website/docs/docs/cloud/secure/databricks-privatelink.md b/website/docs/docs/cloud/secure/databricks-privatelink.md index a2c9e208459..2311bdf2e6e 100644 --- a/website/docs/docs/cloud/secure/databricks-privatelink.md +++ b/website/docs/docs/cloud/secure/databricks-privatelink.md @@ -6,6 +6,10 @@ sidebar_label: "PrivateLink for Databricks" pagination_next: null --- +import SetUpPages from '/snippets/_available-tiers-privatelink.md'; + + + The following steps will walk you through the setup of a Databricks AWS PrivateLink endpoint in the dbt Cloud multi-tenant environment. ## Configure PrivateLink diff --git a/website/docs/docs/cloud/secure/postgres-privatelink.md b/website/docs/docs/cloud/secure/postgres-privatelink.md index 482aeb4040d..ef07d15c128 100644 --- a/website/docs/docs/cloud/secure/postgres-privatelink.md +++ b/website/docs/docs/cloud/secure/postgres-privatelink.md @@ -4,6 +4,9 @@ id: postgres-privatelink description: "Configuring PrivateLink for Postgres" sidebar_label: "PrivateLink for Postgres" --- +import SetUpPages from '/snippets/_available-tiers-privatelink.md'; + + A Postgres database, hosted either in AWS or in a properly connected on-prem data center, can be accessed through a private network connection using AWS Interface-type PrivateLink. The type of Target Group connected to the Network Load Balancer (NLB) may vary based on the location and type of Postgres instance being connected, as explained in the following steps. diff --git a/website/docs/docs/cloud/secure/redshift-privatelink.md b/website/docs/docs/cloud/secure/redshift-privatelink.md index 3ed49e7bb34..c42c703556b 100644 --- a/website/docs/docs/cloud/secure/redshift-privatelink.md +++ b/website/docs/docs/cloud/secure/redshift-privatelink.md @@ -5,6 +5,10 @@ description: "Configuring PrivateLink for Redshift" sidebar_label: "PrivateLink for Redshift" --- +import SetUpPages from '/snippets/_available-tiers-privatelink.md'; + + + AWS provides two different ways to create a PrivateLink VPC endpoint for a Redshift cluster that is running in another VPC: - [Redshift-managed PrivateLink Endpoints](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-cluster-cross-vpc.html) - [Redshift Interface-type PrivateLink Endpoints](https://docs.aws.amazon.com/redshift/latest/mgmt/security-private-link.html) diff --git a/website/docs/docs/cloud/secure/snowflake-privatelink.md b/website/docs/docs/cloud/secure/snowflake-privatelink.md index bbbdf04ddf0..dd046259e4e 100644 --- a/website/docs/docs/cloud/secure/snowflake-privatelink.md +++ b/website/docs/docs/cloud/secure/snowflake-privatelink.md @@ -5,6 +5,10 @@ description: "Configuring PrivateLink for Snowflake" sidebar_label: "PrivateLink for Snowflake" --- +import SetUpPages from '/snippets/_available-tiers-privatelink.md'; + + + The following steps will walk you through the setup of a Snowflake AWS PrivateLink endpoint in the dbt Cloud multi-tenant environment. :::note Snowflake SSO with PrivateLink diff --git a/website/snippets/_available-tiers-privatelink.md b/website/snippets/_available-tiers-privatelink.md new file mode 100644 index 00000000000..4a3a147d8c6 --- /dev/null +++ b/website/snippets/_available-tiers-privatelink.md @@ -0,0 +1,9 @@ +:::info Limited to certain Enterprise tiers + +The PrivateLink feature is available on the following dbt Cloud Enterprise tiers: + * Business Critical + * Virtual Private + +To learn more about these tiers, contact us at . + +::: \ No newline at end of file From abaedc2cef6c67894cb3f97c38640b44314ffc2e Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Fri, 3 Nov 2023 19:20:42 +0000 Subject: [PATCH 2/5] add cycle detection info adding cycle detection link per slack feedback --- .../guides/best-practices/how-we-mesh/mesh-2-structures.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md index 937515954af..24dc94a6e3d 100644 --- a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md +++ b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md @@ -18,6 +18,10 @@ At a high level, you’ll need to decide: - Where to draw the lines between your dbt Projects -- i.e. how do you determine where to split your DAG and which models go in which project? - How to manage your code -- do you want multiple dbt Projects living in the same repository (mono-repo) or do you want to have multiple repos with one repo per project? +### Cycle detection + +Currently, project dependencies only work in a one-way direction. This helps you avoid indefinite project `ref` cycles (or loops) and issues with your data workflows. For example, the `jaffle_finance"` project can't introduce a new model that depends on `jaffle_marketing.roi_by_channel`. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#:~:text=...-,Cycle%20detection%3A,-Currently%2C%20%22project%22%20dependencies) for more information. + ## Define your project interfaces by splitting your DAG The first (and perhaps most difficult!) decision when migrating to a multi-project architecture is deciding where to draw the line in your DAG to define the interfaces between your projects. Let's explore some language for discussing the design of these patterns. From 2007ba3dcd4bc7155fe5879da324b9fd559388a4 Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Fri, 3 Nov 2023 19:21:57 +0000 Subject: [PATCH 3/5] Update website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md --- .../docs/guides/best-practices/how-we-mesh/mesh-2-structures.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md index 24dc94a6e3d..17f0970a769 100644 --- a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md +++ b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md @@ -20,7 +20,7 @@ At a high level, you’ll need to decide: ### Cycle detection -Currently, project dependencies only work in a one-way direction. This helps you avoid indefinite project `ref` cycles (or loops) and issues with your data workflows. For example, the `jaffle_finance"` project can't introduce a new model that depends on `jaffle_marketing.roi_by_channel`. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#:~:text=...-,Cycle%20detection%3A,-Currently%2C%20%22project%22%20dependencies) for more information. +Currently, project dependencies only work in a one-way direction. This helps you avoid indefinite project `ref` cycles (or loops) and issues with your data workflows. For example, the `jaffle_finance"` project can't introduce a new model that depends on `jaffle_marketing.roi_by_channel`. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#how-to-use-ref) for more information. ## Define your project interfaces by splitting your DAG From 2fa141eb293134be9c92d6862355b4bc590b312e Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Fri, 3 Nov 2023 19:28:48 +0000 Subject: [PATCH 4/5] Update website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md Co-authored-by: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> --- .../docs/guides/best-practices/how-we-mesh/mesh-2-structures.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md index 17f0970a769..99a26d3c954 100644 --- a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md +++ b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md @@ -20,7 +20,7 @@ At a high level, you’ll need to decide: ### Cycle detection -Currently, project dependencies only work in a one-way direction. This helps you avoid indefinite project `ref` cycles (or loops) and issues with your data workflows. For example, the `jaffle_finance"` project can't introduce a new model that depends on `jaffle_marketing.roi_by_channel`. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#how-to-use-ref) for more information. +Currently, project dependencies only work in a one-way direction. This helps you avoid indefinite project `ref` cycles (or loops) and issues with your data workflows. For example, the `jaffle_finance` project can't introduce a new model that depends on `jaffle_marketing.roi_by_channel`. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#how-to-use-ref) for more information. ## Define your project interfaces by splitting your DAG From 0e74ad08cc4d6b3d06e59f1b3009ab1b0081fee7 Mon Sep 17 00:00:00 2001 From: mirnawong1 <89008547+mirnawong1@users.noreply.github.com> Date: Fri, 3 Nov 2023 20:05:35 +0000 Subject: [PATCH 5/5] Update website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md --- .../docs/guides/best-practices/how-we-mesh/mesh-2-structures.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md index 99a26d3c954..9ab633c50ad 100644 --- a/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md +++ b/website/docs/guides/best-practices/how-we-mesh/mesh-2-structures.md @@ -20,7 +20,7 @@ At a high level, you’ll need to decide: ### Cycle detection -Currently, project dependencies only work in a one-way direction. This helps you avoid indefinite project `ref` cycles (or loops) and issues with your data workflows. For example, the `jaffle_finance` project can't introduce a new model that depends on `jaffle_marketing.roi_by_channel`. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#how-to-use-ref) for more information. +Like resource dependencies, project dependencies are acyclic, meaning they only move in one direction. This prevents `ref` cycles (or loops), which lead to issues with your data workflows. For example, if project B depends on project A, a new model in project A could not import and use a public model from project B. Refer to [Project dependencies](/docs/collaborate/govern/project-dependencies#how-to-use-ref) for more information. ## Define your project interfaces by splitting your DAG