diff --git a/README.md b/README.md index 11f70ac..d9973a5 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,25 @@ Alternativ über `.env`: ROUTEFORGE_DEMO_MODE=true ``` +## Alpha Demo Flow + +1. Demo-Modus starten (`ROUTEFORGE_DEMO_MODE=true`). +2. ASN Check ausführen. +3. ASN-RPKI-Batchprüfung starten. +4. Prefix + Origin-AS prüfen. +5. Gesamtbewertung und Einzelprüfungen lesen. +6. Markdown Report kopieren. + +## Bekannte Einschränkungen + +- RIPEstat-/Whois-Strukturen können je nach Antwort variieren. +- Der Registry/IRR Check ist eine Plausibilitätsprüfung und keine autoritative Entscheidung. +- Der Demo-Modus nutzt feste Beispieldaten. +- RouteForge arbeitet vollständig read-only (keine Schreibzugriffe). +- Es gibt noch keinen lokalen RPKI Validator. +- RIPE Atlas Messungen sind noch nicht integriert. +- Eine historische Trendanalyse ist noch nicht enthalten. + ## Tests ausführen Backend: diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 0000000..4f1a336 --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,63 @@ +# Release Notes: v0.1.0-alpha + +## Überblick + +RouteForge v0.1.0-alpha ist ein selfhosted, read-only Preflight- und Explainability-Tool für BGP/RPKI/RIPE-nahe Prüfabläufe. +Diese Alpha-Version ist für Demos, frühes Feedback und nachvollziehbare Erstbewertungen gedacht. + +## Enthaltene Funktionen + +- ASN Check (inkl. Prefix-Extraktion aus sichtbaren Ankündigungen) +- Prefix Check mit optionalem Origin-AS +- RPKI Einzelprüfung im Prefix-Check +- ASN-RPKI-Batchprüfung für sichtbare Prefixe +- Registry/IRR-Plausibilitätscheck +- Kombinierte Prefix-Gesamtbewertung mit Einzelprüfungen +- Reports in JSON, Markdown und HTML +- Demo-Modus mit festen Beispieldaten +- Robuste Parser und CI-Basis + +## Nicht enthalten + +- Keine neuen externen Datenquellen +- Keine Schreibzugriffe auf Registries/IRR-Systeme +- Keine ROA-Erstellung +- Kein Router-Deployment +- Keine EVPN/VXLAN-Funktionalität +- Keine große Refaktorierung bestehender Endpoints + +## Read-only Sicherheitsmodell + +RouteForge arbeitet in v0.1.0-alpha vollständig read-only. +Das Tool sammelt, normalisiert und bewertet Daten, nimmt aber keine operativen Änderungen an Routing-Infrastruktur oder Registry-Systemen vor. + +## Demo-Modus + +Mit `ROUTEFORGE_DEMO_MODE=true` nutzt RouteForge feste Beispieldaten für reproduzierbare Vorführungen und Offline-Demos. +**Demo data, not for operational use.** + +## Bekannte Einschränkungen + +- RIPEstat-/Whois-Strukturen können variieren und unterschiedliche Detailgrade liefern. +- Registry/IRR Check ist eine Plausibilitätsprüfung, keine autoritative Entscheidung. +- Demo-Modus nutzt feste Beispieldaten und ist nicht für operative Entscheidungen geeignet. +- Keine Schreibzugriffe (read-only by design). +- Kein lokaler RPKI Validator enthalten. +- Noch keine RIPE Atlas Messungen. +- Noch keine historische Trendanalyse. + +## Beispielablauf + +1. RouteForge im Demo-Modus starten. +2. ASN Check für eine Beispiel-ASN ausführen. +3. ASN-RPKI-Batchprüfung der sichtbaren Prefixe starten. +4. Prefix + Origin-AS einzeln prüfen. +5. Gesamtbewertung und Einzelprüfungen vergleichen. +6. Markdown-Report kopieren und im Team teilen. + +## Nächste geplante Schritte + +- Dokumentation und Demo-Artefakte weiter schärfen. +- UI-Microcopy für technische Zielgruppen weiter vereinfachen. +- Weitere Beispielreports für typische Warn-/Unknown-Szenarien ergänzen. +- Stabilität, Testabdeckung und Präsentationsreife vor breiterem Alpha-Feedback erhöhen. diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md new file mode 100644 index 0000000..887f16e --- /dev/null +++ b/docs/screenshots/README.md @@ -0,0 +1,17 @@ +# Screenshot Plan for Alpha Demo + +Dieses Verzeichnis enthält die geplanten Screenshots für die Alpha-Demo-Dokumentation. +Aktuell werden nur Struktur und Zielmotive vorbereitet (keine Bilddateien enthalten). + +## Gewünschte Screenshots + +- `start-page.png` + Startansicht mit Navigation und kurzer Tool-Einordnung. +- `asn-check.png` + ASN Check Formular mit ausgefülltem Beispiel und Ergebnisbereich. +- `asn-rpki-batch.png` + ASN-RPKI-Batchprüfung mit Summary und sortierten Einzelresultaten. +- `prefix-overall-evaluation.png` + Prefix-Check mit kombinierter Gesamtbewertung plus Einzelprüfungen. +- `demo-mode-banner.png` + Sichtbarer Hinweistext, dass Demo-Modus aktiv ist und feste Daten genutzt werden. diff --git a/examples/reports/asn-rpki-batch-demo-example.md b/examples/reports/asn-rpki-batch-demo-example.md new file mode 100644 index 0000000..e925167 --- /dev/null +++ b/examples/reports/asn-rpki-batch-demo-example.md @@ -0,0 +1,32 @@ +# ASN-RPKI Batch Demo Report Example + +> Demo data, not for operational use. + +## Input + +- ASN: `AS64501` +- Batch limit: `25` +- Mode: Demo + +## Batch summary + +- Checked prefixes: `8` +- Prefixes seen: `8` +- valid: `5` +- invalid_asn: `1` +- invalid_length: `1` +- unknown: `1` +- errors: `0` + +## Interpretation + +- Majority valid indicates baseline ROA coverage exists. +- `invalid_asn` indicates at least one prefix appears with a non-authorized origin. +- `invalid_length` indicates a max-length mismatch risk. +- `unknown` means no conclusive validation result was available for that prefix. + +## Follow-up actions + +1. Review invalid entries first (`invalid_asn`, `invalid_length`). +2. Confirm announcements against intended origin policy. +3. Treat unknown results as investigation backlog, not immediate acceptance. diff --git a/examples/reports/prefix-valid-warning-example.md b/examples/reports/prefix-valid-warning-example.md new file mode 100644 index 0000000..f0183c8 --- /dev/null +++ b/examples/reports/prefix-valid-warning-example.md @@ -0,0 +1,28 @@ +# Prefix Report Example: valid + warning context + +> Demo data, not for operational use. + +## Input + +- Prefix: `203.0.113.0/24` +- Origin-AS: `AS64500` +- Mode: Demo + +## Result overview + +- Overall status: `WARNING` +- RPKI check: `OK` (`valid`) +- Registry/IRR plausibility check: `WARNING` + +## Why this can happen + +The prefix can be RPKI-valid while Registry/IRR signals are incomplete or ambiguous. +In this demo case, route object hints are not strong enough for a confident positive assessment. + +## Operator note + +Use this as a triage signal: + +1. Confirm route/route6 object status in authoritative tooling. +2. Confirm Origin-AS intent with current policy/process. +3. Keep RPKI and Registry results separate when communicating risk. diff --git a/frontend/src/components/AsnCheckForm.tsx b/frontend/src/components/AsnCheckForm.tsx index 4a25712..9946fb5 100644 --- a/frontend/src/components/AsnCheckForm.tsx +++ b/frontend/src/components/AsnCheckForm.tsx @@ -45,7 +45,7 @@ export function AsnCheckForm() { setAsn(e.target.value)} /> {loading &&
Prüfung läuft ...
} - {result &&ASN wurde geprüft. Für ASN allein ist RPKI nicht direkt anwendbar.
} + {result &&ASN wurde geprüft. Die RPKI-Bewertung erfolgt für die sichtbaren Prefixe der ASN.
} {result &&Extrahierte Prefixe: {extractedPrefixes.length}
} {result && extractedPrefixes.length > 0 && ( @@ -54,7 +54,7 @@ export function AsnCheckForm() { {error &&Die Prüfung konnte nicht ausgeführt werden.
{error.message}
Keine Empfehlungen verfügbar.
} {hasAnyChecks &&Oben siehst du den kombinierten Status aus RPKI und Registry/IRR.
} + {hasAnyChecks &&Der kombinierte Status fasst RPKI und Registry/IRR nachvollziehbar zusammen.
}Summary: {rpki?.summary || '-'}
+Kurzfassung: {rpki?.summary || '-'}
Erklärung: {rpki?.explanation || '-'}
Risiko: {rpki?.risk || '-'}
Summary: {registry?.summary || '-'}
+Kurzfassung: {registry?.summary || '-'}
Erklärung: {registry?.explanation || '-'}
Risiko: {registry?.risk || '-'}
Für diesen Check-Typ sind keine Einzelprüfungen verfügbar.
} - {rpkiSummary &&geprüft: {checkedPrefixes} / gesehen: {totalPrefixesSeen}
{limited &&Hinweis: Ergebnis wurde durch das gesetzte Limit begrenzt.
}