Cross-Provider Workflow

dbt Discovery Metadata to Google Sheets Report

Version 1.0.0

Run a dbt Discovery API query for model metadata, then write the results to a Google Sheet.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

dbt google-sheets

Workflows

dbt-discovery-to-sheet
Query dbt Discovery metadata and append it to a Google Sheet.
Executes a dbt Discovery GraphQL query for model metadata, then appends the returned rows to a Google Sheets range as a catalog report.
2 steps inputs: discoveryQuery, range, spreadsheetId outputs: metadata, updates
1
run-discovery
$sourceDescriptions.dbtDiscoveryApi.executeDiscoveryQuery
Execute a dbt Discovery GraphQL query for model metadata.
2
append-to-sheet
$sourceDescriptions.googleSheetsApi.appendValues
Append the discovery metadata to the Google Sheets report.

Source API Descriptions

Arazzo Workflow Specification

data-dbt-discovery-to-google-sheets-report.yml Raw ↑
arazzo: 1.0.1
info:
  title: dbt Discovery Metadata to Google Sheets Report
  summary: Run a dbt Discovery API query for model metadata, then write the results to a Google Sheet.
  description: >-
    A data observability workflow that executes a dbt Cloud Discovery API GraphQL query to
    pull model metadata and freshness, then appends the results to a Google Sheets tab for
    a shareable data catalog report. Demonstrates surfacing transformation lineage metadata
    in a spreadsheet for stakeholders.
  version: 1.0.0
sourceDescriptions:
  - name: dbtDiscoveryApi
    url: https://raw.githubusercontent.com/api-evangelist/dbt/refs/heads/main/openapi/dbt-cloud-discovery-api-openapi.yml
    type: openapi
  - name: googleSheetsApi
    url: https://raw.githubusercontent.com/api-evangelist/google-sheets/refs/heads/main/openapi/google-sheets-openapi.yml
    type: openapi
workflows:
  - workflowId: dbt-discovery-to-sheet
    summary: Query dbt Discovery metadata and append it to a Google Sheet.
    description: >-
      Executes a dbt Discovery GraphQL query for model metadata, then appends the
      returned rows to a Google Sheets range as a catalog report.
    inputs:
      type: object
      properties:
        discoveryQuery:
          type: string
        spreadsheetId:
          type: string
        range:
          type: string
    steps:
      - stepId: run-discovery
        description: Execute a dbt Discovery GraphQL query for model metadata.
        operationId: $sourceDescriptions.dbtDiscoveryApi.executeDiscoveryQuery
        requestBody:
          contentType: application/json
          payload:
            query: $inputs.discoveryQuery
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          metadata: $response.body#/data
      - stepId: append-to-sheet
        description: Append the discovery metadata to the Google Sheets report.
        operationId: $sourceDescriptions.googleSheetsApi.appendValues
        parameters:
          - name: spreadsheetId
            in: path
            value: $inputs.spreadsheetId
          - name: range
            in: path
            value: $inputs.range
          - name: valueInputOption
            in: query
            value: USER_ENTERED
        requestBody:
          contentType: application/json
          payload:
            range: $inputs.range
            majorDimension: ROWS
            values: $steps.run-discovery.outputs.metadata
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          updates: $response.body#/updates
    outputs:
      metadata: $steps.run-discovery.outputs.metadata
      updates: $steps.append-to-sheet.outputs.updates