
Tekunda Team

Tekunda Team

Kurz gefasst: Salesforce Code Analyzer v5 löst das
sfdx-scanner-Plugin ab. Installieren Sie ihn mit
sf plugins install code-analyzer, tauschen Sie
sf scanner run gegen sf code-analyzer run, und ersetzen Sie
die alten Schalter --engine und --category durch ein
einziges --rule-selector. Die Graph Engine zieht unter dasselbe Kommando,
und die Feinjustierung der Engines wandert von CLI-Schaltern in eine
code-analyzer.yml.
Ruft Ihre CI noch sf scanner run auf, dann planen Sie diese Migration vor
der nächsten AppExchange-Einreichung ein, nicht danach. Der Rest der Security Review
ändert sich nicht, dieser Leitfaden bleibt also beim Werkzeugwechsel. Was Reviewer
wirklich ablehnen und in welcher Reihenfolge Sie es beheben, steht in
Salesforce Security Review Checklist: What to Fix, In Order.
Gleiche Aufgabe, neue Eingangstür. Code Analyzer v5 ist ein sf-Plugin,
das die Engines der statischen Analyse hinter einem Kommando und einem Ergebnisformat
bündelt, statt der Engine-für-Engine-Schalter aus v4. Bei der Migration zählen drei
Unterschiede:
sf code-analyzer run deckt
die Engines ab, die früher zwischen sf scanner run und
sf scanner run dfa aufgeteilt waren, die Graph Engine ist also kein
eigener Aufruf mit eigenen Schaltern mehr.
--rule-selector ab, statt
--engine mit --category zu kombinieren.
code-analyzer.yml, die Sie neben dem Code committen, den sie regelt.
Plugin installieren, dann gegen Ihren Workspace laufen lassen:
sf plugins install code-analyzer sf code-analyzer run --workspace . --view detail
Erzeugen Sie einmal eine Startkonfiguration und committen Sie sie, damit alle Entwicklerinnen und Entwickler und jeder CI-Job mit denselben Regeln analysieren:
sf code-analyzer config --output-file code-analyzer.yml
Vertrauen Sie einem Selektor erst, wenn Sie aufgelistet haben, worauf er hinausläuft. Das ist der schnellste Weg, eine Migration zu erwischen, die Ihre Abdeckung still verengt hat:
sf code-analyzer rules --rule-selector Security
Gehen Sie Pipeline-Definitionen und lokale Skripte in einem Durchgang durch:
sf scanner run --target force-app wird
sf code-analyzer run --workspace force-app.
--engine pmd --category Security wird
--rule-selector pmd:Security, oder schlicht
--rule-selector Security, wenn Sie dieses Tag über alle Engines hinweg
wollen.
sf scanner run dfa wird ein Selektor auf die Graph Engine innerhalb
des normalen Laufs statt ein eigenes Unterkommando.
--format plus --outfile wird
--output-file, wobei die Dateiendung das Format bestimmt. Nutzen Sie
--output-file results.sarif, wenn Sie Findings in die
Code-Scanning-Ansicht Ihres Hosters hochladen.
code-analyzer.yml.
Verschieben Sie sie, statt sie als Schalter nachzubauen.
Übernehmen Sie eine Unterdrückungsliste nicht per Hand über Regelnamen. Die
Regel-Identifikatoren sind mit den Engines umgezogen, leiten Sie Ihre Ausnahmen also
aus einem frischen sf code-analyzer rules-Listing neu ab und löschen Sie,
was nicht mehr auflöst.
Über --severity-threshold. Das Kommando endet ungleich null, sobald es
einen Verstoß auf oder über dem übergebenen Niveau findet, und genau das macht aus dem
Scan ein Gate statt eines Berichts:
sf code-analyzer run --workspace . \ --rule-selector Security \ --severity-threshold 3 \ --output-file results.sarif
Setzen Sie die Schwelle dort, wo Ihre Codebasis heute steht, nicht dort, wo Sie sie haben wollen, und ziehen Sie sie an, sobald der Rückstand abgebaut ist. Ein Gate, das ab Tag eins jeden Pull Request scheitern lässt, ist binnen einer Woche abgeschaltet, und ein abgeschaltetes Gate fängt gar nichts.
Code Analyzer deckt den Code in Ihrem Package ab. Der Rest der Einreichungsnachweise bleibt vom Versionswechsel unberührt:
Sie migrieren unter Termindruck eine Pipeline, die Sie nicht gebaut haben? Tekunda baut und paketiert AppExchange-Produkte als Salesforce PDO, Security Review inklusive.
Wird sfdx-scanner noch unterstützt?
Behandeln Sie ihn als Vorgängergeneration. Code Analyzer v5 ist der Nachfolger, und dort landen neue Regeln und Engine-Updates. Eine Pipeline, die auf dem alten Plugin bleibt, fällt still bei der Abdeckung zurück.
Ändern sich meine Ergebnisse nach der Migration?
Rechnen Sie damit. Selektoren lösen ein anderes Regelset auf als Ihre alte Kombination aus Engine und Kategorie, und Schweregrade sind über die Engines hinweg normalisiert. Lassen Sie beide Versionen einmal nebeneinander laufen und vergleichen Sie die Findings, bevor Sie den alten Job löschen.
Wohin gehören Engine-Einstellungen jetzt?
In die code-analyzer.yml im Repository. Erzeugen Sie eine Startdatei mit
sf code-analyzer config und bearbeiten Sie sie von dort, statt eine von
Grund auf zu schreiben.
Kann ich ihn ohne die komplette Salesforce CLI betreiben?
Es ist ein sf-Plugin, die CLI ist also Voraussetzung. Installieren Sie
CLI und Plugin in Ihrem Build-Image statt bei jedem Lauf, sonst dominiert die
Installation die Job-Laufzeit.