Skip to main content
Ein Pack ist ein Satz von Policies, der als GitHub-Release veröffentlicht wurde. Ein einziger Befehl installiert ihn, die eigenen Prüfsummen des Releases werden vor der Ausführung verifiziert, und der Digest wird gespeichert, damit sich der Pack auf deinem Rechner anschließend nicht mehr verändern kann.

Die Failproof AI Policies installieren

Damit wird der von uns veröffentlichte Satz aus der im Paket enthaltenen Kopie installiert — es ist also keine Netzwerkverbindung erforderlich, und hinter einem Proxy kann es nicht fehlschlagen. Nur einen Teil davon übernehmen:
failproofai pack list listet alle Kategorien auf, die der Pack enthält.

Den Inhalt eines Packs vor der Installation prüfen

Listet alle Policies des Packs gruppiert nach Kategorie auf und zeigt an, welche der Autor standardmäßig aktiviert hat und welche optional sind. Es wird ausschließlich das Manifest gelesen — das eigentliche Artefakt wird weder heruntergeladen noch importiert. Das Anzeigen eines fremden Packs führt also keinen fremden Code aus. Das Manifest wird dennoch gegen die SHA256SUMS des Releases geprüft, sodass das, was du siehst, auch das ist, was installiert würde. failproofai pack list ohne Angabe einer Quelle listet die bereits hier installierten Packs auf.

Einen fremden Pack installieren

Alle folgenden Formate funktionieren — füge einfach das ein, was du hast: Wird kein Tag angegeben, wird das neueste Release installiert und fixiert, und anschließend wird angezeigt, welcher Tag gewählt wurde. Was gespeichert wird, benennt immer genau ein Release, sodass eine Neuinstallation nicht abweichen kann.

Nur einen Teil eines Packs verwenden

Standardmäßig erhältst du die eigenen Standardwerte des Packs — die Policies, die der Autor als sicher für die unbeaufsichtigte Aktivierung markiert hat — nicht alles, was er enthält.
--category und --policy werden als Vereinigung kombiniert (--only wird als Synonym für --policy akzeptiert). Wird ein Pack in einer neueren Version erneut hinzugefügt, bleiben die gewählten Einstellungen erhalten, anstatt alles andere wieder einzuschalten.

Verwaltung der aktiven Policies

Ein einfacher Name bezieht sich auf die eingebaute Policy, sofern eine mit diesem Namen existiert. Den Namen einer Pack-Kopie explizit angeben, wenn nötig:
Wenn ein Pack eine Policy mitbringt, deren Name auch ein aktiviertes Builtin ist, wird das Builtin ausgeführt und die Pack-Kopie übersprungen — andernfalls würde dieselbe Prüfung zweimal ausgewertet. Das Builtin deaktivieren, um stattdessen die Pack-Kopie zu verwenden.

Woher die Failproof AI Policies stammen

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

Was Integritätsprüfung leistet und was nicht

SHA256SUMS wird im selben Release wie das Artefakt ausgeliefert und ist daher keine Signatur und beweist nichts darüber, wer es veröffentlicht hat. Was sie beweist, ist, dass die Bytes genau die des veröffentlichten Releases sind — und da der Digest beim Hinzufügen des Packs gespeichert und vor jedem Import erneut geprüft wird, kann sich ein Pack auf deinem Rechner anschließend nicht mehr verändern. Ein Repository, das einen Asset-Tag neu setzt oder ersetzt, wird nicht mehr geladen, anstatt still etwas anderes auszuführen. Bei der Installation wird der Pack auch einmalig importiert und gegen sein eigenes Manifest geprüft. Ein Pack, dessen Artefakt nicht geparst werden kann oder der etwas anderes als deklariert registriert, wird abgelehnt, bevor etwas aktiviert wird — anstatt sauber zu installieren und beim nächsten Tool-Aufruf zu versagen.

Wenn ein Pack nicht geladen werden kann

Ein Pack, der auf diesem Rechner durchgesetzt werden soll, aber nicht ausgeführt werden kann, verweigert die Ereignisse, die von den fehlenden Policies abgedeckt wurden, anstatt sie stillschweigend zuzulassen. Siehe Fehlerverhalten. failproofai pack list benennt jeden Pack in diesem Zustand und beendet sich mit einem Fehlercode ungleich null.

Offline-Betrieb und Mirrors

Eigene Packs veröffentlichen: siehe Pack veröffentlichen.