OPA Release v0.44.0 #268
anderseknert
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This release contains a number of fixes, two new builtins, a few new features, and several performance improvements.
Security Fixes
This release includes the security fixes present in the recent v0.43.1 release, which mitigate CVE-2022-36085 in OPA itself, and CVE-2022-27664 and CVE-2022-32190 in our Go build tooling.
See the Release Notes for v0.43.1 for more details.
Set Element Addition Optimization
Rego Set element addition operations did not scale linearly (#4999) in the past, and like the Object type before v0.43.0, experienced noticeable reallocation/memory movement overheads once the Set grew past 120k-150k elements in size.
This release introduces different handling of Set internals during element addition operations to avoid pathological reallocation behavior, and allows linear performance scaling up into the 500k key range and beyond.
Set
union
Built-in OptimizationThe Set
union
builtin allows applying the union operation to a set of sets.However, as discovered in #4979, its implementation generated unnecessary intermediate copies, which resulted in poor performance; in many cases, worse than writing the equivalent operation in pure Rego.
This release improves the
union
builtin's implementation, such that only the final result set is ever modified, reducing memory allocations and GC pressure. Theunion
builtin is now about 15-30% faster than the equivalent operation in pure Rego.New Built-in Functions:
strings.any_prefix_match
andstrings.any_suffix_match
This release introduces two new builtins, optimized for bulk matching of string prefixes and suffixes:
strings.any_prefix_match
, andstrings.any_suffix_match
. It works with sets and arrays of strings, allowing efficient matching of collections of prefixes or suffixes against a target string.See the built-in functions docs for all the details
This implementation fixes #4994 and was authored by @cube2222.
Tooling, SDK, and Runtime
Bundles
This release includes several bugfixes and improvements around bundle building:
Storage Fixes
This release has performance improvements and bugfixes for the disk storage system:
util.Roundtrip
on Write for improved performance (#4708)Rego
AST and Topdown
The AST and Topdown module received a number of important bugfixes in this release:
object.union_n
builtin (#5073)is_type
return values. (#4943)units.parse*
Test Suite
units.*
builtin test assertionsfile.Sync()
to eliminate test failures due to slow disk writesDocumentation
format_int
to say it rounds downsemver.compare
(#5012) reported by @tetsuya28Website + Ecosystem
Update links to opa-kafka-plugin
Add OCI documentation (authored by @carabasdaniel)
Add article on using OPA for data filtering in Kafka
Ecosystem: Add some links to Rönd (authored by @ugho16)
Add community integration for Fiber (authored by @mstrYoda)
Add Spacelift Integration (authored by @theseanodell)
Fix broken link for Minio OPA integration (authored by @unautre)
Ecosystem Additions:
Miscellaneous
Dockerfile: Append root "/" to $PATH (#5003) authored by @matusf reported by @matusf
Add VNG Cloud to adopters (authored by @vinhph0906)
Dependency bumps, notably:
Dependency removals:
👉 Release notes and downloads
Beta Was this translation helpful? Give feedback.
All reactions