opa
opa copied to clipboard
Open Policy Agent (OPA) is an open source, general-purpose policy engine.
The `Index` field in `MakeNumberRefStmt` has an upper-case first letter when serialized. All other Intermediate Representation (IR) statements has lower-case field names when serialized.
When serialized, comment nodes display the location and text attributes as `Location` and `Text`. This is inconsistent with how those attributes are presented anywhere else in the AST (where they...
In some cases, it would be useful if Rego allowed for limited/local mutation of a variable, similar to `reduce` from functional languages. Rego is not a functional language, but we...
When working with many annotated packages and rules, the current "# METADATA" format for annotations feel rather verbose, and the fact that nothing else in Rego is written in capital...
Following built-in functions are deprecated: `any`, `all`, `re_match`, `net.cidr_overlap`, `set_diff`, `cast_array`, `cast_set`, `cast_string`, `cast_boolean`, `cast_null`, `cast_object`. When compiler `strict` mode is enabled, use of deprecated functions is prohibited and will...
## Short description `opa fmt` will reformat this Rego ([playground](https://play.openpolicyagent.org/p/O4TLbhivHd)): ```rego package play x := "\u0000" ``` as ```rego package play x := "\x00" ``` Which causes `rego_parse_error: illegal escape...
The Rego compiler enforces the following rules when `strict mode` is enabled: 1. Duplicate imports 2. Unused local assignments 3. Unused imports 4. `input` and `data` reserved keywords 5. Use...
Currently it's, seemingly, arbitrary if a ref-head rule will produce a single-value or multi-value leaf: ```rego package play a[b] { b := 1 } x.y[z] { z := 2 }...
Support for the `future.keywords` import should be removed, and all related keywords should be introduced to the default language definition. This should also make these reserved keywords, that rules and...
## Short description I'm actually not sure if this syntax is valid but I mistyped `if` (`ifv`) and the policy parsing didn't fail. ```Rego package test import future.keywords.if eval(resource) =...