繁体   English   中英

可以简化此 Rego 政策吗

[英]Can this Rego policy be simplified

我有这个 Rego 政策,如果可能的话,我想进一步简化(更少的代码行),尤其是两个发现块。 考虑到我是 Rego 菜鸟,我尝试过但失败了。

package test

compliant(resource) {
  resource.good
}

findings[x] {
    resource := input.resources[_]
    compliant(resource)
    x := {
        "compliant": true,
        "resource": resource,
    }
}

findings[x] {
    resource := input.resources[_]
    not compliant(resource)
    x := {
        "compliant": false,
        "resource": resource,
    }
}

链接到 OPA 游乐场

https://play.openpolicyagent.org/p/0xYWI7Q0fZ

您似乎想对false true

您可以引入一个帮助程序 function ,它允许您同时显示

package test

f(x) := true { compliant(x) } 
f(x) := false { not compliant(x) } 

compliant(resource) {
  resource.good
}

findings[x] {
    resource := input.resources[_]
    x := {
        "compliant": f(resource),
        "resource": resource,
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM