Files
aml/Makefile
T
zeekayandHanzo Dev 07e69e3ee2 luxfi/aml — real-time AML/CFT transaction monitoring
A Go AML engine: a configurable rules DSL over expr-lang with weight-of-evidence
scoring, sanctions screening against OFAC/UN/EU/HMT, case management, and scored
alerting. Single binary, embedded SQLite per org, embedded UI.

Surface (all /v1, org-scoped):
  /v1/aml/transactions        ingest and score
  /v1/aml/rules  /rules/test  the rules DSL and its dry-run
  /v1/aml/sanctions/search    list screening
  /v1/aml/cases               investigation workflow
  /v1/aml/health

Build: make build produces one static binary with the UI embedded (embedui tag);
bare Go tooling needs no Node. Third-party license and notice texts are generated
from the module graph the linker actually walks and ship beside every artifact.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 22:51:25 -07:00

37 lines
1.2 KiB
Makefile

.PHONY: build ui notice test vet run clean
VERSION := $(shell git describe --tags --always 2>/dev/null || echo dev)
LDFLAGS := -ldflags="-s -w -X main.version=$(VERSION)"
NOTICE := THIRD-PARTY-NOTICES
# The product binary embeds the admin dashboard, so it always builds the UI
# first. Bare `go build`/`go vet`/`go test`/`go install` need no UI: without
# the embedui tag ui/embed.go supplies a placeholder tree.
build: ui notice
CGO_ENABLED=0 go build -trimpath -tags embedui $(LDFLAGS) -o amld ./cmd/amld/
ui:
pnpm --dir ui install --frozen-lockfile
pnpm --dir ui build
# Third-party license and notice texts for the binary, derived from its module
# graph. Generated with the same tags and CGO setting the product ships with, so
# it describes the artifact that is distributed and not some other graph — which
# also means dist/ has to exist first for the embed directive to resolve. No
# -platforms: this target builds one binary, for this host.
notice: ui
CGO_ENABLED=0 go run ./internal/notice -tags embedui -pkg ./cmd/amld -name amld -o $(NOTICE)
test:
go test -race -count=1 ./...
vet:
go vet ./...
run: build
./amld serve --dev
clean:
rm -f amld $(NOTICE)
rm -rf data/ ui/dist/