首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OPA Rego -如何进行标签或标签匹配

OPA Rego -如何进行标签或标签匹配
EN

Stack Overflow用户
提问于 2022-09-16 17:58:55
回答 2查看 37关注 0票数 1

我有。

标记为“必须匹配”标签的任务的

  1. 列表。用标签标记的
  2. 用户。现在,我只想筛选将所有任务标记与用户标记相匹配的任务(用户可能有额外的标记)。

代码语言:javascript
复制
// rego-input:
{"
  user":"user-1",
  "tags":{"loc":"NY","type":"L1","group":"admin"}
  
}

// rego-data:
{
  "proj":"abc1",
  "tasks":[
    {"tags":{"loc":"NJ","type":"L1"},"title":"task-1"},
    {"tags":{"loc":"NY","type":"L1"},"title":"task-2"},
    {"tags":{"loc":"PA","type":"L2"},"title":"task-3"}]
}

// expected rego-output:
{
  "user":"user-1",
  "tasks":[
    {"tags":{"loc":"NY","type":"L1"},"title":"task-2"}
  ]
}

什么是正确的雷戈得到以上的输出?,感谢输入。

EN

回答 2

Stack Overflow用户

发布于 2022-09-19 17:24:23

下面是一种简单的方法。

代码语言:javascript
复制
package match.tags

import future.keywords.in

user := input.user
tasks[t] {
    some user_tags in input
    some data_tags in data.tasks[a]
    user_tags.loc == data_tags.loc
    user_tags.type == data_tags.type
    t := data.tasks[a]
}

操场链接示例:https://play.openpolicyagent.org/p/6oCED9daS7

票数 1
EN

Stack Overflow用户

发布于 2022-09-20 01:51:13

我有很近的东西..。https://play.openpolicyagent.org/p/wRYVBGTezT

代码语言:javascript
复制
usr = input.user
jobs2[v]  {
    some task in data.tasks
    some tk, tv in task.tags
    tv == input.tags[tk]
    v := task.title
}

但是,它不是执行所有匹配(标记),而是通过匹配类型"L1“返回任务1,2。想知道怎样才能把比赛进行到底.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73748701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档