Getting Started
Build the app:
make all
Run focused tests:
make test
Run local stack:
docker compose up --build
curl -i http://localhost:9999/ready
Smoke the fraud endpoint:
curl -i -X POST http://localhost:9999/fraud-score \
-H 'Content-Type: application/json' \
--data '{"id":"tx-smoke","transaction":{"amount":1,"installments":1,"requested_at":"2026-03-11T20:23:35Z"},"customer":{"avg_amount":1,"tx_count_24h":0,"known_merchants":[]},"merchant":{"id":"MERC-001","mcc":"5912","avg_amount":1},"terminal":{"is_online":false,"card_present":true,"km_from_home":0},"last_transaction":null}'
Build or rebuild index data without Docker when the reference dataset is present:
./build/build-index resources/references.json.gz /tmp/index.bin
Runtime search controls are environment variables in docker-compose.yml, such
as INDEX_NPROBE, repair range knobs, and exact fallback controls. Candidate
changes must pass local tests and CI benchmark correctness before promotion.
Run docs locally:
cd docs
bun install
bun run dev