Я смотрю на cel- go в качестве кандидата на использование его в качестве механизма политики. Я хочу иметь возможность оценить выражение по сохраненным данным, например: users. json
{
"userid": "user1",
"org": "org1 ",
" role ":" admin "
}
resources. json
{
" resourceid ":" r1 " ,
"org": "org1",
}
и мой запрос ввода будет: (пользователь, запрашивающий доступ к ресурсу)
input_request. json
{
"идентификатор пользователя": "пользователь1",
"ресурс": "r1",
"доступ": "read"
}
Итак, выражение, которое я хочу оценить: (псевдо)
store_user = getUser [input_user_id] // getUser от пользователей. json сохраненный_ресурс = getResource [input_resource_id] // getResource из ресурсов. json
Если (сохраненный_пользователь.org == сохраненный_ресурс.org) И сохраненный_имя_рол == "администратор", то "разрешить", иначе "отказать"
Это может быть легко достигнуто с помощью механизма политики OPA. Как я могу использовать переменные Store_user и Stored_resource в выражениях CEL?