Power BI · Arazzo Workflow

Power BI Audit Gateway-Bound Datasources

Version 1.0.0

Walk the gateway inventory and cross-reference a dataset's datasources to prove which gateway backs it.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub AnalyticsBusiness IntelligenceDashboardsData AnalysisReportingVisualizationArazzoWorkflows

Provider

power-bi

Workflows

gateway-datasource-audit
Reconcile a dataset's datasources against a gateway's registered datasources.
Lists gateways, inspects one gateway and the datasources registered on it, and reads the dataset's datasources so the gateway binding can be verified.
4 steps inputs: datasetId, gatewayId outputs: datasetDatasources, datasetGatewayId, gatewayDatasources, gatewayName, gatewayType, gateways
1
listGateways
Enumerate every gateway the caller can see, establishing the set of gateways available to bind datasources against.
2
inspectGateway
Read the target gateway to confirm it exists and to record whether it is a shared Resource gateway or a Personal gateway.
3
listGatewayDatasources
List the datasources registered on the gateway. A dataset can only refresh through this gateway if its datasources appear in this collection.
4
listDatasetDatasources
Read the dataset's own datasources and capture the gatewayId reported on the first one, which is the value to compare against the audited gateway.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Power BI Audit Gateway-Bound Datasources
  summary: Walk the gateway inventory and cross-reference a dataset's datasources to prove which gateway backs it.
  description: >-
    The pattern behind diagnosing "why won't this dataset refresh". An
    on-premises dataset refreshes only when every one of its datasources is
    bound to a datasource registered on a reachable gateway. Because dataset
    datasources and gateway datasources are exposed through different
    collections, answering the question means reading both sides and comparing
    the gateway identifiers. This workflow enumerates the gateways, inspects the
    target gateway and its registered datasources, then reads the dataset's own
    datasources so the two sides can be reconciled. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-610.50
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-610.50
      capability_name: Analytics & BI Management
      spec: power-bi-datasets-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: datasetsApi
  url: ../openapi/power-bi-datasets-api-openapi.yml
  type: openapi
- name: gatewaysApi
  url: ../openapi/power-bi-gateways-api-openapi.yml
  type: openapi
workflows:
- workflowId: gateway-datasource-audit
  summary: Reconcile a dataset's datasources against a gateway's registered datasources.
  description: >-
    Lists gateways, inspects one gateway and the datasources registered on it,
    and reads the dataset's datasources so the gateway binding can be verified.
  inputs:
    type: object
    required:
    - gatewayId
    - datasetId
    properties:
      gatewayId:
        type: string
        description: The identifier of the gateway to audit.
      datasetId:
        type: string
        description: The identifier of the dataset whose datasources are being reconciled.
  steps:
  - stepId: listGateways
    description: >-
      Enumerate every gateway the caller can see, establishing the set of
      gateways available to bind datasources against.
    operationId: getGateways
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      gateways: $response.body#/value
  - stepId: inspectGateway
    description: >-
      Read the target gateway to confirm it exists and to record whether it is
      a shared Resource gateway or a Personal gateway.
    operationId: getGateway
    parameters:
    - name: gatewayId
      in: path
      value: $inputs.gatewayId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      gatewayName: $response.body#/name
      gatewayType: $response.body#/type
      gatewayAnnotation: $response.body#/gatewayAnnotation
  - stepId: listGatewayDatasources
    description: >-
      List the datasources registered on the gateway. A dataset can only refresh
      through this gateway if its datasources appear in this collection.
    operationId: getGatewayDatasources
    parameters:
    - name: gatewayId
      in: path
      value: $inputs.gatewayId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      gatewayDatasources: $response.body#/value
  - stepId: listDatasetDatasources
    description: >-
      Read the dataset's own datasources and capture the gatewayId reported on
      the first one, which is the value to compare against the audited gateway.
    operationId: getDatasources
    parameters:
    - name: datasetId
      in: path
      value: $inputs.datasetId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datasetDatasources: $response.body#/value
      datasetGatewayId: $response.body#/value/0/gatewayId
      datasetDatasourceType: $response.body#/value/0/datasourceType
  outputs:
    gateways: $steps.listGateways.outputs.gateways
    gatewayName: $steps.inspectGateway.outputs.gatewayName
    gatewayType: $steps.inspectGateway.outputs.gatewayType
    gatewayDatasources: $steps.listGatewayDatasources.outputs.gatewayDatasources
    datasetDatasources: $steps.listDatasetDatasources.outputs.datasetDatasources
    datasetGatewayId: $steps.listDatasetDatasources.outputs.datasetGatewayId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/power-bi-gateway-datasource-audit-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.