Oso 0.12.0 is out! Thanks to contributions from @joshrotenberg and @gjvnq in the Rust library and @delicb in the Go library!
Up to 3x performance improvement for data filtering
We have sped up data filtering query performance up to 3x, in particular for queries involving larger policies. We're continuing to work on performance of data filtering queries and Oso more generally. We’ve added more benchmarks to our test suite to cover data filtering queries. It’s especially helpful to have real world examples to base our performance work on. Share your policies with us via Slack!
Improved syntax for data filtering boolean comparison
You can now perform boolean comparison with the shorthand syntax:
allow(_, _, resource) if
resource.is_public;
Instead of:
allow(_, _, resource) if
resource.is_public = true;
Now, this more concise syntax also works with data filtering queries.
Other improvements to Rust, Node and Go libraries
- The Rust library supports
get_allowed_actions
, has an improved CLI interface and supports morestd::collections
types. - The Node library exposes the
Variable
type to pass unbound variables toqueryRule
. - We fixed a crash in the Go library when running in the delve debugger.
- Class registration in the Go library now accepts a regular instance, instead of requiring a
reflect.Type
instance.
For more details on these and other changes, read the changelog.
We're also actively working on developing new library features to allow our users to build fine-grained permissions into their B2B apps using role-based access control. If you're interested in early access to this feature, reserve a spot here.
If you ever have questions, we're available to talk to you about how to get from one version to the next, or to discuss anything you'd like about the product, your use case, or authorization more generally – join us on Slack.