package opa import ( "fmt" "github.com/gin-gonic/gin" "github.com/open-policy-agent/opa/rego" ) func OpaCheck(ctx *gin.Context, input map[string]interface{}, query string) bool { opa, err := rego.New( rego.Load([]string{"conf/opatest.rego"}, nil), rego.Query("data.opa."+query), ).PrepareForEval(ctx) if err != nil { fmt.Println("PrepareForEval err: ", err) return false } res, err := opa.Eval(ctx, rego.EvalInput(input)) if err != nil { fmt.Println("Eval err: ", err) return false } return res.Allowed() }