问题标签 [rego]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
53 浏览

kubernetes - REGO如何获取与模式匹配的对象(映射)键

使用开放策略代理(OPA ) “规则”语言Rego并给出以下数据:

什么是正确的 Rego 表达式或语句来获取以“x-”开头的键?也就是说,我想要一个数组

我知道这个startswith()功能,并且我尝试过各种尝试理解,但无论我尝试什么,我都无法让它工作。

任何帮助将非常感激。

0 投票
1 回答
34 浏览

open-policy-agent - OPA规则正文中的赋值(=)运算符和相等(==)运算符有什么区别

在 OPA 文档https://www.openpolicyagent.org/docs/latest/policy-testing/中有一个策略定义,如下所示:

在第一条规则中它是input.path == ["users"]而在第二条规则中它是input.path = ["users", profile_id]。那么有人可以帮我指出这两者之间的区别吗?

0 投票
1 回答
55 浏览

open-policy-agent - 如果我们在 OPA 的规则体中定义了理解,为什么我们无法评估它?

以下是我的示例代码:https ://play.openpolicyagent.org/p/oyY1GOsYaf

在这里,当我尝试评估名称数组时,它显示: error occurred: 1:1: rego_unsafe_var_error: var names is unsafe

但是当我在允许规则定义之外定义相同的理解时:https ://play.openpolicyagent.org/p/Xv0cF7FM8b ,我能够评估选择

有人可以帮我指出区别吗?如果我想在规则中定义理解,我需要遵循什么语法吗?提前致谢

注意:在这两种情况下,我都得到了预期的最终输出,唯一的问题是名称数组评估。

0 投票
1 回答
28 浏览

open-policy-agent - 即使比较评估为假,OPA/rego 结果也为真

我刚开始使用 OPA,所以很有可能我做错了什么。

我有以下输入:

我想确保用户拥有所有必需的权限。我已经有了所需的变量:

这应该设置allow为 false,因为Foo.Bar不在principal_roles_at_requested_scope集合中,但它被评估为true

另一方面,这有效,但不能明显使用:

0 投票
1 回答
29 浏览

java - 如何使用正则表达式从代码块中选择第一行?

我正在尝试使用 java 从代码块(本质上是一个长字符串)中选择第一行。我目前正在使用纯 java 执行此操作,但这似乎很笨拙。如果可能的话,我想尝试使用正则表达式来代替。

我的代码目前看起来像:

代码字符串如下所示:

我需要的codeExpr的最终结果是:

0 投票
0 回答
14 浏览

opa - 有什么方法可以验证输入是否以 REGO 语言传递?

在 REGO 语言中,我们如何验证输入是否存在?我有一种方法可以做到这一点。

但这是正确的方法吗?或者,还有更好的方法?

0 投票
1 回答
17 浏览

node.js - 如何将在 docker 上运行的简单 node.js 应用程序连接到也在 docker 容器上运行的 Open Policy Server

我正在尝试使用 docker compose 将节点应用程序和 Open Policy Agent 服务器捆绑在一起,我可以从浏览器访问 OPA 服务器,但是当我尝试使用节点应用程序中的 axios 发出请求时,我得到了这个:

我还尝试以相同的结果运行 2 节点应用程序,因此 opa 服务器没有问题

我创建了一个网络并确保两个容器都是其中的一部分:

这是码头工人撰写文件:

0 投票
0 回答
18 浏览

go - 如何获取 OPA 策略的属性?

假设我有 OPA 政策

我想得到一个input使用 Golang 的属性列表,在这种情况下是 ["path", "method"].

这甚至可能吗?