From 31e5f8b2a78b2f8e348e9ec7a15c356df4bf6357 Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 00:12:36 -0700 Subject: [PATCH 01/10] docs(data-product): document marketplace, discovery, and hierarchy Covers creating a Data Product from the marketplace, the Data Product home page and sidebar with search and filters, the product profile and lineage views, and defining a Data Product hierarchy. Also documents the privileges each operation requires. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 132 +++++++++++++++++++++++++++++-------------- 1 file changed, 90 insertions(+), 42 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index b32fd121be19..b9fa512955da 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -1,6 +1,6 @@ --- -description: "Group related Tables, Dashboards, Charts, and Pipelines into Data Products in DataHub to support data mesh ownership and discovery." ---- + +## description: "Group related Tables, Dashboards, Charts, and Pipelines into Data Products in DataHub to support data mesh ownership and discovery." import FeatureAvailability from '@site/src/components/FeatureAvailability'; import Tabs from '@theme/Tabs'; @@ -8,15 +8,14 @@ import TabItem from '@theme/TabItem'; # Data Products - - **🤝 Version compatibility** > DataHub Core: **0.10.3** | DataHub Cloud: **0.2.8** +> Data Product Marketplace and Hierarchy requires DataHub Cloud **2.2.0** ## What are Data Products? -Data Products are an innovative way to organize and manage your Data Assets, such as Tables, Topics, Views, Pipelines, Charts, Dashboards, etc., within DataHub. These Data Products belong to a specific Domain and can be easily accessed by various teams or stakeholders within your organization. +Data Products are an innovative way to organize and manage your Data Assets, such as Tables, Topics, Views, Pipelines, Charts, Dashboards, etc., within DataHub. These Data Products belong to a specific Domain and can be easily discovered from Govern > Data Products or from Domain by various teams or stakeholders within your organization. ## Why Data Products? @@ -34,11 +33,14 @@ Data Products can be easily published to the DataHub catalog, allowing other tea Data Product operations use **two different privileges** depending on whether you are acting from the **asset** or from the **Data Product** itself. -| What you're doing | Where in the UI / API | Required privilege | Policy resource | -| --------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------ | ------------------------------------------- | -| Create, update, or delete a Data Product | Domain → Data Products tab; `createDataProduct`, `updateDataProduct`, `deleteDataProduct` | **Manage Data Products** | Each **Domain** associated with the product | -| Add or remove assets from a Data Product page | Data Product → Add Assets; `batchSetDataProduct` | **Manage Data Products** | **At least one** Domain on the product | -| Link or unlink a Data Product from an asset profile | Asset sidebar → Set Data Product; `batchAddToDataProducts` / `batchRemoveFromDataProducts` | **Edit Data Product** | The **asset** being updated | +| What you're doing | Where in the UI / API | Required privilege | Policy resource | +| --------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------- | ------------------------------------------------ | +| Create, update, or delete a Data Product | Domain → Data Products tab; `createDataProduct`, `updateDataProduct`, `deleteDataProduct` | **Manage Data Products** | Each **Domain** associated with the product | +| Add or remove assets from a Data Product page | Data Product → Add Assets; `batchSetDataProduct` | **Manage Data Products** | **At least one** Domain on the product | +| Link or unlink a Data Product from an asset profile | Asset sidebar → Set Data Product; `batchAddToDataProducts` / `batchRemoveFromDataProducts` | **Edit Data Product** | The **asset** being updated | +| Browse Marketplace, open product profiles | Govern → Data Product; `dataproduct` | **View Entity** (default) | Data Products the actor can see | +| Create from Marketplace | Data Product → Create; `createDataProduct` | **Manage Data Product** | The Domain selected on create | +| Move / nest / detach a product | Profile menu → Move; `moveDataProduct` | **Manage Data Product** | The data product's own Domain (not the parent's) | Grant these via [Metadata Policies](./authorization/policies.md). @@ -49,7 +51,6 @@ Grant these via [Metadata Policies](./authorization/policies.md). In normal operation each Data Product belongs to a single Domain. The UI and `createDataProduct` enforce this. Authorization still evaluates the full set of unique Domains on the product's `domains` aspect (preferring `domainAssociations`, falling back to the legacy `domains` array) so misconfigured metadata cannot bypass checks. Renaming a Data Product via `updateName` additionally allows **Edit Entity** on the Data Product URN itself as an alternative to domain-level manage access. - ::: **Edit Data Product** on an asset controls whether someone can change which Data Product(s) that asset belongs to (including add and remove via `batchAddToDataProducts`, `batchRemoveFromDataProducts`, and unsetting via `batchSetDataProduct`). It does **not** authorize rewriting a Data Product's membership list from the product page — that requires **Manage Data Products** on at least one of the product's Domains. @@ -68,19 +69,29 @@ Data Products can be created using the UI or via a YAML file that is managed usi ### Creating a Data Product (UI) -To create a Data Product, first navigate to the Domain that will contain this Data Product. +#### Option 1 Create a Data Product from Govern > Data Product > Create Data Product. + +![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-marketplace-create.png) + +1. Open **Govern → Data Product** +2. Click **Create Data Product** +3. Choose the **Domain** the product belongs to (required) +4. Provide a **Name** for the data product (required) +5. Optionally provide a **Description** (recommended) +6. Optionally choose a **Parent Data Product** +7. Click Create + +The new product appears as a root (or under the parent you chose) in the Data Product sidebar. You may need to refresh for the new Data Product to appear. + +#### Option 2 Navigate to the Domain that will contain this Data Product -

- -

+![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-tab.png) Then navigate to the Data Products tab on the Domain's home page, and click '+ New Data Product'. This will open a new modal where you can configure the settings for your data product. Inside the form, you can choose a name for your Data Product. Most often, this will align with the logical purpose of the Data Product, for example 'Customer Orders' or 'Revenue Attribution'. You can also add documentation for your product to help other users easily discover it. Don't worry, this can be changed later. -

- -

+![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-create.png) Once you've chosen a name and a description, click 'Create' to create the new Data Product. Once you've created the Data Product, you can click on it to continue on to the next step, adding assets to it. @@ -89,15 +100,11 @@ Once you've chosen a name and a description, click 'Create' to create the new Da You can assign an asset to a Data Product either using the Data Product page as the starting point or the Asset's page as the starting point. On a Data Product page, click the 'Add Assets' button on the top right corner to add assets to the Data Product. -

- -

+![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-add-assets.png) On an Asset's profile page, use the right sidebar to locate the Data Product section. Click 'Set Data Product', and then search for the Data Product you'd like to add this asset to. When you're done, click 'Add'. -

- -

+![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-set.png) To remove an asset from a Data Product, click the 'x' icon on the Data Product label on either the asset profile or the Data Product page (each path uses the privilege listed in the table above). @@ -119,18 +126,66 @@ MULTIPLE_DATA_PRODUCTS_PER_ASSET=false See the [Environment Variables](deploy/environment-vars.md#feature-flags) documentation for more details on configuring feature flags. -### Nesting Data Products +### Discover Data Products + +Easily discover Data Products without going through global Search or a Domain page, or use the `/dataproduct` API. + +#### Data Product Home Page + +![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-marketplace-discovery.png) + +The Data Product Home page shows: + +- Summary cards: total Data Products, Applications (or Domains if Applications are off), Last Created +- Recent Data Products, with owners, domain, tags, and deprecation when present +- **Create Data Product** to add a new Data Product without leaving the Data Product landing page + +#### Data Product sidebar + +The left sidebar lists Data Products. Expand a row to load **direct children** (not the full subtree at once). Scroll to load more. Opening a product keeps this sidebar visible; ancestors of the selected product expand automatically. + +##### Search and Filters -Data Products can nest under other Data Products via an optional `parentDataProduct` pointer, forming a multi-level taxonomy. This is useful when you buy or ingest a vendor product and re-package it into one or more internal products (for example, a vendor equities feed → an internal research product → a portfolio analytics product). +Use the sidebar search box to find products by name. Apply filters for Domain, owner, tags, glossary terms, and Application (when Applications are enabled). Search/filter mode shows a flat result list instead of the tree; clear filters to return to the hierarchy. + +##### Opening a Data Product + +Click a product in the sidebar or on the home page to open /dataProduct/:urn. The Data Product sidebar stays on the left. From here you can manage the data product, add assets, edit documentation, view Output Ports, Assets, Lineage, Properties, sub-products and assets. + +##### Data Product Profile + +![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-marketplace-profile.png) + +The Data Product profile includes: + +- **Summary → Sub-products** — direct children in the hierarchy +- **Summary → Output Ports** — assets marked as the product's published outputs +- **Output Ports tab** — full list of output-port assets +- **Move** (profile menu) — set or clear the parent without editing name/description/assets + +Breadcrumbs show Domain → immediate parent. + +##### Data Product Lineage + +![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-lineage.png) + +Data Product lineage enables users to visually discover assets in a data product and understand the associations between assets in data products. + +### Define Data Product Hierarchy + +Data Products can nest under other Data Products via an optional `parentDataProduct` pointer or from the DataHub UI, forming a multi-level taxonomy. This is useful when you buy or ingest a vendor product and re-package it into one or more internal products (for example, a vendor equities feed → an internal research product → a portfolio analytics product). Key behaviors: -- A Data Product may have at most one parent (a tree, not a DAG). Nesting depth is arbitrary. +- A Data Product may have at most one parent (a tree, not a DAG). +- Nesting depth is arbitrary. - A child may belong to a different Domain than its parent; Domain membership is independent of the parent-child relationship. -- Permissions remain scoped to each Data Product's own Domain — Manage Data Products is not inherited from the parent. -- Cycles are rejected (a product cannot be moved under one of its own descendants). +- Permissions remain scoped to each Data Product's own Domain; **Manage Data Products** privilege is not inherited from the parent. +- Circular nesting is not supported (a product cannot be moved under one of its own descendants). -You can set the parent when creating or editing a Data Product in the UI, or declare it in YAML: +![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-hierarchy-move.png) + +You can set the parent when creating or editing a Data Product in the UI or declare it in YAML: ```yaml id: portfolio_analytics @@ -150,14 +205,13 @@ DataHub ships with a YAML-based Data Product spec for defining and managing Data Here is an example of a Data Product named "Pet of the Week" which belongs to the **Marketing** domain and contains three data assets. The **Spec** tab describes the JSON Schema spec for a DataHub data product file. - - - - ```yaml -{{ inline /metadata-ingestion/examples/data_product/dataproduct.yaml show_path_as_comment }} +{ + { + inline /metadata-ingestion/examples/data_product/dataproduct.yaml show_path_as_comment, + }, +} ``` - :::note @@ -169,17 +223,11 @@ This applies to other fields as well, such as owners, ownership types, tags, and You can also provide fully-qualified domain names (e.g. `urn:li:domain:dcadded3-2b70-4679-8b28-02ac9abc92eb`) to ensure that no ingestion-time domain resolution is needed. - - - ```json {{ inline /docs/generated/specs/schemas/dataproduct_schema.json }} ``` - - - To sync this yaml file to DataHub, use the `datahub` cli via the `dataproduct` group of commands. ```shell From 20d16e401b020ffac3b58fbca13efb2e2a2942bc Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 10:19:33 -0700 Subject: [PATCH 02/10] fix(docs): restore YAML frontmatter in dataproducts.md A blank line after the opening `---` broke the frontmatter block, so the `description` key was parsed as a setext heading instead of metadata. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index b9fa512955da..a8900604ee98 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -1,6 +1,6 @@ --- - -## description: "Group related Tables, Dashboards, Charts, and Pipelines into Data Products in DataHub to support data mesh ownership and discovery." +description: "Group related Tables, Dashboards, Charts, and Pipelines into Data Products in DataHub to support data mesh ownership and discovery." +--- import FeatureAvailability from '@site/src/components/FeatureAvailability'; import Tabs from '@theme/Tabs'; From e1aede4cb96d25bb1759355a98b1aca395505738 Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 10:22:13 -0700 Subject: [PATCH 03/10] fix(docs): drop unused MDX imports and repair inline YAML directive The rewrite replaced and the Tabs block with plain sections, leaving all three component imports unused. It also dropped the prettier-ignore guards around the YAML example, so formatting rewrote the `{{ inline ... }}` directive as a nested flow mapping and broke the file substitution at docs build time. Restore the guards with the directive. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index a8900604ee98..7c20be969daf 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -2,10 +2,6 @@ description: "Group related Tables, Dashboards, Charts, and Pipelines into Data Products in DataHub to support data mesh ownership and discovery." --- -import FeatureAvailability from '@site/src/components/FeatureAvailability'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - # Data Products **🤝 Version compatibility** @@ -205,13 +201,11 @@ DataHub ships with a YAML-based Data Product spec for defining and managing Data Here is an example of a Data Product named "Pet of the Week" which belongs to the **Marketing** domain and contains three data assets. The **Spec** tab describes the JSON Schema spec for a DataHub data product file. + ```yaml -{ - { - inline /metadata-ingestion/examples/data_product/dataproduct.yaml show_path_as_comment, - }, -} +{{ inline /metadata-ingestion/examples/data_product/dataproduct.yaml show_path_as_comment }} ``` + :::note From 0436937bbf895af7f7ff2b330dea8113a32fcdb5 Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 10:26:26 -0700 Subject: [PATCH 04/10] docs(data-product): reword stale tab reference in YAML spec section The Tabs block was flattened into plain sections, so the prose no longer matches the page. Point at the spec that follows the example instead. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index 7c20be969daf..6532731c3103 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -199,7 +199,7 @@ assets: DataHub ships with a YAML-based Data Product spec for defining and managing Data Products as code. -Here is an example of a Data Product named "Pet of the Week" which belongs to the **Marketing** domain and contains three data assets. The **Spec** tab describes the JSON Schema spec for a DataHub data product file. +Here is an example of a Data Product named "Pet of the Week" which belongs to the **Marketing** domain and contains three data assets, followed by the JSON Schema spec for a DataHub data product file. ```yaml From 854b58fa74fda3b5ecba6516e12e853e73a2f731 Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 12:23:34 -0700 Subject: [PATCH 05/10] docs(data-product): use centered img markup for screenshots Bare markdown images rendered full-width and left-aligned, unlike the rest of the docs, where screenshots use a centered img at 70% width. The four pre-existing screenshots had that markup before this branch. Restore it for all nine and add alt text. Also force a line break in the version-compatibility note so the two lines render separately instead of collapsing into one paragraph. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index 6532731c3103..fe42d3a31095 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -6,7 +6,7 @@ description: "Group related Tables, Dashboards, Charts, and Pipelines into Data **🤝 Version compatibility** -> DataHub Core: **0.10.3** | DataHub Cloud: **0.2.8** +> DataHub Core: **0.10.3** | DataHub Cloud: **0.2.8**
> Data Product Marketplace and Hierarchy requires DataHub Cloud **2.2.0** ## What are Data Products? @@ -67,7 +67,9 @@ Data Products can be created using the UI or via a YAML file that is managed usi #### Option 1 Create a Data Product from Govern > Data Product > Create Data Product. -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-marketplace-create.png) +

+ Create Data Product button on the Data Product home page +

1. Open **Govern → Data Product** 2. Click **Create Data Product** @@ -81,13 +83,17 @@ The new product appears as a root (or under the parent you chose) in the Data Pr #### Option 2 Navigate to the Domain that will contain this Data Product -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-tab.png) +

+ Data Products tab on a Domain page +

Then navigate to the Data Products tab on the Domain's home page, and click '+ New Data Product'. This will open a new modal where you can configure the settings for your data product. Inside the form, you can choose a name for your Data Product. Most often, this will align with the logical purpose of the Data Product, for example 'Customer Orders' or 'Revenue Attribution'. You can also add documentation for your product to help other users easily discover it. Don't worry, this can be changed later. -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-create.png) +

+ Create Data Product modal with name and documentation fields +

Once you've chosen a name and a description, click 'Create' to create the new Data Product. Once you've created the Data Product, you can click on it to continue on to the next step, adding assets to it. @@ -96,11 +102,15 @@ Once you've chosen a name and a description, click 'Create' to create the new Da You can assign an asset to a Data Product either using the Data Product page as the starting point or the Asset's page as the starting point. On a Data Product page, click the 'Add Assets' button on the top right corner to add assets to the Data Product. -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-add-assets.png) +

+ Add Assets button on a Data Product page +

On an Asset's profile page, use the right sidebar to locate the Data Product section. Click 'Set Data Product', and then search for the Data Product you'd like to add this asset to. When you're done, click 'Add'. -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-set.png) +

+ Set Data Product control in an asset's right sidebar +

To remove an asset from a Data Product, click the 'x' icon on the Data Product label on either the asset profile or the Data Product page (each path uses the privilege listed in the table above). @@ -128,7 +138,9 @@ Easily discover Data Products without going through global Search or a Domain pa #### Data Product Home Page -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-marketplace-discovery.png) +

+ Data Product home page listing published Data Products +

The Data Product Home page shows: @@ -150,7 +162,9 @@ Click a product in the sidebar or on the home page to open /dataProduct/:urn. Th ##### Data Product Profile -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-marketplace-profile.png) +

+ Data Product profile page showing Output Ports, Assets, and Lineage tabs +

The Data Product profile includes: @@ -163,7 +177,9 @@ Breadcrumbs show Domain → immediate parent. ##### Data Product Lineage -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-lineage.png) +

+ Lineage view for a Data Product +

Data Product lineage enables users to visually discover assets in a data product and understand the associations between assets in data products. @@ -179,7 +195,9 @@ Key behaviors: - Permissions remain scoped to each Data Product's own Domain; **Manage Data Products** privilege is not inherited from the parent. - Circular nesting is not supported (a product cannot be moved under one of its own descendants). -![](https://raw.githubusercontent.com/datahub-project/static-assets/d0c3c6e4bbff44403a4d8765a9e2635bd51737d2/imgs/data_products/dataproducts-hierarchy-move.png) +

+ Move dialog for re-parenting a Data Product in the hierarchy +

You can set the parent when creating or editing a Data Product in the UI or declare it in YAML: From c78567044a7d438ca9ca3150bdc16a78f72754ab Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 12:24:35 -0700 Subject: [PATCH 06/10] docs(data-product): size the domain tab screenshot for retina dataproducts-tab.png is only 766px wide, so at 70% of the content column it upscales on 2x displays and looks soft. 50% keeps it within its native resolution. The other screenshots are 1250-2664px wide and stay at 70%. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index fe42d3a31095..7126b36aa3ae 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -84,7 +84,7 @@ The new product appears as a root (or under the parent you chose) in the Data Pr #### Option 2 Navigate to the Domain that will contain this Data Product

- Data Products tab on a Domain page + Data Products tab on a Domain page

Then navigate to the Data Products tab on the Domain's home page, and click '+ New Data Product'. From 953b7c9a255c304e7300fa6aaded59309d7837da Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 12:40:52 -0700 Subject: [PATCH 07/10] docs(data-product): repin screenshots and restore tab image width Points all nine screenshots at the static-assets commit that carries the recaptured Data Products tab image, and puts that image back to the 70% width used everywhere else now that it has the resolution for it. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index 7126b36aa3ae..751a7c66e88c 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -68,7 +68,7 @@ Data Products can be created using the UI or via a YAML file that is managed usi #### Option 1 Create a Data Product from Govern > Data Product > Create Data Product.

- Create Data Product button on the Data Product home page + Create Data Product button on the Data Product home page

1. Open **Govern → Data Product** @@ -84,7 +84,7 @@ The new product appears as a root (or under the parent you chose) in the Data Pr #### Option 2 Navigate to the Domain that will contain this Data Product

- Data Products tab on a Domain page + Data Products tab on a Domain page

Then navigate to the Data Products tab on the Domain's home page, and click '+ New Data Product'. @@ -92,7 +92,7 @@ This will open a new modal where you can configure the settings for your data pr 'Customer Orders' or 'Revenue Attribution'. You can also add documentation for your product to help other users easily discover it. Don't worry, this can be changed later.

- Create Data Product modal with name and documentation fields + Create Data Product modal with name and documentation fields

Once you've chosen a name and a description, click 'Create' to create the new Data Product. Once you've created the Data Product, you can click on it to continue on to the next step, adding assets to it. @@ -103,13 +103,13 @@ You can assign an asset to a Data Product either using the Data Product page as On a Data Product page, click the 'Add Assets' button on the top right corner to add assets to the Data Product.

- Add Assets button on a Data Product page + Add Assets button on a Data Product page

On an Asset's profile page, use the right sidebar to locate the Data Product section. Click 'Set Data Product', and then search for the Data Product you'd like to add this asset to. When you're done, click 'Add'.

- Set Data Product control in an asset's right sidebar + Set Data Product control in an asset's right sidebar

To remove an asset from a Data Product, click the 'x' icon on the Data Product label on either the asset profile or the Data Product page (each path uses the privilege listed in the table above). @@ -139,7 +139,7 @@ Easily discover Data Products without going through global Search or a Domain pa #### Data Product Home Page

- Data Product home page listing published Data Products + Data Product home page listing published Data Products

The Data Product Home page shows: @@ -163,7 +163,7 @@ Click a product in the sidebar or on the home page to open /dataProduct/:urn. Th ##### Data Product Profile

- Data Product profile page showing Output Ports, Assets, and Lineage tabs + Data Product profile page showing Output Ports, Assets, and Lineage tabs

The Data Product profile includes: @@ -178,7 +178,7 @@ Breadcrumbs show Domain → immediate parent. ##### Data Product Lineage

- Lineage view for a Data Product + Lineage view for a Data Product

Data Product lineage enables users to visually discover assets in a data product and understand the associations between assets in data products. @@ -196,7 +196,7 @@ Key behaviors: - Circular nesting is not supported (a product cannot be moved under one of its own descendants).

- Move dialog for re-parenting a Data Product in the hierarchy + Move dialog for re-parenting a Data Product in the hierarchy

You can set the parent when creating or editing a Data Product in the UI or declare it in YAML: From 448922362a6c7bd8e208b865bc2c0c480e59b1ef Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 13:16:49 -0700 Subject: [PATCH 08/10] docs(data-product): revise privilege table and profile details MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reorders the privilege table around the Data Product sidebar entry points, names the Domain path explicitly, and drops the Marketplace phrasing. Lists Summary → Assets on the profile, simplifies the discovery and hierarchy wording. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index 751a7c66e88c..c30b46f0a85a 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -29,14 +29,14 @@ Data Products can be easily published to the DataHub catalog, allowing other tea Data Product operations use **two different privileges** depending on whether you are acting from the **asset** or from the **Data Product** itself. -| What you're doing | Where in the UI / API | Required privilege | Policy resource | -| --------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------- | ------------------------------------------------ | -| Create, update, or delete a Data Product | Domain → Data Products tab; `createDataProduct`, `updateDataProduct`, `deleteDataProduct` | **Manage Data Products** | Each **Domain** associated with the product | -| Add or remove assets from a Data Product page | Data Product → Add Assets; `batchSetDataProduct` | **Manage Data Products** | **At least one** Domain on the product | -| Link or unlink a Data Product from an asset profile | Asset sidebar → Set Data Product; `batchAddToDataProducts` / `batchRemoveFromDataProducts` | **Edit Data Product** | The **asset** being updated | -| Browse Marketplace, open product profiles | Govern → Data Product; `dataproduct` | **View Entity** (default) | Data Products the actor can see | -| Create from Marketplace | Data Product → Create; `createDataProduct` | **Manage Data Product** | The Domain selected on create | -| Move / nest / detach a product | Profile menu → Move; `moveDataProduct` | **Manage Data Product** | The data product's own Domain (not the parent's) | +| What you're doing | Where in the UI / API | Required privilege | Policy resource | +| ------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------- | ------------------------------------------------ | +| Create from Data Product sidebar | Data Product → Create; `createDataProduct` | **Manage Data Product** | The Domain selected on create | +| Browse from Data Product sidebar, open product profiles | Govern → Data Product; `dataproduct` | **View Entity** (default) | Data Products the actor can see | +| Move / nest / detach a product | Profile menu → Move; `moveDataProduct` | **Manage Data Product** | The data product's own Domain (not the parent's) | +| Add or remove assets from a Data Product page | Data Product → Add Assets; `batchSetDataProduct` | **Manage Data Products** | **At least one** Domain on the product | +| Link or unlink a Data Product from an asset profile | Asset sidebar → Set Data Product; `batchAddToDataProducts` / `batchRemoveFromDataProducts` | **Edit Data Product** | The **asset** being updated | +| Create, update, or delete a Data Product from Domain | Domain → Data Products tab; `createDataProduct`, `updateDataProduct`, `deleteDataProduct` | **Manage Data Products** | Each **Domain** associated with the product | Grant these via [Metadata Policies](./authorization/policies.md). @@ -134,7 +134,7 @@ See the [Environment Variables](deploy/environment-vars.md#feature-flags) docume ### Discover Data Products -Easily discover Data Products without going through global Search or a Domain page, or use the `/dataproduct` API. +Discover Data Products by opening Govern → Data Products, or navigating directly to /dataProducts. #### Data Product Home Page @@ -168,8 +168,8 @@ Click a product in the sidebar or on the home page to open /dataProduct/:urn. Th The Data Product profile includes: +- **Summary → Assets** — assets associated with the Data Product - **Summary → Sub-products** — direct children in the hierarchy -- **Summary → Output Ports** — assets marked as the product's published outputs - **Output Ports tab** — full list of output-port assets - **Move** (profile menu) — set or clear the parent without editing name/description/assets @@ -185,7 +185,7 @@ Data Product lineage enables users to visually discover assets in a data product ### Define Data Product Hierarchy -Data Products can nest under other Data Products via an optional `parentDataProduct` pointer or from the DataHub UI, forming a multi-level taxonomy. This is useful when you buy or ingest a vendor product and re-package it into one or more internal products (for example, a vendor equities feed → an internal research product → a portfolio analytics product). +Data Products can nest under other Data Products via an optional `parentDataProduct` pointer or from the DataHub UI, forming a multi-level taxonomy. Key behaviors: @@ -193,7 +193,7 @@ Key behaviors: - Nesting depth is arbitrary. - A child may belong to a different Domain than its parent; Domain membership is independent of the parent-child relationship. - Permissions remain scoped to each Data Product's own Domain; **Manage Data Products** privilege is not inherited from the parent. -- Circular nesting is not supported (a product cannot be moved under one of its own descendants). +- A product cannot be moved under one of its own descendants

Move dialog for re-parenting a Data Product in the hierarchy From a0238222570842f1e7f3e0b08e223c91af922428 Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 13:26:54 -0700 Subject: [PATCH 09/10] Update docs/dataproducts.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/dataproducts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index c30b46f0a85a..484c7b57da6d 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -193,7 +193,7 @@ Key behaviors: - Nesting depth is arbitrary. - A child may belong to a different Domain than its parent; Domain membership is independent of the parent-child relationship. - Permissions remain scoped to each Data Product's own Domain; **Manage Data Products** privilege is not inherited from the parent. -- A product cannot be moved under one of its own descendants +- A product cannot be moved under one of its own descendants.

Move dialog for re-parenting a Data Product in the hierarchy From 94200381a90e369f3a7e482576c26ce4c162d17b Mon Sep 17 00:00:00 2001 From: manuelawei Date: Fri, 4 Sep 2026 13:27:52 -0700 Subject: [PATCH 10/10] docs(data-product): correct the manage privilege name The privilege is MANAGE_DATA_PRODUCTS, displayed as "Manage Data Products". Two table rows used a singular form that does not exist. Co-Authored-By: Claude Opus 5 (1M context) --- docs/dataproducts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dataproducts.md b/docs/dataproducts.md index 484c7b57da6d..5668c67f34ab 100644 --- a/docs/dataproducts.md +++ b/docs/dataproducts.md @@ -31,9 +31,9 @@ Data Product operations use **two different privileges** depending on whether yo | What you're doing | Where in the UI / API | Required privilege | Policy resource | | ------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------- | ------------------------------------------------ | -| Create from Data Product sidebar | Data Product → Create; `createDataProduct` | **Manage Data Product** | The Domain selected on create | +| Create from Data Product sidebar | Data Product → Create; `createDataProduct` | **Manage Data Products** | The Domain selected on create | | Browse from Data Product sidebar, open product profiles | Govern → Data Product; `dataproduct` | **View Entity** (default) | Data Products the actor can see | -| Move / nest / detach a product | Profile menu → Move; `moveDataProduct` | **Manage Data Product** | The data product's own Domain (not the parent's) | +| Move / nest / detach a product | Profile menu → Move; `moveDataProduct` | **Manage Data Products** | The data product's own Domain (not the parent's) | | Add or remove assets from a Data Product page | Data Product → Add Assets; `batchSetDataProduct` | **Manage Data Products** | **At least one** Domain on the product | | Link or unlink a Data Product from an asset profile | Asset sidebar → Set Data Product; `batchAddToDataProducts` / `batchRemoveFromDataProducts` | **Edit Data Product** | The **asset** being updated | | Create, update, or delete a Data Product from Domain | Domain → Data Products tab; `createDataProduct`, `updateDataProduct`, `deleteDataProduct` | **Manage Data Products** | Each **Domain** associated with the product |