Short path to prove the full stack end-to-end. Assumes Docker Desktop (or compatible engine) is running and Java 21 is installed.
-
cp .env.example .env— Creates local env defaults for Compose and tools. Outcome:.envexists with Postgres and Backline-related variables. -
./gradlew clean build(Windows:.\gradlew.bat clean build) — Compiles all modules and runs tests. Outcome: build finishes successfully (or note any failing module before demoing). -
docker compose up --build -d— Starts Postgres, API, and worker. Outcome: containers are healthy; API Flyway migrations apply on first start. -
./gradlew :apps:cli:installDist— Produces thebacklinelauncher underapps/cli/build/install/backline/bin/. Outcome: CLI binary exists. -
Add CLI to
PATH— Unix:export PATH="$PWD/apps/cli/build/install/backline/bin:$PATH". PowerShell:$env:Path = "$PWD\apps\cli\build\install\backline\bin;$env:Path". Outcome:backlineresolves in the shell. -
backline doctor— Verifies config and API reachability (BACKLINE_API_URL). Outcome: doctor reports API OK whenhttp://localhost:8080is reachable. -
backline sample init— Materializes sample files (skips if already present, depending on CLI flags). Outcome:examples/sample-api/backline.ymlexists for editing or reference. -
backline sample serveordocker compose --profile demo up -d sample-api— Runs the sample HTTP service on 8081. Outcome:curl http://localhost:8081/healthreturns JSON with"status":"UP". -
cd examples/sample-api && backline run— Submits a run from the canonical config. Outcome: run completes with at least one failed check (broken-endpointvs intentional 500) and passing checks for health, user fetch, and schema-change (stable observed contract). -
backline history— Lists recent runs from the API. Outcome: the new run appears with expected status. -
Optional observed-contract drift — Switch the sample schema mode, then run again and diff:
curl -s -X POST http://localhost:8081/schema-change/mode \ -H 'Content-Type: application/json' \ -d '{"mode":"breaking-remove"}' backline run backline diff <newRunId>
Outcome:
schema-changeshows breaking contract drift (removed$.name) without claiming OpenAPI validation. Reset with{"mode":"stable"}when done. -
backline diff <runId>— Shows regression diff vs the previous completed run. Outcome: structured diff output including contract sections when applicable (or a clear message when no previous baseline exists). -
backline report <runId>— Writes a Markdown report and prints its path. Outcome: report file on disk contains run summary, check summary, failures, latency, diff (with contract drift when present), limitations link, and timestamp.
For raw HTTP debugging of the same data, use api-examples.md.