cel-go: оценка выражений по сохраненным данным

Я рассматриваю cel-go как кандидата на использование его в качестве механизма политики. Я хочу иметь возможность оценивать выражение по сохраненным данным, например: users.json
{

"идентификатор пользователя": "пользователь1",

"org": "org1",

"роль": "администратор"

}

resources.json
{

"resourceid": "r1",

"org": "org1",

}

и мой запрос на ввод будет: (Пользователь, запрашивающий доступ к ресурсу)

input_request.json

{

"идентификатор пользователя": "пользователь1",

"ресурс": "r1",

"доступ": "читать"

}

Итак, выражение, которое я хочу оценить: (псевдо)

stored_user = getUser [input_user_id] // getUser fromusers.json stored_resource = getResource [input_resource_id] // getResource из resources.json

Если (stored_user.org == stored_resource.org) И stored_user.role=="admin", то "разрешить" иначе "запретить"

Это легко сделать с помощью механизма политик OPA. Как я могу использовать переменные stored_user и stored_resource в выражениях cel?

0 ответов

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