Skip to content

Update openpolicyagent/opa Docker tag to v1.19.0 (main) - #1858

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-openpolicyagent-opa-1.x
Open

Update openpolicyagent/opa Docker tag to v1.19.0 (main)#1858
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-openpolicyagent-opa-1.x

Conversation

@renovate

@renovate renovate Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
openpolicyagent/opa (source) stage minor 1.18.21.19.0

Warning

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


Release Notes

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

v1.19.0

Compare Source

This release contains a mix of new features and bug fixes. Notably:

  • A fixed SQL injection vector in the Compile API
  • Stricter safety checking for Rego assignments (:=)
  • A cgo-free, faster WebAssembly runtime (wazero replaces wasmtime-go)
  • Startup warnings for unknown configuration options
  • A new strings.split_n built-in function
  • A REPL line reader that handles pasted input correctly, migrating existing history files
Fix SQL injection vector in Compile API: Quote SQL filter field identifiers (#​8945)

The field names in the SQL emitted by the Compile API come from partially evaluated refs, so a
policy that selects a dynamic key — such as input.fruits[input.column] — puts caller-controlled
text in an identifier position. That text was emitted verbatim, which turns

WHERE fruit.name = 'allowed'

into

WHERE fruit.name = 'allowed' OR 1=1 -- = 'allowed'

and an application appending the filter to its query returns rows the policy denies.

Field segments that are not bare identifiers are now quoted at the UCAST-to-SQL boundary, with any
embedded quote character escaped. Ordinary column names stay unquoted, so existing filters keep
their current shape and remain case-insensitive on Postgres.

Authored by @​thevilledev

Behavior change: stricter safety for assignment (:=) (#​3546)

The assignment operator (:=) is documented as "syntactic sugar for =, local variable creation,
and additional compiler checks," and the safety checker reflects that: after
rewriting, := is treated identically to = (unification), so an assignment's
right-hand side can be made safe by unifying "backwards" through the left-hand
side. This means policies like x := y; x = 7 compile (binding y to 7)
even though y is never assigned, and x := y; obj[x] can silently degrade an
expected constant-time lookup into full iteration.

This change makes the right-hand-side of := be treated as a read that
must be made safe by other expressions, and can no longer be satisfied through
the left-hand-side. Affected policies that previously compiled now fail with a
rego_unsafe_var_error. Reference iteration on the right-hand-side (e.g.
some k; v := obj[k]) is unaffected.

Note: this is a deliberate semantic change, not a fix to match documented
behavior — the intended semantics of := in this case were never specified.

Authored by @​sspaink, reported by @​tsandall

WebAssembly runtime: wasmtime-go replaced with wazero (#​7557)

OPA's WebAssembly runtime — used by the wasm evaluation target and the WASM SDK — now runs on
the pure-Go wazero runtime instead of bytecodealliance/wasmtime-go. This
removes the cgo dependency from this path, so wasm-enabled builds no longer need a C toolchain.

Compiled policy modules are now cached process-wide, so repeated VM creation for the same policy
skips recompilation. On an Apple M4 Max this makes wasm cold start (compile + instantiate + first
eval) about 73% faster, and warm evaluation about 29% faster with ~28% fewer allocations.

Authored by @​srenatus, reported by @​sspaink

Configuration validation moved to Rego, with warnings on unknown options (#​8891)

Top-level configuration validation and default injection (default_decision,
default_authorization_decision, labels) is now expressed as an embedded Rego policy rather than
hand-written Go, as is the validation of server.metrics and metrics_export.

The user-visible effect is that unrecognized configuration options are reported instead of being
silently ignored. A typo such as decision_log instead of decision_logs now logs a warning at
startup:

{"level":"warning","msg":"unknown configuration option \"decision_log\" encountered"}

These are warnings, not errors: OPA starts as before, and sections that are intentionally
user-extensible are left alone, so extra keys there do not warn. Embedders reading configuration
through config.ParseConfig can find the same messages on Config.Warnings.

Authored by @​sspaink

Add strings.split_n built-in function (#​8344)

Policies often need only the first or last few parts of a split string, but the existing split
built-in always returns every part, so the count has to be worked around with wildcards or a slice.

strings.split_n takes the first n split parts from the front or the back of the string,
depending on whether n is positive or negative:

result := strings.split_n("a.b.c.d", ".", 2)

# result == ["a", "b"]
result := strings.split_n("a.b.c.d", ".", -2)

# result == ["c", "d"]

If abs(n) is larger than the number of parts, all parts are returned. An n of 0 returns an
empty array.

Authored by @​wonju-dev, reported by @​anderseknert

Improved REPL line editing, with history file migration (#​962)

Pasting a tab-indented snippet into the REPL triggered tab-completion on the pasted tab, corrupting
the input (e.g. injecting a completion candidate mid-line and producing a spurious parse error).
Fixing that requires bracketed paste, where the terminal wraps pasted text in markers so the line
reader inserts it literally instead of treating an embedded tab as a completion request. The
previous reader, peterh/liner, has no bracketed-paste support and is unmaintained (last release
2021), so it has been replaced with reeflective/readline.

The new reader persists history as JSON lines instead of one command per line. Existing history
files (~/.opa_history by default, or the path given to --history) are detected and migrated in
place the first time the REPL loads them, so history written by earlier versions of OPA is kept.
OPA's own multi-line buffering is unchanged, and readline's native multi-line editing is left
disabled to avoid changing REPL behavior.

Authored by @​sspaink, reported by @​aeneasr

Runtime, SDK, Tooling
Compiler, Topdown and Rego
Docs, Website, Ecosystem
Miscellaneous
  • ast: Add benchmark for rule index ref ordering (#​8943) authored by @​srenatus
  • ast: Various style fixes (#​8938) authored by @​anderseknert
  • build: Add Dockerfile.rego to validate image builds (#​8401) authored by @​jasdeepbhalla, reported by @​anderseknert
  • build: Get just the needed commits for CI (#​8940) authored by @​charlieegan3
  • test: Start decommissioning test.WithTempFS (#​8908) authored by @​anderseknert
  • topdown: Add regression test for partial eval local names (#​5226) authored by @​sspaink, reported by @​fab29p
  • topdown: Fix Partial-Evaluation test rejected by new conflict check (#​8860) authored by @​sspaink, reported by @​shomron
  • topdown: Vendor a method-less text/template to restore whole-binary linker DCE (#​7903) authored by @​rchildress87, reported by @​kruskall
  • workflows: Remove cpp from CodeQL language matrix (#​8864) authored by @​sspaink
  • workflows: Prune benchmarks to last 250 runs (#​8834) authored by @​srenatus
  • Dependency updates; notably:
    • build(go): Bump Go from 1.26.4 to 1.26.5 (#​8875) authored by @​srenatus
    • build(deps): Add github.com/reeflective/readline 1.3.0
    • build(deps): Add golang.org/x/term 0.45.0
    • build(deps): Bump github.com/dgraph-io/badger/v4 from 4.9.2 to 4.9.4
    • build(deps): Bump github.com/go-logr/logr from 1.4.3 to 1.4.4
    • build(deps): Bump github.com/huandu/go-sqlbuilder from 1.41.0 to 1.42.1
    • build(deps): Bump github.com/prometheus/client_golang from 1.23.2 to 1.24.0
    • build(deps): Bump github.com/vektah/gqlparser/v2 from 2.5.34 to 2.5.36
    • build(deps): Bump golang.org/x/sync from 0.21.0 to 0.22.0
    • build(deps): Bump golang.org/x/text from 0.38.0 to 0.40.0
    • build(deps): Bump google.golang.org/grpc from 1.81.1 to 1.82.1
    • build(deps): Bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 (#​8889) authored by @​ahbarrios
      Addressing GHSA-fxhp-mv3v-67qp
    • build(deps): Drop github.com/peterh/liner
    • build(deps): Drop github.com/KimMachineGun/automemlimit (#​8869) authored by @​charlieegan3
    • build(deps): Drop go.uber.org/automaxprocs (#​8869) authored by @​charlieegan3

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM (* 0-3 * * *)
  • 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.

🔕 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 requested a review from a team as a code owner August 1, 2026 00:59
@renovate renovate Bot added the v3.x Issues and Pull Requests related to the major version v3 label Aug 1, 2026
@codecov

codecov Bot commented Aug 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.20%. Comparing base (8b67513) to head (eb2533b).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1858   +/-   ##
=======================================
  Coverage   85.20%   85.20%           
=======================================
  Files         105      105           
  Lines       13777    13777           
=======================================
  Hits        11739    11739           
  Misses       1514     1514           
  Partials      524      524           

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8b67513...eb2533b. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v3.x Issues and Pull Requests related to the major version v3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants