Создайте файл с расширением policies.js, policies.mjs или policies.ts в папке .failproofai/policies/. Файлы соглашений загружаются автоматически на уровне проекта и пользователя.
Протестируйте политику перед публикацией в облако
- Установите пользовательскую политику на одном тестовом компьютере и запустите как соответствующее действие, так и легитимное несовпадение.
- Перейдите в Observe → policy и сравните два решения.
- Откройте каждый связанный сеанс и убедитесь, что полезная нагрузка события содержит достаточно доказательств для правила.
- Когда поведение будет правильным, переместите проверенный исходный код в Admin → policy editor и опубликуйте версию.
Файлы соглашений в .failproofai/policies/ загружаются без --custom. Сохраняйте явную команду установки в CI, когда валидация должна завершиться ошибкой при нарушении модуля.
Это совпадает с production/config.yml, /srv/production/config.yml, /srv/production и C:\\production\\config.yml для Write и Edit. Не совпадает с названиями вроде production-backup, так как production должно быть полным сегментом пути.
Проверьте и установите явный файл:
Контекст политики включает тип события, нормализованную полезную нагрузку, имя и вход инструмента, метаданные сеанса, параметры и исходный CLI, если доступен.
Протестируйте пути отказа
Запустите валидацию после изменения файла входа или любого локального модуля, который он импортирует:
Строгий путь CLI завершается ошибкой при отсутствии файлов, синтаксических ошибках, неразрешённых импортах, исключениях верхнего уровня и превышении времени загрузки модуля. Во время принудительного применения сломанный пользовательский файл регистрируется и пропускается, так что встроенные политики могут продолжить работу. Рассматривайте любое предупреждение загрузки как потерю ожидаемого принудительного применения и создавайте оповещение о нём в журналах производства.
Используйте глобально уникальные имена во всех явных, соглашение и управляемых облаком политиках. Держите функции политик детерминированными, привязывайте внешние вызовы к коротким тайм-аутам и возвращайте намеренный allow, instruct или deny на каждом пути.
Пользовательская политика — это код принудительного применения. Тестируйте отсутствующие поля, альтернативные имена инструментов и неправильно сформированный ввод — не только ожидаемое совпадение.