4 Commits

Author SHA1 Message Date
e2fd9b3070
feat(net/ipcohort): IP block/allow cohort filter
New package for matching IPs against cohort lists (single IPs and
networks, in separate files or combined) with inbound/outbound/whitelist
semantics. Supports the bitwire-it/ipblocklist data shape out of the box
and is meant to be paired with gitshallow or httpcache for periodic
refresh. Includes README, ipcohort-contains CLI, and tests.
2026-04-30 16:49:01 -06:00
990794d546
feat(net/geoip): MaxMind GeoLite2 reader with auto-update
New package wrapping oschwald/geoip2-golang to open MaxMind .mmdb databases
directly out of cached <edition>_LATEST.tar.gz files (no Transform, no
intermediate extracted mmdb). ParseConf reads MaxMind's GeoIP.conf format
for AccountID + LicenseKey. Includes geoip-update CLI, integration test,
and a copy of the MMDB binary format spec.
2026-04-30 16:48:50 -06:00
831ab0752e
feat(net/httpcache): ETag/Last-Modified HTTP cache for periodic data
New package for fetching files from HTTP with conditional-GET semantics
and a sidecar metadata file that persists ETag/Last-Modified across
restarts. Splits connection vs download timeouts, supports custom auth
headers (stripped on cross-origin redirect), and exposes sentinel errors
for callers branching on failure mode. Integration tests included.
2026-04-30 16:48:44 -06:00
8190a41a3b
feat(net/gitshallow): incremental shallow git-repo mirroring
New package for keeping a local mirror of a remote git repo via shallow
fetch+reset (not pull --ff-only, which loses force-pushed history). Adds
MaxAge gate via FETCH_HEAD mtime to skip redundant network calls under
concurrent callers, and a git-shallow-sync CLI. Includes integration
tests plus a force-push regression test.
2026-04-30 16:48:39 -06:00