Sign in, choose a project, author a test, run an approved design, and read the result the server recorded.
Use the web sign-in page for the console. Use the login endpoint for an API client. The current OpenAPI contract advertises bearer JWT authentication.
BASE_URL="https://your-cadlytic-host"
curl -sS -X POST "$BASE_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"<YOUR_EMAIL>","password":"<YOUR_PASSWORD>"}'Read access_token from the successful response. Do not print it or save it in source control. Send it as a bearer token.
TOKEN="<YOUR_TOKEN>"
curl -sS "$BASE_URL/api/auth/me" \
-H "Authorization: Bearer $TOKEN"The cloud service holds projects, requirements, test cases, designs, run records, and evidence. It decides whether a run may be dispatched.
A runner process registers and sends heartbeats. It executes work in the environment it can reach. Ask your administrator for the runner setup and service access.
A registered row is not proof that a runner can take work. Read liveness and dispatchable. Run only when the server reports dispatchable: true.
Open Quality → Runs. Read three facts separately:
For a ticket, the test-result endpoint composes the recorded result. The evidence endpoint lists its artifacts. Do not infer a verdict from an artifact count.
PROJECT_ID="<PROJECT_ID>"
curl -sS "$BASE_URL/api/v1/projects" \
-H "Authorization: Bearer <YOUR_TOKEN>"
curl -sS "$BASE_URL/api/v2/requirements?projectId=$PROJECT_ID" \
-H "Authorization: Bearer <YOUR_TOKEN>"
curl -sS "$BASE_URL/api/v2/qa/tests/cases?projectId=$PROJECT_ID&page=0&size=20" \
-H "Authorization: Bearer <YOUR_TOKEN>"
curl -sS "$BASE_URL/api/v2/quality/designs?projectId=$PROJECT_ID" \
-H "Authorization: Bearer <YOUR_TOKEN>"
curl -sS "$BASE_URL/api/v2/quality/executions/runs?projectId=$PROJECT_ID&page=0&size=20" \
-H "Authorization: Bearer <YOUR_TOKEN>"
curl -sS "$BASE_URL/api/v2/quality/runners" \
-H "Authorization: Bearer <YOUR_TOKEN>"The server owns readiness. Show its unrunnable_reason, blocked_reason, or failure sentence without replacing it.
| State | Meaning | What to do |
|---|---|---|
| Draft or not approved | The design has not passed the human approval gate. | Save executable content, review it, then approve the design. |
| unrunnable_reason | The design is missing executable content, SQL, a target, or another required input. | Follow the server sentence. It names the missing input and the action that supplies it. |
| No dispatchable runner | A runner may be registered but offline, stale, at capacity, or missing the required label. | Bring the matching runner online and wait until dispatchable is true. |
| blocked_reason | The dispatch gate refused the run. No test result exists. | Fix the condition in the server sentence, then dispatch again. |
| queued or running | The request is still in progress. It is not a pass or a failure. | Wait for a terminal execution state. |
| error or aborted | The run ended without a test verdict. | Read the run failure reason. Repair the environment or execution problem, then retry. |
| failed | The test ran and recorded a failed outcome. | Open the run and inspect its result and evidence. |
This list comes from the authenticated OpenAPI document served by the local backend. Query parameter names are case-sensitive. Request bodies use snake_case.
| Method | Path | Purpose |
|---|---|---|
| POST | /api/auth/login | Sign in. The response may require MFA. |
| GET | /api/auth/me | Read the signed-in user. |
| GET | /api/v1/projects | List projects visible to the signed-in user. |
| GET | /api/v2/requirements?projectId={projectId} | List requirements for one project. |
| GET | /api/v2/qa/tests/cases?projectId={projectId} | List test cases for one project. |
| POST | /api/v2/qa/tests/cases?projectId={projectId} | Create a draft test case. |
| GET | /api/v2/quality/designs?projectId={projectId} | List executable test designs. |
| POST | /api/v2/quality/designs/{id}/design-content | Save executable content before approval. |
| POST | /api/v2/quality/designs/{id}/approve | Approve a saved design. |
| GET | /api/v2/quality/designs/{id}/execution-state | Read run readiness and the latest outcome. |
| POST | /api/v2/quality/designs/{id}/execute | Dispatch an approved design. |
| GET | /api/v2/quality/executions/runs?projectId={projectId} | List execution records for a project. |
| GET | /api/v2/quality/runners | Read runner liveness and dispatchability. |
| POST | /api/v2/quality/runners/register | Register a runner process. |
| POST | /api/v2/quality/runners/{runnerId}/heartbeat | Keep a registered runner live. |
| GET | /api/v2/quality/tickets/{ticketId}/test-result | Read the composed test result for a ticket. |
| GET | /api/v2/quality/tickets/{ticketId}/evidence | List evidence captured for a ticket. |