Cross-Provider Workflow

DataHub Dataset Register and Tag

Version 1.0.0

Register a dataset entity in DataHub, then fetch its latest aspects to confirm tagging.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

datahub

Workflows

datahub-register-and-tag
Upsert a tagged dataset entity, then read back its aspects.
Upserts a dataset entity carrying tag and ownership aspects into DataHub, then fetches the entity's latest aspects to confirm the catalog reflects the changes.
2 steps inputs: datasetUrn, ownerUrn, tagUrn outputs: aspects, registeredUrn
1
register-dataset
$sourceDescriptions.datahubApi.upsertEntities
Upsert the dataset entity with tag and ownership aspects.
2
verify-aspects
$sourceDescriptions.datahubApi.getEntityLatestAspects
Fetch the latest aspects to confirm the tag was applied.

Source API Descriptions

Arazzo Workflow Specification

data-datahub-dataset-register-and-tag.yml Raw ↑
arazzo: 1.0.1
info:
  title: DataHub Dataset Register and Tag
  summary: Register a dataset entity in DataHub, then fetch its latest aspects to confirm tagging.
  description: >-
    A data governance workflow that upserts a dataset entity with tag and ownership
    aspects into the DataHub catalog, then reads back the entity's latest aspects to
    verify the registration and tagging succeeded. Demonstrates a register-then-verify
    pattern against a single metadata platform's catalog API.
  version: 1.0.0
sourceDescriptions:
  - name: datahubApi
    url: https://raw.githubusercontent.com/api-evangelist/datahub/refs/heads/main/openapi/datahub-openapi-openapi.yml
    type: openapi
workflows:
  - workflowId: datahub-register-and-tag
    summary: Upsert a tagged dataset entity, then read back its aspects.
    description: >-
      Upserts a dataset entity carrying tag and ownership aspects into DataHub, then
      fetches the entity's latest aspects to confirm the catalog reflects the changes.
    inputs:
      type: object
      properties:
        datasetUrn:
          type: string
        tagUrn:
          type: string
        ownerUrn:
          type: string
    steps:
      - stepId: register-dataset
        description: Upsert the dataset entity with tag and ownership aspects.
        operationId: $sourceDescriptions.datahubApi.upsertEntities
        requestBody:
          contentType: application/json
          payload:
            - urn: $inputs.datasetUrn
              aspects:
                globalTags:
                  tags:
                    - tag: $inputs.tagUrn
                ownership:
                  owners:
                    - owner: $inputs.ownerUrn
                      type: DATAOWNER
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          registeredUrn: $response.body#/0/urn
      - stepId: verify-aspects
        description: Fetch the latest aspects to confirm the tag was applied.
        operationId: $sourceDescriptions.datahubApi.getEntityLatestAspects
        parameters:
          - name: urns
            in: query
            value: $steps.register-dataset.outputs.registeredUrn
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          aspects: $response.body#/aspects
    outputs:
      registeredUrn: $steps.register-dataset.outputs.registeredUrn
      aspects: $steps.verify-aspects.outputs.aspects