# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. cases: - note: all data: {} modules: - | package play import rego.v1 # Examples from MS Graph m1:= glob.match("api://*/appId", null, "api://foo.com/appId") # Examples from https://www.openpolicyagent.org/docs/latest/policy-reference/#glob m2 := glob.match("*.github.com", [], "api.github.com") # true m3 := glob.match("*.github.com", [], "api.cdn.github.com") # false m4 := glob.match("*hub.com", null, "api.cdn.github.com") m5 := glob.match("*:github:com", [":"], "api:github:com") m6 := glob.match("api.**.com", [], "api.github.com") m7 := glob.match("api.**.com", [], "api.cdn.github.com") m8 := glob.match("?at", [], "cat") m9 := glob.match("?at", [], "at") m10 := glob.match("[abc]at", [], "bat") m11 := glob.match("[abc]at", [], "cat") m12 := glob.match("[abc]at", [], "lat") m13 := glob.match("[!abc]at", [], "cat") m14 := glob.match("[!a-c]at", [], "lat") m15 := glob.match("{cat,bat,[fr]at}", [], "cat") m16 := glob.match("{cat,bat,[fr]at}", [], "bat") m17 := glob.match("{cat,bat,[fr]at}", [], "rat") m18 := glob.match("{cat,bat,[fr]at}", [], "at") matches := [ m1 == true, m2 == true, m3 == false, m4 == true, m5 == true, m6 == true, m7 == true, m8 == true, m9 == false, m10 == true, m11 == true, m12 == false, m13 == false, m14 == true, m15 == true, m16 == true, m17 == true, m18 == false, ] pass if { every m in matches { m == true } } query: data.play.pass want_result: true