arazzo: 1.0.1 info: title: Acceldata Triage Dataset Alerts summary: Resolve a dataset, pull its open alerts, and acknowledge the most severe one. description: >- A data reliability triage flow. The workflow finds a dataset by source, lists the open alerts associated with that dataset, and when at least one open alert exists it acknowledges the first one with an investigation comment. When no open alerts are present the flow ends cleanly. 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: triage-dataset-alerts summary: Find a dataset, list its open alerts, and acknowledge the first one. description: >- Locates a dataset on a given source, queries the alerts filtered to that dataset and the open status, and branches: when one or more open alerts are returned it acknowledges the first alert, otherwise it ends. 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). acknowledgeComment: type: string description: Comment recorded when acknowledging the alert. steps: - stepId: findDataset description: >- List datasets on the given source and capture the first dataset id to scope the subsequent alert query. 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 - stepId: listOpenAlerts description: >- Query alerts filtered to the resolved dataset and the open status so only actionable alerts are returned. operationId: listAlerts parameters: - name: X-API-Key in: header value: $inputs.apiKey - name: dataset_id in: query value: $steps.findDataset.outputs.datasetId - name: status in: query value: open successCriteria: - condition: $statusCode == 200 outputs: firstAlertId: $response.body#/data/0/id total: $response.body#/total onSuccess: - name: alertsPresent type: goto stepId: acknowledgeFirstAlert criteria: - context: $response.body condition: $.data.length > 0 type: jsonpath - name: noAlerts type: end criteria: - context: $response.body condition: $.data.length == 0 type: jsonpath - stepId: acknowledgeFirstAlert description: >- Acknowledge the first open alert with an investigation comment so it is marked as being worked on. operationId: acknowledgeAlert parameters: - name: X-API-Key in: header value: $inputs.apiKey - name: id in: path value: $steps.listOpenAlerts.outputs.firstAlertId requestBody: contentType: application/json payload: comment: $inputs.acknowledgeComment successCriteria: - condition: $statusCode == 200 outputs: alertId: $response.body#/id alertStatus: $response.body#/status outputs: datasetId: $steps.findDataset.outputs.datasetId openAlertCount: $steps.listOpenAlerts.outputs.total acknowledgedAlertId: $steps.acknowledgeFirstAlert.outputs.alertId