5 Commits

Author SHA1 Message Date
cf5632e5d6
feat(ipcohort-contains): add --format pretty|tsv|csv|json
Auto-detects format when --format is empty: pretty when stdout is a TTY,
tsv when piped/redirected. JSON emits an array of {ip, found} objects;
CSV adds an 'ip,status' header row.
2026-04-30 17:27:10 -06:00
d37bd1d08c
docs(ipcohort): update README for current API + sync/dataset
Fixes API drift (Init/Sync no longer take a force arg) and adds the
recommended sync/dataset pattern alongside the manual atomic.Pointer
fallbacks for both gitshallow and httpcache.
2026-04-30 17:17:30 -06:00
f846445a65
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 17:13:27 -06:00
0659004ddf
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 17:07:06 -06:00
846cfe0070
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 17:07:06 -06:00