From 8e8d9bbec22b783fad5763e1cb513e7d8c664639 Mon Sep 17 00:00:00 2001 From: DeepZone Date: Wed, 20 May 2026 13:53:21 +0100 Subject: [PATCH] Prepare v0.3.0-alpha demo and release-readiness docs --- CONTRIBUTING.md | 39 +++++ README.md | 228 +++++++++++++---------------- RELEASE_NOTES.md | 96 ++++-------- ROADMAP.md | 43 ++++++ backend/app/api/routes_system.py | 2 +- backend/app/main.py | 2 +- backend/pyproject.toml | 2 +- docs/demo-flow.md | 46 ++++++ docs/releases/v0.3.0-alpha.md | 59 ++++++++ docs/screenshots/README.md | 39 +++-- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- frontend/src/App.tsx | 6 +- frontend/src/components/Layout.tsx | 2 +- 14 files changed, 355 insertions(+), 215 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 ROADMAP.md create mode 100644 docs/demo-flow.md create mode 100644 docs/releases/v0.3.0-alpha.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3acad2d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,39 @@ +# Contributing to RouteForge + +## Setup + +```bash +git clone https://github.com/DeepZone/routeforge.git +cd routeforge +cp .env.example .env +docker compose up --build +``` + +## Backend Tests + +```bash +cd backend +pytest -q +``` + +## Frontend Build + +```bash +cd frontend +npm run build +``` + +## Pull Request Guidelines + +- Keep pull requests focused and easy to review. +- Update documentation together with user-facing behavior changes. +- Add or update tests when behavior changes. +- Do not break existing API endpoints without explicit versioning and migration notes. + +## Read-only safety principle + +RouteForge is read-only by design. + +## Do not add write operations without explicit design discussion + +Do not add write operations (registry writes, ROA creation, router deployment, or similar mutating workflows) without an explicit design discussion and maintainer approval. diff --git a/README.md b/README.md index 2b40cfe..066e25f 100644 --- a/README.md +++ b/README.md @@ -1,173 +1,149 @@ -# RouteForge v0.2.0-alpha - -RouteForge ist ein selfhosted, read-only Preflight- und Explainability-Tool für BGP/RPKI/RIPE-Daten. - -## Was kann v0.1? -- ASN Check (RIPEstat as-overview + announced-prefixes) -- Prefix Check (routing-status, whois, optional rpki-validation mit Origin-AS) -- ASN-RPKI-Batchprüfung für sichtbare Prefixe -- Ampelstatus: OK, WARNING, CRITICAL, UNKNOWN -- Reports als JSON, Markdown, HTML -- REST API, Web UI, Typer CLI - -## Was kann v0.1 bewusst noch nicht? -- Keine RIPE DB Schreibzugriffe -- Keine ROA Erstellung -- Kein Router Deployment -- Keine EVPN/VXLAN Features -- Kein Cloud-Zwang - -## Installation -```bash -docker compose up --build -``` +# RouteForge -Mit Hot Reload: -```bash -docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build -``` +RouteForge is a read-only routing preflight and explainability tool for BGP, RPKI, Registry/IRR and Routing Visibility checks. -## Typische Nutzung +Current user-facing version: **v0.3.0-alpha**. -### 1) Prefix gegen Origin-AS prüfen -```bash -curl -X POST http://localhost:8000/api/check/prefix \ - -H "Content-Type: application/json" \ - -d '{"prefix":"193.0.6.0/24","origin_as":"AS3333"}' -``` + -### 2) ASN prüfen -```bash -curl -X POST http://localhost:8000/api/check/asn \ - -H "Content-Type: application/json" \ - -d '{"asn":"AS3320"}' -``` +## What RouteForge does -### 3) RPKI Batchprüfung für sichtbare Prefixe einer ASN -```bash -curl -X POST http://localhost:8000/api/check/asn-rpki \ - -H "Content-Type: application/json" \ - -d '{"asn":"AS3320","limit":25}' -``` +RouteForge helps operators answer three practical questions before a routing change: +- Is it authorized? (RPKI) +- Is it documented? (Registry/IRR) +- Is it visible? (Routing Visibility) -## Statuswerte +It combines these checks into an explainable, read-only preflight workflow. -- **OK:** Keine akute Auffälligkeit im geprüften Kontext. -- **WARNING:** Prüfung war möglich, aber es gibt Hinweise wie fehlende ROA-Abdeckung oder unvollständige Daten. -- **CRITICAL:** Es wurde ein kritisches RPKI-Problem gefunden, zum Beispiel `invalid_asn` oder `invalid_length`. -- **UNKNOWN:** Die Bewertung konnte nicht zuverlässig durchgeführt werden, zum Beispiel wegen fehlender Daten oder API-Fehlern. +## Why it exists +Routing changes often require fast but traceable checks across multiple external data views. RouteForge provides a single UI/API workflow so teams can run consistent preflight checks, share results, and keep a documented decision trail. -## Registry/IRR Check +## Current Alpha Status -Der Prefix Check enthält zusätzlich einen read-only Registry/IRR-Plausibilitätscheck auf Basis verfügbarer RIPEstat-/Whois-/Registry-Daten. -Der Check bewertet Hinweise auf route/route6-Objekte und eine mögliche Origin-AS-Plausibilität, liefert bei unklarer Datenlage bewusst `UNKNOWN` oder `WARNING` und zeigt Rohdaten zur Nachvollziehbarkeit an. -Er ersetzt keine manuelle Registry-Prüfung. +RouteForge is a **functional alpha** release with production-like workflows for read-only validation and demo usage. Current release target: **v0.3.0-alpha**. +## Quickstart with Docker Compose -## Routing Visibility Check +```bash +git clone https://github.com/DeepZone/routeforge.git +cd routeforge +cp .env.example .env +docker compose up --build +``` -Der Routing Visibility Check prüft read-only, ob aus verfügbaren RIPEstat-Routingdaten sichtbare Origin-ASNs für ein Prefix abgeleitet werden können. -Er ersetzt kein vollständiges BGP-Monitoring und keine manuelle Looking-Glass-Prüfung. +URLs: -## Kombinierte Prefix-Bewertung +- Frontend: http://localhost:3000 +- Backend: http://localhost:8000 +- Health: http://localhost:8000/health +- System Info: http://localhost:8000/api/system/info -RouteForge bewertet Prefix-Checks nicht nur anhand einer einzelnen Quelle. RPKI und Registry/IRR werden getrennt angezeigt, aber zusätzlich zu einer Gesamtbewertung zusammengeführt. -Ein `CRITICAL` aus einer Einzelprüfung bleibt `CRITICAL` in der Gesamtbewertung. `WARNING` weist auf unvollständige oder unsichere Datenlage hin. +## Demo Mode -## Demo-Modus +Set `ROUTEFORGE_DEMO_MODE=true` to use fixed demo data. -`ROUTEFORGE_DEMO_MODE=true` nutzt feste Beispieldaten und ist für Präsentationen, Tests und Offline-Demos gedacht. -Der Demo-Modus darf nicht für echte Routing-Bewertungen verwendet werden. +Use cases: +- Presentations +- Repeatable tests +- Offline demos + +Do **not** use demo mode for real routing decisions. -Beispiel per Umgebungsvariable: ```bash ROUTEFORGE_DEMO_MODE=true docker compose up --build ``` -Alternativ über `.env`: +Or set in `.env`: + ```env ROUTEFORGE_DEMO_MODE=true ``` -## Alpha Demo Flow +## Core Checks -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. +- ASN Check +- Prefix Check +- RPKI Check +- Registry/IRR Plausibility Check +- Routing Visibility Check +- Change Preflight Mode -## Bekannte Einschränkungen +## Result Model -- 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. +Check severities: +- `OK` +- `WARNING` +- `CRITICAL` +- `UNKNOWN` -## Tests ausführen +Preflight decision model: +- `GO` +- `CAUTION` +- `NO-GO` +- `UNKNOWN` -Backend: -```bash -cd backend -pytest -q -``` +## Export and Sharing -Frontend: -```bash -cd frontend -npm run build -``` +RouteForge reports can be exported/shared as: +- Summary (plain text) +- Markdown +- HTML -## CLI Beispiele -```bash -cd backend -routeforge check-asn AS3320 -routeforge check-prefix 193.0.22.0/23 --origin-as AS3333 -routeforge report 1 --format markdown -``` +## Report History -## Datenquellen -- RIPEstat Data API: https://stat.ripe.net/docs/02.data-api -- RPKI Validation Endpoint: https://stat.ripe.net/docs/data-api/api-endpoints/rpki-validation -- RIPEstat Dokumentation: https://www.ripe.net/publications/documentation/ripestat-documentation/ +RouteForge keeps report history so teams can revisit previous checks and share consistent outputs in change workflows. -## Security Hinweis -RouteForge v0.2.0-alpha ist vollständig read-only. +## Read-only Security Model +RouteForge is read-only by design: +- no RIPE DB writes +- no ROA creation +- no router deployment -## Change Preflight Mode -RouteForge kann geplante Prefix-Origin-Announcements read-only prüfen. Es erzeugt keine ROAs, ändert keine Registry-Daten und deployt keine Router-Konfiguration. +## Known Limitations -```bash -curl -X POST http://localhost:8000/api/check/preflight \ - -H "Content-Type: application/json" \ - -d '{"prefix":"203.0.113.0/24","planned_origin_as":"AS64500"}' -``` +- Alpha software, interfaces may evolve. +- RIPEstat payloads can vary over time. +- No local RPKI validator yet. +- No full BGP monitoring replacement. +- No user management yet. -## Result clarity and holder display +## Roadmap -RouteForge stellt Ergebnisse mit klarer Ergebnis-Zusammenfassung dar und versucht den Holder (Ressource-Inhaber) aus vorhandenen AS-/Prefix-/Whois-/Registry-Daten abzuleiten. -Wenn keine belastbare Quelle vorhanden ist, zeigt RouteForge **"Unknown"** an. -Die Holder-Erkennung ist **read-only**, rein informativ und führt keine Schreiboperationen (keine ROA-Erstellung, keine RIPE-DB-Änderungen, kein Deployment) aus. +See [ROADMAP.md](ROADMAP.md). -## Export and sharing +## Development -RouteForge Reports können als **Markdown**, **HTML** oder als kurze **Plain-Text Summary** exportiert werden. -Die Summary ist für Change-Tickets, Maintenance-Dokumentation oder interne Reviews gedacht. +Local setup and contribution process are documented in [CONTRIBUTING.md](CONTRIBUTING.md). + +## Tests + +Backend: + +```bash +cd backend +pytest -q +``` + +Frontend: ```bash -curl http://localhost:8000/api/reports/1/summary -curl http://localhost:8000/api/reports/1/markdown -o routeforge-report.md -curl http://localhost:8000/api/reports/1/html -o routeforge-report.html +cd frontend +npm run build ``` -## Warum ist ASN-RPKI-Batch manchmal nicht verfügbar? +## License -Die ASN-RPKI-Batchprüfung benötigt sichtbare, auswertbare Prefixe aus `announced-prefixes`. -Wenn keine Prefixe vorliegen, die ASN aktuell nichts announced, die Datenstruktur nicht interpretierbar ist oder RIPEstat temporär fehlschlägt, kann RouteForge keinen Batch starten. -In diesem Fall zeigt RouteForge den konkreten Grund direkt im ASN-Ergebnis (`details.rpki_batch.message` und `reason_code`) an. +This project is released under the [MIT License](LICENSE). diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 03032aa..11b37e7 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,75 +1,41 @@ -# Release Notes: v0.2.0-alpha +# Release Notes -## Überblick +## v0.3.0-alpha -RouteForge v0.2.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. +**Product Demo & Release Readiness** -## Highlights +### Highlights -- Change Preflight Mode -- Routing Visibility Check -- Modernisierte Operator-GUI -- RPKI + Registry/IRR + Routing Visibility Gesamtbewertung -- Demo-Modus weiterhin read-only - -## 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 -- Routing Visibility Check als zusätzliche read-only Alpha-Prüfung -- Reports in JSON, Markdown und HTML -- Export/Share Verbesserungen (alpha): Plain-Text Summary Export sowie verbesserte Download-/Sharing-Workflows für 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 +- Improved README for public alpha usage +- Demo flow documentation +- Screenshot plan +- Clear Quickstart +- v0.2.x features summarized: + - Change Preflight Mode + - Routing Visibility Check + - Holder display + - Export/Sharing + - ASN-RPKI batch availability explanations -RouteForge arbeitet in v0.2.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. +### Known Limitations -## Demo-Modus +- Alpha software +- RIPEstat payloads can vary +- No write operations +- No usermanagement yet +- No local RPKI validator yet +- No full BGP monitoring -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 +## v0.2.0-alpha (history) -- 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. +RouteForge v0.2.0-alpha introduced the functional alpha baseline for read-only routing preflight checks. -## 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. - -- Added Change Preflight Mode (alpha): read-only planned Prefix-Origin assessment with no ROA creation, no registry writes, and no router deployment. +Key capabilities in v0.2.x: +- Change Preflight Mode +- Routing Visibility Check +- Holder detection/display +- Export & sharing (Summary, Markdown, HTML) +- ASN-RPKI batch availability explanations +- Demo mode and CI-backed test workflows diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..d30d2fc --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,43 @@ +# RouteForge Roadmap + +## Current Status +v0.3.0-alpha, functional alpha, read-only + +## v0.3.x +- demo polish +- export polish +- UI refinements + +## v0.4.0-alpha +- data source hardening +- RIPEstat error classification +- cache visibility +- retry handling + +## v0.5.0-beta +- production Docker Compose +- PostgreSQL hardening +- backup/restore docs +- reverse proxy examples +- healthchecks + +## v0.6.0-beta +- user management +- roles +- audit log + +## v0.7.0-beta +- projects/change cases +- grouped preflight reports + +## v0.8.0-beta +- watch mode / scheduled rechecks + +## v0.9.0-rc +- security review +- UX review +- API stability +- upgrade tests + +## v1.0.0 +- stable selfhosted RouteForge release diff --git a/backend/app/api/routes_system.py b/backend/app/api/routes_system.py index 9030cab..005a55c 100644 --- a/backend/app/api/routes_system.py +++ b/backend/app/api/routes_system.py @@ -9,7 +9,7 @@ def system_info(): return { 'name': 'RouteForge', - 'version': 'v0.2.0-alpha', + 'version': 'v0.3.0-alpha', 'demo_mode': settings.demo_mode, 'read_only': True, 'data_sources': ['RIPEstat', 'RIPEstat Whois/Registry'], diff --git a/backend/app/main.py b/backend/app/main.py index b7ec936..308a924 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -8,7 +8,7 @@ from app.config import settings from app.database import Base, engine -app = FastAPI(title="RouteForge", version="0.2.0") +app = FastAPI(title="RouteForge", version="0.3.0") app.add_middleware( CORSMiddleware, diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 3c6d86a..04818ed 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "routeforge-backend" -version = "0.2.0" +version = "0.3.0" description = "RouteForge backend" requires-python = ">=3.12" dependencies = [ diff --git a/docs/demo-flow.md b/docs/demo-flow.md new file mode 100644 index 0000000..b655eb6 --- /dev/null +++ b/docs/demo-flow.md @@ -0,0 +1,46 @@ +# RouteForge Demo Flow + +## 1-Minute Demo + +1. Dashboard öffnen +2. Demo-Modus zeigen +3. Prefix Check ausführen +4. Gesamtbewertung zeigen +5. RPKI / Registry / Routing Visibility zeigen +6. Export Summary zeigen + +## 5-Minute Demo + +1. Dashboard +2. ASN Check +3. ASN-RPKI Batch +4. ASN ohne Batch-Möglichkeit, z. B. AS4491 im Demo-Modus +5. Prefix Check +6. Change Preflight +7. Reports View +8. Copy Summary / Copy Markdown / Download HTML + +## Suggested Demo Inputs + +Demo-Modus: +- AS3320 für normale ASN-Demo, falls im Demo-Modus unterstützt +- AS4491 oder AS64599 für "Batch nicht möglich" +- Demo-Prefixe aus vorhandenen Demo-Daten +- Planned Origin-AS aus Demo-Daten + +Live-Modus: +- Hinweis: Live-Daten können sich ändern. +- Keine harten Versprechen machen. +- RIPEstat-Verfügbarkeit beachten. + +## What to Say + +Kurzer Pitch: +"RouteForge answers three questions: Is it authorized, is it documented, and is it visible?" + +## What Not to Claim + +- RouteForge erstellt keine ROAs. +- RouteForge ändert keine RIPE DB Objekte. +- RouteForge ersetzt kein vollständiges BGP Monitoring. +- RouteForge ist Alpha. diff --git a/docs/releases/v0.3.0-alpha.md b/docs/releases/v0.3.0-alpha.md new file mode 100644 index 0000000..0a9f8b3 --- /dev/null +++ b/docs/releases/v0.3.0-alpha.md @@ -0,0 +1,59 @@ +# RouteForge v0.3.0-alpha + +## Highlights + +- Product demo and release-readiness update +- README/quickstart overhaul for public alpha onboarding +- Dedicated demo flow documentation +- Screenshot capture plan for GitHub/project presentation + +## What is included + +- Read-only routing preflight workflows (ASN, Prefix, RPKI, Registry/IRR, Routing Visibility) +- Change Preflight decision model (GO/CAUTION/NO-GO/UNKNOWN) +- Report history +- Export/sharing as Summary, Markdown, and HTML +- Demo mode for reproducible presentations + +## How to run + +```bash +git clone https://github.com/DeepZone/routeforge.git +cd routeforge +cp .env.example .env +docker compose up --build +``` + +## Demo Mode + +Use fixed demo data with: + +```bash +ROUTEFORGE_DEMO_MODE=true docker compose up --build +``` + +Or set in `.env`: + +```env +ROUTEFORGE_DEMO_MODE=true +``` + +## Known limitations + +- Alpha software +- External data payloads (e.g., RIPEstat) can vary +- No write operations (read-only by design) +- No user management yet +- No local RPKI validator yet +- Not a full BGP monitoring replacement + +## Upgrade notes + +- User-facing version string is now `v0.3.0-alpha`. +- Package/runtime version is now `0.3.0`. +- No API-breaking endpoint changes intended in this release. + +## Checks + +- Backend tests: `cd backend && pytest -q` +- Frontend production build: `cd frontend && npm run build` diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md index 887f16e..b500b6b 100644 --- a/docs/screenshots/README.md +++ b/docs/screenshots/README.md @@ -1,17 +1,28 @@ -# Screenshot Plan for Alpha Demo +# RouteForge Screenshot Plan (v0.3.0-alpha) -Dieses Verzeichnis enthält die geplanten Screenshots für die Alpha-Demo-Dokumentation. -Aktuell werden nur Struktur und Zielmotive vorbereitet (keine Bilddateien enthalten). +This folder is intentionally prepared for real screenshots that can be added during demo capture. +No placeholder image files are generated automatically. -## Gewünschte Screenshots +## Expected files -- `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. +- `dashboard.png` +- `asn-check.png` +- `asn-batch-available.png` +- `asn-batch-unavailable.png` +- `prefix-check-overall.png` +- `preflight-check.png` +- `reports-view.png` +- `export-actions.png` +- `demo-mode-banner.png` + +## Capture guidance + +- Use demo mode for reproducible screenshots (`ROUTEFORGE_DEMO_MODE=true`). +- Prefer a consistent browser size (e.g., 1440×900). +- Keep sensitive/private data out of screenshots. +- Capture both “batch available” and “batch unavailable” ASN scenarios. +- Ensure the demo-mode banner is visible where relevant. + +## Suggested naming rule + +Keep the exact filenames above so README/release assets can reference them directly. diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 0efa19f..a2074bd 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "routeforge-frontend", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "routeforge-frontend", - "version": "0.2.0", + "version": "0.3.0", "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/frontend/package.json b/frontend/package.json index b99da04..799b54e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "routeforge-frontend", - "version": "0.2.0", + "version": "0.3.0", "private": true, "type": "module", "scripts": { diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 498ea35..1e1f1dd 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -15,7 +15,7 @@ export default function App() { const [copyMessage, setCopyMessage] = useState('') const [system, setSystem] = useState(null) useEffect(() => { getReports().then(setReports).catch(() => setReports([])); getSystemInfo().then(setSystem).catch(() => null) }, []) - const systemLine = useMemo(() => system ? `${system.name} ${system.version} · mode=${system.demo_mode ? 'DEMO' : 'LIVE'} · read_only=${String(system.read_only)}` : 'RouteForge v0.2.0-alpha · read-only preflight checks', [system]) + const systemLine = useMemo(() => system ? `${system.name} ${system.version} · mode=${system.demo_mode ? 'DEMO' : 'LIVE'} · read_only=${String(system.read_only)}` : 'RouteForge v0.3.0-alpha · read-only preflight checks', [system]) const title = { dashboard: 'Dashboard', asn: 'ASN Check', prefix: 'Prefix Check', preflight: 'Preflight Check', reports: 'Reports', about: 'About RouteForge' }[active] const notify = (message: string) => { setCopyMessage(message) @@ -37,7 +37,7 @@ export default function App() { return {active === 'dashboard' &&
-

RouteForge v0.2.0-alpha

Modernes read-only Operator-Tool für Preflight Checks von ASN, Prefix, RPKI und Registry/IRR.

Security-Modell: ausschließlich read-only, keine writes/deployments.

+

RouteForge v0.3.0-alpha

Modernes read-only Operator-Tool für Preflight Checks von ASN, Prefix, RPKI und Registry/IRR.

Security-Modell: ausschließlich read-only, keine writes/deployments.

{[['ASN Check', 'asn'], ['Prefix Check', 'prefix'], ['Preflight Check', 'preflight'], ['Reports', 'reports']].map(([x, key]) => )}

Letzte Reports

{reports.length === 0 ?
Noch keine Reports vorhanden.
:
{reports.slice(0, 8).map(r => )}
ZeitTypResourceHolderStatus
{new Date(r.created_at).toLocaleString()}{r.check_type === 'preflight' ? 'Preflight' : r.check_type}{r.input_resource}{r.holder || 'Unknown'}
}
} @@ -45,6 +45,6 @@ export default function App() { {active === 'prefix' && } {active === 'preflight' && } {active === 'reports' &&

Reports

{reports.length===0 ?
Noch keine Reports vorhanden.
:
{reports.map(r=>)}
ZeitpunktTypResourceOrigin-ASHolderStatusKurzfassungActions
{new Date(r.created_at).toLocaleString()}{r.check_type === 'preflight' ? 'Preflight' : r.check_type}{r.input_resource}{r.origin_as || '-'}{r.holder || 'Unknown'}{r.summary}
}{copyMessage &&

{copyMessage}

}
} - {active === 'about' &&

RouteForge liefert nachvollziehbare Routing-Preflightchecks für technische Operator-Workflows.

Datenquellen: RPKI Validator APIs und Registry/IRR Quellen.

Modell: read-only Betrieb.

Limitations: Externe Datenquellen können unvollständig oder verzögert sein.

Version: v0.2.0-alpha

} + {active === 'about' &&

RouteForge liefert nachvollziehbare Routing-Preflightchecks für technische Operator-Workflows.

Datenquellen: RPKI Validator APIs und Registry/IRR Quellen.

Modell: read-only Betrieb.

Limitations: Externe Datenquellen können unvollständig oder verzögert sein.

Version: v0.3.0-alpha

}
} diff --git a/frontend/src/components/Layout.tsx b/frontend/src/components/Layout.tsx index 7e69bdb..9a9b3f0 100644 --- a/frontend/src/components/Layout.tsx +++ b/frontend/src/components/Layout.tsx @@ -27,7 +27,7 @@ export function Layout({ children, active, onNav, systemLine, title, demoMode }:
{demoMode ? 'DEMO' : 'LIVE'} READ-ONLY - v0.2.0-alpha + v0.3.0-alpha
{children}