Workflows API
Configure and manage approval workflows for access requests.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /workflows | List all workflows |
| POST | /workflows | Create workflow |
| GET | /workflows/{id} | Get workflow details |
| PATCH | /workflows/{id} | Update workflow |
| DELETE | /workflows/{id} | Delete workflow |
| POST | /workflows/{id}/steps | Add step to workflow |
| PATCH | /workflows/{id}/steps/{step_id} | Update step |
| DELETE | /workflows/{id}/steps/{step_id} | Delete step |
| POST | /workflows/{id}/steps/{step_id}/approvers | Add approver |
| DELETE | /workflows/{id}/steps/{step_id}/approvers/{approver_id} | Remove approver |
| POST | /workflows/requests/{request_id}/approve | Approve request |
| POST | /workflows/requests/{request_id}/reject | Reject request |
Workflow Types
| Type | Description |
|---|---|
access_request | Approval for data product access |
change_request | Approval for quality check changes |
List Workflows
GET /workflows
Query Parameters
| Parameter | Type | Description |
|---|---|---|
workflow_type | string | Filter by type |
is_active | boolean | Filter by active status |
Response
[
{
"id": "...",
"name": "Data Access Approval",
"workflow_type": "access_request",
"is_active": true,
"is_default": true,
"steps": [
{
"id": "...",
"name": "Manager Approval",
"order": 1,
"approvers": [...]
}
],
"created_at": "2026-01-15T10:30:00Z"
}
]
Create Workflow
POST /workflows
Request Body
{
"name": "Two-Step Approval",
"workflow_type": "access_request",
"is_default": false,
"steps": [
{
"name": "Team Lead Review",
"order": 1,
"approvers": [
{"user_id": "user-uuid"}
]
},
{
"name": "Data Owner Approval",
"order": 2,
"approvers": [
{"governance_role": "owner"}
]
}
]
}
Add Step
POST /workflows/{workflow_id}/steps
{
"name": "Security Review",
"order": 3
}
Add Approver
POST /workflows/{workflow_id}/steps/{step_id}/approvers
Approvers can be specific users or governance roles:
{
"user_id": "user-uuid"
}
Or by governance role:
{
"governance_role": "steward"
}
Valid governance roles: owner, steward, custodian
Approve Request
POST /workflows/requests/{request_id}/approve
{
"comment": "Approved for production access."
}
Reject Request
POST /workflows/requests/{request_id}/reject
{
"comment": "Need additional justification for this access level."
}
Error Responses
| Status | Description |
|---|---|
400 | Invalid workflow configuration |
403 | Not authorized to approve/reject |
404 | Workflow or request not found |