openlang

Как определить, передали ли входные данные политике REGO?

Как в REGO проверить наличие входных данных? Я нашёл следующий способ.

package sandbox

default present = false

present {
  input.payload
}

Правильно ли так делать? Можно ли выбрать способ получше?

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Нет, ваш способ совершенно верный. Иногда нужно учесть случай, когда input.payload действительно существует, но имеет значение false, и тогда проверить его наличие позволяет унификация (https://www.openpolicyagent.org/docs/latest/policy-language/#unification-):

    package sandbox
    
    present {
      _ = input.payload
    }

    Однако в 98% случаев я бы выбрал ваш вариант.

    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Как случайно выбирать варианты enum в GDScript на Godot 3.3, не перечисляя их?

    Вот объявление enum, которое я использую в GDScript: Хочу случайно выбирать вариант enum, не перечисляя все возможные вариант…

    Ответы 2Последняя активность gdscript
  2. Синтаксис остатка в Nim

    Как в Nim записать операцию взятия остатка? cell % 7 == 0 выдаёт undeclared identifier: '%' Ни поиск в Google, ни просмотр SO…

    Ответы 2Последняя активность nim
  3. Возврат результата из функции APL

    Как сделать так, чтобы моя функция возвращала значение после завершения выполнения? Например, у меня есть: ROUTINE N ? N ⍴ 12…

    Ответы 2Последняя активность apl