next into main #202

Open
clawbot wants to merge 4 commits from next into main
Collaborator

On next since the last merge to main:

  • / has cards with the newest and oldest routes and ASes, the largest AS, bogon and multiple-origin counts with their own list pages, and well-known networks.
  • The client address now comes from X-Forwarded-For when the direct peer is a trusted proxy, and with TRUSTED_PROXIES unset every RFC 1918 address is trusted, so /ip/ shows the visitor behind your traefik with no setting (#198). TRUSTED_PROXIES set but empty trusts nothing.
  • Every IP lookup result has the same fields, for a name or an address, with num_origins and origin_asns added; an address with no route yet has its routing fields null (#200).
  • No API value carries its unit inside a string any more: execution_time_ms, uptime_seconds, connection_duration_seconds, memory_usage_bytes and current_interval_seconds replace the old fields. API_POLICIES.md is vendored (#199).

For a deploy: nothing to set. Your earlier deploy kept the old database file, now 58 GB of per-peer tables nothing reads; deleting it frees that space, and the table refills from the feed in about half an hour.

Model: opus-5-5

On `next` since the last merge to `main`: - `/` has cards with the newest and oldest routes and ASes, the largest AS, bogon and multiple-origin counts with their own list pages, and well-known networks. - The client address now comes from `X-Forwarded-For` when the direct peer is a trusted proxy, and with `TRUSTED_PROXIES` unset every RFC 1918 address is trusted, so `/ip/` shows the visitor behind your traefik with no setting (https://git.eeqj.de/sneak/routewatch/issues/198). `TRUSTED_PROXIES` set but empty trusts nothing. - Every IP lookup result has the same fields, for a name or an address, with `num_origins` and `origin_asns` added; an address with no route yet has its routing fields null (https://git.eeqj.de/sneak/routewatch/issues/200). - No API value carries its unit inside a string any more: `execution_time_ms`, `uptime_seconds`, `connection_duration_seconds`, `memory_usage_bytes` and `current_interval_seconds` replace the old fields. `API_POLICIES.md` is vendored (https://git.eeqj.de/sneak/routewatch/issues/199). For a deploy: nothing to set. Your earlier deploy kept the old database file, now 58 GB of per-peer tables nothing reads; deleting it frees that space, and the table refills from the feed in about half an hour. Model: opus-5-5
clawbot added 1 commit 2026-10-27 18:39:24 +01:00
The home page gets cards for the newest and oldest kept route, the newest
and oldest updated AS, the AS with the most prefixes, the ASes with a
single prefix and fifteen well-known networks. Two more cards count the
bogon announcements and the prefixes with several origin ASes. They link
to the new pages /bogons and /multiple-origins, which list up to 1,000
entries each.

The new package internal/bogon tells reserved prefixes and AS numbers,
from the IANA special-purpose and address space registries. Table.Overview
walks the table and lets the read lock go every 10,000 prefixes. The
server works the cards out once a minute and serves that copy. A new index
on asns(last_seen) finds the newest and oldest updated AS.

Model: opus-5-5
sneak was assigned by clawbot 2026-10-27 18:39:24 +01:00
clawbot added the merge-ready label 2026-10-27 18:39:24 +01:00
clawbot added 1 commit 2026-10-27 19:18:37 +01:00
With TRUSTED_PROXIES unset, the server now trusts reverse proxies in the
private ranges of RFC 1918. A proxy such as traefik on a Docker network is
then believed. /ip/, the home page's curl card and the request log give the
client's address from X-Forwarded-For instead of the proxy's address.

A list in TRUSTED_PROXIES replaces the default. TRUSTED_PROXIES set but
empty trusts no proxy, so the config package reads it with os.LookupEnv.
A direct client at a public address still cannot choose its address with
a forged header.

Model: opus-5-5
clawbot added 1 commit 2026-10-27 19:54:04 +01:00
Every result of /ip/, /ip/{addr} and /api/v1/ip/{ip} now has every
field. A field without a value is null instead of left out, so an
address with no live route has all its route and AS fields set to null.
ptr is an empty list when there are no PTR names.

Two new fields, num_origins and origin_asns, give how many origin ASes
peers carry the netblock with, and which. The routing table's prefix
summary now lists them. asn still names the origin that most peers
carry.

first_seen is null, no longer the zero time, when the database has not
stored the netblock yet.

Model: opus-5-5
clawbot added 1 commit 2026-10-27 20:19:02 +01:00
A value with a unit is now a number, and its field name ends in the
unit, as the vendored API_POLICIES.md requires. @meta.execution_time
becomes execution_time_ms. In the stats answers, uptime,
connection_duration, memory_usage and whois_stats.current_interval
become uptime_seconds, connection_duration_seconds, memory_usage_bytes
and whois_stats.current_interval_seconds. connection_duration_seconds
is null while the feed is not connected. The status page formats the
numbers itself. REPO_POLICIES.md is re-vendored from the same
sneak/prompts commit.

Model: opus-5-5
Some checks are pending
check / check (push) Waiting to run
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin next:next
git checkout next
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/routewatch#202