failproofai pack build создаёт все три файла на основе уже имеющегося файла политики.
1. Напишите политики
Один файл, использующий тот же API, что и любая пользовательская политика. Для пакета важны два дополнительных поля:defaultEnabled по умолчанию имеет значение false, если вы его опустите. Простая команда failproofai pack add включает только то, что вы отметили — установка всех политик незнакомца без участия пользователя — это решение, которое установщик не должен принимать за своего пользователя.
2. Создайте релиз-артефакты
Отклоняется на этапе сборки: id, который не соответствует формату
publisher/name, имя политики, содержащее /, политика, объявляющая alwaysOn, отсутствие description, category или match, точка входа, которая ничего не регистрирует, и точка входа, которая импортирует локальные файлы.
3. Прикрепите их к релизу
Отметьте релиз той же версией, которую вы создали, и прикрепите все три файла как артефакты релиза:Поставка новой версии
Создайте пакет с новым--version, создайте новый релиз, снова прикрепите три артефакта. Потребители запустят тот же pack add и сохранят любое подмножество, которое они выбрали; политика, которую они отключили, останется отключённой при обновлении.
Изменение имени политики — это критическое изменение: машина, которая его отключила, отключает имя, которое больше не существует, а новое имя приходит с тем, что говорит defaultEnabled.
Чему доверяют ваши пользователи
SHA256SUMS находится в том же релизе, что и артефакт, поэтому он доказывает, что байты — это те, которые вы опубликовали, но не кто вы. Кто угодно, у кого есть доступ на запись в репозиторий, может записать оба файла. Защита ваших пользователей в том, что хеш закреплён при установке, поэтому то, что вы поставили, не может измениться после этого.
Публикуйте из репозитория, доступ на запись в который вы контролируете, и относитесь к релизу пакета как к публикации пакета.
Наблюдайте перед тем, как применять
Манифест может объявить"effect": "observe". Эти политики запускаются, и их решения записываются и отбрасываются — ничего не блокируется. Это способ проверить новое правило на реальном трафике перед тем, как оно сможет помешать чьей-то работе.

