Support for closures (#202)
This introduces the closure operations to the Biscuit language, first with the `.all()` and `.any()` operations to add conditions on the elements of a set.
It is now possible to use expressions with the following format:
```
check if [1,2,3].all($p -> $p > 0);
check if [1,2,3].any($p -> $p > 2);
```
Co-authored-by: Geoffroy Couprie <contact@geoffroycouprie.com>
525c278
5 months ago
by divarvel
+1%
Merge branch 'main' into v5
22bd667
4 months ago
by Geal
-1%
Merge branch 'main' into v5
3e47561
30 days ago
by Geal
0%
Merge pull request #231 from biscuit-auth/major-minor-datalog-versions
Major minor datalog versions
911ebe4
28 days ago
by divarvel
0%
Merge pull request #229 from biscuit-auth/fix-param-substitution-in-closures
fix: recursively collect and apply parameters in closures
c2dd7a4
28 days ago
by divarvel
0%
Merge pull request #233 from biscuit-auth/rename-v5-detector
fix: left over renaming after #231
add new Array and Map types (#219)
This adds support for the array and map types, supporting more structured datalog terms, that we can generate from JSON data and explore through datalog expressions. The map type allows integers strings and parameters as key. This tries to enforce that all array elements are of the same type, but this is not very strict at the moment, it does not look at lower levels of composite types.
**breaking changes**:
- in the Datalog language, sets will now be delimited
by '{' and '}' instead of '[' and ]'. Arrays are now delimited by '['
and ']'
- parameter names now need to start with a letter
---------
Co-authored-by: Clement Delafargue <clement.delafargue@outscale.com>