failproofai pack build は、既存のポリシーファイルからこの3つをすべて生成します。
1. ポリシーを記述する
カスタムポリシーと同じAPIを使用した1つのファイルです。パックに特有の追加フィールドが2つあります。defaultEnabled を省略した場合、デフォルトは false になります。通常の failproofai pack add は、明示的にマークしたポリシーのみを有効化します。見知らぬ人のすべてのポリシーを無人でインストールするかどうかは、インストーラーがユーザーに代わって決定すべきことではありません。
2. リリースアセットをビルドする
ビルド時に拒否される条件:
publisher/name 形式でないID、/ を含むポリシー名、alwaysOn を宣言するポリシー、description・category・match のいずれかが欠落している場合、何も登録しないエントリ、ローカルファイルをインポートするエントリ。
3. リリースに添付する
ビルド時に指定したバージョンでリリースにタグを付け、3つのファイルすべてをリリースアセットとして添付します。新バージョンの公開
新しい--version でビルドし、新しいリリースにタグを付け、3つのアセットを再度添付します。コンシューマーは同じ pack add を実行すれば、以前選択していたポリシーのサブセットが維持されます。無効化していたポリシーは、アップグレード後も無効のままです。
ポリシーの name を変更することは破壊的変更です。そのポリシーを無効化していたマシンは、もはや存在しない名前を無効化しようとすることになり、新しい名前は defaultEnabled の設定に従って有効化されます。
ユーザーが信頼するもの
SHA256SUMS はアーティファクトと同じリリースに存在するため、バイト列があなたが公開したものであることを証明しますが、あなたが誰であるかは証明しません。リポジトリへの書き込み権限を持つ人は、両方のファイルを書き換えることができます。ユーザーを守るのは、インストール時にダイジェストが固定されるという点です。つまり、公開後に内容が変更されても、インストール済みのユーザーには影響しません。
書き込みアクセスを自分でコントロールできるリポジトリから公開し、パックのリリースをパッケージの公開と同様に扱ってください。
適用する前に観察する
マニフェストに"effect": "observe" を宣言することができます。これらのポリシーは実行され、判定結果が記録されますが破棄されます。つまり、何もブロックされません。新しいルールを実際のトラフィックに対して測定し、誰かの作業を中断させる前に効果を確認するための方法です。

