platformchangelog.dev
43 tools
feedrelease

Open Policy Agent v1.20.0

++++++++~~-********

Changes

  • Ast: Remove a few unnecessary allocationsremoved
  • Allocate less in ast.NewObjectchanged
  • Heap allocation huntingchanged
  • Improved UUID implementationchanged
  • New Rego keywords: and and or, for combining conditions inside a single rule bodyadded
  • Debug: Allow configuring variable value length limitadded
  • Format: Add support for formatting and/or logical expressions (#8683) reported andadded
  • Oracle: Support and/or logical keywords (#8819) reported andadded
  • Repl: Add support for and/or imports (#9066) reported andadded
  • Repl: Allow interactive ref head rule definitionsadded
  • Runtime: Allow registering hooks, and pass them to discoveryadded
  • Ast: Allow non-infix and()/or() set built-in callsadded
58 more lines
  • Ir: Add end locations in plan statementsadded
  • Ir: Add list of unplanned rules to plan dataadded
  • Ast: Add Equal implementation for *objectadded
  • Ast: Add sync pool for strings.Readeradded
  • Bundle: Fix roots containing percent-encoded charactersfixed
  • Loader: Fix loading absolute paths on Windowsfixed
  • Plugins: Avoid predictable OCI temp storefixed
  • Plugins: Fix overly verbose return of errorsfixed
  • Ast: Correct regression in Ruleset Addfixed
  • Ast: Fix future.keywords wildcard import not including the not keywordfixed
  • Ast: Fix panic for shadowed root document calls in Rego v0 (#9067) reported andfixed
  • Topdown: Fix false modulo by zero for multiples of 2^64fixed
  • Topdown: Fix negation inlining limit overflowingfixed
  • Topdown: Fix sum overflow when integer elements fit int64 but the sum does notfixed
  • Ast: Avoid excessive save/restore calls in parserfixed
  • Ast: Fix performance regression in InterfaceToValuefixed
  • Allow_net now restricts remote JSON Schema $ref fetching from json.match_schema and json.verify_schemaother
  • Coverage reports can now explain why a range is not coveredother
  • Much faster partial evaluation for dynamically composed policiesother
  • Rego Keywords: and, or — the full referenceother
  • Precedence and grouping — how the operators group, and where parentheses are neededother
  • Combining with notother
  • Incremental rules — the idiom when the alternatives must produce a valueother
  • Compile: Validate plan-addons existother
  • Config: Migrate server.encoding and server.decoding validation to Regoother
  • Format: Converge object comprehension layout (#9075) reported andother
  • Format: Don't group rules that aren't written on one lineother
  • Format: Don't unwrap one-line rule body braces from a single set termother
  • Format: Honor line breaks before explicit and/or operand bodiesother
  • Format: Keep parens around a nested not operandother
  • Format: Wrap set union | infix in parens when output would be re-interpreted as comprehensionother
  • Format: Write added imports before rulesother
  • Rego: Pass capabilities to the parser in (*Rego).compileModulesother
  • Server: Decouple decision logging from request context cancellationother
  • Wasm: Address regression causing memory corruptionother
  • Ast: Don't index away rules with a nested print callother
  • Ast: Don't leak generated locals for calls in ref type errorsother
  • Ast: Don't leak generated locals in ref type errorsother
  • Ast: Don't report type errors for documents replaced by withother
  • Ast: Index rules with and/or expressionsother
  • Ast: Name the enclosing rule in unsafe var errors on shared linesother
  • Ast: Only re-parse brace-led set terms as rule bodiesother
  • Ast: Print undeclared var namesother
  • Ast: Reject print calls as and/or operandsother
  • Ast: Reject assignments in implicit not, and and or bodiesother
  • Ast: Reject bare ambiguous { ... | ... } not operandsother
  • Topdown,tester: Don't put shared interned refs into mutable ASTsother
  • Topdown: A few tracing/profiling improvementsother
  • Topdown: Clean up http.send implementationother
  • Topdown: Don't yield a key in both base and virtual docs twiceother
  • Topdown: Error on built-in calls with unevaluated operandsother
  • Topdown: Save enumerated refs over unknown dataother
  • Topdown: Speed up partial evaluation of dynamically composed policiesother
  • Topdown: Treat an empty JSON Schema enum as unsatisfiableother
  • Ast: Bucket built-in name lookup by ref shapeother
  • Ast: Use pointer comparison in Equal methodsother
  • Eval: Catch booleans trying to escape to the heapother
  • Topdown: Various io.Writer improvementsother
39 maintenance lines (dependency bumps, CI, tests, docs)
  • Ecosystem: Add Scanara to the ecosystem pagemaintenance
  • Ecosystem: Describe what GOPAL actually coversmaintenance
  • Policy-reference: Add examples for common built-insmaintenance
  • Website: Refresh Apache APISIX ecosystem resourcesmaintenance
  • Add endswith and replace built-in examplesmaintenance
  • Add split and lower built-in examplesmaintenance
  • Clarify glob.match indexing requirementsmaintenance
  • Document and/or keywords (#8682) reported andmaintenance
  • Highlight and/or keywords in Rego syntaxmaintenance
  • Improve to_number built-in descriptionmaintenance
  • Keep snippets highlighted while they are editedmaintenance
  • Ast: Annotations code cleanupmaintenance
  • Ast: Enable modernize linter for golangci-lintmaintenance
  • Ast: Enable static check of consistent receiver namesmaintenance
  • Ast: Move global builtin.Ref() vars to a single locationmaintenance
  • Ast: Move interning experiment behind noisy tagmaintenance
  • Ast: Replace use of sort package with modern alternativesmaintenance
  • Ast: Use slices.CompareFunc for imports and annotationsmaintenance
  • Build/release: Create new release toolmaintenance
  • Modernize for the Go 1.26 standard librarymaintenance
  • Bundle: Use util.WithPrefixmaintenance
  • Migrate proto-check to bufbuild/buf-actionmaintenance
  • Serialize benchmarks workflow to avoid racing writes to benchmarks branchmaintenance
  • Enable all usetesting optionsmaintenance
  • Remove intrange linter, as it's covered by modernizemaintenance
  • Releng: Sample benchmarks from 15 processes, not 3maintenance
  • Releng: Update post-merge benchmark regression checkmaintenance
  • Server_test: Adjust test to avoid flakey decision log test outcomemaintenance
  • Clean up irrelevant nolint directivesmaintenance
  • Restore print-based and/or short-circuit testsmaintenance
  • Topdown: Add uri built-in compliance cases for parser edge casesmaintenance
  • Topdown: Cover uuid.parse input format leniencymaintenance
  • Topdown: Modernize fixes and some string building improvementsmaintenance
  • Util: Don't return a nil slice from StringToByteSlice("")maintenance
  • Dependency updates; notably:maintenance
  • Bump the build toolchain to Go 1.27, and the go.mod language version to 1.26maintenance
  • Bump github.com/dgraph-io/badger/v4 from 4.9.4 to 4.9.5maintenance
  • Bump github.com/prometheus/client_golang from 1.24.0 to 1.24.1maintenance
  • Bump go.opentelemetry.io/proto/otlp from 1.10.0 to 1.11.0maintenance
109 lines1 removed12 added3 changed12 fixed42 other39 maintenancetyped from the source notes

Full release notes ↗ · all Open Policy Agent releases

Report a mistake

context

Tools

Open Policy Agent

Other Open Policy Agent releases

How this was written

The change list is the project's own release notes, sorted into change types by fixed rules. See the methodology.

Back to the feed