- PostgreSQL (
docker start backline-postgresordocker compose up -d postgres) - API server (
./gradlew :apps:api:bootRun) - Worker (
./gradlew :apps:worker:bootRun --args="--spring.main.keep-alive=true") - Optional sample API (
./gradlew :apps:sample-api:bootRunorbackline sample serve)
| Service | URL |
|---|---|
| API | http://localhost:8080/actuator/health |
| Sample API | http://localhost:8081/health |
| OpenAPI | http://localhost:8080/swagger-ui/index.html |
Worker has no HTTP port. Confirm it stays alive and logs Worker started.
Run before CI or local demos to verify prerequisites:
backline doctor
backline doctor --check-sample-apiEach FAIL line includes a fix: remediation hint. Exit code 1 when any check fails.
For E2E flows that hit the sample API, use --check-sample-api to probe http://localhost:8081/health.
PostgreSQL is not running. Start Postgres before API or worker.
Pass keep-alive:
./gradlew :apps:worker:bootRun --args="--spring.main.keep-alive=true"Confirm API is running on port 8080 and BACKLINE_API_URL (if set) is correct. Run backline doctor; output includes fix: hints (start Postgres, then API).
Policy thresholds failed after a terminal run. With --policy strict, any newly failing or errored check fails enforcement. Exit 0 only when the run and policy both pass; exit 5 is policy-only failure (run may still be PASSED or FAILED). Use backline report <runId> or inspect violations printed to stderr.
Possible worker crash. Stale recovery requeues or marks ERROR based on retry policy. Inspect runs.last_error and run_events.
Docker is required. Start Docker and rerun ./gradlew test.
API integration tests share one canonical base: dev.backline.api.support.PostgresTestBase (via PostgresTestContainers). Worker tests use PostgresWorkerTestBase.
In CI (CI=true), missing Docker fails the build instead of skipping. CI=true ./scripts/audit-strength.sh also fails if any JUnit skip is reported.
curl -s http://localhost:8080/api/runs/<runId> | jq .
curl -s http://localhost:8080/api/runs/<runId>/results | jq ../gradlew check
./scripts/audit-strength.sh
./scripts/check-guardrails.shSee audit-playbook.md for details.