NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #286 by repository stars
Last release today
09 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
85 versions withdrawn
withdrawn after publishing
10 years old
4354 releases · first in 2016
This release adds a new test subcommand to OPA. The test subcommand enables policy unit testing. The unit tests are expressed as rules containing asse
This release adds a new test subcommand to OPA. The test subcommand enables policy unit testing. The unit tests are expressed as rules containing assertions over test data. The test subcommand provides a test runner that automatically discovers and executes these test rules. See opa test --help for examples.
One column per quarter.
As part of this release, logrus was revendored to deal with the naming issue. If you use logrus, or one of your other dependencies does (such as Docke
As part of this release, logrus was revendored to deal with the naming issue. If you use logrus, or one of your other dependencies does (such as Docker), be sure to check out https://github.com/sirupsen/logrus/issues/570#issuecomment-313933276.
p[1] instead of p[1] { true })This release adds Diagnostics support to the server. This greatly improves OPA's debuggability when deployed as a daemon.
This release adds Diagnostics support to the server. This greatly improves OPA's debuggability when deployed as a daemon.
Properly remove temporary files when running opa fmt -d
opa fmt -dp[[x,y]])Add support to cancel compilation after some number of errors
Fix panic in compiler from concurrent map writes (#379
Correct opa fmt panic on missing files
opa fmt panic on missing filesOPA now supports user-defined functions that have the same semantics as built-in functions. This allows policy authors to quickly define reusable piec
OPA now supports user-defined functions that have the same semantics as built-in functions. This allows policy authors to quickly define reusable pieces of logic in Rego without overloading the input document or thinking about variable safety.
The storage layer has been improved to support single-writer/multiple-reader concurrency. The storage interfaces have been simplified in the process. Users can rely on https://godoc.org/github.com/open-policy-agent/opa/storage/inmem in place of the old storage package.
The website has been redesigned and the documentation has been ported over to GitBook.
opa check and opa fmtOPA supports two new commands that check and format policies. Check out opa help for more information.
This release includes a bunch of new built-in functions to help with string manipulation, JWTs, and more.
This release includes a bunch of new built-in functions to help with string manipulation, JWTs, and more.
The JSON marshalling built-ins have been renamed. Policies that used json_unmarshal and json_marshal before will need to be updated to use json.marshal and json.unmarshal respectively.
else keyword- built-inThis release includes a bunch of cool stuff!
This release includes a bunch of cool stuff!
Improve file loader error handling
Fix recursive binding by short-circuiting ref eval
This release changes the run command options:
This release changes the run command options:
run --help for details.--policy-dir option. For now, if policy persistence is required, users can treat policies as config files and manage them outside of OPA. Once OPA supports persistence of data (e.g., with file-based storage) then policy persistence will be added back in.Also, updated Docker tagging so that latest points to most recent release (instead of most recent development build). The most recent development build can still be obtained with the {version}-dev tag.
This release adds support for TLS, token-based authentication, and authorization in the OPA APIs!
This release adds support for TLS, token-based authentication, and authorization in the OPA APIs!
For details on how to secure the OPA API, go to http://openpolicyagent.org/documentation/references/security.
### Fixes - Fix issue in high-level Go API
Fix unset of input/data in REPL
This release changes the Rego syntax. The two main changes are:
This release changes the Rego syntax. The two main changes are:
head :- body. Instead they are written as head { body }.Also:
{ foo, }.x = 2 + 1.p[_].foo = 1 # check if element in has attr foo equal to 1.This release changes the evaluation behaviour for packages. Previously, if a package contained no rules OR all of the rules were undefined when evaluated, a query against the package path would return undefined. As of v0.4.2 the query will return an empty object.
This release changes the Data API to return an HTTP 200 response if the document is undefined. The message body will contain an object without the result property.
github.com/open-policy-agent/opa/rego package.For more details on these changes see sections in How Do I Write Policies.
For more details on these changes see sections in How Do I Write Policies.
This release contains a few non-backwards compatible changes to the REST API:
This release contains a few non-backwards compatible changes to the REST API:
The request document has been renamed to input. If you were calling the
GET /data[/path]?request=value you should update to use POST
requests
(see below).
The API responses have been updated to return results embedded inside a
wrapper object: {"result": value}. This will allow OPA to return unambiguous
metadata in future (e.g., pagination, analysis, etc.) If you were previously
consuming Data API GET responses, you should update your code to access the
value under the "result" key of the response object.
The API models have been updated to use snake_case (#222). This would only affect you if you were previously consuming error responses or policy ASTs.
The Data API has been updated to support the POST requests. This is the recommended way of supplying query inputs.
The built-in framework has been extended to support simplified built-in implementations:
Fixed unsafe vars with built-in operator names bug
The last major/minor release of 2016! Woohoo! This release contains a few non-backwards compatible changes to the APIs.
The last major/minor release of 2016! Woohoo! This release contains a few non-backwards compatible changes to the APIs.
These changes simplify and clean up the storage.Store interface. This should make it easier to implement custom stores in the future.
These changes update the language to align query arguments with state stored in OPA. With these changes, OPA can readily analyze policies and determine references that refer to state stored in OPA versus query arguments versus local variables.
These changes also update how query arguments are provided via the REST API.
Add YAML loading and refactor into separate file
Added support for non-ground global values
Composite and reference values in Rule head
And many other small improvements and fixes.
Nothing published for this version
Basic value types: null, boolean, number, string, object, and array
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →