oso 0.14.0


Breaking changes


This release contains breaking changes. Be sure to follow migration steps before upgrading.

Singleton variables changed from warnings to errors

Singleton variables occur only once in a rule. Oso now considers them an error unless they’re explicitly marked with an underscore.


f(x, y, z) if y = z; # issues a warning for x


# f(x, y, z) if y = z; # would cause a parse error

f(_x, y, z) if y = z; # write this instead!

New features

Custom query timeouts

Added the ability for users to configure query timeouts using a POLAR_TIMEOUT_MS environment variable. To disable timeouts (which is useful for debugging), set POLAR_TIMEOUT_MS to 0.

Ruby (oso-oso)

New features

Roles in Ruby

The Ruby library now has built-in support for Role-Based Access Control (RBAC) policies, which you can turn on with OSO.enable_roles.

Other bugs & improvements

  • Oso’s Ruby library now behaves better with code reloading in development. You can use OSO.register_class(Klass) and calls to foo matches Klass will always use the up-to-date version of the Klass constant, even if it’s been reloaded.


Other bugs & improvements

  • Initial work on bringing the Expression type to Java has been completed. Huge thanks to @MFAshby!

sqlalchemy-oso 0.10.0

Other bugs & improvements

Connect with us on Slack

If you have any questions, or just want to talk something through, jump into Slack. An Oso engineer or one of the thousands of developers in the growing community will be happy to help.