Skip to main content
Ein Paket ist ein Satz von Richtlinien, der als GitHub-Release veröffentlicht wird. Ein einziger Befehl installiert es, die eigenen Prüfsummen des Releases werden vor der Ausführung verifiziert, und der Digest wird gespeichert, damit das Paket danach nicht unbemerkt verändert werden kann.

Die Failproof AI-Richtlinien installieren

Damit wird der von uns veröffentlichte Satz installiert – aus der im Paket enthaltenen Kopie. Es ist also keine Netzwerkverbindung erforderlich und es kann auch hinter einem Proxy nicht fehlschlagen. Einen Teil davon installieren:
failproofai pack list listet alle Kategorien auf, die das Paket enthält.

Den Inhalt eines Pakets vor der Installation einsehen

Listet alle Richtlinien des Pakets auf, gruppiert nach Kategorie, und zeigt an, welche vom Autor standardmäßig aktiviert und welche optional sind. Es wird ausschließlich das Manifest gelesen – das Einstiegs-Artefakt wird weder heruntergeladen noch importiert. Das Anzeigen eines fremden Pakets führt also keinen fremden Code aus. Das Manifest wird dennoch gegen die SHA256SUMS des Releases geprüft, sodass das Angezeigte dem entspricht, was installiert werden würde. failproofai pack list ohne Quelle listet die hier bereits installierten Pakete auf.

Ein fremdes Paket installieren

Alle dieser Varianten funktionieren – verwende einfach die, die du zur Hand hast: Wird kein Tag angegeben, wird das neueste Release installiert und angeheftet; anschließend wird der gewählte Tag ausgegeben. Was gespeichert wird, benennt immer genau ein Release, sodass eine Neuinstallation nicht abweichen kann.

Nur einen Teil eines Pakets übernehmen

Standardmäßig erhältst du die eigenen Standardwerte des Pakets – die Richtlinien, die der Autor als sicher für den unbeaufsichtigten Betrieb markiert hat – nicht alles, was es enthält.
--category und --policy werden als Vereinigung kombiniert (--only wird als Synonym für --policy akzeptiert). Das erneute Hinzufügen in einer neueren Version behält deine getroffene Auswahl bei, anstatt den Rest wieder einzuschalten.

Aktive Richtlinien verwalten

Ein einfacher Name bezieht sich auf die eingebaute Richtlinie, sofern eine mit diesem Namen existiert. Benutze den vollqualifizierten Namen eines Pakets, wenn du explizit auf die Paketkopie verweisen möchtest:
Wenn ein Paket eine Richtlinie enthält, deren Name auch einer aktivierten eingebauten Richtlinie entspricht, wird die eingebaute Richtlinie ausgeführt und die Paketkopie übersprungen – andernfalls würde dieselbe Prüfung doppelt ausgewertet. Deaktiviere die eingebaute Richtlinie, um stattdessen die Paketversion zu verwenden.

Woher die Failproof AI-Richtlinien stammen

core liest die im npm-Paket enthaltene Kopie. Derselbe Satz wird auch als GitHub-Release veröffentlicht, und genau dieses installierst du, wenn du eine bestimmte Version möchtest:

Was Integritätsprüfungen leisten – und was nicht

SHA256SUMS wird im selben Release wie das Artefakt ausgeliefert und ist daher keine Signatur und beweist nichts über den Herausgeber. Was sie beweist, ist, dass die Bytes genau die sind, die dieses Release veröffentlicht hat – und da der Digest beim Hinzufügen des Pakets gespeichert und vor jedem Import erneut geprüft wird, kann ein Paket danach nicht unbemerkt verändert werden. Ein Repository, das einen Asset neu taggt oder ersetzt, wird nicht mehr geladen, anstatt still etwas anderes auszuführen. Bei der Installation wird das Paket außerdem einmal importiert und gegen sein eigenes Manifest geprüft. Ein Paket, dessen Artefakt sich nicht parsen lässt oder das etwas anderes registriert als deklariert, wird abgelehnt, bevor irgendetwas aktiviert wird – anstatt sauber zu installieren und beim nächsten Tool-Aufruf zu versagen.

Wenn ein Paket nicht geladen werden kann

Ein Paket, dessen Durchsetzung auf diesem Rechner konfiguriert ist, aber nicht ausgeführt werden kann, verweigert die Ereignisse, die seine fehlenden Richtlinien abgedeckt hätten, anstatt sie stillschweigend zuzulassen. Siehe Fehlerverhalten. failproofai pack list benennt jedes Paket in diesem Zustand und beendet sich mit einem Fehlercode.

Offline-Betrieb und Mirrors

Eigenes Paket veröffentlichen: siehe Ein Paket veröffentlichen.