[MELDEN] Von der Vision zum Code: Ein Leitfaden zur Ausrichtung der Geschäftsstrategie auf die Ziele der Softwareentwicklung ist veröffentlicht!
HOL ES DIR HIER

Vermeiden Sie rechtliche Fallstricke: So schützt License Auditor CLI Ihr Projekt

readtime
Last updated on
March 19, 2025

A QUICK SUMMARY – FOR THE BUSY ONES

TABLE OF CONTENTS

Vermeiden Sie rechtliche Fallstricke: So schützt License Auditor CLI Ihr Projekt

Das Lizenzproblem

Im JavaScript-Ökosystem ist das Hinzufügen eines Pakets zu Ihrem Projekt so einfach wie das Ausführen npm i in deinem Terminal. Die Paketdateien werden aktualisiert, die Abhängigkeiten sind installiert und wir können die Fülle des riesigen NPM-Repositorys genießen. Nun, das ist vielleicht nicht immer der Fall — jedes Paket hat seine eigene Lizenz, und eine Vielzahl von Lizenzen belastet den Entwickler zusätzlich. Dazu können Anforderungen an die Namensnennung, der freie Zugang zum Quellcode oder sogar das Verbot gehören, finanzielle Vorteile zu erhalten.

Jedes dieser Pakete kann auch mehrere Abhängigkeiten haben, die ihre eigenen Lizenzen und Abhängigkeiten haben, ad infinitum. Wenn das Problem der Paketlizenzen von Beginn des Projekts an berücksichtigt oder früh genug erkannt wird, kann die Haftung minimiert werden, indem die Lizenzanforderungen angemessen ausgewählt und verstanden werden. Bei älteren Projekten, bei denen sich niemand mit diesem Problem befasst hat, könnte das Problem weitaus größer sein.

Aus diesem Grund haben wir ein konfigurierbares Tool entwickelt, das sich auf die Prüfung von Projektabhängigkeiten konzentriert - Lizenzprüfer CLI, oder LAC.

Paketmanager

JavaScript-Projekte verwenden eine Vielzahl von Paketmanagern, von denen jeder seine eigene Art hat, mit Abhängigkeiten umzugehen. Um LAC so universell wie möglich zu gestalten, haben wir dafür gesorgt, dass es mehrere Paketmanager unterstützt, darunter npm, yarn und pnpm.

Für npm nutzen wir Baumpfleger, eine Bibliothek, die entwickelt wurde, um Abhängigkeitsbäume strukturiert und effizient zu durchqueren und zu analysieren. Arborist ermöglicht es uns, Informationen über direkte und transitive Abhängigkeiten zu sammeln und so sicherzustellen, dass wir über eine vollständige Liste der in einem Projekt verwendeten Pakete verfügen.

Für yarn und pnpm verfolgen wir einen anderen Ansatz und verwenden ihre integrierten Befehle, um Abhängigkeitsdaten abzurufen. Insbesondere verwenden wir Garnliste für Yarn-Projekte und pnpm ls für pnpm-verwaltete Repositorys. Diese Befehle bieten strukturierte Ausgaben, die es uns ermöglichen, relevante Informationen über installierte Pakete und deren Versionen zu extrahieren. So wird sichergestellt, dass LAC Projekte unabhängig vom verwendeten Paketmanager nahtlos analysieren kann.

Viele Orte, an denen Sie eine Lizenz verstecken können

Sobald wir alle installierten Pakete identifiziert haben, besteht der nächste Schritt darin, ihre jeweiligen Lizenzen zu ermitteln. Dies ist nicht immer einfach, da Lizenzen an mehreren Stellen innerhalb eines Pakets deklariert werden können. LAC verfolgt einen umfassenden Ansatz, indem er die folgenden Quellen überprüft:

  • package.json-Dateien — Die meisten Pakete beinhalten eine Lizenz Feld in ihrem Paket.jsonund ist damit der erste und einfachste Ort, an dem man nachschauen kann.
  • LICENSE-Dateien — Einige Pakete enthalten eine eigene LICENSE-Datei, die den vollständigen Rechtstext ihrer Lizenz enthält. Wir suchen nach dieser Datei und versuchen, ihren Inhalt bekannten Lizenzen zuzuordnen.
  • README-Dateien — In Fällen, in denen ein Paket keine ausdrückliche Lizenzerklärung enthält, kann die README-Datei lizenzbezogene Informationen enthalten.

Bei der Suche nach LIZENZ und LESEN SIE MICH Dateien, wir verwenden Textähnlichkeitsberechnungen, um Lizenztexte zu erkennen, auch wenn sie nicht exakt den vordefinierten Formaten entsprechen. Dies hilft uns, Lizenzen, die unterschiedlich ausgedrückt werden oder geringfügige Textabweichungen enthalten, korrekt zu klassifizieren.

Ein Werkzeug muss zum Handwerker passen

Eine der Kernstärken von LAC ist die hohe Konfigurierbarkeit. Jedes Projekt hat seine eigenen Lizenzanforderungen, und wir wollten sicherstellen, dass unser Tool eine Vielzahl von Anforderungen erfüllt. LAC bietet die folgenden Konfigurationsoptionen:

  • Whitelist und Blacklist — Entwickler können eine Liste der erlaubten und verbotenen Lizenzen definieren. Wenn die Lizenz eines Pakets auf der Whitelist erscheint, wird es als konform markiert. Wenn es auf der schwarzen Liste erscheint, wird es als potenzielles Problem gekennzeichnet.
  • Liste der Überschreibungen — Bestimmte Pakete erfordern möglicherweise eine besondere Behandlung aufgrund unklarer Lizenzinformationen oder Ausnahmen in den Unternehmensrichtlinien. In der Liste der Überschreibungen können Benutzer manuell angeben, wie bestimmte Abhängigkeiten klassifiziert werden sollen, um Fehlalarme oder unnötige Warnungen zu vermeiden.

Durch dieses Maß an Anpassung stellt LAC sicher, dass Teams ihre Abhängigkeiten so prüfen können, dass sie ihren internen Richtlinien und gesetzlichen Anforderungen entsprechen.

Um License Auditor CLI so flexibel wie möglich zu gestalten, bieten wir mehrere Ausgabeoptionen. Benutzer können wählen zwischen:

  • Ergebnisse direkt im Terminal anzeigen — Es wird eine kurze, leicht lesbare Zusammenfassung angezeigt, in der konforme, unbekannte und auf der schwarzen Liste stehende Lizenzen hervorgehoben werden.
  • Ergebnisse in einer JSON-Datei speichern — Diese Option ist besonders nützlich für CI/CD-Pipelines und automatisierte Prüfungen, da sie die Integration mit anderen Tools und Berichtssystemen ermöglicht.

Durch die Unterstützung sowohl interaktiver als auch automatisierter Workflows fügt sich LAC nahtlos in moderne Entwicklungsumgebungen ein.

Zusammenfassung

Da Softwareprojekte immer komplexer werden, wird die Verwaltung von Abhängigkeiten zu einer immer wichtigeren Aufgabe. Das Risiko, rechtlich problematische Lizenzen in ein Projekt einzuführen, kann erheblich sein, insbesondere bei der Arbeit mit großen Abhängigkeitsbäumen. Mithilfe von Tools wie License Auditor CLI können Entwickler einen proaktiven Ansatz zur Einhaltung der Lizenzbestimmungen verfolgen und so sicherstellen, dass ihre Projekte rechtlich einwandfrei und frei von unerwarteten Verpflichtungen bleiben.

Durch seine umfassende Paketanalyse, flexible Konfigurationsoptionen und mehrere Ausgabeformate bietet LAC eine robuste Lösung für die Herausforderung der Prüfung von Abhängigkeitslizenzen. Ganz gleich, ob Sie ein neues Projekt starten oder eine bestehende Codebasis überprüfen, es ist wichtig, stets auf Softwarelizenzen zu achten — und zwar mit Lizenzprüfer CLI, es ist einfacher als je zuvor.

Frequently Asked Questions

No items found.

previous article in this collection

No items found.

It's the first one.

next article in this collection

It's the last one.