Skip to main content
Создайте файл с расширением policies.js, policies.mjs или policies.ts в папке .failproofai/policies/. Файлы соглашений загружаются автоматически на уровне проекта и пользователя.

Протестируйте политику перед публикацией в облако

  1. Установите пользовательскую политику на одном тестовом компьютере и запустите как соответствующее действие, так и легитимное несовпадение.
  2. Перейдите в Observe → policy и сравните два решения.
  3. Откройте каждый связанный сеанс и убедитесь, что полезная нагрузка события содержит достаточно доказательств для правила.
  4. Когда поведение будет правильным, переместите проверенный исходный код в Admin → policy editor и опубликуйте версию.
Это совпадает с production/config.yml, /srv/production/config.yml, /srv/production и C:\\production\\config.yml для Write и Edit. Не совпадает с названиями вроде production-backup, так как production должно быть полным сегментом пути. Проверьте и установите явный файл:
Контекст политики включает тип события, нормализованную полезную нагрузку, имя и вход инструмента, метаданные сеанса, параметры и исходный CLI, если доступен.

Протестируйте пути отказа

Запустите валидацию после изменения файла входа или любого локального модуля, который он импортирует:
Строгий путь CLI завершается ошибкой при отсутствии файлов, синтаксических ошибках, неразрешённых импортах, исключениях верхнего уровня и превышении времени загрузки модуля. Во время принудительного применения сломанный пользовательский файл регистрируется и пропускается, так что встроенные политики могут продолжить работу. Рассматривайте любое предупреждение загрузки как потерю ожидаемого принудительного применения и создавайте оповещение о нём в журналах производства. Используйте глобально уникальные имена во всех явных, соглашение и управляемых облаком политиках. Держите функции политик детерминированными, привязывайте внешние вызовы к коротким тайм-аутам и возвращайте намеренный allow, instruct или deny на каждом пути.
Пользовательская политика — это код принудительного применения. Тестируйте отсутствующие поля, альтернативные имена инструментов и неправильно сформированный ввод — не только ожидаемое совпадение.