在 conftest 中使用 opa http.send
Using opa http.send with conftest
我对使用conftest时的数据导入和内置opa函数的执行有疑问。在下面的代码示例中,我有两个模块 abc
和 main
。我很方便地省略了 abc
的一些设置,重要的是它是一个有效的 https 调用。
从 repl 工作,我的代码完全按照我的预期执行,即时获取数据,即 available
并检查 stuff
是否在该列表中。 opa run -b .
然后点击 data.abc
执行 https 调用,即我可以看到数据包离开我的界面,并且包含我需要的列表的响应正文被拉入。然后我从 deny
得到预期的结果。当 运行 opa test . -v
.
时也会发生同样的事情
但是 运行 conftest verify -p .
或 conftest test abc/main.json -p .
永远不会执行 http.send
即数据包永远不会离开我的预期主机的接口。
我可以使用静态列表而不是使用 https 调用,但我无法控制列表何时更新。这是 conftest 的 expected/intended 限制吗?我可以执行这些功能来构建我的数据文档吗?我是否正确导入了它?
package abc
available = http.send(
{
"method": "get",
"url": request.url,
"headers": headers
}
)
package main
import data.abc.available
deny[msg] {
stuff := input.stuff
not available.body[stuff]
msg := sprintf("%v is not available", [stuff])
}
我费了。 https://gist.github.com/b0bu/67d60fc0dbc5a9ae36406188117dfb36
问题是 import data.token as auth
auth
未定义,通过扩展 subscirptionid 从未填充。这在 opa run -b .
中有效,因为数据文档的结构略有不同。 data.token.stuff
是在 conftest 中翻译成 data.stuff
的东西。
我对使用conftest时的数据导入和内置opa函数的执行有疑问。在下面的代码示例中,我有两个模块 abc
和 main
。我很方便地省略了 abc
的一些设置,重要的是它是一个有效的 https 调用。
从 repl 工作,我的代码完全按照我的预期执行,即时获取数据,即 available
并检查 stuff
是否在该列表中。 opa run -b .
然后点击 data.abc
执行 https 调用,即我可以看到数据包离开我的界面,并且包含我需要的列表的响应正文被拉入。然后我从 deny
得到预期的结果。当 运行 opa test . -v
.
但是 运行 conftest verify -p .
或 conftest test abc/main.json -p .
永远不会执行 http.send
即数据包永远不会离开我的预期主机的接口。
我可以使用静态列表而不是使用 https 调用,但我无法控制列表何时更新。这是 conftest 的 expected/intended 限制吗?我可以执行这些功能来构建我的数据文档吗?我是否正确导入了它?
package abc
available = http.send(
{
"method": "get",
"url": request.url,
"headers": headers
}
)
package main
import data.abc.available
deny[msg] {
stuff := input.stuff
not available.body[stuff]
msg := sprintf("%v is not available", [stuff])
}
我费了。 https://gist.github.com/b0bu/67d60fc0dbc5a9ae36406188117dfb36
问题是 import data.token as auth
auth
未定义,通过扩展 subscirptionid 从未填充。这在 opa run -b .
中有效,因为数据文档的结构略有不同。 data.token.stuff
是在 conftest 中翻译成 data.stuff
的东西。