Anand Krishnamoorthi
d3fd0a3a78
all, any deprecated functions ( #35 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-04 13:22:40 -07:00
Anand Krishnamoorthi
c53d002347
Improvements ( #33 )
...
1. Skip recording undefined variables
2. Parse `in` correctly if it is not imported.
3. base64.decode
4. Handle `with` modifier for qualified data and input.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-01 21:57:06 -07:00
Anand Krishnamoorthi
6228eaab4a
Order query expression results ( #32 )
...
Expressions are scheduled based on dependencies and thusthe gathered
expression values may not be in the same order as in source.
Reorder to match the source.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-31 13:26:33 -07:00
Anand Krishnamoorthi
519cce5b33
Scheduling of statements in user queries ( #31 )
...
Nested queries (comprehensions) are handled correctly.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-31 10:52:51 -07:00
Anand Krishnamoorthi
7a3d5e7e02
eval, lex, parse commands ( #30 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-30 21:45:43 -07:00
Anand Krishnamoorthi
63ecc44a48
eval_user_query for OPA style results ( #29 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-30 10:44:02 -07:00
Anand Krishnamoorthi
800e594d52
Arity for builtins ( #28 )
...
Old-style function call
Utility for running opa yaml tests
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-24 10:11:50 -07:00
Anand Krishnamoorthi
951bb6b14c
Handle chained _ ( #27 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-17 19:32:42 -07:00
Anand Krishnamoorthi
2436467fbd
Minimize PR 22 ( #26 )
...
* specific functions added to eval different rego components
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* allow multiple inputs and results
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* prepare_for_eval is necessary to be called
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* test with the suggested code examples and clean scopes
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* try to refactor first steps of evaluations
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* improve coverage and fix clean state internal evaluation
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* add getters and setters and fix clean function
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* Tests are single input by default. Multi input specified via "many!" marker.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
---------
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
Co-authored-by: eric-therond <eric.therond.fr@gmail.com >
2023-10-09 14:27:31 -07:00
Anand Krishnamoorthi
b7420aceba
Fix clippy warning ( #25 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-09-27 08:40:36 -07:00
eric-therond
8a9652b8d2
negation of an undefined value should return true ( #21 )
...
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
2023-06-29 09:44:19 -07:00
Anand Krishnamoorthi
796da46ae8
Ensure that scopes are cleaned up correctly upon error. ( #20 )
...
When evaluating rules, upon error the last pushed scope wasn't being
popped from the stack of scopes. This causes incorrect behavior
when there are multiple definitions for the same rule name.
The fix is to make sure that the scopes are popped manually upon encountering errors.
Once the interpreter logic is locked down, then we need to clean up scope management
using Drop functions so that the cleanup happens even during short circuited return.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-06-23 08:57:47 -07:00
eric-therond
e08d13df53
fix bitwise.and and add tests ( #19 )
...
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
2023-06-22 11:27:58 -07:00
eric-therond
910ef32ffb
support of or-functions ( #18 )
...
* support of multiple definitions of the same function
* handle functions producing an error
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
2023-06-16 09:30:17 -07:00
Anand Krishnamoorthi
7789de41b6
Statement Scheduler Implementation
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-04-09 20:28:59 -07:00
Anand Krishnamoorthi
cba0af0d3f
json.filter, object.filter, object.get, object.keys, object.remove
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-07 21:27:27 +05:30
Anand Krishnamoorthi
112623c762
tracing::trace builtin
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-05 16:39:42 +05:30
Anand Krishnamoorthi
3c3cd312fc
More string functions
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi
27c5afd8ee
strings: concat and contains
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi
89e26e37a2
string concat (WIP)
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi
32028a311e
Test for multi-assign
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
8e0ddbcff2
Support dependencies between vars defined in same statement
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
34eee1f17f
Statement scheduler (WIP)
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
31e1c63281
Tests for aggregates builtins
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
6b87e99fb9
Tests for numbers builtins
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
17257f9f1d
Tests for arrays builtins
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
c4ae2d4cc2
Tests for types functions
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
ae3866b1ab
Destructuring of arrays and objects in some-in expressions
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
cf4fbdbb90
some .. in implementation
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
eded43bdc6
Fix key, value in membership and some-in
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
351483d100
Implement every statement ( #4 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
2a1924efa5
Set loop index variable if not "_" ( #3 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
267b76e4d3
Allow comprehensions in default value. ( #2 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
12c3d26476
Lock down numbers
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
a8a1d4b820
mod function
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
b30fc2599c
Builtin functions for numbers (WIP)
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
53030c4ada
Implement comparison operators. Formalize semantics.
...
Rename compare.rs to comparison.rs to match OPA documentation of builtins.
Also update loop handling to ensure that the current scope is restored after
each iteration of the loop so as to undo side effects of the iteration.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-12 22:19:16 -08:00
Ming-Wei Shih
fd5140a5a8
Rework assign operations ( #6 )
...
Support "var = value", "value = var", and "var = var"
Fall back the '=' to comparsion when both operators are defined
Correctly support variable shadowing with "var := value"
Also, remove the unused Variable struct
Signed-off-by: Ming-Wei Shih <mishih@microsoft.com >
2023-02-11 06:37:04 +05:30
Anand Krishnamoorthi
3a3bbcdb7d
Locked down supported values in default rule.
...
Only scalars, composites and comprehensions containing scalars are supported.
This will be changed as OPA fixes bug with default values
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-10 06:13:42 -08:00
Anand Krishnamoorthi
c92707433e
Improvements to github workflow ( #4 )
...
- format check
- clippy checks
- build tests separately before running
Also fix clippy warnings
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-10 11:16:09 +05:30
Anand Krishnamoorthi
980a5d4772
Update name to regorus
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-09 20:33:39 -08:00
Ming-Wei Shih
c0972ad2ba
Update license to MIT
...
Signed-off-by: Ming-Wei Shih <mishih@microsoft.com >
2023-02-09 19:40:35 +00:00
Anand Krishnamoorthi
cb0b3a1790
Code from github.com/anakrish/rego-rs
...
Authored by anakrish and mingweishih
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-09 10:56:54 -08:00