GET |
/api/workflows/{workflow_id}/evals/cases |
List a workflow’s test cases. Any member can view. |
POST |
/api/workflows/{workflow_id}/evals/cases |
Create a test case. Members and owners. |
DELETE |
/api/workflows/{workflow_id}/evals/cases/{case_id} |
Delete a test case. Members and owners. Past runs keep their snapshot (eval_results.eval_test_case_id goes NULL). |
PATCH |
/api/workflows/{workflow_id}/evals/cases/{case_id} |
Update a test case. Members and owners. Past runs are unaffected (they graded against their snapshot). |
GET |
/api/workflows/{workflow_id}/evals/compare |
Run-vs-run comparison — the version FK makes this a pure query; no schema, no new state. VIEWER, like the other reads. |
GET |
/api/workflows/{workflow_id}/evals/runs |
List recent eval runs (denormalized summaries — single query). |
POST |
/api/workflows/{workflow_id}/evals/runs |
Start a batch eval run. Members and owners. |
GET |
/api/workflows/{workflow_id}/evals/runs/{run_id} |
One run with its per-case results (execution_id deep-links). |
POST |
/api/workflows/{workflow_id}/evals/runs/{run_id}/cancel |
Request cancellation of an in-flight eval run. Members and owners. |
GET |
/api/workflows/{workflow_id}/evals/settings |
Suite-level settings: schedule + gate. Any member can view. |
PATCH |
/api/workflows/{workflow_id}/evals/settings |
Update schedule (MEMBER), fixture dataset (MEMBER, #670) and/or gate config (OWNER — disabling the gate is equivalent to overriding it, so it needs the same authority). |
POST |
/auth/eval-run-ticket/{run_id} |
Short-lived ticket for the live-progress WebSocket. |