Skip to content

Commit 9aa797d

Browse files
Add Rust CVE assessment read flows
1 parent cd2f2f4 commit 9aa797d

6 files changed

Lines changed: 2025 additions & 13 deletions

File tree

docs/RUST_CUTOVER_STATUS.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Der alte Django-Runserver ist damit nicht mehr der lokale Standardpfad.
5252
- Risk-Register Read-, Detail-, Create- und Update-Flows.
5353
- Evidence Read-/Detail-Flows, Evidence-Need-Sync und Evidence-Dateiuploads ueber Rust-Web/API.
5454
- Rust-Web-Shell mit Kontext-Formular sowie datengetriebenem Dashboard, Guidance Navigator, Catalog, Requirements, Assessments, Organizations, Risk-Register, Evidence-Ueberblick, Reports, Roadmap, Assets, Imports, Processes und Product Security.
55-
- Rust-CVE-Feed mit `GET /api/v1/cves`, `GET /api/v1/cves/{cve_id}` und Webroute `/cves/` fuer Summary, Feed und Detaildaten aus `vulnerability_intelligence_cverecord`.
55+
- Rust-CVE-Read-Slice mit `GET /api/v1/cves`, `GET /api/v1/cves/{cve_id}`, `GET /api/v1/cve-assessments`, `GET /api/v1/cve-assessments/{assessment_id}` sowie Webrouten `/cves/`, `/cves/assessments/{assessment_id}` und `/cves/llm-test/` fuer Feed, tenantgebundene Assessment-Reads und LLM-Runtime-Checks.
5656
- Rust-DB-Admin-CLI mit `migrate`, `seed-demo` und `init-demo` fuer Rust-eigenen SQLite/PostgreSQL-Bootstrap der operativen Kern-Tabellen inklusive Product-Security sowie vollstaendigem Katalog-/Requirement-Seed.
5757
- Rust-Session-Schicht mit `iscy_auth_session`, `/api/v1/auth/sessions`, `/api/v1/auth/session`, Logout, Cookie/Bearer-Aufloesung, Django-kompatibler `pbkdf2_sha256`-Passwortpruefung und Web-Kontext ohne Query-Parameter.
5858
- Rust-RBAC-Grundlage mit `accounts_role`, `accounts_userrole`, Session-Rollencodes, Header-Rollen-Fallback und Schreibschutz fuer migrierte Write-Endpunkte.
@@ -68,10 +68,10 @@ Der alte Django-Runserver ist damit nicht mehr der lokale Standardpfad.
6868

6969
## Blocker vor Python-Loeschung
7070

71-
1. **Weboberflaeche:** Rust liefert fuer `/dashboard/`, `/navigator/`, `/catalog/`, `/requirements/`, `/assessments/`, `/organizations/`, `/risks/`, `/evidence/`, `/reports/`, `/roadmap/`, `/assets/`, `/imports/`, `/processes/`, `/product-security/` und `/cves/` bereits echte serverseitige Seiten. Die restlichen Detail-/Form-Flows, Zwischenwizard-Schritte, CVE-Assessment-/LLM-/Risk-Enrichment-Ansichten und spezialisierten Exporte liegen noch in Django-Templates und Django-Views.
71+
1. **Weboberflaeche:** Rust liefert fuer `/dashboard/`, `/navigator/`, `/catalog/`, `/requirements/`, `/assessments/`, `/organizations/`, `/risks/`, `/evidence/`, `/reports/`, `/roadmap/`, `/assets/`, `/imports/`, `/processes/`, `/product-security/` und `/cves/` bereits echte serverseitige Seiten. Die restlichen Detail-/Form-Flows, Zwischenwizard-Schritte, CVE-Assessment-Create-/Risk-Enrichment-Flows und spezialisierten Exporte liegen noch in Django-Templates und Django-Views.
7272
2. **Auth, Sessions und Admin:** Rust-Sessions, Passwort-Login, Rollen-/Schreibrechte sowie Account-Administration fuer User/Rollen-/Gruppen-/Direktrechtewechsel sind vorhanden. Die Django-kompatiblen Tabellen fuer Gruppen, Permissions und User-Zuordnung sind gebootstrapped; vollstaendige Django-Admin-Paritaet ist noch nicht komplett ersetzt.
7373
3. **Migrations und Seeds:** Ein Rust-eigener Bootstrap fuer operative Kern-Tabellen inklusive Product-Security, Catalog und Requirements ist vorhanden. Einzelne historische Django-Schema-Details ausserhalb dieser Cutover-Slices sind noch nicht vollstaendig abgeloest.
74-
4. **Formulare und Uploads:** Evidence-Dateiuploads sowie Import-Center Datei-Upload, CSV/XLSX/XLSM-Parsing und Mapping-Vorschau laufen direkt ueber Rust-Web/API. Weitere Django-Formreste ausserhalb dieser Cutover-Slices muessen noch ersetzt werden.
74+
4. **Formulare und Uploads:** Evidence-Dateiuploads sowie Import-Center Datei-Upload, CSV/XLSX/XLSM-Parsing und Mapping-Vorschau laufen direkt ueber Rust-Web/API. Weitere Django-Formreste ausserhalb dieser Cutover-Slices muessen noch ersetzt werden; im CVE-Bereich betrifft das vor allem das tenantgebundene Anlegen/Aktualisieren neuer Assessments inklusive automatischer Risikoanreicherung.
7575
5. **Python-Dateien im Repo:** CI und lokaler Start sind Rust-first. Python/Django-Dateien bleiben noch als Legacy-Kompatibilitaet und muessen nach Abschluss von Auth/Web/Form-Flows gezielt entfernt werden.
7676

7777
## Naechster fachlich sinnvoller Cutover-Schritt
@@ -80,7 +80,7 @@ Der naechste Abschlussblock ist nicht mehr ein weiterer einzelner API-Endpunkt,
8080

8181
1. Letzte Admin-Paritaet in Rust finalisieren.
8282
2. Django-Templates durch Rust-Web oder ein separates Frontend auf Rust-API ersetzen.
83-
3. Verbleibende Django-Template-/Form-Reste inklusive CVE-Webansichten systematisch durch Rust-Web oder ein separates Frontend auf Rust-API ersetzen.
83+
3. Verbleibende Django-Template-/Form-Reste inklusive CVE-Assessment-Create-/Risk-Enrichment-Workflows systematisch durch Rust-Web oder ein separates Frontend auf Rust-API ersetzen.
8484
4. Python-Dateien, Requirements, Django-Settings und Django-Startpfade entfernen.
8585

8686
## Cutover-Entscheidung

docs/RUST_REWRITE_ROADMAP.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,15 @@ ISCY schrittweise von Django/Python auf Rust ueberfuehren, ohne Fachfunktionalit
115115
- `PATCH /api/v1/product-security/vulnerabilities/{vulnerability_id}` aktualisiert Schweregrad, Status, Remediation-Datum und Zusammenfassung tenantgeschuetzt
116116
- `/product-security/` rendert Matrix, Kennzahlen, Produktliste und Snapshots direkt aus dem Rust-Store
117117
- Django kann Product-Security-Liste, Produktdetail, Roadmap, Roadmap-Task-Updates und Schwachstellen-Updates ueber `PRODUCT_SECURITY_BACKEND=rust_service` aus Rust bedienen und im Nicht-Strict-Modus auf lokale ORM-Daten zurueckfallen
118-
- `vulnerability_intelligence` hat nun den ersten echten Rust-Read-Slice ueber den globalen CVE-Feed:
118+
- `vulnerability_intelligence` hat nun einen Rust-Read-Slice fuer globalen CVE-Feed, tenantgebundene Assessments und LLM-Runtime-Checks:
119119
- `GET /api/v1/cves` liefert Kennzahlen und die aktuelle CVE-Liste aus `vulnerability_intelligence_cverecord`
120120
- `GET /api/v1/cves/{cve_id}` liefert Schwachstellen-Detaildaten inklusive Weaknesses, Referenzen, KEV-Flags und Raw-JSON
121-
- `/cves/` rendert den CVE-Feed direkt aus dem Rust-Store
122-
- die tenantgebundenen CVE-Assessment-/LLM-/Risk-Enrichment-Flows bleiben vorerst noch in Django
121+
- `GET /api/v1/cve-assessments` liefert tenantgebundene CVE-Assessments inklusive Summary, Prioritaet, Produkt- und Risiko-Bezug
122+
- `GET /api/v1/cve-assessments/{assessment_id}` liefert den tenantgebundenen Assessment-Detailbaum inklusive LLM-Ergebnis, empfohlenen Massnahmen und benoetigten Evidenzen
123+
- `/cves/` rendert CVE-Feed plus letzte tenantgebundene Assessments direkt aus dem Rust-Store
124+
- `/cves/assessments/{assessment_id}` rendert die Assessment-Detailansicht direkt aus dem Rust-Store
125+
- `/cves/llm-test/` prueft die lokale Rust-LLM-Runtime direkt ueber die Web-Shell
126+
- die tenantgebundenen CVE-Assessment-Create-/Risk-Enrichment-Flows bleiben vorerst noch in Django
123127

124128
## App-Migrationsreihenfolge
125129

0 commit comments

Comments
 (0)