conftestを使用する場合のデータのインポートと組み込みの opa 関数の実行について質問があります。以下のコード サンプルでは、2 つのモジュール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 の予期された/意図された制限ですか? これらの関数を実行してデータ ドキュメントを作成できますか? また、正しくインポートしていますか?
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])
}