Code und APIs
Quellcode, Konfigurationen und API-Formate prüfen. Die Werkzeuge nennen Regeln und Netzwerkanfragen; eine lokale Prüfung führt Ihren Code nicht aus und stellt ihn nicht bereit.
21 Werkzeuge in dieser Kategorie.
Dockerfile-Prüfung
Prüft ein Dockerfile nach Zuverlässigkeitsregeln, ohne einen Build auszuführen: festgelegte Image- und Paketversionen, Aufräumen des apt-Caches, sudo, JSON-Form von CMD und ENTRYPOINT, pipefail in Pipelines, COPY statt ADD für lokale Dateien, COPY --from auf eine unbekannte Stufe, letzter Benutzer root, aufeinanderfolgende RUN-Anweisungen und veraltetes MAINTAINER. Jeder Befund hat Regelcode, Stufe und Zeilennummer; das Ergebnis lässt sich als CSV herunterladen.
Shell-Skript-Prüfung
Findet typische Fehler in Shell-Skripten, ohne den Code auszuführen: nicht quotierte Variablen und Befehlssubstitutionen, veraltete Backticks, cd ohne Fehlerprüfung, cat in einer Pipeline, unquotiertes $@, unbekannter oder fehlender Shebang sowie zugewiesene und nie genutzte Variablen. Jeder Befund nennt Regelcode, Stufe und Zeile sowie eine Zusammenfassung nach Stufen.
SQL-Stilprüfung
Prüft Abfragen auf einen einheitlichen Stil: Schreibweise der Schlüsselwörter, Kommasetzung, Einrückung, Zeilenlänge, SELECT *, fehlendes abschließendes Semikolon, ausgeglichene Klammern und zusätzliche Leerzeilen. Die Regeln sind konfigurierbar und jeder Befund hat Code, Stufe und Zeilennummer.
Python-Prüfung
Findet typische Python-Probleme, ohne den Code auszuführen: ungenutzte Importe, Vergleiche mit None und True, nacktes except, veränderliche Standardargumente, zu lange Zeilen, Tabulatoren, mehrdeutige Namen, nie genutzte Zuweisungen und ein fehlender abschließender Zeilenumbruch.
Compose zu Kubernetes
Wandelt eine eigene Compose-Beschreibung in Kubernetes-Ressourcen um: Für jeden Dienst entsteht ein Deployment mit Image, Ports, Umgebungsvariablen, Volumes und Limits sowie ein Service mit passendem Selektor, wenn Ports veröffentlicht werden. Bind-Mounts, nicht deklarierte Volumes, Images ohne Tag und Verweise auf unbekannte Dienste werden gemeldet; das Ergebnis ist ein fertiges YAML-Manifest.
GitHub-Actions-Prüfung
Prüft einen Workflow lokal: berechnet die Ausführungsreihenfolge aus dem Abhängigkeitsgraph, erweitert die Matrix und findet Zyklen in needs, unbekannte Runner, Schritte mit uses und run zugleich, Schritte ohne Aktion, entfernte set-output-Befehle und alte Hauptversionen offizieller Actions. Nichts wird an GitHub gesendet.
Richtlinienauswertung
Wertet eine Richtlinie in einer lesbaren Rego-Teilmenge gegen ein geliefertes Eingabedokument aus: package, default, vollständige Regeln mit Rumpf, Teilregeln deny[msg], not, Vergleiche, Zähler, Präfix- und Enthaltensein-Prüfungen, :=-Zuweisungen und Platzhalter-Indizierung. Ausgegeben werden Entscheidung, ausgelöste Regeln und Begründungen einer Ablehnung.
JSON-Abfragen
Führt Ausdrücke über eigenem JSON aus: Feldpfade, Array-Indizes und Filter, ein Platzhalter für alle Werte, Objekt- und Array-Aufbau, Variablen, Bereiche, Textverkettung und dutzende Funktionen von count, sum, keys und sort bis substring, replace und merge. Das Ergebnis lässt sich als JSON herunterladen.
Thrift-IDL-Prüfung
Liest eine Thrift-IDL ein, prüft ihre Struktur und erzeugt einen Client: doppelte Feldnummern und Namen, unbekannte Typen, erforderliche Felder in einer union und doppelte Methoden werden gefunden, danach entstehen Interfaces, Enums, eine Dienstbeschreibung, ein JSON-Schema und ein transportunabhängiges Client-Gerüst.
Prüfung der Komponenten auf Schwachstellen
Vergleicht eine eigene Abhängigkeitsliste anhand von Versionsbereichen mit einer Schwachstellen-Datenbank: akzeptiert Zeilen "Name Version" oder eine JSON-Komponentenliste, vergleicht Versionen inklusive Vorabversionen und zeigt, welche Einträge genau diese Versionen betreffen und welche Version sie behebt. Die mitgelieferte Datenbank ist ein Beispiel zur Prüfung, kein laufender Datenkanal.
HTTP-API-Client
Erstellt eine Anfrage an die eigene API und zeigt die genaue Form auf der Leitung: Anforderungszeile, Header, Inhaltslänge, Basic-Auth und Bearer-Token. Header-Werte werden auf versteckte Zeilenumbrüche geprüft, der Inhalt bekommt einen einheitlichen Inhaltstyp, und die Antwort wird lokal ausgewertet: Statusklasse, Header, Größe, JSON-Analyse sowie Hinweise zu Caching und Sicherheit. Die Anfrage verlässt das Gerät erst nach ausdrücklicher Zustimmung auf diesem Bildschirm.
API-Attrappe
Beschreibt Routen als Klartext oder JSON und findet die Antwort für eine Anfrage: Pfadabgleich mit Parametern, exakte Route vor parametrisierter Route, Aufteilung nach Methode mit 405-Antwort, eingebaute 404- und 405-Antworten sowie Wertersetzung im Antwortinhalt aus Pfadparametern, Abfragezeichenfolge, Headern und Anfrageinhalt. Einfache Zufallswerte nutzen einen reproduzierbaren Startwert.
WebSocket-Client
Analysiert einen WebSocket-Handshake nach RFC 6455: Methode, Version, Upgrade-Header, die 16-Byte-Schlüssellänge und den korrekten, aus dem Schlüssel berechneten sec-websocket-accept-Wert. Kodiert und dekodiert Frames: Text, Binär, Close, Ping und Pong, Längen bis 64 Bit, Maskierung, Schließcodes und Gründe, und lehnt Steuerframes über 125 Bytes sowie gesetzte reservierte Bits ab. Frames werden hexadezimal angezeigt.
MQTT-Client
Kodiert und dekodiert MQTT-3.1.1-Pakete mit eigenem Codec: CONNECT mit Flags für saubere Sitzung, Testament, Benutzername und Kennwort, PUBLISH mit Dienstgüte, Behalten und Duplikat, SUBSCRIBE und SUBACK mit gewährten Codes, CONNACK mit Ablehnungsgrund. Der Themenabgleich mit den Platzhaltern + und # wird, wie die Spezifikation verlangt, getrennt geprüft.
Webhook-Zustellung
Plant die Webhook-Zustellung mit Wiederholungen: Zeitplan mit Backoff-Faktor und Jitter, Gesamtwartezeit, Einordnung jeder Antwort als Erfolg, vorübergehend oder dauerhaft, Abbruch nach dauerhaftem Fehler, Fortsetzung nach 429 und 5xx sowie eine HMAC-SHA-256-Signatur des Inhalts. Das Versuchsprotokoll lässt sich herunterladen, es wird keine Netzwerkanfrage gesendet.
API-Prüfung nach Beschreibung
Liest eine OpenAPI-Beschreibung als JSON oder YAML, listet Operationen, Parameter und Antworten auf und baut daraus Prüfungen: gültige Anfrage, falsche Typen, Werte außerhalb der Grenzen, fehlende Pflichtfelder, unbekannter Pfad und fehlender Inhalt. Zusätzlich wird die Anbieterantwort geprüft: ob der Status deklariert ist, ob ein Content-Type-Header vorhanden ist und ob der Inhalt zum Schema passt — Typen, Pflichtfelder, Aufzählungen, Grenzen, Muster und Datumsformat. Fehler in der Beschreibung selbst werden ebenfalls gemeldet.
Vertragstests
Liest einen Verbrauchervertrag im Pact-Stil und vergleicht ihn mit tatsächlichen Anbieterantworten: genaue Werte, Typen, ganze Zahlen, Dezimalzahlen, Wahrheitswerte, reguläre Ausdrücke, nicht leere Werte, Datumsangaben, Arrays mit Mindestanzahl und Vorlagen für wiederkehrende Elemente. Jede Abweichung nennt einen Pfad im Dokument und eine Erklärung; der Prüfbericht lässt sich herunterladen.
WebAssembly-Optimierung
Analysiert ein binäres WebAssembly-Modul, faltet konstante Ausdrücke, entfernt Code nach abschließenden Anweisungen und ungenutzte lokale Variablen und gibt ein kleineres Modul aus. Das Ergebnis wird durch Ausführung in einer eigenen Sandbox geprüft: Größe vorher und nachher, jede Änderung und das echte Aufrufergebnis.
WebAssembly-Sandbox
Führt ein erlaubtes WebAssembly-Modul in einer eigenen Sandbox mit Schrittbudget, begrenztem Speicher und einer Liste erlaubter Importe aus. Angezeigt werden Aufrufergebnis, verbrauchte Schritte, exportierte Funktionen und bei Endlosschleife, Division durch null oder Speicherüberschreitung der genaue Abbruchgrund.
FlatBuffers-Prüfung
Liest ein FlatBuffers-Schema, baut daraus ein Paket und liest es sofort zurück: Tabellen, skalare Felder, Zeichenketten, Vektoren und verschachtelte Tabellen. Angezeigt werden Paketgröße, Feldlayout und ob die gelesenen Werte den angegebenen entsprechen.
Cap’n-Proto-Prüfung
Liest ein Cap’n-Proto-Schema, baut daraus eine Nachricht und liest sie zurück: skalare Felder, Text, Listen und verschachtelte Strukturen. Angezeigt werden Nachrichtengröße in Bytes, Anzahl der Daten- und Zeigerwörter und ob die gelesenen Werte den angegebenen entsprechen.