NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #280 by repository stars
Last release today
01 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
4337 releases · first in 2016
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
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
This release contains improvements to monitoring and an assortment of fixes and improvements.
This release contains improvements to monitoring and an assortment of fixes and improvements.
Currently when OPA's HTTP server rejects requests per the authz policy, this is not accounted for via the management APIs. This change adds that count in the metric registry that is part of the Status API for more visibility.
(#3378) authored by @ashutosh-narkar.
Previously in 5732, we updated the decision log plugin to surface errors via the Status API. However, in that change certain events like encoder errors and log drops due to buffer size limits had no metrics associated with them. This change adds more metrics for these events so that they can be surfaced via the Status API.
(#5637) authored by @ashutosh-narkar.
This change updates the client debug log to include the full HTTP response in case of non-200 status codes. Recording the response in the logs can help to provide more information to debug error scenarios.
(#2961) authored by @ashutosh-narkar reported by @gshively11.
object.union_n built-in function (authored by @Azanul)This is a bug fix release that addresses a regression in 0.50.1. This regression impacts policies with rules that, as its else-value, assign a compreh
This is a bug fix release that addresses a regression in 0.50.1.
This regression impacts policies with rules that, as its else-value, assign a comprehension containing variables.
Such rules would cause the compilation of the policy to fail with a rego_unsafe_var_error error.
E.g. the following policy would fail to compile with a policy.rego:5: rego_unsafe_var_error: var x is unsafe error:
package example
p {
false
} else := [x | x := 1]
This is a bug fix release addressing the following issues:
This is a bug fix release addressing the following issues:
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
This release contains a mix of new features, bugfixes, security fixes, optimizations and build updates related to OPA's published images.
This release contains a mix of new features, bugfixes, security fixes, optimizations and build updates related to OPA's published images.
These new built-in functions add functionality to verify and validate JSON Schema (#5486) (co-authored by @jkulvich and @johanfylling).
json.verify_schema: Checks that the input is a valid JSON schema objectjson.match_schema: Checks that the document matches the JSON schemaSee the documentation for all details.
package carries across modulespackage scoped schema annotations are now applied across modules instead of only local to the module where
it's declared (#5251) (authored by @johanfylling). This change may cause compile-time errors and behavioural changes to
type checking when the schemas annotation is used, and to rules calling the rego.metadata.chain() built-in function:
rego_type_error: package annotation redeclared
error if two or more of these are annotated with the package scope.package scope, the schemas annotation will be applied to type checking also for rules declared in
another file than the annotation declaration, as long as the package is the same.rego.metadata.chain() built-in function will now contain an entry for the
package even if the annotations are declared in another file, if the scope is package.run commandTo load a remote bundle using opa run, the set directive can be provided multiple times as shown below:
$ opa run -s --set "services.default.url=https://example.com" \
--set "bundles.example.service=default" \
--set "bundles.example.resource=/bundles/bundle.tar.gz" \
--set "bundles.example.persist=true"
The following command can be used as a shorthand to easily start OPA with a remote bundle (#5674) (authored by @anderseknert):
$ opa run -s https://example.com/bundles/bundle.tar.gz
json.patch Built-in FunctionPerformance improvements in json.patch were achieved with the introduction of a new EditTree data structure,
which is built for applying in-place modifications to an ast.Term, and can render the final result of all edits efficiently
by applying all patches in a JSON-Patch sequence rapidly, and then collapsing all edits at the end with minimal wasted ast.Term copying (authored by @philipaconrad).
For more details and benchmarks refer #5494 and #5390.
Errors encountered during decision log uploads will now be surfaced via the Status API in addition to being logged. This functionality should give users greater visibility into any issues OPA may face while processing, uploading logs etc (#5637) (authored by @ashutosh-narkar).
See the documentation for more details.
All published OPA images now run with a non-root uid/gid. The uid:gid is set to 1000:1000 for all images. As a result
there is no longer a need for the -rootless image variant and hence it will be not be published as part of future releases.
This change is in line with container security best practices. OPA can still be run with root privileges by explicitly setting the user,
either with the --user argument for docker run, or by specifying the securityContext in the Kubernetes Pod specification.
nil data (#5703) authored by @anderseknert/metrics/alloc_bytes to show OPA's memory utilization (#5715) authored by @anderseknertclient_certificates (#5538) authored by @charlieegan3strict mode check to include unused arguments (#5602) authored by @boranx. This change may cause
compile-time errors for policies that have unused arguments in the scope when the strict mode is enabled. These
variables could be replaced with _ (wildcard) or get cleaned up if they are not intended to be used in the body of the functions.schemas annotations even if --schema flag isn't used (#5506) authored by @johanfyllingallow_net capability when fetching remote schemas (#5670) authored by @johanfyllingEcosystem:
Website:
That version of the docker package had some reported vulnerabilities such as CVE-2022-41716, CVE-2022-41720. The ORAS Go library v2 removes the depend…
This release migrates the ORAS Go library from v1.2.2 to v2. The earlier version of the library had a dependency on the docker package. That version of the docker package had some reported vulnerabilities such as CVE-2022-41716, CVE-2022-41720. The ORAS Go library v2 removes the dependency on the docker package.
> A path traversal vulnerability exists in filepath.Clean on Windows. On Windows, the filepath.Clean function could
This is a bug fix release addressing the following Golang security issues:
A maliciously crafted HTTP/2 stream could cause excessive CPU consumption in the HPACK decoder, sufficient to cause a denial of service from a small number of small requests.
Large handshake records may cause panics in crypto/tls. Both clients and servers may send large TLS handshake records which cause servers and clients, respectively, to panic when attempting to construct responses.
A path traversal vulnerability exists in filepath.Clean on Windows. On Windows, the filepath.Clean function could transform an invalid path such as "a/../c:/b" into the valid path "c:\b". This transformation of a relative (if invalid) path into an absolute path could enable a directory traversal attack. After fix, the filepath.Clean function transforms this path into the relative (but still invalid) path ".\c:\b".
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 →