The Makefile at the repository root is the developer-facing command surface. It is a convenience layer over npm, go and docker compose, with one job that is not convenience: it exports GOEXPERIMENT=jsonv2 for every Go target, which the build requires and which is easy to forget. make help prints the current list. This page groups the targets that matter and says what each is actually for.

Setup and dependencies

Development

Build and test

make test does not include make e2e: the end-to-end scan reaches the network and takes minutes, so it is opt-in rather than part of the default suite. Run it before cutting a release. make backend-build builds the API only. The worker and the migration runner are separate go build invocations — see worker and migrate.

Docker

This is the shortest path to a running TRUSTIVAN; see Docker Compose. make images-verify runs against the images make images produces, so the two go together — the check inspects a built image and has nothing to inspect otherwise.

Database

Guards

These are the checks CI runs. They are worth knowing about because they encode architectural rules that are easy to break by accident, and because a contribution that trips one gets a failing build rather than a review comment. ci-scanner-boundary and ci-branding are the two that surprise people. The first keeps the scanning engine replaceable by making the adapter the only package allowed to import it. The second is a licence obligation in script form: it fails if upstream’s identity is stripped out of the vendored source, because removing it would breach the attribution the licence requires. Both are explained in Upstream and attribution.

Deployment

There is deliberately no make deploy. Deployment needs credentials for a specific environment, and a Makefile target holding them is a target that runs from a laptop with production access. So the procedure is documented rather than scripted, to be executed by a pipeline that owns its own secrets. make deploy-docs prints the map; see Topology for what running TRUSTIVAN actually involves.