Commit Graph

6225 Commits

Author SHA1 Message Date
Stephan Renatus 3d1bac44a2 Patch release v1.14.1
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
v1.14.1
2026-03-09 10:24:50 +01:00
Stephan Renatus 13ef6b8446 build: bump deps (go.mod from main)
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-03-09 10:24:50 +01:00
Sebastian Spaink 8836a79ddf Fix intermittent plugins manager deadlock on opa.configure (#8407)
Signed-off-by: Sebastian Spaink <sebastianspaink@gmail.com>
2026-03-09 10:24:50 +01:00
Sebastian Spaink c416fd964e Revert "ast: make rule index track var assignments and x in {...} (#8341)" (#8410)
This reverts commit 32b97ae08c.

Signed-off-by: Sebastian Spaink <sebastianspaink@gmail.com>
2026-03-09 10:24:50 +01:00
Stephan Renatus 3d57b2ec57 build: bump go 1.26.1 (#8409)
https://groups.google.com/g/golang-announce/c/EdhZqrQ98hk

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-03-09 10:24:50 +01:00
Johan Fylling acf81e85d6 Release v1.14.0 (#8379) v1.14.0 2026-02-26 16:21:02 +01:00
Philip Conrad b4b04a6219 ci: Fix check-changes job skipping over YAML changes. (#8377)
This commit fixes a copy/paste error from #8356 that resulted
in the YAML detection logic of the `check-changes` job setting
the wrong result for the job step's yaml changes output.

This bug caused downstream jobs to not see that YAML files were
altered at all in a PR, and YAML-specific jobs like the linter
and zizmor passes would not be run.

Signed-off-by: Philip Conrad <philip@chariot-chaser.net>
2026-02-25 11:11:28 -05:00
Anivar Aravind 3c5b7c6c9a docs: Document metrics for http.send, regex, and glob builtins (#8103)
Fixes #6730

Signed-off-by: Anivar A Aravind <ping@anivar.net>
2026-02-25 13:00:01 +00:00
Stephan Renatus 29918f91e9 rego: disable rule indexing for benchmark
It's not fair to compare Wasm vs Rego with Rego having indexing on the
rules in question.

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-25 13:34:48 +01:00
Charlie Egan 9d124cb62a ast: Ensure term values implement string lengther (#8374)
This should protect from issues like
https://github.com/open-policy-agent/opa/issues/8369
in future.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-25 10:28:59 +00:00
Stephan Renatus 32b97ae08c ast: make rule index track var assignments and x in {...} (#8341)
All these snippets are now rule-indexed:

```rego
allow if input.role in {"admin", "user"}
allow if "admin" in input.roles

allow if {  # minimal var tracking
  x := input.role
  x in {"admin", "user"}
}
```

Fixes #1841.

* ast: move debug helpers to index_debug.go, add mermaid output
* ast: add reverse case, e.g. "admin" in input.roles

Here, we need to react differntly when input.roles is an array, a set
or an object.

NB(sr): I thought we'd never have to deal with sets, because they are
not coming from JSON -- i.e. they cannot be input or data. But it seems
we allow input to be any *ast.Term, so we need to deal with ast.Set,
too. Added a case to the existing code for this, when input.role is LHS.

* ast: treat ref[_] = "foo" like `"foo" in ref`

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-25 10:11:35 +00:00
Stephan Renatus 7cfd0924a9 docs: update interface{} -> any in golang snippets (#8373)
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-25 10:32:19 +01:00
Sebastian Spaink 98f7752943 Return correct location of unsafe var in object (#8371)
Signed-off-by: Sebastian Spaink <sebastianspaink@gmail.com>
2026-02-24 21:51:04 +00:00
Charlie Egan 299bbd40be compile: Add StringLength to lazy object (#8370)
This is needed in build -O 1 as I think the optimizer is evaluating the
path and making a rule for it, which is then formatted, which is where
StringLength is needed.

Fixes https://github.com/open-policy-agent/opa/issues/8369

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-24 16:37:57 +00:00
Stephan Renatus dc7995efe7 workflows/benchmark: persist credentials, we need them for pushing
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-24 14:35:42 +01:00
Charlie Egan 9b2143cdf9 Implement new GlossaryTooltip component (#8367)
This is useful for using in docs pages where we want to be able to offer the
reader a definition for a term inline. Some such cases have been added as part
of this PR to get us started with some more technical terms early in our
docs.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-24 10:57:57 +00:00
Sandor Szücs 7cafd621d3 fix race accessing registeredTriggers (#8365)
ref: https://github.com/open-policy-agent/opa/issues/8363

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
2026-02-24 08:01:40 +00:00
Charlie Egan 446f836c39 test: Extract runtime Info to new package (#8362)
This will allow Go SDK users to access this previously internal package.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-24 08:46:35 +01:00
Anders Eknert 397f9b0245 perf: Allocate less in array unification (#8351)
Surprisingly, this sailed up as the major source of B/op in the Regal
linting itself benchmark. I guess we never paid attention to it in the
past as there were many worse culprits.

With help from @tsandall we tracked this down to Regal's frequent use
of walk, and how that'd unify the path-value array. Not sure if there
are any other noteworthy scenarios that lead on to this path, but at
least us `walk` enthusiasts get to start the weekend in the best possible
way.

No surprises wrt the fix here. Just cram everything into a single struct that
can be reused across requests via a sync pool. Not particularly elegant, but
fairly limited, so I hope to get this in even if the impact should be minimal
outside of `walk` heavy integrations.

RegalLintingItself benchmark, main vs change. Ns/op and # allocs largely
unchanged, while the difference in B/op is rather massive for a simple
change!
```
348015056 ns/op	1260364874 B/op	31868705 allocs/op
343963417 ns/op	1122163613 B/op	31874931 allocs/op
```

Signed-off-by: Anders Eknert <anders.eknert@apple.com>
2026-02-23 13:20:27 +00:00
dependabot[bot] 79fc2e86a0 build(deps): bump the dependencies group across 2 directories with 7 updates
Bumps the dependencies group with 4 updates in the / directory: [github.com/dgraph-io/badger/v4](https://github.com/dgraph-io/badger), [github.com/huandu/go-sqlbuilder](https://github.com/huandu/go-sqlbuilder), [golang.org/x/net](https://github.com/golang/net) and [google.golang.org/grpc](https://github.com/grpc/grpc-go).
Bumps the dependencies group with 2 updates in the /e2e directory: [github.com/lib/pq](https://github.com/lib/pq) and [modernc.org/sqlite](https://gitlab.com/cznic/sqlite).


Updates `github.com/dgraph-io/badger/v4` from 4.9.0 to 4.9.1
- [Release notes](https://github.com/dgraph-io/badger/releases)
- [Changelog](https://github.com/dgraph-io/badger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dgraph-io/badger/compare/v4.9.0...v4.9.1)

Updates `github.com/huandu/go-sqlbuilder` from 1.39.0 to 1.39.1
- [Release notes](https://github.com/huandu/go-sqlbuilder/releases)
- [Commits](https://github.com/huandu/go-sqlbuilder/compare/v1.39.0...v1.39.1)

Updates `golang.org/x/net` from 0.49.0 to 0.50.0
- [Commits](https://github.com/golang/net/compare/v0.49.0...v0.50.0)

Updates `golang.org/x/text` from 0.33.0 to 0.34.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.33.0...v0.34.0)

Updates `google.golang.org/grpc` from 1.78.0 to 1.79.1
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.78.0...v1.79.1)

Updates `github.com/lib/pq` from 1.11.1 to 1.11.2
- [Release notes](https://github.com/lib/pq/releases)
- [Changelog](https://github.com/lib/pq/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lib/pq/compare/v1.11.1...v1.11.2)

Updates `modernc.org/sqlite` from 1.44.3 to 1.45.0
- [Changelog](https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.44.3...v1.45.0)

---
updated-dependencies:
- dependency-name: github.com/dgraph-io/badger/v4
  dependency-version: 4.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: github.com/huandu/go-sqlbuilder
  dependency-version: 1.39.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: golang.org/x/net
  dependency-version: 0.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: golang.org/x/text
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: google.golang.org/grpc
  dependency-version: 1.79.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: github.com/lib/pq
  dependency-version: 1.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: modernc.org/sqlite
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 11:15:52 +01:00
dependabot[bot] 3d906f19df build(deps): bump lodash-es and mermaid in /docs
Bumps [lodash-es](https://github.com/lodash/lodash) and [mermaid](https://github.com/mermaid-js/mermaid). These dependencies needed to be updated together.

Updates `lodash-es` from 4.17.21 to 4.17.23
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

Updates `mermaid` from 11.10.1 to 11.12.3
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.10.1...mermaid@11.12.3)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.17.23
  dependency-type: indirect
- dependency-name: mermaid
  dependency-version: 11.12.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 08:14:34 +01:00
dependabot[bot] 553a71f783 build(deps): bump the e2e-prisma group
Bumps the e2e-prisma group in /e2e/api/compile/prisma with 3 updates: [@prisma/adapter-pg](https://github.com/prisma/prisma/tree/HEAD/packages/adapter-pg), [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client) and [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli).


Updates `@prisma/adapter-pg` from 7.3.0 to 7.4.0
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/7.4.0/packages/adapter-pg)

Updates `@prisma/client` from 7.3.0 to 7.4.0
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/7.4.0/packages/client)

Updates `prisma` from 7.3.0 to 7.4.0
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/7.4.0/packages/cli)

---
updated-dependencies:
- dependency-name: "@prisma/adapter-pg"
  dependency-version: 7.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: e2e-prisma
- dependency-name: "@prisma/client"
  dependency-version: 7.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: e2e-prisma
- dependency-name: prisma
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: e2e-prisma
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 08:13:52 +01:00
dependabot[bot] 1f3ccd3f32 build(deps): bump the go-opentelemetry-io group across 1 directory with 4 updates
Bumps the go-opentelemetry-io group with 4 updates in the / directory: [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://github.com/open-telemetry/opentelemetry-go), [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) and [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go).


Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.64.0 to 0.65.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.64.0...zpages/v0.65.0)

Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace` from 1.39.0 to 1.40.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.40.0)

Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.39.0 to 1.40.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.40.0)

Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` from 1.39.0 to 1.40.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
  dependency-version: 0.65.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace
  dependency-version: 1.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
  dependency-version: 1.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
  dependency-version: 1.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-opentelemetry-io
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 07:36:50 +01:00
Philip Conrad 019086bc3c ci: Harden and update all GH Actions workflows.
This PR contains fixes for all findings by the static analysis
tool zizmor, and reduces the attack surface available in our
GH Actions workflows by a decent margin.

The most notable change: our post-tag workflow now does not
use the actions cache, to prevent cache poisoning attacks.
This will drive up release publishing times, but eliminates
an attack vector on those releases.

Other changes:
 - We also update all of our Slack alerting steps to use the
   official slackapi/slack-github-action project, instead of the
   archived project we were using before.
 - A new `yaml` change detection category to has been added
   to the `check-changes` job, allowing later jobs and steps
   in the pull-request workflow to run conditionally on
   YAML-based changes.
 - An explicit linting job that runs the zizmor Github Actions
   static analysis tool on the repo when YAML changes are
   detected.

Signed-off-by: Philip Conrad <philip@chariot-chaser.net>
2026-02-23 07:00:32 +01:00
Johan Fylling fcb377212e chore: Remove unnecessary comment from bundle JWT verification impl (#8354)
The concern expressed in this comment has been determined to be unwarranted, so removing it to not cause future confusion.

Signed-off-by: Johan Fylling <johan.dev@fylling.se>
2026-02-21 15:24:11 +01:00
Stephan Renatus 3a919b6469 ast: add index else == nil test, fix it (#8348)
Those tests never intended an Else return, but I stumbled upon one case
returning one:

```
$ go test ./v1/ast
--- FAIL: TestBaseDocEqIndexing (0.00s)
    --- FAIL: TestBaseDocEqIndexing/functions:_glob.match_in_function,_arg_matching_non-glob_rule (0.00s)
        index_test.go:823: unexpected else rule(s): map[glob_f(a) = true if { a = 12 }:[glob_f(a) = true if { a = 12 }]]
FAIL
FAIL    github.com/open-policy-agent/opa/v1/ast 1.525s
FAIL
```

This change fixes it.


Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-21 09:44:37 +01:00
dependabot[bot] 76d8991ba5 build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 in /e2e
Bumps [filippo.io/edwards25519](https://github.com/FiloSottile/edwards25519) from 1.1.0 to 1.1.1.
- [Commits](https://github.com/FiloSottile/edwards25519/compare/v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: filippo.io/edwards25519
  dependency-version: 1.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-19 21:06:36 +01:00
Anders Eknert c6e230659c parser: Add test to verify filename interning in Location
Discussed this with @srenatus, and we weren't sure if the value of
a `Location`s `File` got interned while parsing, or if we had to pay
for a unique string per Location. It turns out that they indeed share
the same memory location, which was "bad" as it otherwise would have
been an easy win. Oh well, one we already won then, I guess.

Signed-off-by: Anders Eknert <anders.eknert@apple.com>
2026-02-18 12:46:04 +01:00
Stephan Renatus 01229ed520 workflows: skip docs/ in release-vulnerability-check
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-18 11:17:50 +01:00
Stephan Renatus 43fca92d4b workflows: bump trivy-action (0.34.0, trivy 0.69.1)
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-18 11:17:50 +01:00
Stephan Renatus 5e989f85aa Integrate release 1.13.2
For GO-2026-4337, see https://github.com/open-policy-agent/opa/releases/tag/v1.13.2

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-18 10:36:30 +01:00
Sebastian Spaink f71e693a9c Add line number next to test file in pretty format
Signed-off-by: Sebastian Spaink <sebastianspaink@gmail.com>
2026-02-18 10:01:24 +01:00
Stephan Renatus fd9c46c47a workflows: add nightly vuln checks for released versions/images
This is almost what do in nightlies, but:

1. Not pulling docker images, trivy can do that -- we don't deal with
   changing tags here (latest, edge), but concrete ones that don't get
   overwritten in dockerhub ever.
2. It's a different, since we don't want nightly to turn red when there
   is a vulnerability in the latest release, it's two separate concerns.

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-18 09:28:41 +01:00
Sebastian Spaink 59839f8f94 Update faulty example using bundle optimize (#8331)
Signed-off-by: Sebastian Spaink <sebastianspaink@gmail.com>
2026-02-16 13:31:05 -06:00
dependabot[bot] f18131e3b3 build(deps): bump markdown-it and markdownlint-cli2 in /docs (#8329)
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) to 14.1.1 and updates ancestor dependency [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2). These dependencies need to be updated together.


Updates `markdown-it` from 14.1.0 to 14.1.1
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/14.1.0...14.1.1)

Updates `markdownlint-cli2` from 0.20.0 to 0.21.0
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: markdown-it
  dependency-version: 14.1.1
  dependency-type: indirect
- dependency-name: markdownlint-cli2
  dependency-version: 0.21.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 09:02:45 -06:00
Charlie Egan af61658027 docs: Add workflow to auto update Regal docs (#8318)
* docs: Add workflow to auto update regal docs

We want to automate the process of importing the
latest regal release's docs.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>

* docs: Remove review CC

This is not needed when we have reviewer set too.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>

---------

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-16 11:47:42 +00:00
alex60217101990 d13612fdc9 topdown: fix BenchmarkFunctionArgumentCounts query (#8327)
* topdown: fix BenchmarkFunctionArgumentCounts query

The benchmark was using `test.f(...)` syntax which OPA interprets as a
built-in function call, causing "unsupported built-in" errors. Rules from
compiled modules must be referenced via the `data` prefix.

Changed query from `test.f(...)` to `data.test.f(...)` to properly
reference the rule defined in the test package.

Signed-off-by: alex60217101990 <alex6021710@gmail.com>

* topdown: remove warmup stunts from benchmarks

Go's benchmark framework automatically handles warmup iterations through
its internal iteration count management.

Removed:
- Explicit warmup loops
- Manual GC() and ReadMemStats() calls
- Custom b.StopTimer() usage
- Hand-calculated allocPerOp and mallocsPerOp metrics
- b.ReportMetric() calls for standard metrics

Signed-off-by: alex60217101990 <alex6021710@gmail.com>

---------

Signed-off-by: alex60217101990 <alex6021710@gmail.com>
2026-02-16 10:35:00 +01:00
dependabot[bot] 009a27d548 build(deps): bump qs from 6.14.1 to 6.14.2 in /docs
Bumps [qs](https://github.com/ljharb/qs) from 6.14.1 to 6.14.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-14 16:24:04 +01:00
alex60217101990 39b55c97a1 perf(topdown): optimize bindings allocation with dynamic pre-sizing (#8233)
Reduce memory waste in bindings allocation by using
compile-time size hints for function evaluation.

Before: All bindings pre-allocated 16-slot arrays regardless of usage
After: Dynamic sizing based on known argument counts

Memory improvements:
- 20 bindings: 10.7% less memory, 13.3% faster
- 50 bindings: 20.7% less memory, 8.3% faster
- Transition cost: 22.4% faster for large binding sets

Implementation:
- Add newBindingsWithSize() constructor with size hint parameter
- Add newBindingsArrayHashmapWithSize() for smart array/map selection
- Add childWithBindingSizeHint() method for eval context creation
- Apply optimization in evalOneRule() using len(args) as hint

Fixes #7266

Signed-off-by: alex60217101990 <alex6021710@gmail.com>
2026-02-13 11:11:27 +00:00
Stephan Renatus 7ee84ccc8a rego: add ResultValue[T]() helper method
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-13 09:26:51 +01:00
Sebastian Spaink 573070615c Add public method to extend the compliance test cases with IR plans (#8313)
Signed-off-by: Sebastian Spaink <sebastianspaink@gmail.com>
2026-02-12 15:51:34 +00:00
Stephan Renatus 0d7e509613 ci: bump golangci-lint (v2.9.0), fix issues
https://github.com/golangci/golangci-lint/releases/tag/v2.9.0

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-12 08:42:05 +01:00
Stephan Renatus b15601876e go: cleanup old build flags
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-12 08:42:05 +01:00
Stephan Renatus c256ef1f39 build: bump golang 1.25.7 -> 1.26.0
And raise `go` version in go.mod. 1.24.x is no longer supported.

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
2026-02-12 08:42:05 +01:00
Charlie Egan 97e64a0193 website: Redirect /docs/latest/ecosystem
This page moved to a new location and is not under /docs/ any more.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-12 08:30:49 +01:00
Charlie Egan cd576d48d4 Update bundle signing docs to clarify key config (#8307)
Following a question about the mixing of these two signature verification
methods.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-11 16:48:08 +00:00
Charlie Egan dd59017471 website: Allow Regal import to use local dir (#8312)
This allows testing of regal docs changes without
pulling them from a remote, useful if testing
changes to content with docusaurus bits in.

Signed-off-by: Charlie Egan <charlie_egan@apple.com>
2026-02-11 00:49:42 +01:00
Anders Eknert fc55be83e6 perf: json.patch + interning improvements (#8289)
The `json.patch` built-in is quite versatile, and compared to
patching via e.g. `object.union` et. al. often communicates
intent better, IMO. But while it uses some fairly advanced
logic for complex patch operations, it doesn't perform all that
great on simple ones. This is a first and pretty basic attempt
to improve that somewhat by picking the most low-hangig performance
fruits, like avoiding repeated allocations of temporary term pointers.

The main allocation source is the creation of EditTree's, and this
remains a problem. I have created a sync pool but only managed to
get the outermost edit tree to recycle, as I found it really hard
to track where it's safe to release those created in the deeply
nested calls. Additionally, I managed to trigger stack overflows
trying to recycle child trees, so there seems to be some circular
refs? Or I just did something wrong.

If someone wants to look into this and pick up where
I left, that'd be great!

- Add InternedIntRange for testing, primarily
- Intern keys used in json.patch patches
- Clean up json.X built-in benchmarks
- Reduce allocations in edit tree function
- Avoid using intermediate data structures
  for JSON patches
- Some unrelated interning fixes to reduce noise
  in tests and benchmarks (e.g. do less stuff in
  var inits)

Selected benchmark that I used while working on this:

**Before**
```
BenchmarkJSONPatchAddShallowScalar/object-10-16    147853      8008 ns/op    9667 B/op    206 allocs/op
BenchmarkJSONPatchAddShallowScalar/array-10-16     201704      5889 ns/op    7256 B/op    173 allocs/op
BenchmarkJSONPatchAddShallowScalar/set-10-16       182566      6733 ns/op    8103 B/op    156 allocs/op
```

**After**
```
BenchmarkJSONPatchAddShallowScalar/object-10-16    197414      6066 ns/op    7256 B/op    133 allocs/op
BenchmarkJSONPatchAddShallowScalar/array-10-16     278121      4427 ns/op    5285 B/op    100 allocs/op
BenchmarkJSONPatchAddShallowScalar/set-10-16       233884      4839 ns/op    6243 B/op    113 allocs/op
```

Signed-off-by: Anders Eknert <anders.eknert@apple.com>
2026-02-10 20:57:12 +00:00
Sibasis Padhi bec6edf1ee docs: Add examples to glob.match built in documentation (#8252)
Signed-off-by: Sibasis Padhi <sibasis.padhi@gmail.com>
2026-02-10 12:38:55 -06:00
alex60217101990 83627c62a0 runtime: add custom storage backend registration API (#8303)
Implements RegisterStorageBackend() to allow Go module users to inject custom
storage implementations during early-stage package init (hardcoded at build time).

Previously this was only possible through params.StoreBuilder which required
direct SDK usage.

Key changes:
- Add RegisterStorageBackend() and StorageBackendBuilder type in v1/runtime
- Modify storage initialization to check registered backends

Fixes #8277

Signed-off-by: alex60217101990 <alex6021710@gmail.com>
2026-02-10 13:37:33 +01:00