Geplante Code-Audits
Repositories und Server automatisch nach Zeitplan analysieren — täglich, wöchentlich oder monatlich. Mit Benachrichtigung bei neuen Schwachstellen.
Geplante Code-Audits erfordern ein aktives Code-Audit-Kontingent (Abo oder Credits). Zugangsdaten werden AES-256-GCM verschlüsselt gespeichert — sie sind nach dem Speichern nicht mehr lesbar.
Schedule anlegen (Dashboard)
1
Geplante Code-Audits öffnen
Navigieren Sie zu Code-Audit → Geplante Audits in der Seitenleiste.
2
Verbindungsmethode wählen
Wählen Sie wie der Code bezogen werden soll:
- Git — Repository-URL + Branch + Personal Access Token (für private Repos)
- SFTP — Host, Port, Benutzername, Passwort oder SSH-Key + Pfad
- FTP — Host, Port, Benutzername, Passwort + Pfad
3
Zeitplan festlegen
Cron-Ausdruck eingeben oder aus den Vorlagen wählen:
0 3 * * *— Täglich um 3:00 Uhr0 3 * * 1— Jeden Montag um 3:00 Uhr0 3 1 * *— Am 1. jeden Monats
4
Benachrichtigung konfigurieren
Wählen Sie wann Sie benachrichtigt werden möchten:
- Immer — nach jedem Scan
- Neue High-Findings (Standard) — nur wenn seit dem letzten Scan neue kritische Schwachstellen aufgetaucht sind
- Neue Findings (alle) — bei jedem neuen Finding unabhängig vom Schweregrad
- Nie — kein Alert, nur Historie
Schedule anlegen (API)
POST /api/code/schedules
Authorization: Bearer <token>
Content-Type: application/json
{
"label": "Nightly Git Audit",
"method": "git",
"repo_url": "https://github.com/org/repo.git",
"branch": "main",
"token": "ghp_personalAccessToken",
"cron": "0 3 * * *",
"use_ai": true,
"system_hint": "laravel",
"notify_on": "new_high"
}
Für SFTP:
POST /api/code/schedules
{
"label": "Prod Server — Weekly",
"method": "sftp",
"host": "server.example.com",
"port": 22,
"username": "deploy",
"password": "geheim",
"remote_path": "/var/www/html",
"cron": "0 4 * * 1",
"notify_on": "always"
}
Schedules verwalten
GET /api/code/schedules # Alle Schedules auflisten GET /api/code/schedules/:id # Detail (Zugangsdaten werden NICHT zurückgegeben) PATCH /api/code/schedules/:id # Aktualisieren (enabled, cron, notify_on, ...) DELETE /api/code/schedules/:id # Löschen POST /api/code/schedules/:id/run # Sofort ausführen (manueller Run)
Cron-Syntax
Format: Minute Stunde Tag Monat Wochentag
0 3 * * *— Täglich um 3:00 Uhr0 3 * * 1— Jeden Montag um 3:00 Uhr0 3 1 * *— Am 1. jeden Monats um 3:00 Uhr0 8 * * 1-5— Werktags um 8:00 Uhr0 */6 * * *— Alle 6 Stunden
Ablauf eines geplanten Audits
- Scheduler prüft jede Minute fällige Schedules (
next_run_at <= NOW()) - Code wird bezogen (Git clone / SFTP pull / FTP download)
- Vollständige Analyse: SAST, Secrets, Dependencies, Malware, WordPress-Check
- KI-Analyse (falls
use_ai: trueund Kontingent vorhanden) - Ergebnis wird in der Code-Audit-Historie gespeichert
- Diff gegen den vorherigen Scan: neue Findings werden identifiziert
- Benachrichtigung gemäß
notify_on-Regel next_run_atwird für den nächsten Lauf aktualisiert
Ergebnisse einsehen
Alle Ergebnisse erscheinen in der Code-Audit-Historie. Von dort können Sie:
- Findings nach Schweregrad filtern
- PDF-Report herunterladen (DE oder EN)
- Vergleich mit vorherigem Scan einsehen (neue/behobene Findings)
Sicherheit der Zugangsdaten
Alle Zugangsdaten (Git-Token, SSH-Passwörter, SSH-Keys, FTP-Passwörter) werden AES-256-GCM verschlüsselt in der Datenbank gespeichert. Nach dem Speichern:
- Die API gibt Zugangsdaten niemals zurück (nur
has_credentials: true/false) - Zum Ändern: neue Zugangsdaten per PATCH übergeben (überschreiben den verschlüsselten Wert)
- Zum Entfernen:
nullübergeben
Tipp: Verwenden Sie für Git einen Personal Access Token mit Read-Only-Scope — so hat der Token minimale Berechtigungen falls er kompromittiert werden sollte.
Limits
- Max. 20 Schedules pro Organisation
- Jeder Schedule-Lauf verbraucht einen Code-Audit-Credit
- KI-Dateien-Limit gilt auch für geplante Audits (plan-abhängig: 30 / 50 / 100 Dateien)