Pipeline API (DAG Compiler)
Handles pipeline lifecycle — from draft creation through compilation to Flink deployment. Deploys via Temporal workflows.
| Field | Value |
|---|---|
| Port | 50002 |
| Base Path | /api/v1 |
| OpenAPI | 3.1.0 |
| Spec | PIPELINE_API.json |
Pipeline Lifecycle
Pipeline CRUD
| Method | Path | Request Body | Response | Status |
|---|---|---|---|---|
| POST | /api/v1/pipelines | PipelineSaveRequest | PipelineSaveResponse | 201 |
| GET | /api/v1/pipelines/{id} | — | PipelineDetailResponse | 200 |
| PUT | /api/v1/pipelines/{id} | PipelineSaveRequest | PipelineSaveResponse | 200 |
| DELETE | /api/v1/pipelines/{id} | — | — | 204 |
Pipeline Lifecycle Control
| Method | Path | Description | Response |
|---|---|---|---|
| POST | /api/v1/pipelines/{id}/compile | Compile pipeline DAG | CompileResponse |
| POST | /api/v1/pipelines/{id}/deploy | Deploy to Flink via Temporal | DeployResponse |
| GET | /api/v1/pipelines/{id}/status | Get deployment status | PipelineStatusResponse |
| POST | /api/v1/pipelines/{id}/pause | Pause running pipeline | PipelineStatusResponse |
| POST | /api/v1/pipelines/{id}/resume | Resume paused pipeline | PipelineStatusResponse |
| POST | /api/v1/pipelines/{id}/cancel | Cancel pipeline | PipelineStatusResponse |
| POST | /api/v1/pipelines/{id}/restore | Restore from savepoint | PipelineStatusResponse |
| POST | /api/v1/pipelines/{id}/purge | Purge pipeline state | 204 |
Savepoint Management
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/pipelines/{id}/savepoints | List savepoints |
| POST | /api/v1/pipelines/{id}/savepoints/trigger | Trigger savepoint |
| DELETE | /api/v1/pipelines/{id}/savepoints?path= | Delete savepoint |
| POST | /api/v1/pipelines/{id}/savepoints/validate?path= | Validate savepoint |
| GET | /api/v1/pipelines/{id}/savepoints/info?path= | Get savepoint info |
| POST | /api/v1/pipelines/{id}/savepoints/cleanup | Cleanup old savepoints |
Execution & Monitoring
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/pipelines/{id}/executions | List execution instances |
| GET | /api/v1/pipelines/{id}/checkpoints | List checkpoints |
| GET | /api/v1/pipelines/{id}/kafka/offsets | Get Kafka consumer offsets |
Operator Configuration
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/operator-configurations/{id} | Get config (UUID) |
| PUT | /api/v1/operator-configurations/{id} | Update config (partial, Apicurio validated) |
| DELETE | /api/v1/operator-configurations/{id} | Soft delete config |
Response Envelope
{
"status": "success",
"data": { ... },
"message": "Pipeline compiled successfully",
"errors": []
}
Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 204 | No Content (delete/purge) |
| 400 | Invalid request / validation error |
| 404 | Pipeline not found |
| 409 | Conflict (duplicate name) |
| 422 | Schema validation failed (Apicurio) |
| 500 | Internal server error |
Frontend Integration
| File | Purpose |
|---|---|
services/pipeline/pipeline.service.ts | Pipeline CRUD & lifecycle |
services/pipeline/pipeline-validation.service.ts | Client-side validation |
services/pipeline/operator-sync.service.ts | Operator config sync |
services/pipeline/pipeline-transform.service.ts | DTO transformations |
types/pipeline.ts | TypeScript types |
stores/usePipelineStore.ts | Zustand canvas state |