arazzo: 1.0.1 info: title: Acceldata Dataset Quality Audit summary: Resolve a dataset, list its data quality rules, and map its lineage for impact analysis. description: >- A dataset audit flow that assembles a quality picture for a single dataset. The workflow resolves a dataset by source, lists the data quality rules monitoring it, and retrieves its lineage graph so downstream consumers affected by quality issues can be identified. 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 sourceDescriptions: - name: acceldataAdocApi url: ../openapi/acceldata-adoc-api.yaml type: openapi workflows: - workflowId: dataset-quality-audit summary: Audit a dataset's quality rules and lineage in one pass. description: >- Finds a dataset on the given source, lists the data quality rules applied to it, and retrieves its upstream and downstream lineage graph for impact analysis. inputs: type: object required: - apiKey - source properties: apiKey: type: string description: Acceldata API key sent in the X-API-Key header. source: type: string description: Data source platform to filter datasets by (e.g. snowflake). lineageDirection: type: string description: Direction of lineage to retrieve (upstream, downstream, both). lineageDepth: type: integer description: Maximum depth of the lineage graph to return. steps: - stepId: findDataset description: >- List datasets on the given source and capture the first dataset id and its quality score to anchor the audit. operationId: listDatasets parameters: - name: X-API-Key in: header value: $inputs.apiKey - name: source in: query value: $inputs.source - name: limit in: query value: 1 successCriteria: - condition: $statusCode == 200 outputs: datasetId: $response.body#/data/0/id datasetName: $response.body#/data/0/name qualityScore: $response.body#/data/0/qualityScore - stepId: listRules description: >- List the data quality rules applied to the resolved dataset to capture how it is being monitored. operationId: listDataQualityRules parameters: - name: X-API-Key in: header value: $inputs.apiKey - name: dataset_id in: query value: $steps.findDataset.outputs.datasetId successCriteria: - condition: $statusCode == 200 outputs: ruleCount: $response.body#/total - stepId: getLineage description: >- Retrieve the dataset's lineage graph so upstream sources and downstream consumers affected by quality issues can be identified. operationId: getDatasetLineage parameters: - name: X-API-Key in: header value: $inputs.apiKey - name: id in: path value: $steps.findDataset.outputs.datasetId - name: direction in: query value: $inputs.lineageDirection - name: depth in: query value: $inputs.lineageDepth successCriteria: - condition: $statusCode == 200 outputs: upstream: $response.body#/upstream downstream: $response.body#/downstream outputs: datasetId: $steps.findDataset.outputs.datasetId qualityScore: $steps.findDataset.outputs.qualityScore ruleCount: $steps.listRules.outputs.ruleCount downstream: $steps.getLineage.outputs.downstream