chore(deps): update dependency open-policy-agent/opa to v1 (dockerfile) (main) #148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.60.0->1.0.0Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
open-policy-agent/opa (open-policy-agent/opa)
v1.0.0Compare Source
We are excited to announce OPA 1.0, a milestone release consolidating an improved developer experience for the future of Policy as Code. The release makes new functionality designed to simplify policy writing and improve the language's consistency the default.
Changes to Rego in OPA 1.0
Below we highlight some key changes to the defaults in OPA 1.0:
iffor all rule definitions andcontainsfor multi-value rules is now mandatory, not just when using therego.v1import.every,in) are available without any imports.opa check --strict) are now the default. Duplicate imports and imports which shadow each other are no longer allowed.if you must continue to support v0 Rego.
Read more about the OPA 1.0 announcement here on our blog.
Following are other changes that are included in OPA 1.0.
Improvements to memory allocations
PRs #7172, #7190, #7193, #7165, #7168, #7191 & #7222 together improve the memory performance of OPA. Key strategies
include reusing pointers and optimizing array and object operations, minimizing intermediate object creation, and using
sync.Poolto manage memory-heavy operations. These changes cumulatively greatly reduced the number of allocations and improved
evaluation speed by 10-20%. Additional benchmarks highlighted significant memory and speed improvements in custom
function evaluation.
Authored by @anderseknert.
Wrap http.RoundTripper for SDK users
PR #7180 adds an
EvalHTTPRoundTripEvalOption and query-levelWithHTTPRoundTripoption.Both use a new function type which converts an
http.Transportconfigured by topdown to anhttp.RoundTripper.This supports use cases requiring the customization of the
http.sendbuilt in behavior.Authored by @evankanderson.
Improvements to scientific notation parsing in
units.parsePR #7147 extends the behaviour of
extractNumAndUnitto supportscientific notation values. This means values such as
1e3KBcan now be handled by this function.Authored by @berdanA.
Support customized buckets
bundle_loading_duration_nsmetricPR #7156 extends OPA’s Prometheus configuration to allow the
setting of user defined buckets for metrics. This aids when debugging the loading of slow bundles.
Authored by @jwu730-1.
Test suite performance improvements
PR #7126 updates tests to improve performance. Topdown and
storage/disk/tests now run around 50% and 75% faster respectively.
Authored by @philipaconrad.
OPA 1.0 Preparation
rego.v1andfuture.keywordsimports for v1 by @johanfylling in #7224--rego-v1cmd flag to--v0-v1by @johanfylling in #7225Topdown and Rego
topdown/cacheby @evankanderson in #7188to_numbernow rejects "Inf", "Infinity" and "NaN" values by @sikehish in #7203Runtime, Tooling, SDK
opa build: provide an option to preserve print statements for the "wasm" target (#7194) by @me-viper in #7195opa eval: Return error if illegal arguments passed with--unknownsflag by @kd-labs in #7149Docs, Website, Ecosystem
Dependency Updates
v0.70.0Compare Source
This release contains a mix of features, performance improvements, and bugfixes.
Optimized read mode for OPA's in-memory store (#7125)
A new optimized read mode has been added to the default in-memory store, where data written to the store is eagerly converted
to AST values (the data format used during evaluation). This removes the time spent converting raw data values to AST
during policy evaluation, thereby improving performance.
The memory footprint of the store will increase, as processed AST values generally take up more space in memory than the
corresponding raw data values, but overall memory usage of OPA might remain more stable over time, as pre-converted data
is shared across evaluations and isn't recomputed for each evaluation, which can cause spikes in memory usage.
This mode can be enabled for
opa run,opa eval, andopa benchby setting the--optimize-store-for-read-speedflag.More information about this feature can be found here.
Co-authored by @johanfylling and @ashutosh-narkar.
Topdown and Rego
json.match_schemabuilt-in function (#7011) authored by @anderseknert reported by @lcarvaopa checkwhere a file that referenced non-provided schemas failed validation (#7124) authored by @tjonsyes/novalues as boolean. The usage of yaml.v2 in the parser was unintentional and now has been updated to yaml.v3 (#7090) authored by @anderseknertRuntime, Tooling, SDK
opa checkrespect--ignorewhen--bundleflag is set (#7136) authored by @anderseknertsuperfluous call to WriteHeader()while still returning200HTTP status code. Now, errors encoding the payload properly lead to500HTTP status code, without extra logs. Also use Header().Set() not Header().Add() to avoid duplicate content-type headers (#7114) authored by @srenatusfile://format for TLS key material file flags inopa run(#7094) authored by @alexrohozneanuDocs, Website, Ecosystem
Miscellaneous
v0.69.0Compare Source
This release contains a mix of features, bugfixes and necessary tooling and test changes required to support the upcoming OPA
1.0release.Inter-Query Value Cache (#6908)
OPA now has a new inter-query value cache added to the SDK. It is intended to be used for values that are expensive to compute and can be reused across multiple queries. The cache can be leveraged by built-in functions to store values that otherwise aren't appropriate for the existing inter-query cache; for instance when the entry size isn't an appropriate or primary limiting factor for cache eviction.
The default size of the inter-query value cache is unbounded, but can be configured via the
caching.inter_query_builtin_value_cache.max_num_entriesconfiguration field. OPA will drop random items from the cache if this limit is exceeded.The cache is used by the
regexandglobbuilt-in functions, which previously had individual, non-configurable caches with a max entry size of100each.Currently, the cache is only exercised when running OPA in server mode (ie.
opa run -s). Also this feature is unsupported for WASM.Authored by @ashutosh-narkar, reported by @amirsalarsafaei
Topdown and Rego
ast,topdown,regoetc. packages to be1.0compatible (authored by @johanfylling)Module.String()includeif/containsfor v1 modules (#6973) authored by @johanfylling reported by @nikpivkinhttp.sendlatency timer when an error is encountered (#7007) authored by @lukyerwith's target (#6979) authored by @srenatus reported by @bluebrownRuntime, Tooling, SDK
sdk,downlaod,server,cmdetc. packages to be1.0compatible (authored by @johanfylling)--v0-compatibleflag to make OPA behave asv0.xpostv1.0release (#7065) authored by @johanfyllingRegoOptionlaunch option to debugger for setting custom Rego options (#7045) authored by @johanfyllingInputandDatavariable scopes to ease discoverability of the scopes (#7074) authored by @johanfyllingDocs, Website, Ecosystem
1.0compatible (#7033) authored by @charlieegan3Miscellaneous
v0.68.0Compare Source
This release contains a mix of features and bugfixes.
Breaking Changes
entrypointannotation impliesdocumentscope (#6798)The entrypoint annotation's scope requirement has changed from
ruletodocument(https://github.com/open-policy-agent/opa/issues/6798). Furthermore, if noscopeannotation is declared for a METADATA block preceding a rule, the presence of anentrypointannotation with atruevalue will assign the block adocumentscope, where therulescope is otherwise the default.In practice, a rule entrypoint always point to the entire document and not a particular rule definition. The previous behavior was a bug, and one we've now addressed.
Authored by @anderseknert
Topdown and Rego
Runtime, Tooling, SDK
copymethod copy all values (#6949) authored by @anderseknertopa exec: This command never supported "pretty" formatting (--format=prettyor-f pretty), onlyjson. Passingprettyis now invalid. (#6923) authored by @srenatusNote that the flag is now unnecessary, but it's kept so existing calls like
opa exec -fjson ...remain valid.Security Fix: CVE-2024-8260 (#6933)
This release includes a fix where OPA would accept UNC locations on Windows. Reading those could leak NTLM hashes.
The attack vector would include an adversary tricking the user in passing an UNC path to OPA, e.g.
opa eval -d $FILE.UNC paths are now forbidden. If this is an issue for you, please reach out on Slack or GitHub issues.
Reported by Shelly Raban
Authored by @ashutosh-narkar
Docs, Website, Ecosystem
opa-config.yamlas name for config file (#6966) (#6959) authored by @anderseknerthttp.sendin inter-query cache config docs (#6953) authored by @anderseknertMiscellaneous
v0.67.1Compare Source
This is a bug fix release addressing the following issue:
v0.67.0Compare Source
This release contains a mix of features, a new builtin function (
strings.count), performance improvements, and bugfixes.Breaking Change
Request Body Size Limits
OPA now automatically rejects very large requests (#6868) authored by @philipaconrad.
Requests with a
Content-Lengthlarger than 128 MB uncompressed, and gzipped requests with payloads that decompress tolarger than 256 MB will be rejected, as part of hardening OPA against denial-of-service attacks. Previously, a large
enough request could cause an OPA instance to run out of memory in low-memory sidecar deployment scenarios, just from
attempting to read the request body into memory.
These changes allow improvements in memory usage for the OPA HTTP server, and help OPA deployments avoid some accidental out-of-memory situations.
For most users, no changes will be needed to continue using OPA. However, to control this behavior, two new configuration
keys are available:
server.decoding.max_lengthandserver.decoding.gzip.max_length. These control the max size inbytes to allow for an incoming request payload, and the maximum size in bytes to allow for a decompressed gzip request payload, respectively.
Here's an example OPA configuration using the new keys:
Topdown and Rego
strings.countbuiltin which returns the number of non-overlapping instances of a substring in a string (#6827) authored by @Manish-Giri--rego-v1formatted module has rule name conflicting with keyword (#6833) authored by @johanfyllingRuntime, Tooling, SDK
--follow-symlinksflag to theopa buildcommand to allow users to build directories with symlinked files, and have the contents of those symlinked files included in the built bundle (#6800) authored by @tjonsexplain=failsquery value (#6886) authored by @acamatciscoDocs, Website, Ecosystem
rego_versionandfile_rego_versionsattributes (#6885) authored by @ashutosh-narkarMiscellaneous
v0.66.0Compare Source
This release contains a mix of features, performance improvements, and bugfixes.
Improved Test Reports (#2546)
The
opa testcommand now includes a new--var-valuesflag that enriches reporting of failed tests with the values and locations for variables in the failing expression.E.g.:
Authored by @johanfylling, reported by @grosser.
Reading stdin in
opa exec(#6538)The
opa execcommand now supports readinginputdocuments from stdin with the--stdin-input(-I) flag.E.g.:
Authored by @colinjlacy, reported by @humbertoc-silva.
Topdown and Rego
everydomain (#6790) authored by @johanfylling reported by @anakrishRuntime, Tooling, SDK
Docs, Website, Ecosystem
go_memstats_gc_cpu_fraction(#6783) authored by @philipaconradan HTTP(#6786) authored by @jdbaldryMiscellaneous
v0.65.0Compare Source
This release contains a mix of features and bugfixes.
Runtime, Tooling, SDK
Topdown and Rego
everydomain is a collection type before evaluation (#6762) authored by @johanfylling reported by @anderseknertMiscellaneous
Breaking changes
A new IsSetStmt statement has been added to the intermediate representation (IR).
This is a breaking change for custom IR evaluators, which must interpret this statement in IR plans generated by this OPA version and later.
No actions are required for Wasm users, as long as Wasm modules are built by this OPA version or later.
v0.64.1Compare Source
This is a bug fix release addressing the following issues:
macos-latestwas changed fromamd64toarm64and as a resultdarwin/amd64binary wasn't released (#6720) authored by @suzuki-shunsukev0.64.0Compare Source
This release contains a mix of features, a new builtin function (
json.marshal_with_options()), performance improvements, and bugfixes.Breaking Change
Bootstrap configuration overrides Discovered configuration
Previously if Discovery was enabled, other features like bundle downloading and status reporting could not be configured manually.
The reason for this was to prevent OPAs being deployed that could not be controlled through discovery. It's possible that
the system serving the discovered config is unaware of all options locally available in OPA. Hence, we relax the configuration
check when discovery is enabled so that the bootstrap configuration can contain plugin configurations. In case of conflicts,
the bootstrap configuration for plugins wins. These local configuration overrides from the bootstrap configuration are included
in the Status API messages so that management systems can get visibility into the local overrides.
In general, the bootstrap configuration overrides the discovered configuration. Previously this was not the case for all
configuration fields. For example, if the discovered configuration changes the
labelssection, only labels that areadditional compared to the bootstrap configuration are used, all other changes are ignored. This implies labels in the
bootstrap configuration override those in the discovered configuration. But for fields such as
default_decision,default_authorization_decision,nd_builtin_cache, the discovered configuration would override the bootstrap configuration. Now the behavior is more consistentfor the entire configuration and helps to avoid accidental configuration errors. (#5722) authored by @ashutosh-narkar
Add
rego_versionattribute to the bundle manifestA new global
rego_versionattribute is added to the bundle manifest, to inform the OPA runtime about what Rego version (v0/v1) touse while parsing/compiling contained Rego files. There is also a new
file_rego_versionsattribute which allows individualfiles to override the global Rego version specified by
rego_version.When the version of the contained Rego is advertised by the bundle through this attribute, it is not required to run OPA with the
--v1-compatible(or future--v0-compatible) flag in order to correctly parse, compile and evaluate the bundle's modules.A bundle's
rego_versionattribute takes precedence over any applied--v1-compatible/--v0-compatibleflag. (#6578) authored by @johanfyllingRuntime, Tooling, SDK
opa buildwas provided an entrypoint from both a CLI flag, and via entrypoint metadata annotation. (#6661) authored by @philipaconraddepscommand for policies with high dependency connectivity (#6685) authored by @johanfyllingv1syntax (#6689) authored by @xico42Topdown and Rego
rego.v1inv0support modules when applicable (#6450) authored by @johanfyllingjson.marshal_with_options()builtin for indented/"pretty-printed" and/or line-prefixed JSON (#6630) authored by @sean-r-williamsDocs, Website, Ecosystem
Miscellaneous
gostanza of OPA'sgo.modtogo 1.21. OPA, used as Go dependency, requires at leastgo 1.21, and thus works with all officially supported Go versions (1.21.xand1.22.x) (#6678) authored by @srenatusupload-artifactanddownload-artifactGithub actions to the latest version (v4) (#6670) authored by @philipaconradv0.63.0Compare Source
This release contains a mix of features, performance improvements, and bugfixes.
Runtime, Tooling, SDK
--timeoutflag toopa execto prevent infinite hangs. (#6613) authored by @philipaconradConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.