Managing DataHub Metadata
Overview
DataHub metadata has several owners. Repository-managed definitions live under
yaml_config/ in dap-datahub-tools; source connectors and Airflow own the
technical assets they generate; approved users maintain permitted metadata and
associations in the DataHub UI.
Metadata Ownership and Permissions
This table records the current implementation:
| Metadata or entity | Current ownership and permitted change path |
|---|---|
| Domains | Definitions are managed through repository YAML. |
| Data Products | Definitions are managed through repository YAML. |
| Domain and Data Product associations | Approved Asset Admins attach assets through the DataHub UI. Associations are not managed in repository YAML. |
| Glue, Qlik Cloud, and Tableau assets | Technical assets are created and managed primarily by their ingestion sources. |
| Data Platforms | Display definitions are currently managed through repository YAML. |
| Web maps, Earthlight, and Qlik Sense Enterprise datasets | Dataset metadata YAML is generated by Airflow and stored only in the runtime S3 prefix. |
| Lake Formation-derived Groups | Members can edit dataset and container descriptions only where the asset's LF-tags match their Group scope. This currently applies primarily to Glue Catalog assets. |
dap-datahub-asset-admins | Approved members can edit the configured asset types, including datasets, dashboards, charts, Domains, and Data Products. This permission is not currently restricted to Glue. |
Configuration File Structure
yaml_config/
├── authorization/ # DataHub permission profiles
├── ingestion/ # Source ingestion recipes
│ ├── glue.yaml # AWS Glue Catalog ingestion
│ ├── qlik_cloud.yaml # Qlik Cloud ingestion
│ └── tableau_cloud.yaml # Tableau Cloud ingestion
├── metadata/
│ ├── domains/ # Domain definitions
│ ├── dataplatforms/ # Platform definitions
│ │ └── dataplatforms.yaml
│ └── dataproducts/ # Data product definitions (grouped by domain)
│ ├── child-fam-services/
│ │ └── *.yaml
│ └── housing/
│ └── *.yaml
How to Add a New Domain
File: metadata/domains/domains.yaml
Add a new entry to the list:
- id: your-domain-id
display_name: Your Domain Display Name
description: Description of what this domain covers
Fields:
id: Unique identifier (kebab-case)display_name: Name shown in DataHub UIdescription: What the domain covers
How to Add a New Data Platform
File: metadata/dataplatforms/dataplatforms.yaml
Add a new platform to the platforms list:
platforms:
- id: glue
display_name: Data Analytics Platform
description: Platform description
logo: https://url-to-logo.png
Fields:
id: Must match the source type used in the ingestion configuration (e.g.,glue,qlik-sense,athena) or a custom platform ID if you are adding metadata for a non-ingested sourcedisplay_name: Custom name shown in DataHub UIlogo: URL to logo image (optional)
Note: after adding a new platform, without attaching a dataset to it, the platform will not show up in the DataHub UI.
How to Add a Data Product
- Navigate to the correct domain folder:
metadata/dataproducts/{domain-name}/ - Create a new YAML file: e.g.,
my-product.yaml - Add the data product definition:
id: domain-name-product-name
domain: urn:li:domain:domain-name
display_name: Product Display Name
description: Business description of what this data product provides.
Fields:
id: Stable Data Product identifierdomain: Must match an existing domaindisplay_name: Name shown in the DataHub UIdescription: Business description of the Data Product
After creating the Data Product, approved Asset Admins attach datasets to it through the DataHub UI. Dataset associations are not managed in the YAML definition.
How to Maintain Dataset Metadata
Datasets are created by ingestion sources. Do not add dataset YAML under
dap-datahub-tools/yaml_config/metadata/datasets/; that local directory is no
longer part of the repository.
Approved Asset Admins maintain permitted human-authored dataset metadata in the DataHub UI:
- Find the dataset through search or its Data Platform page.
- Edit its description and ownership on the dataset page.
- Use the UI to attach it to the correct Domain and Data Product.
The separate Airflow asset-generation pipeline still publishes machine- generated metadata for web maps, Earthlight layers, and Qlik Sense Enterprise dashboards directly to the runtime S3 prefix. This is an automated system contract, not a manual YAML-authoring route.