cel- go: оценка выражений по сохраненным данным - PullRequest
0 голосов
/ 22 апреля 2020

Я смотрю на 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?

...