VS Code Extension 0.24.0

  • Our VS Code Extension now displays inline diagnostics (errors & warnings) in the editor as well as in VS Code’s Problems pane.
    • The extension immediately highlights errors and warnings encountered while parsing and validating your policy, such as if a rule is missing a trailing semi-colon, a resource block declares "owner" as both a role and a relation, or your policy contains no allow() rule. You would normally see this feedback when running your application, but the extension surfaces it while you edit your policy.
    • The extension collects non-identifiable metrics that we use to improve Oso. We collect data into un-timestamped batches instead of sending it on every policy load since we care about aggregate statistics; not tracking your personal development behavior. We will never sell this data. For more info on exactly what is tracked and why, see this page in our docs.

Oso 0.24.0

Core

Other bugs & improvements

  • Oso now allows multiple resource blocks to be declared for the same resource type. The declarations from all resource blocks for a given type are merged together before policy evaluation. This permits rules in one block to reference declarations in another and for resource blocks to be composed over multiple files.
  • Fixed a data race in our error handling functionality which resulted in truncated error messages.
  • Fixed a regression in the logic for rule matching when using in with data filtering.
  • Fixed a regression in rule type checking which prevented using roles with actor blocks.

Rust

Other bugs & improvements

  • Implemented ExternalIsSubclass query event. Prevents x matches Foo and x matches Bar from panicking. Instead, this will now correctly fail when Foo != Bar. Thanks to @davepacheco for the contribution!

Go

Other bugs & improvements

  • Added a SetAcceptExpression method to the Query struct which makes it possible to get partially-evaluated terms back from the core. This is a step towards data filtering in Go. Thanks to @joshrotenberg for the PR!

Platform Support

We now support building Oso on ARM-based MacOS systems using Go 1.16 or later.

Ruby

New Features

New Data Filtering API

A new data filtering backend is now available in the Ruby library, which should provide better performance in most cases. An example ActiveRecord adapter is also included. For details on how to configure and use the new data filtering code, please see our docs.

django-oso 0.24.0

Bumped the minimum required version of the oso dependency.

flask-oso 0.24.0

Bumped the minimum required version of the oso dependency.

sqlalchemy-oso 0.24.0

Bumped the minimum required version of the oso dependency.

Set up a 1x1 with an Oso Engineer

Our team is happy to help you get started with Oso. If you'd like to learn more about using Oso in your app or have any questions about this guide, schedule a 1x1 with an Oso engineer.