Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update open-policy-agent/opa to v0.68.0 #28

Merged
merged 1 commit into from
Sep 4, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 3, 2024

This PR contains the following updates:

Package Update Change
open-policy-agent/opa minor "v0.28.0" -> v0.68.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

open-policy-agent/opa (open-policy-agent/opa)

v0.68.0

Compare Source

This release contains a mix of features and bugfixes.

Breaking Changes
entrypoint annotation implies document scope (#​6798)

The entrypoint annotation's scope requirement has changed from rule to document (https://github.com/open-policy-agent/opa/issues/6798). Furthermore, if no scope annotation is declared for a METADATA block preceding a rule, the presence of an entrypoint annotation with a true value will assign the block a document scope, where the rule scope 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
  • ast: Fixing nil-pointer dereference in compiler for partial rule edge case (#​6930) authored by @​johanfylling
  • ast+parser: Add hint to future-proof imports (6968) authored by @​srenatus
  • topdown: Adding unification scope to virtual-cache key. Fixing issue where false positive cache hits can occur when unification "restricts" the scope of ref-head rule evaluation (#​6926) authored by @​johanfylling reported by @​anderseknert
  • topdown: Marshal JWT encode sign inputs as JSON (#​6934) authored by @​charlieegan3
Runtime, Tooling, SDK
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
Miscellaneous
  • build: Make it possible to build only wasm testcases (#​6920) authored by @​andreaTP
  • Dependency updates; notably:
    • build(deps): bump github.com/containerd/containerd from 1.7.20 to 1.7.21
    • build(deps): bump github.com/prometheus/client_golang from 1.19.1 to 1.20.2
    • build(deps): bump golang.org/x/net from 0.27.0 to 0.28.0
    • build(deps): bump golang.org/x/time from 0.5.0 to 0.6.0
    • build(deps): bump google.golang.org/grpc from 1.65.0 to 1.66.0

v0.67.1

Compare Source

This is a bug fix release addressing the following issue:

  • util+server: Fix bug around chunked request handling (#​6906) authored by @​philipaconrad, reported by @​David-Wobrock. A request handling bug was introduced in (#​6868), which caused OPA to treat all incoming chunked requests as if they had zero-length request bodies.

v0.67.0

Compare 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-Length larger than 128 MB uncompressed, and gzipped requests with payloads that decompress to
larger 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_length and server.decoding.gzip.max_length. These control the max size in
bytes 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:

### Set max request size to 64 MB and max gzip size (decompressed) to be 128 MB.
server:
  decoding:
    max_length: 67108864
    gzip:
      max_length: 134217728
Topdown and Rego
  • topdown: New strings.count builtin which returns the number of non-overlapping instances of a substring in a string (#​6827) authored by @​Manish-Giri
  • format: Produce error when --rego-v1 formatted module has rule name conflicting with keyword (#​6833) authored by @​johanfylling
  • topdown: Add cap to caches for regex and glob built-in functions (#​6828) authored by @​johanfylling. This fixes possible memory leaks where caches grow uncontrollably when large amounts of regexes or globs are generated or originate from the input document.
Runtime, Tooling, SDK
  • repl: Add support for correctly loading bundle modules (#​6872) authored by @​ashutosh-narkar
  • plugins/discovery: Allow un-registration of discovery listener (#​6851) authored by @​mjungsbluth. The discovery plugin allows OPA to register a bundle download status listener but previously did not offer a method to unregister that listener
  • plugins/logs: Reduce amount of work performed inside global lock in decision log plugin (#​6859) authored by @​johanfylling
  • plugins/rest: Add a new client credential attribute to support Azure Workload Identity. This would allow workloads deployed on an Azure Kubernetes Services (AKS) cluster to authenticate and access Azure cloud resources (#​6802) authored by @​ledbutter
  • cmd/inspect: Add ability for opa inspect to inspect a single file outside of any bundle (#​6873) authored by @​tjons
  • cmd+bundle: Add --follow-symlinks flag to the opa build command 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 @​tjons
  • server: Add missing handling in the server for the explain=fails query value (#​6886) authored by @​acamatcisco
Docs, Website, Ecosystem
  • docs: Update bundle section with an example of a manifest with rego_version and file_rego_versions attributes (#​6885) authored by @​ashutosh-narkar
  • docs: Better link language SDKs to make them more discoverable (#​6866) authored by @​charlieegan3
Miscellaneous
  • ci: Add the OpenSSF Scorecard Github Action to help evaluate the OPA project's security posture (#​6848) authored by @​harshitasao
  • Dependency updates; notably:
    • build(go): bump golang from 1.22.4 to 1.22.5
    • build(deps): bump github.com/containerd/containerd from 1.7.18 to 1.7.20
    • build(deps): bump golang.org/x/net from 0.26.0 to 0.27.0
    • build(deps): bump google.golang.org/grpc from 1.64.0 to 1.65.0
    • build(deps): bump go.opentelemetry.io modules (#​6847)

v0.66.0

Compare Source

v0.66.0

This release contains a mix of features, performance improvements, and bugfixes.

Improved Test Reports (2546)

The opa test command now includes a new --var-values flag that enriches reporting of failed tests with the values and locations for variables in the failing expression.
E.g.:

FAILURES
--------------------------------------------------------------------------------
data.test.test_my_policy: FAIL (0ms)

  test.rego:8:
    	x == y + z
    	|    |   |
    	|    |   3
    	|    y + z: 5
    	|    y: 2
    	1

SUMMARY
--------------------------------------------------------------------------------
test.rego:
data.test.test_foo: FAIL (0ms)
--------------------------------------------------------------------------------
FAIL: 1/1

Authored by @​johanfylling, reported by @​grosser.

Reading stdin in opa exec (#​6538)

The opa exec command now supports reading input documents from stdin with the --stdin-input (-I) flag.
E.g.:

$ echo '{"user": "alice"}' | opa exec --stdin-input --bundle my_bundle

Authored by @​colinjlacy, reported by @​humbertoc-silva.

Topdown and Rego
Runtime, Tooling, SDK
Docs, Website, Ecosystem
Miscellaneous
  • Dependency updates; notably:
    • build(go): bump golang from 1.22.3 to 1.22.4
    • build(deps): bump github.com/containerd/containerd from 1.7.17 to 1.7.18
    • build(deps): bump golang.org/x/net from 0.25.0 to 0.26.0

v0.65.0

Compare Source

This release contains a mix of features and bugfixes.

Runtime, Tooling, SDK
Topdown and Rego
Miscellaneous
  • docs: Add arrays to composite values section (#​6727) authored by @​anderseknert reported by @​SpecLad
  • docs: Add remainder operator to grammar (#​6767) authored by @​anderseknert
  • docs: Fix dynamic metadata object in docs (#​6709) authored by @​antonioberben
  • docs: Use best practice package name in test examples (#​6731) authored by @​asleire
  • docs: Update query API doc with details about overriding the def decision path (#​6745) authored by @​ashutosh-narkar
  • ci: pin GitHub Actions macos runner version and build for darwin/amd64 (#​6720) reported and authored by @​suzuki-shunsuke
  • Dependency updates; notably:
    • build(go): bump golang from 1.22.2 to 1.22.3
    • build(deps): bump github.com/containerd/containerd from 1.7.15 to 1.7.17
    • build(deps): bump github.com/prometheus/client_golang
    • build(deps): bump golang.org/x/net from 0.24.0 to 0.25.0
    • build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0
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.1

Compare Source

This is a bug fix release addressing the following issues:

  • ci: Pin GitHub Actions macos runner version. The architecture of the GitHub Actions Runner macos-latest was changed from amd64 to arm64 and as a result darwin/amd64 binary wasn't released (#​6720) authored by @​suzuki-shunsuke
  • plugins/discovery: Update comparison logic used in the discovery plugin for handling overrides. This fixes a panic that resulted from the comparison of uncomparable types (#​6723) authored by @​ashutosh-narkar

v0.64.0

Compare Source

NOTES:

  • The minimum version of Go required to build the OPA module is 1.21

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 labels section, only labels that are
additional 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 consistent
for the entire configuration and helps to avoid accidental configuration errors. (#​5722) authored by @​ashutosh-narkar

Add rego_version attribute to the bundle manifest

A new global rego_version attribute is added to the bundle manifest, to inform the OPA runtime about what Rego version (v0/v1) to
use while parsing/compiling contained Rego files. There is also a new file_rego_versions attribute which allows individual
files 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_version attribute takes precedence over any applied --v1-compatible/--v0-compatible flag. (#​6578) authored by @​johanfylling

Runtime, Tooling, SDK
  • compile: Fix panic from CLI + metadata entrypoint overlaps. The panic occurs when opa build was provided an entrypoint from both a CLI flag, and via entrypoint metadata annotation. (#​6661) authored by @​philipaconrad
  • cmd/deps: Improve memory footprint and execution time of deps command for policies with high dependency connectivity (#​6685) authored by @​johanfylling
  • server: Keep default decision path in-sync with manager's config (#​6697) authored by @​ashutosh-narkar
  • server: Remove unnecessary AST-to-JSON conversions (#​6665) and (#​6669) authored by @​koponen-styra
  • sdk: Allow customizations of the plugin manager via SDK (#​6662) authored by @​xico42
  • sdk: Fix issue where active parser options aren't propagated to module reload during bundle activation resulting in errors while activating bundles with v1 syntax (#​6689) authored by @​xico42
  • plugins/rest: Close response body in OAuth2 client credentials flow (#​6708) authored by @​johanneslarsson
Topdown and Rego
Docs, Website, Ecosystem
Miscellaneous
  • go.{mod,sum}: Update the go stanza of OPA's go.mod to go 1.21. OPA, used as Go dependency, requires at least go 1.21, and thus works with all officially supported Go versions (1.21.x and 1.22.x) (#​6678) authored by @​srenatus
  • ci: Update Github Actions for Node 20. This change updates the upload-artifact and download-artifact Github actions to the latest version (v4) (#​6670) authored by @​philipaconrad
  • build: Update WASM Rego test generation docker command to address CVE-2022-24765 in Git (#​6703) authored by @​ashutosh-narkar
  • Dependency updates; notably:
    • build(go): bump 1.22.1 -> 1.22.2 (#​6672) authored by @​srenatus
    • build(deps): bump aquasecurity/trivy-action from 0.18.0 to 0.19.0
    • build(deps): bump github.com/containerd/containerd from 1.7.14 to 1.7.15
    • build(deps): bump github.com/prometheus/client_model from 0.5.0 to 0.6.1
    • build(deps): bump golang.org/x/net from 0.22.0 to 0.24.0
    • build(deps): bump google.golang.org/grpc from 1.62.1 to 1.63.2

v0.63.0

Compare Source

This release contains a mix of features, performance improvements, and bugfixes.

Runtime, Tooling, SDK
Topdown and Rego
Docs + Website + Ecosystem
Miscellaneous
  • chore: Remove repetitive words (#​6644) authored by @​occupyhabit
  • Dependency updates; notably:
    • build(deps): bump github.com/containerd/containerd from 1.7.13 to 1.7.14
    • build(deps): bump github.com/golang/protobuf from 1.5.3 to 1.5.4
    • build(deps): bump google.golang.org/grpc from 1.62.0 to 1.62.1

v0.62.1

Compare Source

This is a security fix release for the fixes published in Go 1.22.1.

OPA servers using --authentication=tls would be affected: crafted malicious client certificates could cause a panic in the server.

Also, crafted server certificates could panic OPA's HTTP clients, in bundle plugin, status and decision logs; and http.send calls that verify TLS.

This is CVE-2024-24783 (https://pkg.go.dev/vuln/GO-2024-2598).

Note that there are other security fixes in this Golang release, but whether or not OPA is affected is harder to assess. An update is advised.

Miscellaneous

v0.62.0

Compare Source

NOTES:

  • The minimum version of Go required to build the OPA module is 1.20

This release contains a mix of improvements and bugfixes.

Runtime, Tooling, SDK
  • cmd: Add environment variable backups for command-line flags (#​6508) authored by @​colinjlacy
  • download/oci: Add missing WithBundleParserOpts method to OCI downloader (#​6571) authored by @​slonka
  • logging: avoid %!F(MISSING) in logs by skipping calls to the {Debug,Info,Warn,Error}f functions when there are no arguments (#​6555) authored by @​srenatus
Topdown and Rego
Docs + Website + Ecosystem
Miscellaneous
  • Add Elastic to ADOPTERS.md (#​6568) authored by @​orouz
  • Dependency updates; notably:
    • bump golang 1.21.5 -> 1.22 (#​6595) authored by @​srenatus
    • bump google.golang.org/grpc from 1.61.0 to 1.62.0
    • bump golang.org/x/net from 0.19.0 to 0.21.0
    • bump github.com/containerd/containerd from 1.7.12 to 1.7.13
    • bump aquasecurity/trivy-action from 0.16.1 to 0.17.0
    • bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0
    • bump github.com/opencontainers/image-spec from 1.1.0-rc5 to 1.1.0-rc6

v0.61.0

Compare Source

This release contains a mix of new features and bugfixes.

Runtime, SDK
Topdown
Docs
Miscellaneous
  • linters+testdata: Reformat all yaml testcases for linting. (#​6511) authored by @​philipaconrad
  • Dependency updates, notably:
    • bump github.com/containerd/containerd from 1.7.11 to 1.7.12
    • bump github.com/go-logr/logr from 1.3.0 to 1.4.1
    • bump github.com/google/uuid from 1.5.0 to 1.6.0
    • bump github.com/prometheus/client_golang from v1.16.0 to v1.18.0
    • bump google.golang.org/grpc from 1.60.1 to 1.61.0

v0.60.0

Compare Source

v0.60.0

Runtime, Tooling, SDK
  • OPA can be run in 1.0 compatibility mode by using the new --v1-compatible flag. When this mode is enabled, the current release of OPA will behave as OPA v1.0 will eventually behave by default. This flag is currently supported on the build, check, fmt, eval and test commands (#​6478) authored by @​johanfylling
  • Extend the telemetry report to include the minimum compatible version of policies loaded into OPA (#​6361) co-authored by @​srenatus and @​ashutosh-narkar
  • server: Support fsnotify based reloading of certificate, key and CA cert pool when they change on disk (#​5788) authored by @​charlieegan3
  • Add option on the unit test runner to surface builtin errors. This should help with debugging errors generated while running unit tests (#​6489) authored by @​jalseth
  • Fix issue in opa fmt where the assignment operator and term in the rule head of chain rules are removed from the re-written rule head (#​6467) authored by @​anderseknert
  • cmd/fmt: Replace dependency on diff tool with an external golang library function (#​6284) authored by @​colinjlacy
Topdown and Rego
  • topdown/providers: Preserve user provided http headers in the providers.aws.sign_req builtin command (#​6456) authored by @​c2zwdjnlcg
  • rego: Allow custom builtin function registration to provide a description for the builtin (#​6449) authored by @​lcarva
  • ast+cmd: Allow bundle to contain calls to unknown functions when inspected (#​6457) authored by @​johanfylling
Docs
  • Add section on the changes proposed for a future OPA v1.0 and update Rego examples to be OPA v1.0 compliant(#​6453) authored by @​johanfylling
  • Clarify behavior of the sprintf builtin command when used with the %T marker (#​6487) authored by @​lcarva
Website + Ecosystem
Miscellaneous
  • Update Makefile to allow custom GOFLAGS to be provided to the golang executable (#​6458) authored by @​cova-fe
  • Dependency updates; notably:
    • bump golang 1.21.4 -> 1.21.5 (#​6460) authored by @​srenatus
    • bump aquasecurity/trivy-action from 0.14.0 to 0.16.0
    • bump github.com/containerd/containerd from 1.7.9 to 1.7.11
    • bump google.golang.org/grpc from 1.59.0 to 1.60.1
    • bump github.com/google/uuid from 1.4.0 to 1.5.0

v0.59.0

Compare Source

v0.59.0

This release adds tooling to help prepare existing policies for the upcoming OPA 1.0 release.
It also contains a mix of improvements, bugfixes and security fixes for third-party libraries.

NOTES:

  • 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 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.
Rego v1

The upcoming release of OPA 1.0, which will be released at a future date, will introduce breaking changes to the Rego language. Most notably:

  • the keywords that currently must be imported through import future.keywords into a module before use will be part of the Rego language by default, without the need to first import them.
  • the if keyword will be required before the body of a rule.
  • the contains keyword will be required when declaring a multi-value rule (partial set rule).
  • deprecated built-in functions will be removed.

This current release (0.59.0) introduces a new --rego-v1 flag to the opa fmt and opa check commands to facilitate the transition of existing policies to be compatible with the 1.0 syntax.

When used with opa fmt, the --rego-v1 flag will format the module(s) according to the new Rego syntax in OPA 1.0.
Formatted modules are compatible with both the current version of OPA and 1.0.
Modules using deprecated built-ins will terminate formatting with an error. Future versions of OPA will support rewriting applicable function calls with equivalent Rego compatible with 1.0.

When used with opa check, the --rego-v1 flag will check that the modules are compatible with both the current version of OPA and 1.0.

Relevant Changes
Runtime, Tooling, SDK

Configuration

📅 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 becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot added dependency/github Dependency Github Actions kind/renovate Categorizes issue or PR as related to Renovate lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/medium This issue or PR may be useful, and needs some attention size/xs Size XS status/review_needed The issue or PR needs to be reviewed labels Sep 3, 2024
@github-actions github-actions bot added the area/distroless Distroless label Sep 3, 2024
@nlamirault nlamirault merged commit c02d925 into main Sep 4, 2024
3 checks passed
@nlamirault nlamirault deleted the renovate/open-policy-agent-opa-0.x branch September 4, 2024 06:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/distroless Distroless dependency/github Dependency Github Actions kind/renovate Categorizes issue or PR as related to Renovate lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/medium This issue or PR may be useful, and needs some attention size/xs Size XS status/review_needed The issue or PR needs to be reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant