diff --git a/README.md b/README.md index caa679cb74c1ae56e09d78f25e14b8c6afb3dc1e..6d862a7004ae61356f29e35598d998f1e3d0b298 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,11 @@ The Policies Repository contains REGO policies used for evaluation. ### Add Policy You should follow the following naming syntax: -- Policy name must follow the following syntax: `{name}_{version}.rego` - > Example: loginpolicy_1.2.rego -- Policies are grouped in directories representing their organisation: `{group}/{policyName}_{version}.rego` - > Example: gaiax/loginpolicy_1.0.rego +- Policy must be named exactly `policy.rego` +- Policy is placed in the following directory structure: `{group}/{policyName}/{version}/policy.rego` + > Example: gaiax/loginpolicy/1.0/policy.rego - The policy package must follow the following syntax: `{group}.{policyName}` > Example: package gaiax.loginpolicy +- Data file could be added for each policy. It must be named `data.json` and placed in the same directory: + > Example: `{group}/{policyName}/{version}/data.json` diff --git a/example/cacheGet/1.0/data.json b/example/cacheGet/1.0/data.json new file mode 100644 index 0000000000000000000000000000000000000000..03f9954e6d3eb839a70767bb0fcc6e5dc1523eee --- /dev/null +++ b/example/cacheGet/1.0/data.json @@ -0,0 +1,4 @@ +{ + "namespace": "namespace", + "scope": "scope" +} diff --git a/example/cacheGet/1.0/policy.rego b/example/cacheGet/1.0/policy.rego new file mode 100644 index 0000000000000000000000000000000000000000..136dda6119226f90f0cad66894aedc63a4b55008 --- /dev/null +++ b/example/cacheGet/1.0/policy.rego @@ -0,0 +1,5 @@ +package example.cacheGet + +default allow = false + +result := cache.get("mykey", "mynamespace", "myscope") diff --git a/example/cacheSet/0.8/data.json b/example/cacheSet/0.8/data.json new file mode 100644 index 0000000000000000000000000000000000000000..043b03e3ac05b42f15b5de033f29865ab6f19762 --- /dev/null +++ b/example/cacheSet/0.8/data.json @@ -0,0 +1,4 @@ +{ + "key": "value", + "scope": "scope" +} diff --git a/example/cacheSet/0.8/policy.rego b/example/cacheSet/0.8/policy.rego new file mode 100644 index 0000000000000000000000000000000000000000..44e620d39eb9b6f73283fc3925c0998620934688 --- /dev/null +++ b/example/cacheSet/0.8/policy.rego @@ -0,0 +1,8 @@ +package example.cacheSet + +default success = false + +success = true { + msg := cache.set("mykey", "mynamespace", "myscope", input) + msg == "success" +} diff --git a/example/examplePolicy/1.0/policy.rego b/example/examplePolicy/1.0/policy.rego new file mode 100644 index 0000000000000000000000000000000000000000..236fa08646c24485430a689a9326940f6c84fc42 --- /dev/null +++ b/example/examplePolicy/1.0/policy.rego @@ -0,0 +1,7 @@ +package example.examplePolicy + +default allow = false + +allow{ + input.message == "example" +}