Code Security

Utiliser le CLI

Fichiers lus, options, mode --dry-run et variables d'environnement.
  • 4 min de lecture
  • Mis à jour le 3 oct. 2026

01Fichiers lus

Le CLI lit en priorité vos fichiers de verrouillage. Il n'envoie que le nom, la version et l'écosystème de chaque dépendance.

  • npm : package-lock.json, npm-shrinkwrap.json, yarn.lock
  • Composer : composer.lock
  • Python : poetry.lock, uv.lock, pdm.lock, Pipfile.lock, requirements.lock (pip freeze), requirements.txt
  • Rust : Cargo.lock
  • Go : go.mod
  • Dart et Flutter : pubspec.lock

Le dossier courant et ses sous-dossiers sont lus : un monorepo s'analyse en une commande depuis la racine. Les dépendances de développement sont repérées et passent après celles de production.

02npm : sans fichier de verrouillage

Un package.json sans package-lock.json ni yarn.lock ne fixe que des plages de versions (par exemple ^4.19.0) : la version réellement installée reste incertaine, et les dépendances indirectes sont invisibles.

Si npm install a déjà été lancé dans le dossier, le CLI lit directement les versions résolues dans node_modules (lecture seule, comme pour Python) plutôt que de deviner depuis les plages de versions.

Sans node_modules installé non plus, le CLI se limite aux dépendances à version exacte de package.json et vous le signale. Lancez npm install avant le scan, ou versionnez un fichier de verrouillage.

03Python : voir aussi les dépendances indirectes

Un requirements.txt écrit à la main ne liste que vos dépendances directes. Les paquets qu'elles installent (par exemple ceux de FastAPI ou de Django) restent invisibles, et leurs failles aussi.

Le CLI complète cela pour vous : s'il ne trouve aucun fichier déjà complet (Poetry, uv, PDM, Pipenv, pip-tools), il interroge l'environnement Python installé dans le dossier scanné — l'équivalent de pip freeze — pour retrouver les dépendances indirectes. Lecture seule, rien n'est installé ni modifié.

Si aucun environnement Python n'est accessible (par exemple en CI sans venv activé), le CLI retombe sur les dépendances directes et vous le signale. Générez alors un fichier figé et versionnez-le, il sera lu en priorité :

$ pip freeze > requirements.lock

04Options

  • La clé : enregistrée une fois par machine par la commande connect, ou passée dans la variable CODEBOX_KEY (CI).
  • --dry-run : affiche exactement ce qui serait envoyé, sans rien envoyer.
  • --fail-on critical|high|medium|low : renvoie le code de sortie 2 si une faille de cette gravité est ouverte.
  • --json : résultat au format JSON.
  • --no-wait : n'attend pas la fin de l'analyse.
  • --timeout : durée d'attente maximale en secondes (180 par défaut).
$ npx -y https://codebox.nealix.org/cli/codebox-cli-1.0.12.tgz scan --dry-run
Vérifiez le contenu envoyé avant votre premier scan.

05Une clé par machine, pas par projet

$ npx -y https://codebox.nealix.org/cli/codebox-cli-1.0.12.tgz connect cbk_votre_cle

La clé est enregistrée dans votre dossier personnel (~/.codebox), jamais dans un dépôt. Les anciens tokens par projet (cb_…) restent acceptés.

Article suivantIntégrer CodeBox à votre CIBloquer une fusion quand une faille critique est ouverte, avec GitHub Actions ou GitLab CI.
Gratuit · 3 projets inclus

Mettez-le en pratique.

Créez un compte gratuit et suivez l'assistant de démarrage.