Commit Graph

  • 2152395f36 Merge pull request 'deploy' (#149) from main into prod prod sneak 2026-10-22 18:52:21 +02:00
  • 20a29e389d Merge pull request 'next into main' (#87) from next into main main sneak 2026-10-22 18:25:14 +02:00
  • 71ee2aeda7 Log the start-up checkpoint's figures under their own names (closes #117) next clawbot 2026-10-20 04:32:08 +02:00
  • 8d16bf9ea6 Add the Rationale section to README (closes #121) clawbot 2026-10-20 04:24:41 +02:00
  • 651a9e22f6 Treat a path with AS 0 anywhere as a withdrawal (closes #141) clawbot 2026-10-20 04:07:41 +02:00
  • 9280e2eb2c Keep the database files, logs and binaries out of the build context (closes #120) clawbot 2026-10-20 03:58:56 +02:00
  • 100689a4fb Keep prefixes that do not parse out of the prefix tables (closes #114) clawbot 2026-10-20 03:51:10 +02:00
  • e13240cb04 Show the MIT licence in the page footers (closes #119) clawbot 2026-10-20 03:46:44 +02:00
  • 55ecb22846 Bound the WHOIS fetcher's success and error time lists (closes #118) clawbot 2026-10-20 03:38:51 +02:00
  • bae5a14d76 Reset the peering handler's dropped_paths figure after each log line (closes #116) clawbot 2026-10-20 03:28:06 +02:00
  • 467c295f94 Handle an announcement without an origin like a replacement (closes #113) clawbot 2026-10-20 03:25:41 +02:00
  • 2f238236bd Read the drop counter atomically and set the WHOIS fetcher before serving (closes #115) clawbot 2026-10-20 03:18:00 +02:00
  • f489321e3a Answer HEAD requests and give 405 a plain message (closes #111) clawbot 2026-10-20 03:06:23 +02:00
  • 444457bcf8 Store a new row's earliest timestamp as first_seen (closes #112) clawbot 2026-10-20 02:59:17 +02:00
  • c4dadd1477 Leave SIGINT and SIGTERM to fx (closes #131) clawbot 2026-10-20 02:34:04 +02:00
  • c7f2e5db1d Bound the IP lookup's address list and name lookups (closes #110) clawbot 2026-10-20 02:23:49 +02:00
  • 09d3073fa5 Bound each shutdown stage by the stop deadline (closes #100) clawbot 2026-10-20 02:15:10 +02:00
  • 237f73fc49 Answer 500, not 404, when the IP lookup cannot read the database (closes #109) clawbot 2026-10-20 01:49:34 +02:00
  • 89bdda18a5 Add the HTTP hardening the policy requires before 1.0 (closes #108) clawbot 2026-10-20 01:36:18 +02:00
  • 76c2e523b5 Checkpoint without waiting on readers and log a busy checkpoint (closes #102) clawbot 2026-10-20 01:06:51 +02:00
  • 28f60500cb Read the AS page from bounded lookups (closes #104) clawbot 2026-10-20 00:52:32 +02:00
  • 69d477159c Cap WHOIS answers and follow referrals only to WHOIS servers (closes #106) clawbot 2026-10-20 00:15:14 +02:00
  • abdc327c4c Retry a WHOIS lookup that failed instead of storing it as complete (closes #105) clawbot 2026-10-20 00:02:34 +02:00
  • a173f4d159 Keep a peer-down until its route delete succeeds (closes #101) clawbot 2026-10-19 23:39:28 +02:00
  • 176f9708b8 Build and test with a supported Go release (closes #107) clawbot 2026-10-19 23:19:21 +02:00
  • d2a6e30360 Percent-decode URL parameters before parsing them (closes #103) clawbot 2026-10-19 23:02:00 +02:00
  • ef32082339 Bring README and TODO.md up to date with the code (closes #72) clawbot 2026-10-19 16:09:22 +02:00
  • d84dd56460 Make live route writes cheaper so the prefix handler keeps up (closes #96) clawbot 2026-10-19 15:43:38 +02:00
  • 5806ddaef7 Run database maintenance under the database lock (closes #94) clawbot 2026-10-19 13:26:36 +02:00
  • 28df9f8d49 Drain the handler queues before stopping the handlers on shutdown (closes #69) clawbot 2026-10-19 13:08:48 +02:00
  • 2712183f21 Keep a trailing AS set out of the origin and the peerings (closes #75) clawbot 2026-10-19 12:50:05 +02:00
  • 8742f1b44d Let bgp_peer_count drop to 0 (closes #92) clawbot 2026-10-19 12:41:15 +02:00
  • 3667d09800 Count every peer the feed has heard from in bgp_peer_count (closes #74) clawbot 2026-10-19 12:24:49 +02:00
  • b89987e356 Re-vendor the shared files from sneak/prompts at 0653579 (closes #52) clawbot 2026-10-19 12:10:11 +02:00
  • 4f515d718b Read feed lines up to 1 MiB (closes #76) clawbot 2026-10-19 11:49:47 +02:00
  • 825afa2ebe Remove a peer's live routes when its session goes down (closes #56) clawbot 2026-10-19 11:40:31 +02:00
  • a0ddc0d254 Sample the prefix-length pages with bounded lookups, each prefix once (closes #66) clawbot 2026-10-19 10:29:01 +02:00
  • ae6d885a5a Answer 504, not 408, when a request outlasts its time limit (closes #70) clawbot 2026-10-19 10:02:23 +02:00
  • 43c61ee0d0 Write each handler batch from its flush goroutine, outside the mutex (closes #65) clawbot 2026-10-19 09:45:24 +02:00
  • f7c88c2496 Identify a live route by prefix and peer (closes #55) clawbot 2026-10-19 09:13:25 +02:00
  • e0b9c2685f Reconnect when RIS Live ends or stalls the stream (closes #53) clawbot 2026-10-14 19:42:57 +02:00
  • ad4c3d91f1 Show the prefix page's origin names from the prefix query (closes #67) clawbot 2026-10-14 19:08:58 +02:00
  • b4dee48401 Exit with status 1 when the web server cannot listen (closes #73) clawbot 2026-10-14 18:26:04 +02:00
  • 616f13071f Parse the prefix on the prefix pages before looking it up (closes #71) clawbot 2026-10-14 17:24:02 +02:00
  • 521c632087 Ignore routes shorter than /8 or /16 in the IP lookup (closes #57) clawbot 2026-10-14 17:23:51 +02:00
  • 77a708d819 Apply each peer's last update for a prefix in a batch (closes #54) clawbot 2026-10-14 17:09:13 +02:00
  • a43935308e Count every reconnect in reconnect_count (closes #68) clawbot 2026-10-14 15:59:15 +02:00
  • 00e51d284f Merge pull request 'Next milestone: production memory under 5 GiB, ready for upaas' (#6) from next into main sneak 2026-10-06 00:34:48 +02:00
  • a9b68608c6 Serve the /api/v1/stats prefix distribution from memory (closes #30) clawbot 2026-10-03 18:43:58 +02:00
  • 44a5f4cdca Create new databases with auto_vacuum incremental (closes #43) clawbot 2026-10-03 17:09:29 +02:00
  • 32704c601e Look up IP addresses by prefix at each mask length (closes #48) clawbot 2026-10-03 16:04:38 +02:00
  • 7322f936e4 Stamp the git tag or short commit in a plain docker build (closes #46) clawbot 2026-10-02 08:17:35 +02:00
  • 6422d9fa0c Container makes its data directory usable itself (closes #42) clawbot 2026-09-29 12:23:42 +02:00
  • 057e0bd9a9 Add a .dockerignore (closes #39) clawbot 2026-09-29 07:42:20 +02:00
  • 87a3bc115e README: license and author up front; bring TODO.md up to date (closes #38) clawbot 2026-09-29 07:06:30 +02:00
  • d28a59023a Add MIT LICENSE (closes #1) clawbot 2026-09-29 05:05:35 +02:00
  • 1ac24669d3 Stop the streamer without sending on closed queues (closes #34) clawbot 2026-09-28 21:42:33 +02:00
  • 6187ac8503 Let the daemon receive docker stop's signal itself (closes #33) clawbot 2026-09-28 21:08:33 +02:00
  • f2a9e90625 Refuse invalid settings at start, health check follows PORT (closes #31) clawbot 2026-09-28 20:08:42 +02:00
  • df9e23d503 Serve /api/v1/stats counts from realtime in-memory counters (closes #27) clawbot 2026-09-22 09:41:16 +02:00
  • cd59cb8a8d Serve /api/v1/stats from a cache and index-scan the route timestamps (closes #27) issue-27-cached-stats sneak 2026-09-21 23:28:28 +00:00
  • 3898daad4e Add _txlock=immediate so batch writes wait instead of dropping (closes #25) clawbot 2026-09-21 20:12:33 +02:00
  • 08f060045b Cap glibc malloc arenas to keep non-Go RSS bounded (closes #23) clawbot 2026-09-21 19:29:31 +02:00
  • 658aadbb81 Set GOMEMLIMIT in the image and document the memory budget (closes #13) clawbot 2026-09-21 17:29:29 +02:00
  • efaf79c4e3 Shrink the four handler queues from 100,000 to 20,000 (closes #11) clawbot 2026-09-21 16:29:39 +02:00
  • 63d62b7bc1 Fix two goroutine leaks: stats handlers on timeout, streamer tickers on reconnect (closes #12) clawbot 2026-09-21 16:29:32 +02:00
  • cb2374f033 Stop decoding unused Community and Raw fields of RIS messages (closes #9) clawbot 2026-09-21 16:12:41 +02:00
  • 6d8ae7f592 Add .editorconfig and Gitea CI workflow (closes #14) clawbot 2026-09-21 16:01:14 +02:00
  • 211fdad9c0 Bound peering AS-path map and swap it instead of copying (closes #10) clawbot 2026-09-21 16:01:08 +02:00
  • 594e7a504b Bound SQLite memory across the whole connection pool (closes #8) clawbot 2026-09-21 15:46:34 +02:00
  • 54014c88c8 Run make check inside the Docker build with a pinned lint stage (closes #5) clawbot 2026-09-21 09:35:16 +02:00
  • b0cd884019 Skip live network feed test under -short for deterministic make check (closes #2) clawbot 2026-09-21 09:05:33 +02:00
  • ddf0b2fa99 Refresh vendored REPO_POLICIES.md sneak 2026-07-07 01:53:25 +02:00
  • 583c16a65c Adopt scripts-to-rule-them-all: script/ entrypoints, Makefile shims sneak 2026-07-07 00:19:23 +02:00
  • 0747165ab1 Add standard Workflow section to TODO.md sneak 2026-07-06 21:06:41 +02:00
  • b144e1515b Add TODO.md sneak 2026-07-06 20:35:48 +02:00
  • 68cc06690b Use TRUNCATE mode for WAL checkpoints sneak 2026-01-01 06:49:58 -08:00
  • 4f62b280c5 Reduce WAL checkpoint interval from 30s to 5s sneak 2026-01-01 06:48:58 -08:00
  • f1d7c21478 Run WAL checkpoint on startup with logging sneak 2026-01-01 06:38:15 -08:00
  • a163449a28 Improve request logging and make health check lightweight sneak 2026-01-01 06:06:20 -08:00
  • 8f524485f7 Add periodic WAL checkpointing to fix slow queries sneak 2026-01-01 05:42:03 -08:00
  • c6fa2b0fbd Fix container to run app as routewatch user sneak 2025-12-31 16:17:59 -08:00
  • f788a0dbf9 set state dir properly in container sneak 2025-12-31 15:58:35 -08:00
  • aebdd1b23e Add oldest and newest route timestamps to status page sneak 2025-12-31 15:47:57 -08:00
  • 8fc10ae98d Fix NULL handling in GetWHOISStats query sneak 2025-12-31 15:17:09 -08:00
  • d27536812f Remove heading from status page sneak 2025-12-31 15:11:03 -08:00
  • 58b5333c6c Fix navbar and simplify templates sneak 2025-12-31 15:10:24 -08:00
  • 4284e923a6 Add navbar and home page with search functionality sneak 2025-12-31 14:56:02 -08:00
  • 45810e3fc8 Fix prefix URL routing for encoded CIDR notation sneak 2026-01-01 05:37:12 +07:00
  • 27909e021f ci sneak 2025-12-31 06:14:44 +01:00
  • c116b035bd Add status page enhancements with new metrics and footer sneak 2025-12-30 14:50:54 +07:00
  • 1115954827 Fix prefix URL routing to handle CIDR notation with slashes sneak 2025-12-30 14:41:57 +07:00
  • 9043cf9bc0 Add connection duration and reconnect count to status page sneak 2025-12-30 14:33:37 +07:00
  • 3a9ec98d5c Add structured HTTP request logging and increase timeouts sneak 2025-12-30 13:37:54 +07:00
  • 0ae89c33db Fix Dockerfile: vendor dependencies after copying source sneak 2025-12-30 13:16:35 +07:00
  • 8e79b8c074 Add Dockerfile with multi-stage build and source archive sneak 2025-12-29 16:07:11 +07:00
  • 5d7358fce6 Clean up auto_vacuum comment for fresh database deployment sneak 2025-12-29 16:02:27 +07:00
  • d7e6f46320 Switch to incremental vacuum for non-blocking space reclamation sneak 2025-12-29 16:00:33 +07:00
  • da6d605e4d Add production hardening: health check, streamer panic fix, db maintenance sneak 2025-12-29 15:55:54 +07:00
  • d2041a5a55 Add WHOIS stats to status page with adaptive fetcher improvements sneak 2025-12-27 16:20:09 +07:00