You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added an opt-in PostgreSQL backend for self-hosted brokers
Selects PostgreSQL automatically when the database path or BGPKIT_BROKER_POSTGRES_URL begins with pg://, postgres://, or postgresql:// (case-insensitive); any other path is treated as a local SQLite file
Configurable connection pool via BGPKIT_BROKER_POSTGRES_MAX_CONNECTIONS
SQLite remains the default backend; the container image is backend-neutral unless explicitly configured
PostgreSQL bootstrap requires pre-seeding the schema; SQLite users are unaffected
Added a unified DatabaseTarget configuration path so the backend can be selected from either the positional CLI argument or environment variables (BGPKIT_BROKER_POSTGRES_URL, BGPKIT_BROKER_SQLITE_PATH)
Updates
Upgraded direct dependencies to current releases
reqwest 0.12 -> 0.13 (rustls-tls-native-roots feature replaced by rustls)
Resolved the rsa (RUSTSEC-2023-0071) advisory via the sqlx 0.9 upgrade; fxhash unmaintained warning removed via scraper 0.27
Updated the Docker base image from rust:1.90 to rust:1.97
CI now publishes multi-architecture (linux/amd64, linux/arm64) container images
Updated route-views2 collector URL from https://archive.routeviews.org/bgpdata to https://archive.routeviews.org/route-views2/bgpdata to match RouteViews' directory rename (announcement)
The old /bgpdata path remains available via HTTP symlink, but rsync users must use the new path
Existing databases need a manual UPDATE collectors SET url = 'https://archive.routeviews.org/route-views2/bgpdata' WHERE name = 'route-views2'
Bug fixes
Prevent storing entries with Unix epoch timestamp (1970-01-01) (fixes #97)
Added MIN_VALID_TIMESTAMP constant (1998-01-01) in crawler/common.rs
Crawlers filter out entries with timestamps before 1998-01-01 during parsing
Fixed slow queries when no timestamp filters are provided
Added default 30-day time window when neither ts_start nor ts_end is specified
Prevents full table scans that caused timeouts on large databases
Returns recent data by default instead of starting from 1970
Reduced the default maximum from 10 to 2 connections per pool
Set SQLite's suggested per-connection page-cache maximum to 640 KiB
Added BGPKIT_BROKER_SQLITE_MAX_CONNECTIONS and BGPKIT_BROKER_SQLITE_CACHE_SIZE_KIB overrides
Bounded memory used by broad SQLite searches
Added a covering collector/timestamp/type index for exact counts
Restored SQL-level LIMIT/OFFSET with the composite index so paginated queries stop early instead of streaming the full result set
Previous streaming approach held a pooled connection for the entire scan, exhausting the 2-connection pool under concurrent broad searches and hanging the service
Added comma-separated collector_id filtering to the /latest endpoint
Fixed S3 backup uploads on endpoints that require path-style object keys by updating oneio to 0.24.2