StaticCodeAudit — Produktzusammenfassung
Eigenständige Binärdatei für Compliance-, Sicherheits- und Codequalitätsaudit. Keine Abhängigkeiten. 100 % offline. Berichte auf Enterprise-Niveau.
Von CodeFixture | Präfix: SCA
Hauptmerkmale
- Eigenständige Binärdatei — eine ausführbare Datei pro Plattform, keine Laufzeitabhängigkeit
- 100 % offline — keine API-Aufrufe, kein Netzwerkzugriff, keine Cloud-Abhängigkeit, keine Telemetrie
- Über 465 Erkennungsregeln in 7 Auditkategorien mit Zuordnung zu OWASP/CWE/WCAG/ASVS (Python, JS/TS, Java, C#, PHP, YAML)
- Interaktive HTML-Berichte — eigenständige Einzeldatei mit über 12 interaktiven Visualisierungen
- Unterstützung für 4 Sprachen — Französisch, Englisch, Spanisch, Deutsch (Bericht und Konsole)
- Historischer Vergleich — automatische Baseline-Verfolgung über 10 Audits hinweg
- CVE-Scan — optionale Integration von pip-audit und npm audit (lokal, offline)
- White-Label-Branding — Toolname, Firma und Logo pro Projekt konfigurierbar
- ISO-27001-Compliance-Matrix — ordnet Findings den 93 Annex-A-Kontrollen in 4 Themen zu
- Berichts-Aufbewahrung — konfigurierbare Bereinigung nach Anzahl, Tagen oder beiden Modi
- Git-blame-Integration — ermittelt den Committer pro Finding für die Nachvollziehbarkeit
- Interaktive Konfiguration — geführte init- und configure-Modi für eine einfache Einrichtung
- Demo-Modus —
--demoerzeugt anonymisierte Berichte (Pfade, Code, Lösungen geschwärzt) für Interessenten und öffentliche Weitergabe - Wizard für eigene Regeln —
--create-ruleeinheitlicher 7-Schritte-Wizard: Erstellen oder Bearbeiten, Duplikatsprüfung (Name + Pattern), vollständiges DSL (risk/solution/benefit/fix), 4 Sprachen - Schweregradfilter —
--severity CRITICAL,HIGHfiltert Regeln vor dem Scan; bernsteinfarbenes Banner im Bericht bei aktivem Filter - Sprach-Badge — jedes Finding zeigt seine erkannte Sprache (Python, JavaScript, YAML…) als neutrales Badge an
- Sprache-×-Schweregrad-Diagramm — gestapeltes Balkendiagramm, das die erkannte Sprache mit dem Schweregrad kreuzt
- Architektur für eigene Regeln — Verzeichnis
custom-rules/getrennt von der Binärdatei, wird durch Updates niemals überschrieben - Detaillierter Fortschritt — dynamische
[n/N]-Nummerierung nach dem Laden der Regeln berechnet, Meldungen pro Sprache und pro Taint-Schritt
Was es leistet
StaticCodeAudit (SCA) ist ein Tool für statische Analyse, das den Quellcode eines Projekts auf Sicherheitslücken, Architektur-Antipatterns, UI/UX-Barrierefreiheitsprobleme und Wartungsschulden untersucht. Es erzeugt einen eigenständigen HTML-Bericht mit nach Schweregrad gruppierten Findings, interaktiven Diagrammen, Health Score und historischer Trendanalyse.
Workflow
1. ./staticcodeaudit-<plattform> /pfad/zum/projekt --init # Projekt initialisieren (UUID + Konfiguration erzeugen)
2. ./staticcodeaudit-<plattform> /pfad/zum/projekt # Vollständiges Audit ausführen
3. SCA-REPORT-*.html öffnen # Interaktiven Bericht prüfen
Jedes Audit erzeugt:
- HTML-Bericht (
SCA-REPORT-{timestamp}.html) — eigenständig, druckbar, interaktiv - Demo-Bericht (
SCA-REPORT-{timestamp}-demo.html) — anonymisierte Version zum Teilen (Opt-in über--demo) - JSON-Daten (
SCA-DATA-{timestamp}.json) — maschinenlesbar, versioniert (v3.4) - Baseline — gespeichert für den Vergleich beim nächsten Audit (neue/gelöste/persistente Probleme)
Erkennungsregeln
Über 465 Regeln in 7 Kategorien, jede mit Risikobewertung, Lösungshinweisen und Beschreibung des Nutzens.
Security (~430 Regeln) — Gewicht: 3
| Regel | Schweregrad | Standard |
|---|---|---|
| SQL-Injection (f-string, concat, ORM) | HIGH | OWASP A03, CWE-89 |
| XSS (innerHTML, React, Angular, Vue, Svelte, Blade) | HIGH | CWE-79 |
| JNDI-Injection (Java — Log4Shell) | CRITICAL | ASVS 1.3.8, CWE-917 |
| XPath-Injection (Java, C#, PHP, Python) | HIGH | ASVS 1.2.7, CWE-643 |
| SSTI — Server-Side Template Injection (Python, JS) | HIGH | ASVS 1.3.7, CWE-1336 |
| SpEL-Injection (Spring) | HIGH | CWE-917 |
| LDAP-Injection (C#) | HIGH | CWE-90 |
| CSV-Injection (formula injection) | MEDIUM | ASVS 1.2.10, CWE-1236 |
| SMTP-Injection (Python, PHP) | MEDIUM | ASVS 1.3.11, CWE-93 |
| ReDoS — Regular Expression Denial of Service | MEDIUM | ASVS 1.3.12, CWE-1333 |
| Format String Vulnerability | MEDIUM | ASVS 1.3.10, CWE-134 |
| Hardcodierte Geheimnisse | HIGH | CWE-798 |
| Standardanmeldedaten (hardcodiert) | HIGH | ASVS 6.3.2, CWE-798 |
| Gefährliche Codeausführung (eval/exec) | HIGH | CWE-94 |
| Debug-Modus aktiviert | HIGH | OWASP A05 |
| Geheimnis geloggt (f-string, Argument, Java, C#, PHP) | HIGH | OWASP A09, CWE-532 |
| Log-Injection (CRLF) | MEDIUM | ASVS 16.3.2, CWE-117 |
| HTTP ohne TLS | MEDIUM | OWASP A02 |
| WebSocket ohne TLS (ws:// vs wss://) | MEDIUM | ASVS 4.4.1, CWE-319 |
| Unsichere Deserialisierung (Python, Java, C#, PHP) | HIGH | OWASP A08, CWE-502 |
| Schwache Kryptografie (MD5/SHA-1, Java, C#, PHP) | HIGH | CWE-328 |
| Unzureichende Schlüsselgröße (RSA < 2048) | MEDIUM | ASVS 11.2.3, CWE-326 |
| OS-Command-Injection (Python, Java, C#, PHP) | HIGH | CWE-78 |
| Verbose Exception (Python, Java, C#, PHP) | MEDIUM | CWE-209 |
| Selbstgebaute Authentifizierung | HIGH | CWE-287 |
| Schwache Passwortrichtlinie (min < 8) | MEDIUM | ASVS 6.2.1, CWE-521 |
| Sicherheitsfragen (wissensbasierte Auth) | LOW | ASVS 6.4.2, CWE-640 |
| Vorhersagbare Session-Tokens | HIGH | CWE-330 |
| JWT-Algorithmus None | CRITICAL | ASVS 9.1.2, CWE-345 |
| JWT-Geheimnis hardcodiert | HIGH | ASVS 9.1.3, CWE-798 |
| Dynamischer Import | MEDIUM | CWE-502 |
| Unsicherer Zufall (Math.random, Java, C#, PHP) | MEDIUM | CWE-330 |
| Client-seitige Auth (localStorage) | HIGH | CWE-602 |
| Race Condition (TOCTOU) | MEDIUM | CWE-367 |
| XXE-Injection (Java, C#, PHP) | HIGH | CWE-611 |
| CSRF deaktiviert (Spring) | HIGH | CWE-352 |
| CORS zu freizügig (Spring, C#) | MEDIUM | CWE-942 |
| SSL-Bypass (Java, C#) | HIGH | CWE-295 |
| Open Redirect (Java, C#, PHP) | MEDIUM | CWE-601 |
| File Inclusion (PHP) | HIGH | CWE-98 |
| Datei-Upload ohne Validierung | MEDIUM | ASVS 5.2.2, CWE-434 |
| PHP-spezifisch (extract, type juggling, mass assignment) | MEDIUM-HIGH | Diverse |
| PII geloggt (DSGVO, 5 Sprachen) | HIGH | DSGVO Art. 5 |
| Fehlende Datenaufbewahrung (DSGVO) | MEDIUM | DSGVO Art. 5 |
| Fehlendes MFA (5 Sprachen) | MEDIUM | CWE-308 |
| Dockerfile (Root-Benutzer, ungepinnte Basis, COPY all) | HIGH-MEDIUM | CWE-250 |
| Unsicherer lokaler Speicher (Tokens/Geheimnisse in localStorage) | MEDIUM | CWE-922 |
| Fehlender CSP-Header (Flask, Django, Express) | MEDIUM | CWE-1021 |
| Fehlender HSTS-Header | MEDIUM | ASVS 3.4.1, CWE-523 |
| Fehlendes X-Content-Type-Options | MEDIUM | ASVS 3.4.4 |
| Fehlende Referrer-Policy | LOW | ASVS 3.4.5 |
| Fehlender Frame-Schutz (CSP/X-Frame-Options) | MEDIUM | ASVS 3.4.6, CWE-1021 |
| PostMessage ohne Origin-Prüfung | MEDIUM | ASVS 3.5.5, CWE-346 |
| Fehlendes Subresource Integrity (SRI) | LOW | ASVS 3.6.1 |
| SVG mit ausführbarem Inhalt (XSS) | MEDIUM | ASVS 1.3.4, CWE-79 |
| GraphQL-Introspection aktiviert | MEDIUM | ASVS 4.3.2 |
| GraphQL ohne Tiefenbeschränkung | MEDIUM | ASVS 4.3.1, CWE-770 |
| Hardcodierte interne IP (RFC 1918) | MEDIUM | CWE-798 |
| Exponierter Test-Endpoint (ungeschütztes /test, /debug) | MEDIUM | CWE-489 |
Architecture (10 Regeln) — Gewicht: 2
| Regel | Schweregrad | Standard |
|---|---|---|
| Admin-Route ungeschützt | HIGH | OWASP A01 |
| DB-Logik in Routern/Controllern (Python, Java, C#, PHP) | MEDIUM | — |
| Direkte Queries in Routern | MEDIUM | — |
| N+1-Query-Patterns (Python, Java) | MEDIUM | — |
| Dateien überschreiten den Längen-Schwellenwert | LOW-MEDIUM | — |
Interface / UI (5 Regeln) — Gewicht: 1
| Regel | Schweregrad |
|---|---|
| Inline-Styles in JavaScript | LOW |
| Manuelle Verwendung von createElement | LOW |
| Event-Listener nicht aufgeräumt | LOW |
| DOM-Manipulation in Schleifen | LOW |
| Inline-SVG in HTML | LOW |
Benutzererfahrung / Barrierefreiheit (18 Regeln) — Gewicht: 1
| Regel | Schweregrad | Standard |
|---|---|---|
| Button ohne ARIA-Label | MEDIUM | WCAG 2.4.6 |
| Eingabefeld ohne Label | MEDIUM | WCAG 1.3.1 |
| Bild ohne Alternativtext | MEDIUM | WCAG 1.1.1 |
| Positiver tabindex | MEDIUM | WCAG 2.4.3 |
| Fokus-Outline entfernt | MEDIUM | WCAG 2.4.7 |
| Autoplay-Medien | MEDIUM | WCAG 1.4.2 |
| Nicht übersetzte Toast-Nachrichten | MEDIUM | i18n |
| Flüchtige Fehler-Toasts | MEDIUM | UX |
| Hardcodierte UI-Zeichenkette (i18n-Prüfung) | MEDIUM | i18n |
| Übrig gebliebenes console.log | LOW | — |
Maintenance (22 Regeln) — Gewicht: 1
| Regel | Schweregrad | Standard |
|---|---|---|
| Ungelöste TODO/FIXME/HACK/XXX | LOW | — |
| Verwendung veralteter API (Python, Java, C#, PHP, JS) | LOW | CWE-477 |
| Catch-all-Exception (Python, Java, C#, PHP) | MEDIUM | CWE-396 |
| System.out.println (Java) | LOW | — |
| Console.Write (C#) | LOW | — |
| Fehler-Suppressor @ (PHP) | LOW | — |
| Destruktiv ohne Backup (DROP/TRUNCATE außerhalb von Migrationen) | LOW | ISO A.8.13 |
| Verwendung der lokalen Zeit (datetime.now() ohne Timezone) | LOW | ISO A.8.17 |
| Fehlender Health-Check-Endpoint | LOW | ISO A.8.16 |
| Nicht überprüfter Vendor-Code | MEDIUM | ISO A.5.22 |
Dependencies (3 Regeln) — Gewicht: 2
| Regel | Schweregrad | Standard |
|---|---|---|
| Anfällige Abhängigkeit (CVE) | HIGH-CRITICAL | OWASP A06 |
| Ungepinnte Abhängigkeitsversion | HIGH | CWE-1357 |
| Nicht konforme Lizenz | MEDIUM | — |
CI/CD (18 Regeln) — Gewicht: 2
| Regel | Schweregrad | Standard |
|---|---|---|
| pull_request_target_checkout | HIGH | CI-CD-01 |
| GHA Expression Injection | HIGH | CI-CD-01 |
| GHA übermäßige Berechtigungen | MEDIUM | CI-CD-05 |
| GHA fehlende Berechtigungen | MEDIUM | CI-CD-05 |
| GHA ungeschützter Kommentar-Trigger | MEDIUM | CI-CD-01 |
| Ungepinnte Action-Version | HIGH | CI-CD-09 |
| Unsichere GitLab-Variablen | MEDIUM | CI-CD-05 |
| Workflow nicht in CODEOWNERS | LOW | CI-CD-05 |
| gha_secret_in_log | HIGH | CWE-312 |
| gha_deprecated_commands | HIGH | CVE-2020-15228 |
| gha_artifact_poisoning | MEDIUM | CI-CD-09 |
| gha_self_hosted_runner | MEDIUM | CI-CD-06 |
| ci_curl_pipe_bash | HIGH | CI-CD-09 |
| ci_insecure_download | MEDIUM | CWE-319 |
| hardcoded_secret_cicd | CRITICAL | CI-CD-04 / CWE-798 |
| docker_latest_tag | LOW | CI-CD-09 |
| gitlab_allow_failure_security | HIGH | CI-CD-04 |
| gitlab_script_secrets_echo | HIGH | CWE-312 |
Unterstützte Sprachen
| Sprache | Erweiterungen | Regelabdeckung |
|---|---|---|
| Python | .py |
Security, Architecture, Maintenance |
| JavaScript | .js, .jsx, .mjs |
Security, UI, UX |
| TypeScript | .ts, .tsx |
Gleiche Regeln wie JavaScript |
| HTML | .html, .htm, .vue, .svelte, .ejs, .hbs, .njk, .jinja, .jinja2, .twig, .liquid, .mustache, .phtml, .erb, .jsp, .asp, .aspx, .cshtml |
UI, UX/Barrierefreiheit |
| Java | .java |
Security, Architecture, Maintenance |
| C# | .cs |
Security, Architecture, Maintenance |
| PHP | .php |
Security, Architecture, Maintenance |
| YAML | .yml, .yaml |
CI/CD |
Berichtsfunktionen
Abschnitte (insgesamt 16)
- Header — Projektname, Version, UUID, Sprachflagge, Zeitstempel
- Inhaltsverzeichnis — klickbares Raster mit Emoji-Icons
- Auditparameter — Sprachen, gescannte Erweiterungen, Pfade, Ausschlussmuster, Kategorien, Modus
- Verwendete CLI-Optionen — Checkliste mit 16 Optionen, Status und Beschreibungen
- Visualisierungen — 9 Metrik-Diagramme + 4 historische Trenddiagramme (inkl. gestapeltes Balkendiagramm Sprache × Schweregrad)
- Zusammenfassende Statistiken — Karten: Zähler HIGH/MEDIUM/LOW, Validierungen, Testrate, Laufzeit
- Health Score — logarithmischer Sicherheits-Score, normiert auf LOC, mit Schweregrad-Strafen und farbcodierter Fortschrittsleiste
- Top-10 problematische Dateien — Heatmap-Ranking
- Unit-Tests — Pass/Fail/Error/Skip-Zähler mit Details
- Fixture-Validierung — Ergebnisse zur Erkennungsgenauigkeit
- Abhängigkeiten — Ergebnisse des CVE-Scans, ungepinnte Pakete (optional)
- SLA-Compliance — Lösungsfristen und Eskalationsregeln nach Schweregrad
- ISO-27001-Compliance-Matrix — Zuordnung von Findings zu den Annex-A-Kontrollen von ISO/IEC 27001:2022 (93 Kontrollen, 4 Themen)
- Findings nach Schweregrad — gruppiert CRITICAL/HIGH/MEDIUM/LOW/INFO mit Code-Auszügen, Kategorie-Badges, Glossar-Links
- Validierungen pro Kategorie — Erfolgsmeldungen (keine Probleme gefunden)
- Glossar — 36 Akronyme mit Definitionen (OWASP, ASVS, WCAG, CVE, CVSS, CWE, CSRF, XSS, SQL, SARIF, SBOM, ISO 27001 usw.)
Interaktive Funktionen
- Größenveränderbare Sidebar — sticky Inhaltsverzeichnis mit Drag-to-resize und localStorage-Persistenz
- Tastenkürzel — j/k-Navigation, Strg+Home
- Einklappbare Abschnitte — Klick zum Auf- und Zuklappen der Findings
- Druckmodus — druckfreundliches Layout per Klick
- Chart.js-Visualisierungen — über 12 interaktive Diagramme mit Tooltips
- Baseline-Vergleich — neue/gelöste/persistente Probleme hervorgehoben
- Glossar-Querverweise — alle Akronyme im Bericht sind klickbare Links zum Glossar mit Tooltip-Vorschau
Eigenständigkeit des Berichts
Jeder Bericht ist eine einzige eigenständige HTML-Datei:
- Sämtliches CSS, JavaScript und Chart.js inline eingebettet
- Favicon und Logo als base64 kodiert
- Keine externen Dateien, kein CDN, kein Netzwerk erforderlich
- Kann in jedem Browser geöffnet, als E-Mail-Anhang verschickt und archiviert werden
Compliance & Standards
| Standard | Abdeckung |
|---|---|
| OWASP Top 10 | A01 (Broken Access Control), A02 (Cryptographic Failures), A03 (Injection), A05 (Security Misconfiguration), A06 (Vulnerable Components), A08 (Software Integrity), A09 (Security Logging) |
| OWASP CI/CD Top 10 | CI-CD-01 (Insufficient Flow Control), CI-CD-05 (Insufficient PBAC), CI-CD-09 (Improper Artifact Integrity) |
| CWE | CWE-78, CWE-79, CWE-89, CWE-90, CWE-94, CWE-98, CWE-209, CWE-250, CWE-287, CWE-295, CWE-308, CWE-328, CWE-330, CWE-352, CWE-367, CWE-396, CWE-477, CWE-502, CWE-532, CWE-601, CWE-602, CWE-611, CWE-798, CWE-917, CWE-922, CWE-942, CWE-1021, CWE-1357 |
| WCAG 2.1 | 1.1.1 (Non-text Content), 1.3.1 (Info and Relationships), 1.4.2 (Audio Control), 2.4.3 (Focus Order), 2.4.6 (Headings and Labels), 2.4.7 (Focus Visible) |
| ISO/IEC 27001:2022 | Compliance-Matrix Annex A — 93 Kontrollen verteilt auf 4 Themen (Organisatorisch, Personen, Physisch, Technologisch). 44 Kontrollen durch statische Analyse abgedeckt (~47,3 % Abdeckung). Organisatorisch A.5: 10/37 (27 %), Technologisch A.8: 34/34 (100 %). 4 interaktive Diagramme (Doughnut, Balken, Radar, gestapelte Balken) mit Akkordeon pro Thema. Deckt Secure Coding (A.8.28), Kryptografie (A.8.24), Schwachstellenmanagement (A.8.8), Authentifizierung (A.8.5), Zugriffskontrolle (A.8.3), Berechtigungsmanagement (A.8.18), Cloud-Sicherheit (A.5.23), Lieferkette (A.5.21), Monitoring (A.8.16), Endgeräte (A.8.1), Web-Filterung (A.8.23), Netzwerksegmentierung (A.8.22), Uhrzeit-Synchronisation (A.8.17), Informationssicherung (A.8.13), Schutz von Audits (A.8.34) usw. ab. |
| DSGVO | Art. 5 (PII-Logging, Datenaufbewahrung) |
| CVE | Schwachstellenscan über pip-audit (Python) und npm audit (Node.js) |
Internationalisierung
| Sprache | Flagge | Konsole | Bericht | Glossar |
|---|---|---|---|---|
| Französisch | 🇫🇷 | --script-lang fr |
reports.language: "fr" |
36 Begriffe |
| Englisch | 🇬🇧 | --script-lang en |
reports.language: "en" |
36 Begriffe |
| Spanisch | 🇪🇸 | --script-lang es |
reports.language: "es" |
36 Begriffe |
| Deutsch | 🇩🇪 | --script-lang de |
reports.language: "de" |
36 Begriffe |
Jede Zeichenkette des Tools ist lokalisiert:
- Konsolen-Nachrichten (
locales/script/{lang}.json) - Debug-Log-Nachrichten (Stufen info, detail, trace)
- Berichtstext, Beschriftungen, Titel (
locales/report/{lang}.json) - Regelnamen, Risikobeschreibungen, Lösungen, Nutzen
- Kategorienamen, Schweregrad-Beschriftungen, Diagramm-Beschriftungen
- Glossarbegriffe, Akronym-Definitionen
CLI-Referenz
Die CLI ist in 4 Argumentgruppen organisiert. Die SCA Developer Tools sind im verteilten Binary nicht enthalten.
Scan Options (für alle Ziele gemeinsam)
| Option | Beschreibung |
|---|---|
project_path |
Pfad zum Zielprojekt (Standard: .) |
--quick, -q |
Schnellmodus — nur Sicherheitsregeln |
--severity LEVELS |
Filtert Regeln nach Schweregrad, kommagetrennt (z. B. CRITICAL,HIGH). Standard: alle. Bernsteinfarbenes Banner im Bericht bei aktivem Filter. |
--lang {fr,en,es,de} |
Sprache des Berichts und der Konsole (Standard: en) |
--list-rules |
Listet alle Auditregeln nach Kategorie auf |
Output Options
| Option | Beschreibung |
|---|---|
--fail-on-high |
Exit-Code 1, wenn HIGH-Schwachstellen gefunden werden (CI/CD-Integration) |
--sarif |
Erzeugt SARIF-2.1.0-Export (GitHub Code Scanning, GitLab SAST) |
--with-logs |
Speichert die Konsolenausgabe in einer Logdatei im Ausgabeverzeichnis |
--quiet |
Stiller Konsolenmodus — nur Fehler und Endergebnis werden angezeigt |
Client Features
| Option | Beschreibung |
|---|---|
--init |
Erstellt oder bearbeitet audit.config.json (interaktiv) |
--create-rule |
Erstellt oder bearbeitet eine benutzerdefinierte Regel (interaktiver Wizard) |
--custom-rules-match |
Prüft die Abdeckung benutzerdefinierter Regeln durch benutzerdefinierte Fixtures |
--with-tests |
Automatische Erkennung und Ausführung der Unit-Tests des Projekts |
--with-deps |
Schwachstellenscan der Abhängigkeiten (pip-audit, npm audit) |
Konfiguration
Die gesamte Konfiguration befindet sich in audit.config.json im Projektstamm. Wird durch --init erzeugt.
Wichtige Abschnitte
| Abschnitt | Zweck |
|---|---|
brand |
Toolname, Firmenname, Präfix, eigenes Logo |
project |
UUID, Name, Version, Beschreibung |
languages |
Zu auditierende Sprachen: ["python", "javascript", "html"] |
paths.include |
Zu scannende Verzeichnisse |
paths.exclude |
Zu überspringende Muster |
categories |
Aktivieren/Deaktivieren + Gewicht pro Kategorie |
rules.disabled |
Liste der zu überspringenden Regelschlüssel |
reports |
Ausgabeverzeichnis, Verlaufsverzeichnis, max. Verlauf (10), Sprache |
tests |
Aktivieren/Deaktivieren, Verzeichnis, eigener pytest-Befehl |
thresholds |
Max. HIGH (0), max. MEDIUM (10), Mindest-Health (80 %) |
sla |
SLA pro Schweregrad (Frist, Eskalation) |
fixtures |
Generische Fixtures einbeziehen (true/false) |
retention |
Berichtsbereinigung: Modus (count/days/both), max_count, max_days |
White-Label-Branding
{
"brand": {
"tool_name": "MyCompanyAudit",
"company_name": "My Company",
"prefix": "MCA",
"logo": "assets/my-logo.svg"
}
}
Personalisiert: Berichtstitel, Fußzeile, Ausgabedateinamen, Favicon, Kopf-Logo.
UUID-Projektsystem
Jedes Projekt erhält bei der ersten --init eine eindeutige UUID:
- Entkoppelt den Projektort von der Fixture-Speicherung
- Ermöglicht projekteigene Regeln und Fixtures
- Verfolgt den Audit-Verlauf (Anzahl, Datum des letzten Audits)