Xe Iaso
f032d5d0ac
feat: writing logs to the filesystem with rotation support ( #1299 )
...
* refactor: move lib/policy/config to lib/config
Signed-off-by: Xe Iaso <me@xeiaso.net >
* refactor: don't set global loggers anymore
Ref #864
You were right @kotx, it is a bad idea to set the global logger
instance.
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(config): add log sink support
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: update spelling
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore(test): go mod tidy
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: update spelling
Signed-off-by: Xe Iaso <me@xeiaso.net >
* docs(admin/policies): add logging block documentation
Signed-off-by: Xe Iaso <me@xeiaso.net >
* docs: update CHANGELOG
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(cmd/anubis): revert this change, it's meant to be its own PR
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: go mod tidy
Signed-off-by: Xe Iaso <me@xeiaso.net >
* test: add file logging smoke test
Assisted-by: GLM 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix: don't expose the old log file time format string
Signed-off-by: Xe Iaso <me@xeiaso.net >
---------
Signed-off-by: Xe Iaso <me@xeiaso.net >
2025-11-21 11:46:00 -05:00
Xe Iaso
9affd2edf4
chore: expose thoth in lib ( #911 )
...
Imports a patch previously exclusive to Botstopper.
Signed-off-by: Xe Iaso <me@xeiaso.net >
2025-07-25 10:58:30 -04:00
Xe Iaso
7aa732c700
fix(config): actually load threshold config ( #696 )
...
* fix(config): actually load threshold config
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: spelling
Signed-off-by: Xe Iaso <me@xeiaso.net >
* test(lib): fix test failures
Signed-off-by: Xe Iaso <me@xeiaso.net >
---------
Signed-off-by: Xe Iaso <me@xeiaso.net >
2025-06-19 17:13:01 -04:00
Xe Iaso
e3826df3ab
feat: implement a client for Thoth, the IP reputation database for Anubis ( #637 )
...
* feat(internal): add Thoth client and simple ASN checker
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(thoth): cached ip to asn checker
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: go mod tidy
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(thoth): minor testing fixups, ensure ASNChecker is Checker
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(thoth): make ASNChecker instances
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(thoth): add GeoIP checker
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(thoth): store a thoth client in a context
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: refactor Checker type to its own package
Signed-off-by: Xe Iaso <me@xeiaso.net >
* test(thoth): add thoth mocking package, ignore context deadline exceeded errors
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(thoth): pre-cache private ranges
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(lib/policy/config): enable thoth ASNs and GeoIP checker parsing
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore(thoth): refactor to move checker creation to the checker files
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(policy): enable thoth checks
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat(thothmock): test helper function for loading a mock thoth instance
Signed-off-by: Xe Iaso <me@xeiaso.net >
* feat: wire up Thoth, make thoth checks part of the default config
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: spelling
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(thoth): mend staticcheck errors
Signed-off-by: Xe Iaso <me@xeiaso.net >
* docs(admin): add Thoth docs
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore(policy): update Thoth links in error messages
Signed-off-by: Xe Iaso <me@xeiaso.net >
* docs: update CHANGELOG
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: spelling
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore(docs/manifest): enable Thoth
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: add THOTH_INSECURE for contacting Thoth over plain TCP in extreme circumstances
Signed-off-by: Xe Iaso <me@xeiaso.net >
* test(thoth): use mock thoth when credentials aren't detected in the environment
Signed-off-by: Xe Iaso <me@xeiaso.net >
* chore: spelling
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(cmd/anubis): better warnings for half-configured Thoth setups
Signed-off-by: Xe Iaso <me@xeiaso.net >
* docs(botpolicies): link to Thoth geoip docs
Signed-off-by: Xe Iaso <me@xeiaso.net >
---------
Signed-off-by: Xe Iaso <me@xeiaso.net >
2025-06-16 11:57:32 -04:00
Xe Iaso
f2db43ad4b
feat: implement challenge registry ( #607 )
...
* feat: implement challenge method registry
This paves the way for implementing a no-js check method (#95 ) by making
the challenge providers more generic.
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(lib/challenge): rename proof-of-work package to proofofwork
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(lib): make validated challenges a CounterVec
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(lib): annotate jwts with challenge method
Signed-off-by: Xe Iaso <me@xeiaso.net >
* test(lib/challenge/proofofwork): implement tests
Signed-off-by: Xe Iaso <me@xeiaso.net >
* test(lib): add smoke tests for known good and known bad config files
Signed-off-by: Xe Iaso <me@xeiaso.net >
* docs: update CHANGELOG
Signed-off-by: Xe Iaso <me@xeiaso.net >
* fix(lib): use challenge.Impl#Issue when issuing challenges
Signed-off-by: Xe Iaso <me@xeiaso.net >
---------
Signed-off-by: Xe Iaso <me@xeiaso.net >
2025-06-04 02:01:58 +00:00