ironflow-api
REST API for ironflow run management and observability. Built with Axum.
Architecture
| Module | Description |
|---|---|
entities/ |
DTOs and query parameter types (public API contract) |
routes/ |
One file per route handler |
error.rs |
Typed API errors mapped to HTTP status codes |
response.rs |
Standard response envelope { data, meta } |
state.rs |
Shared application state |
middleware.rs |
Authentication and worker token middleware |
rate_limit.rs |
Per-IP rate limiting with governor |
sse.rs |
Server-Sent Events for real-time run updates |
API endpoints
POST /api/v1/runs- Create a workflow runGET /api/v1/runs- List runs (paginated)GET /api/v1/runs/:id- Get run detailsPOST /api/v1/runs/:id/approve- Approve a pending runPOST /api/v1/runs/:id/reject- Reject a pending runPOST /api/v1/runs/:id/cancel- Cancel a running workflowPOST /api/v1/runs/:id/retry- Retry a failed runGET /api/v1/stats- Aggregate statisticsGET /api/v1/events- SSE stream for run updates
Feature flags
| Feature | Description |
|---|---|
sign-up |
Enable user registration endpoint |
dashboard |
Embed the web dashboard via rust-embed |
prometheus |
Expose API and engine metrics |
openapi |
Generate OpenAPI spec via utoipa |
License
MIT License - see LICENSE for details.