Anleitung zur Quellcode-Vorschau · 0.1.0
Wie CodeSecurity zusammenwirkt
Verfolge Quellberechtigungen, dauerhafte Jobs und Scannernachweise durch die lokale Weboberfläche.
Die API-Referenz ist auf Englisch.
CodeSecurity ist eine lokale Sicherheitsarbeitsumgebung mit zwei Clients: Browserdashboard und VS Code-Erweiterung. FastAPI liefert die kompilierte React-Anwendung und die Control-API. PostgreSQL erhält den Anwendungszustand. Ein separater Worker führt dauerhafte Befehle über Scanner, Scannerdaten-Updater und optionalen Advisor-Connector aus.
Verfolge einen Scan von gespeicherten Quellen bis zu aufbewahrten Nachweisen. Jeder Dienst hat eine enge Aufgabe und eine eigene Berechtigungsgrenze.
Verfolge einen Scan durch das System
Operatorclients
- Browser
Gekoppelte Operatorsitzung und Weboberfläche.
- VS Code
Ein genehmigtes Editorprofil mit begrenzten Capabilities.
Lokaler Eingang und dauerhafter Zustand
- Loopback-Relay
Veröffentlicht den lokalen TCP-Endpunkt ohne Laufzeitgeheimnisse oder dauerhafte Mounts.
- FastAPI + React
Liefert die Weboberfläche und prüft Control-Anfragen. Hat keinen Docker-Socket.
- PostgreSQL
Speichert Installationszustand, Befehle, Jobs, Befunde und Richtlinien.
- Jobworker
Übernimmt dauerhafte Arbeit und koordiniert ihr Ergebnis.
Begrenzte Ausführungsdienste
- Scanner
Liest autorisierte Quellen und validierte Daten in einem internen Netzwerk.
- Updater
Holt geprüfte Scannerdaten ohne Projektquellmount.
- Advisor-Connector
Führt optionale Anbieteranfragen mit genauen Freigaben aus.
Daten und optionaler Anbieter
- Validierter Scannercache
Laufzeitleser sehen eine ausgewählte schreibgeschützte Generation.
- Autorisierter Ollama-Anbieter
Lokales oder ausdrücklich autorisiertes entferntes Ziel.
Verbindungen
Browser zu Loopback-Relay
Browseranfragen kommen über den Loopback-Endpunkt an.
VS Code zu Loopback-Relay
Editoranfragen nutzen denselben Endpunkt mit eigener Berechtigung.
Loopback-Relay zu FastAPI + React
Das Relay leitet TCP-Verkehr an den Controldienst weiter.
FastAPI + React zu PostgreSQL
Control-Zustand wird über zugelassene Operationen gelesen und geändert.
Jobworker zu PostgreSQL
Jobleases und Ergebnisse werden unabhängig von der Clientseite gespeichert.
Jobworker zu Scanner
Der Worker reicht begrenzte Scanarbeit ein und sammelt Ergebnisse.
Jobworker zu Updater
Vorbereitung läuft getrennt von Quellanalyse.
Scanner zu Validierter Scannercache
Der Scanner liest die ausgewählten validierten Daten.
Updater zu Validierter Scannercache
Der Updater validiert und wählt eine vollständige Generation.
Jobworker zu Advisor-Connector
Advisor-Arbeit erhält eine genaue Anbieterfreigabe.
Advisor-Connector zu Autorisierter Ollama-Anbieter
Nur autorisiertes Ziel und Anfrageumfang werden verwendet.
- Der Operator autorisiert eine enge Quellwurzel oder liefert eine unterstützte begrenzte Momentaufnahme. Projekterstellung erfasst Quellidentität und gewährt keinen Zugriff auf andere Hostverzeichnisse.
- Die Control-API prüft angeforderten Umfang und aktuelle Scannervorprüfung. Sie speichert Scan und dauerhaften Job zusammen.
- Der Worker beansprucht den Job mit einer Lease. Der Scanner prüft den Quellzugriff erneut und führt aktivierte Werkzeuge gegen erfasste Quellansicht und validierte Datengeneration aus.
- Native Ausgabe wird zu begrenzten, normalisierten und bereinigten Befunden. Der Worker validiert Ergebnismanifest und Seiten und committet zugelassene Nachweise samt Wiederherstellungscheckpoint in PostgreSQL.
- Erst danach bestätigt der Worker das genaue Scannerergebnis, damit temporäre Ausgabe entfernt werden kann. Vollständige Nachweise werden anschließend gegen die Projekt-Gate-Richtlinie bewertet.
- Clients aktualisieren maßgebliche Ressourcen bei Änderungen an Jobs und Befunden. Optionaler Rat und menschliche Bewertungen sind separate Aktionen; sie ergänzen keine fehlende Scannerabdeckung.
Das Kapitel Jobs und Nachweise verfolgt Fehler- und Wiederherstellungswege dieser Schritte.
Setze Berechtigungen an jede Grenze
Die Compose-Kernkonfiguration veröffentlicht eine Loopback-Adresse über ein unprivilegiertes TCP-Relay. Das Relay leitet zur API weiter und besitzt weder dauerhafte Mounts noch Laufzeitgeheimniskonfiguration. Die API hat keinen Docker-Socket. Browsersitzungen und begrenzte Editor-Capabilities passieren dieselbe Control-Grenze mit unterschiedlichen Authentifizierungsregeln.
| Komponente | Lese- und Schreibzugriff | Aufgabe |
|---|---|---|
| Control-API | PostgreSQL, begrenzte Quellmomentaufnahmen und zugelassene Artefakte | Autorisiert Befehle, liefert Ressourcen und speichert dauerhaften Zustand. Keine gemounteten Projektquellen. |
| Jobworker | PostgreSQL und Artefaktspeicher; Momentaufnahmen schreibgeschützt | Verwaltet Ausführung, Leases, Fortschritt, Abbruch und Ergebnisspeicherung. |
| Scanner | Autorisierte Quellen, Momentaufnahmen und validierter Cache schreibgeschützt; privater temporärer Speicher und Artefaktausgabe | Führt ausgewählte festgelegte Werkzeuge aus und veröffentlicht ein begrenztes Ergebnisprotokoll. |
| Scannerdaten-Updater | Beschreibbarer Scannercache; geprüfte Downloadquellen | Bereitet vollständige Datengenerationen vor und aktiviert sie ohne Projektquellmount. |
| Advisor-Connector | Eigene Anbieterautorisierung und genehmigte Anbieterrouten | Führt eng erlaubte lokale oder entfernte Ollama-Arbeit aus. Kein Projektquellmount. |
Der Scanner nutzt ein internes Netzwerk. Updater und Advisor-Connector haben getrennte ausgehende Netzwerke. Für lokale und entfernte Modellanfragen ruft der Worker den Connector auf; Prompts gehen nicht direkt an Ollama. Dies sind quellseitig definierte Deploymentgrenzen. Image-Inhalt, wirksame Mounts und tatsächlicher ausgehender Verkehr müssen für die bewertete Installation noch geprüft werden.
Quell- und Clientberechtigungen erklärt die zugrunde liegenden Entscheidungen, interne Dienste ihre Protokolle.
Trenne verschiedene Zustandsarten
| Frage | Maßgeblicher Zustand | Was daraus nicht folgt |
|---|---|---|
| Wurde der Befehl angenommen? | Dauerhafter Job und Befehlsidentität | Dass Ausführung begann oder gelang. |
| Ist der Scan vollständig? | Scanstatus, Werkzeugergebnisse und Abdeckungsübersicht | Dass jede mögliche Schwachstelle geprüft wurde. |
| Wie wurde ein Befund bewertet? | Bewertung, Begründung und Revision | Dass eine geänderte Datei verifiziert wurde oder ein neuer Scan die Entscheidung erbt. |
| Erfüllen Nachweise die Richtlinie? | Gate-Entscheidung für vollständige Scannachweise | Dass Repository-Schutz installiert oder ein Push autorisiert ist. |
| Darf dieser geschützte Push fortfahren? | Aktuelle Repository-Berechtigung, ausgehende Bäume, Scannernachweise und Richtlinie | Dass ein lokaler Hook unumgehbar ist. |
Diese Trennung hält unvollständige Scans sichtbar, auch wenn sämtliche gesammelten Befunde unterdrückt sind. Sie verhindert außerdem, dass ein bestandener Arbeitsbaumscan Prüfungen früherer ausgehender Commits ersetzt. Befunde, Gates und Git-Schutz erklären die Operatorabläufe.
Verstehe die dauerhafte Speicherung
PostgreSQL speichert Projekte, Scans, normalisierte Befunde, Richtlinien und Jobs. Benannte Volumes enthalten zugelassene Artefakte, Scannerdaten und Quellmomentaufnahmen. Rohe native Berichte und Scannertransportspool leben nur begrenzt. Öffnen oder Schließen einer Browserseite bestimmt nicht die Joblebensdauer.
Das ist ein dauerhaftes Anwendungsdesign, keine Notfallwiederherstellungsgarantie. Der Quellcode beschreibt einen experimentellen nicht atomaren Backuphelfer, der standardmäßig deaktiviert ist. Ein getestetes Wiederherstellungsverfahren benötigt eigene Nachweise und genaue Eingaben.
Optionale Monitoring-, lokale Git-Proxy- und Datenbankverwaltungsprofile sind standardmäßig aus. Sie gehören nicht zur Berechtigung der Control-Kern-API und machen die Arbeitsumgebung nicht zu einem gehosteten Dienst.
Lies die Implementierung nach Verantwortung
| Quellbereich | Einstieg |
|---|---|
| Dienste, Mounts und Netzwerke | Compose-Konfiguration |
| Control-Anwendung und Speicherung | API-Anwendung, Datenmodell |
| Ausführung und Scannervorbereitung | Scanarchitektur |
| Browser- und Editoraktualisierung | Ereignisse und Abgleich |
| Quellbeiträge | Erweiterungsgrenzen |
Die Sicherheitsrichtlinie definiert Vertrauensannahmen. CodeSecurity ist keine Sandbox für feindliche Repositories. Ein bestandenes Gate ist ein Richtlinienergebnis über zugelassene Nachweise, keine Garantie sicheren Codes.