failproofai pack build erzeugt alle drei aus einer Policy-Datei, die bereits vorhanden ist.
1. Die Policies schreiben
Eine einzelne Datei, die dieselbe API wie jede benutzerdefinierte Policy verwendet. Zwei zusätzliche Felder sind für ein Pack relevant:defaultEnabled ist standardmäßig false, wenn es weggelassen wird. Ein einfaches failproofai pack add aktiviert nur das, was explizit markiert wurde — ob alle Policies eines Fremden unbeaufsichtigt installiert werden, sollte nicht stillschweigend für den Nutzer entschieden werden.
2. Die Release-Assets erstellen
Zur Build-Zeit abgelehnt werden: eine ID, die nicht dem Format
publisher/name entspricht; ein Policy-Name, der / enthält; eine Policy, die alwaysOn deklariert; eine fehlende description, category oder match; ein Eintrag, der nichts registriert; sowie ein Eintrag, der lokale Dateien importiert.
3. Dem Release beifügen
Das Release mit derselben Version taggen, die beim Build angegeben wurde, und alle drei Dateien als Release-Assets anhängen:Eine neue Version veröffentlichen
Mit dem neuen--version bauen, ein neues Release taggen und die drei Assets erneut anhängen. Consumer führen dasselbe pack add aus und behalten die Teilmenge, die sie ausgewählt hatten; eine deaktivierte Policy bleibt auch nach dem Upgrade deaktiviert.
Das Umbenennen einer Policy ist eine breaking change: Ein System, das sie deaktiviert hatte, deaktiviert jetzt einen Namen, der nicht mehr existiert, und der neue Name wird mit dem Standardwert von defaultEnabled aktiviert.
Was Nutzer vertrauen
SHA256SUMS liegt im selben Release wie das Artefakt und beweist daher, dass die Bytes mit dem übereinstimmen, was veröffentlicht wurde — nicht jedoch, wer der Urheber ist. Wer Schreibzugriff auf das Repository hat, kann beide Dateien schreiben. Der Schutz für die Nutzer besteht darin, dass der Digest bei der Installation eingefroren wird — was veröffentlicht wurde, kann nachträglich nicht mehr verändert werden.
Aus einem Repository veröffentlichen, dessen Schreibzugriff kontrolliert wird, und ein Pack-Release wie die Veröffentlichung eines Packages behandeln.
Beobachten vor dem Durchsetzen
Ein Manifest kann"effect": "observe" deklarieren. Diese Policies werden ausgeführt und ihre Urteile werden aufgezeichnet und verworfen — nichts wird blockiert. So lässt sich eine neue Regel gegen echten Traffic messen, bevor sie die Arbeit von jemandem unterbrechen kann.

