docs: add CHANGELOG.md, fix repo URLs in package.json, update GitHub description

This commit is contained in:
Rene Fichtmueller 2026-03-26 16:20:36 +13:00
parent a4a9833bd8
commit 8478b154a9
2 changed files with 84 additions and 4 deletions

80
CHANGELOG.md Normal file
View File

@ -0,0 +1,80 @@
# 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 |

View File

@ -49,16 +49,16 @@
"route-views", "route-views",
"bgp-anomaly" "bgp-anomaly"
], ],
"author": "PeerCortex Contributors", "author": "Rene Fichtmueller",
"license": "MIT", "license": "MIT",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/peercortex/peercortex.git" "url": "https://github.com/renefichtmueller/PeerCortex.git"
}, },
"bugs": { "bugs": {
"url": "https://github.com/peercortex/peercortex/issues" "url": "https://github.com/renefichtmueller/PeerCortex/issues"
}, },
"homepage": "https://github.com/peercortex/peercortex#readme", "homepage": "https://peercortex.org",
"engines": { "engines": {
"node": ">=20.0.0" "node": ">=20.0.0"
}, },