mirror of
https://github.com/luxfi/aml.git
synced 2026-09-24 00:25:20 +00:00
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]>
86 lines
2.4 KiB
YAML
86 lines
2.4 KiB
YAML
# goreleaser config for amld.
|
|
#
|
|
# Triggered by the release workflow on `v*` tag push. Builds native
|
|
# binaries for all six policy platforms, produces tarballs + zips +
|
|
# checksums + SBOM, and attaches them to the GitHub Release.
|
|
#
|
|
# Container images are built separately by `.github/workflows/docker.yml`
|
|
# (native multi-arch via hanzoai/.github reusable workflow).
|
|
|
|
version: 2
|
|
|
|
project_name: amld
|
|
|
|
# Reaches the before-hooks and the builds alike. The notice file has to describe
|
|
# the same graph the binary links, and blst is reachable only under cgo, so the
|
|
# setting belongs in one place rather than repeated per build.
|
|
env:
|
|
- CGO_ENABLED=0
|
|
|
|
before:
|
|
hooks:
|
|
# Never `go mod tidy` here: a release hook that can rewrite go.mod/go.sum
|
|
# makes the released artifact depend on when it was built.
|
|
- go mod download
|
|
- pnpm --dir ui install --frozen-lockfile
|
|
- pnpm --dir ui build
|
|
# Third-party license and notice texts, derived from the binary's module
|
|
# graph. Runs after the UI build so the embedui graph resolves.
|
|
#
|
|
# One notice file goes into all six archives, and the module set differs by
|
|
# platform (darwin links ncruces/go-strftime, linux links prometheus/procfs),
|
|
# so it has to be the union over the build matrix below. The other two
|
|
# distribution paths pass no -platforms: `make build` and the image each
|
|
# produce a single binary, and the host default already describes it.
|
|
- go run ./internal/notice -tags embedui -pkg ./cmd/amld -name amld
|
|
-platforms linux/amd64,linux/arm64,darwin/amd64,darwin/arm64,windows/amd64,windows/arm64
|
|
-o THIRD-PARTY-NOTICES
|
|
|
|
builds:
|
|
- id: amld
|
|
main: ./cmd/amld
|
|
binary: amld
|
|
flags:
|
|
- -trimpath
|
|
tags:
|
|
- embedui
|
|
ldflags:
|
|
- -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
|
|
goos:
|
|
- linux
|
|
- darwin
|
|
- windows
|
|
goarch:
|
|
- amd64
|
|
- arm64
|
|
|
|
archives:
|
|
- id: amld
|
|
builds: [amld]
|
|
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
|
format_overrides:
|
|
- goos: windows
|
|
format: zip
|
|
files:
|
|
- LICENSE*
|
|
- README*
|
|
- THIRD-PARTY-NOTICES
|
|
|
|
checksum:
|
|
name_template: checksums.txt
|
|
|
|
sboms:
|
|
- artifacts: archive
|
|
|
|
snapshot:
|
|
version_template: "{{ incpatch .Version }}-next"
|
|
|
|
changelog:
|
|
use: github
|
|
sort: asc
|
|
|
|
release:
|
|
draft: false
|
|
prerelease: auto
|
|
mode: append
|