PeerCortex/CHANGELOG.md

81 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
All notable changes to PeerCortex are documented here.
## [0.5.0] — 2026-03-26
### Added
- **RPKI-based ASPA detection** via Cloudflare RPKI JSON feed — 1,455+ ASPA objects worldwide, cached and refreshed every 10 minutes
- **RFC-compliant ASPA path verification** (draft-ietf-sidrops-aspa-verification-14) — upstream/downstream verification, valley detection, AS_SET flagging, per-hop status
- **ASPA Readiness Score** (0100) with four dimensions: ROA coverage, ASPA object existence, provider match completeness, path validation rate
- **Provider Audit** — compares RPKI-declared providers vs BGP-detected providers, highlights missing and extra entries with frequency data
- **Network Health Report** — 13 automated checks (Bogon, RPKI ROA, Blocklist, IRR, MANRS, BGP Visibility, Reverse DNS, Abuse Contact, Resource Cert, IX Route Servers, BGP Communities, Geolocation, IRR Object) with traffic-light scoring
- **RIPE Atlas probe integration** — shows total probes, connected/disconnected counts, and anchors per ASN
- **Route Views** as data source and header navigation link
- **bgproutes.io integration** — 3,294+ vantage points, RIB queries, ROV and ASPA status
- **RPKI-Declared Providers section** — green badges showing providers from the actual RPKI ASPA object
- **Collapsible lists** — "Show X more..." for Detected Upstream Providers (limit 10), Missing/Extra in Provider Audit (limit 5)
- **Numerical ASN sorting** across all badge lists and tables
- **WHOIS Details** endpoint and dashboard card
- **Network Topology** endpoint via CAIDA AS-Relationships
- **Peering Partner Finder** — `/api/peers/find` endpoint
- **Prefix Detail View** — `/api/prefix/detail` endpoint
- **IX Detail View** — `/api/ix/detail` endpoint
- **Recent Lookups** with localStorage persistence and quick-click badges
- **Network Compare** — side-by-side comparison of two ASNs (common IXPs, shared upstreams, overlapping facilities)
- **Copy button** on Recommended ASPA Object code block
- **Demo animation** (SVG) in README
### Changed
- ASPA detection switched from broken RIPE DB `aut-num` remarks search to Cloudflare RPKI JSON feed (`rpki.cloudflare.com/rpki.json`)
- Upstream providers now resolved with AS names via RIPE Stat AS Overview API
- Version bumped to 0.5.0
- Dashboard footer updated with all data sources including Cloudflare RPKI and Route Views
- Server User-Agent updated to PeerCortex/0.5.0
### Fixed
- **Critical: ASPA objects not detected** — networks with valid ASPA (e.g., AS8283 Coloclue, AS6830 Liberty Global) were incorrectly shown as "Not Found" because the old code searched RIPE DB remarks instead of RPKI repositories
- **SyntaxError in frontend** — CSS routing styles were embedded as a multiline JS string (single quotes don't allow newlines), moved to proper `<style>` block
- **Double ASN display** — provider badges showed "AS1031 AS1031" when AS name wasn't available, now shows clean single ASN with resolved name
- **Empty brackets in ASPA template** — provider names showed "()" when not resolved, now omitted or fetched via RIPE Stat
- **Port conflict on startup** — multiple PM2 instances caused EADDRINUSE, resolved with proper process cleanup
- **RPKI per-prefix timeout** — limited batch size to 10 prefixes with 8s fetch timeout to prevent hanging on large ASNs
## [0.4.0] — 2026-03-25
### Added
- Initial public release
- Web dashboard with Tokyo Night dark theme
- PeeringDB API v2 integration (network profile, IX presence, facilities)
- RIPE Stat Data API integration (prefixes, neighbours, visibility, routing status)
- bgp.he.net scraping for supplementary BGP data
- Per-prefix RPKI validation via RIPE Stat
- AS neighbour resolution with names
- IPv4/IPv6 route propagation bars with RIS peer visibility
- Prefix size distribution badges
- MCP Server skeleton with 34 tool definitions
- Docker support
- Cloudflare Tunnel deployment on Erik server
- Live demo at peercortex.org
### Infrastructure
- Node.js single-file server (server.js) — zero dependencies beyond Node.js built-ins
- PM2 process management on Erik (217.154.82.179)
- Cloudflare Tunnel via `eo-pulse` tunnel
- Domains: peercortex.org, www.peercortex.org, peercortex.context-x.org
---
## Data Sources
| Source | API | Usage |
|--------|-----|-------|
| [PeeringDB](https://www.peeringdb.com/) | REST API v2 | Network profiles, IX connections, facilities |
| [RIPE Stat](https://stat.ripe.net/) | Data API | Prefixes, neighbours, visibility, routing status, abuse contacts |
| [RIPE Atlas](https://atlas.ripe.net/) | REST API v2 | Probe and anchor detection per ASN |
| [Route Views](http://www.routeviews.org/) | Via RIPE Stat | BGP path data, AS relationships |
| [bgp.he.net](https://bgp.he.net/) | HTML scraping | Supplementary BGP data |
| [bgproutes.io](https://bgproutes.io/) | REST API v1 | 3,294+ vantage points, RIB data, ROV/ASPA status |
| [Cloudflare RPKI](https://rpki.cloudflare.com/) | JSON feed | 1,455+ ASPA objects, ROA validation |
| [RIPE DB](https://rest.db.ripe.net/) | REST API | IRR objects, WHOIS data |