Ops Lab Playbook: QA Automation Console
Last updated: 2026-03-08
1. Purpose and when to use this
Use this module to define QA environments/suites, create orchestrated runs, and finalize run outcomes with auditable status transitions.
2. User roles and auth modes
JWT operator: create environments/suites/runs and finalize run states.
3. Prerequisites checklist
- Primer completed: Onboarding and API Primer
HANDLEexists.JWT_TOKENhas operator access.
4. UI onboarding flow
- Open
https://app.10x.in/creator/qa-automation. - Create a QA environment.
- Create a suite bound to that environment.
- Start a QA run.
- Finalize run with pass/fail summary.
5. API workflow map
QA-01:POST /v2/handles/{handle}/qa/environmentsQA-02:POST /v2/handles/{handle}/qa/suitesQA-03:POST /v2/handles/{handle}/qa/runsQA-04:POST /v2/handles/{handle}/qa/runs/{runId}/finalize
6. cURL examples
Set module variables:
export ENV_ID="<environment-id>"
export SUITE_ID="<suite-id>"
export RUN_ID="<run-id>"
QA-01 Create environment
curl -sS -X POST "${API_BASE}/v2/handles/${HANDLE}/qa/environments" \
-H "authorization: Bearer ${JWT_TOKEN}" \
-H 'content-type: application/json' \
-d '{"name":"staging","lifecycle":"EPHEMERAL"}'
QA-02 Create suite
curl -sS -X POST "${API_BASE}/v2/handles/${HANDLE}/qa/suites" \
-H "authorization: Bearer ${JWT_TOKEN}" \
-H 'content-type: application/json' \
-d '{"name":"smoke-suite","environmentId":"'"${ENV_ID}"'","specVersion":"v1"}'
QA-03 Create run
curl -sS -X POST "${API_BASE}/v2/handles/${HANDLE}/qa/runs" \
-H "authorization: Bearer ${JWT_TOKEN}" \
-H 'content-type: application/json' \
-d '{"environmentId":"'"${ENV_ID}"'","suiteId":"'"${SUITE_ID}"'"}'
QA-04 Finalize run
curl -sS -X POST "${API_BASE}/v2/handles/${HANDLE}/qa/runs/${RUN_ID}/finalize" \
-H "authorization: Bearer ${JWT_TOKEN}" \
-H 'content-type: application/json' \
-d '{"status":"PASSED","summary":"creator suite contract run"}'
7. Expected success outputs and verification checks
- Environment and suite creation return
201IDs. - Run create returns
201with queued/orchestrating status. - Finalize returns
200and terminal state confirmation.
8. Failure modes and remediation
403on QA writes:- Remediation: verify operator access for current handle.
- Run stuck in non-terminal state:
- Remediation: inspect run artifacts/events endpoints and worker heartbeat health.
- Finalize fails due to invalid status transition:
- Remediation: read current run state before submitting terminal update.
9. Async behavior notes
- Run creation can trigger asynchronous orchestration and background runner dispatch.
- Finalization is synchronous state mutation.