From 88b28b664e1d1d1722b82cdff95850b68222012c Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 10:54:03 +0200 Subject: [PATCH 1/8] Prepare v1.7.0 release Signed-off-by: Johan Fylling --- CHANGELOG.md | 67 +- builtin_metadata.json | 200 ++ capabilities/v1.7.0.json | 4850 ++++++++++++++++++++++++++++++++++++++ v1/version/version.go | 2 +- 4 files changed, 5117 insertions(+), 2 deletions(-) create mode 100644 capabilities/v1.7.0.json diff --git a/CHANGELOG.md b/CHANGELOG.md index c47f129bc5..6cd97adc5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,72 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). -## Unreleased +## 1.7.0 + +### Fixes + +- format: Not bracketing keywords in imports (#7744) ([#7742](https://github.com/open-policy-agent/opa/issues/7742)) authored by @johanfylling + +### Miscellaneous + +- .github: Use types for issues (#7751) (authored by @charlieegan3) +- Benchmark fixes (#7765) (authored by @anderseknert) +- Prepare v1.7.0 development (#7736) (authored by @johanfylling) +- Use Regal for linting Rego (#7752) (authored by @anderseknert) +- Use shorthand form for types (#7757) (authored by @anderseknert) +- add top-level token permissions for workflows (#7795) (authored by @timothyklee) +- ast: add DefaultModuleLoader (authored by @srenatus) +- ast: add feature registration from the outside (authored by @srenatus) +- build(deps): bump github.com/go-viper/mapstructure/v2 (#7734) (authored by @dependabot[bot]) +- build(deps): bump on-headers and compression in /docs (#7785) (authored by @dependabot[bot]) +- build(deps): bump the dependencies group across 1 directory with 10 updates (#7803) (authored by @dependabot[bot]) +- build(deps): bump the gha-dependencies group with 3 updates (#7747) (authored by @dependabot[bot]) +- build(deps): bump the go-opentelemetry-io group with 7 updates (#7745) (authored by @dependabot[bot]) +- build: Show a warning when .manifest is ignored (#7807) (authored by @charlieegan3) +- bundle: Add support for bundle store and activation plugins. (#7771) (authored by @philipaconrad) +- cmd: allow branding (authored by @srenatus) +- cmd: only plumb through target if it was set (authored by @srenatus) +- cmd: use command.RunE to return errors and perform orderly shutdown of OPA (authored by @srenatus) +- cmd: use regoError to carry compiler errors into CLI machinery (authored by @srenatus) +- decisionlogs: add custom fields grab bag (authored by @srenatus) +- docs/build: Link checker fixes (#7743) (authored by @charlieegan3) +- docs: Add examples for crypto.sha256 and base64.encode built-in functions (#7762) (authored by @ToluGIT) +- docs: Break out the built-in categories in policy ref (#7722) (authored by @sky3n3t) +- docs: Correctly spell NetBSD (#7738) (authored by @iamleot) +- docs: Fix /docs/envoy-authorization/ 404 (#7770) (authored by @charlieegan3) +- docs: Fix a number of minor docs typos (#7799) (authored by @charlieegan3) +- docs: Remove link to OPA playground share (#7750) (authored by @charlieegan3) +- docs: Revise docs index page wording (#7805) (authored by @charlieegan3) +- docs: Update warning note in GraphQL API docs (#7737) (authored by @charlieegan3) +- internal/config: keep unknown env replacements (authored by @srenatus) +- loader+internal: Add bundle lazy loading mode across the runtime. (#7768) (authored by @philipaconrad) +- loader: pass bundle name in AsBundle() (authored by @srenatus) +- opa exec: stop plugins before exit (authored by @srenatus) +- perf: AST compiler optimizations (#7740) (authored by @anderseknert) +- plugin/discovery: make Factories() merge the factories (authored by @srenatus) +- plugins/discovery: Replace environment variables after evaluation. (authored by @philipaconrad) +- plugins/logs: Add experimental intermediate results field. (authored by @philipaconrad) +- plugins: allow registering handlerfuncs with name+path (authored by @srenatus) +- rego: expose QueryTracers, tracing.Options and Cancel from QueryContext (authored by @philipaconrad) +- rego: pass along TracingOpts into EvalContext (authored by @srenatus) +- report: Fetching latest OPA release version from GH (#7756) (authored by @johanfylling) +- runtime: add ExtraDiscoveryOpts to runtime.Params (authored by @srenatus) +- runtime: allow enabling NDBCache by default (#7780) (authored by @srenatus) +- sdk: allow for setting default options for all instances (authored by @srenatus) +- sdk: options store takes precedence over ext store (authored by @srenatus) +- server+logging: Add BatchDecisionID field to Decision Logs. (authored by @philipaconrad) +- server+plugins: allow plugins to inject http handler middlewares (authored by @srenatus) +- server/authorizer: Allow adding paths to validator. (#7792) (authored by @philipaconrad) +- server: add hooks wiring + new hooks for inter-query caches (authored by @srenatus) +- server: ensure that wrapped middlewares all support http.Flusher (authored by @srenatus) +- store+runtime: extension points for custom stores (#7779) (authored by @srenatus) +- test+eval: add helper to smuggle compiler through context (authored by @srenatus) +- v1/tester: support uint64 and float64 metrics in runBenchmark (authored by @srenatus) +- website: Add wildcard CORS for data/versions.json (#7784) (authored by @charlieegan3) +- website: Ensure no hscroll on built-in tables (#7773) (authored by @charlieegan3) +- website: Render versions under /data/versions.json (#7783) (authored by @charlieegan3) +- website: Set mobile and desktop tab sizes (authored by @charlieegan3) +- website: Show link to the edge release of the docs (#7776) (authored by @charlieegan3) ## 1.6.0 diff --git a/builtin_metadata.json b/builtin_metadata.json index 4abe2e2586..d815e075cb 100644 --- a/builtin_metadata.json +++ b/builtin_metadata.json @@ -374,6 +374,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the number without its sign.", @@ -511,6 +512,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -653,6 +655,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the intersection of two sets.", @@ -791,6 +794,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -933,6 +937,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Concatenates two arrays.", @@ -1022,6 +1027,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the reverse of a given array.", @@ -1171,6 +1177,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a slice of a given array. If `start` is greater or equal than `stop`, `slice` is `[]`.", @@ -1311,6 +1318,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": ":=", @@ -1448,6 +1456,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Deserializes the base64 encoded input string.", @@ -1587,6 +1596,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input string into base64 encoding.", @@ -1705,6 +1715,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies the input string is base64 encoded.", @@ -1844,6 +1855,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Deserializes the base64url encoded input string.", @@ -1983,6 +1995,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input string into base64url encoding.", @@ -2099,6 +2112,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input string into base64url encoding without padding.", @@ -2239,6 +2253,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the bitwise \"AND\" of two integers.", @@ -2379,6 +2394,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a new integer with its bits shifted `s` bits to the left.", @@ -2514,6 +2530,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the bitwise negation (flip) of an integer.", @@ -2654,6 +2671,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the bitwise \"OR\" of two integers.", @@ -2794,6 +2812,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a new integer with its bits shifted `s` bits to the right.", @@ -2934,6 +2953,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the bitwise \"XOR\" (exclusive-or) of two integers.", @@ -3071,6 +3091,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -3206,6 +3227,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -3341,6 +3363,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -3476,6 +3499,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -3611,6 +3635,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -3746,6 +3771,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -3854,6 +3880,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Rounds the number _up_ to the nearest integer.", @@ -3998,6 +4025,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Joins a set or array of strings with a delimiter.", @@ -4142,6 +4170,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the search string is included in the base string", @@ -4281,6 +4310,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": " Count takes a collection or string and returns the number of elements (or characters) in it.", @@ -4341,6 +4371,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a boolean representing the result of comparing two MACs for equality without leaking timing information.", @@ -4435,6 +4466,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the MD5 HMAC of the input message using the input key.", @@ -4529,6 +4561,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the SHA1 HMAC of the input message using the input key.", @@ -4623,6 +4656,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the SHA256 HMAC of the input message using the input key.", @@ -4717,6 +4751,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the SHA512 HMAC of the input message using the input key.", @@ -4856,6 +4891,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the input string hashed with the MD5 function", @@ -4907,6 +4943,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns zero or more private keys from the given encoded string containing DER certificate data.\n\nIf the input is empty, the function will return null. The input string should be a list of one or more concatenated PEM blocks. The whole input of concatenated PEM blocks can optionally be Base64 encoded.", @@ -5046,6 +5083,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the input string hashed with the SHA1 function", @@ -5185,6 +5223,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string representing the input string hashed with the SHA256 function", @@ -5283,6 +5322,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns one or more certificates from the given string containing PEM\nor base64 encoded DER certificates after verifying the supplied certificates form a complete\ncertificate chain back to a trusted root.\n\nThe first certificate is treated as the root and the last is treated as the leaf,\nwith all others being treated as intermediates.", @@ -5329,6 +5369,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns one or more certificates from the given string containing PEM\nor base64 encoded DER certificates after verifying the supplied certificates form a complete\ncertificate chain back to a trusted root. A config option passed as the second argument can\nbe used to configure the validation options used.\n\nThe first certificate is treated as the root and the last is treated as the leaf,\nwith all others being treated as intermediates.", @@ -5453,6 +5494,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a PKCS #10 certificate signing request from the given PEM-encoded PKCS#10 certificate signing request.", @@ -5592,6 +5634,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns zero or more certificates from the given encoded string containing\nDER certificate data.\n\nIf the input is empty, the function will return null. The input string should be a list of one or more\nconcatenated PEM blocks. The whole input of concatenated PEM blocks can optionally be Base64 encoded.", @@ -5651,6 +5694,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a valid key pair", @@ -5746,6 +5790,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a JWK for signing a JWT from the given PEM-encoded RSA private key.", @@ -5890,6 +5935,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Divides the first number by the second number.", @@ -6035,6 +6081,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns true if the search string ends with the base string.", @@ -6175,6 +6222,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "=", @@ -6315,6 +6363,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "==", @@ -6425,6 +6474,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Rounds the number _down_ to the nearest integer.", @@ -6569,6 +6619,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the string representation of the number in the given base after rounding it down to an integer value.", @@ -6718,6 +6769,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Parses and matches strings against the glob notation. Not to be confused with `regex.globs_match`.", @@ -6857,6 +6909,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a string which represents a version of the pattern where all asterisks have been escaped.", @@ -6992,6 +7045,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Computes the set of reachable nodes in the graph from a set of starting nodes.", @@ -7084,6 +7138,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Computes the set of reachable paths in the graph from a set of starting nodes.", @@ -7169,6 +7224,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks that a GraphQL query is valid against a given schema. The query and/or schema can be either GraphQL strings or AST objects from the other GraphQL builtin functions.", @@ -7254,6 +7310,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns AST objects for a given GraphQL query and schema after validating the query against the schema. Returns undefined if errors were encountered during parsing or validation. The query and/or schema can be either GraphQL strings or AST objects from the other GraphQL builtin functions.", @@ -7339,6 +7396,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a boolean indicating success or failure alongside the parsed ASTs for a given GraphQL query and schema after validating the query against the schema. The query and/or schema can be either GraphQL strings or AST objects from the other GraphQL builtin functions.", @@ -7419,6 +7477,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns an AST object for a GraphQL query.", @@ -7499,6 +7558,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns an AST object for a GraphQL schema.", @@ -7571,6 +7631,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks that the input is a valid GraphQL schema. The schema can be either a GraphQL string or an AST object from the other GraphQL builtin functions.", @@ -7713,6 +7774,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "\u003e", @@ -7855,6 +7917,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "\u003e=", @@ -7971,6 +8034,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Deserializes the hex-encoded input string.", @@ -8087,6 +8151,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input string using hex-encoding.", @@ -8226,6 +8291,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a HTTP response to the given HTTP request.", @@ -8370,6 +8436,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the index of a substring contained inside a string.", @@ -8462,6 +8529,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a list of all the indexes of a substring contained inside a string.", @@ -8556,6 +8624,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "in", @@ -8651,6 +8720,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "in", @@ -8740,6 +8810,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "introduced": "v0.34.0", @@ -8761,6 +8832,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "introduced": "v1.2.0", @@ -8895,6 +8967,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the intersection of the given input sets.", @@ -9034,6 +9107,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Decodes a JSON Web Token and outputs it as an object.", @@ -9178,6 +9252,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies a JWT signature under parameterized constraints and decodes the claims if it is valid.\nSupports the following algorithms: HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384 and PS512.", @@ -9327,6 +9402,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Encodes and optionally signs a JSON Web Token. Inputs are taken as objects, not encoded strings (see `io.jwt.encode_sign_raw`).", @@ -9476,6 +9552,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Encodes and optionally signs a JSON Web Token.", @@ -9620,6 +9697,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a ES256 JWT signature is valid.", @@ -9755,6 +9833,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a ES384 JWT signature is valid.", @@ -9890,6 +9969,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a ES512 JWT signature is valid.", @@ -10034,6 +10114,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a HS256 (secret) JWT signature is valid.", @@ -10169,6 +10250,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a HS384 (secret) JWT signature is valid.", @@ -10304,6 +10386,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a HS512 (secret) JWT signature is valid.", @@ -10448,6 +10531,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a PS256 JWT signature is valid.", @@ -10583,6 +10667,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a PS384 JWT signature is valid.", @@ -10718,6 +10803,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a PS512 JWT signature is valid.", @@ -10862,6 +10948,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a RS256 JWT signature is valid.", @@ -10997,6 +11084,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a RS384 JWT signature is valid.", @@ -11132,6 +11220,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies if a RS512 JWT signature is valid.", @@ -11271,6 +11360,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the input value is an array.", @@ -11410,6 +11500,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the input value is a boolean.", @@ -11549,6 +11640,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the input value is null.", @@ -11688,6 +11780,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the input value is a number.", @@ -11827,6 +11920,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns true if the input value is an object", @@ -11966,6 +12060,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the input value is a set.", @@ -12105,6 +12200,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `true` if the input value is a string.", @@ -12249,6 +12345,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Filters the object. For example: `json.filter({\"a\": {\"b\": \"x\", \"c\": \"y\"}}, [\"a/b\"])` will result in `{\"a\": {\"b\": \"x\"}}`). Paths are not filtered in-order and are deduplicated before being evaluated.", @@ -12366,6 +12463,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies the input string is a valid JSON document.", @@ -12505,6 +12603,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input term to JSON.", @@ -12550,6 +12649,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input term JSON, with additional formatting options via the `opts` parameter. `opts` accepts keys `pretty` (enable multi-line/formatted JSON), `prefix` (string to prefix lines with, default empty string) and `indent` (string to indent with, default `\\t`).", @@ -12614,6 +12714,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks that the document matches the JSON schema.", @@ -12732,6 +12833,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Patches an object according to RFC6902. For example: `json.patch({\"a\": {\"foo\": 1}}, [{\"op\": \"add\", \"path\": \"/a/bar\", \"value\": 2}])` results in `{\"a\": {\"foo\": 1, \"bar\": 2}`. The patches are applied atomically: if any of them fails, the result will be undefined. Additionally works on sets, where a value contained in the set is considered to be its path.", @@ -12872,6 +12974,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Removes paths from an object. For example: `json.remove({\"a\": {\"b\": \"x\", \"c\": \"y\"}}, [\"a/b\"])` will result in `{\"a\": {\"c\": \"y\"}}`. Paths are not removed in-order and are deduplicated before being evaluated.", @@ -13011,6 +13114,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Deserializes the input string.", @@ -13070,6 +13174,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks that the input is a valid JSON schema object. The schema can be either a JSON string or an JSON object.", @@ -13209,6 +13314,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the input string but with all characters in lower-case.", @@ -13351,6 +13457,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "\u003c", @@ -13493,6 +13600,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "\u003c=", @@ -13632,6 +13740,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the maximum value in a collection.", @@ -13771,6 +13880,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the minimum value in a collection.", @@ -13913,6 +14023,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Minus subtracts the second number from the first number or computes the difference between two sets.", @@ -14056,6 +14167,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Multiplies two numbers.", @@ -14199,6 +14311,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "infix": "!=", @@ -14343,6 +14456,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks if a CIDR or IP is contained within another CIDR. `output` is `true` if `cidr_or_ip` (e.g. `127.0.0.64/26` or `127.0.0.1`) is contained within `cidr` (e.g. `127.0.0.1/24`) and `false` otherwise. Supports both IPv4 and IPv6 notations.", @@ -14482,6 +14596,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks if collections of cidrs or ips are contained within another collection of cidrs and returns matches. This function is similar to `net.cidr_contains` except it allows callers to pass collections of CIDRs or IPs as arguments and returns the matches (as opposed to a boolean result indicating a match between two CIDRs/IPs).", @@ -14621,6 +14736,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Expands CIDR to set of hosts (e.g., `net.cidr_expand(\"192.168.0.0/30\")` generates 4 hosts: `{\"192.168.0.0\", \"192.168.0.1\", \"192.168.0.2\", \"192.168.0.3\"}`).", @@ -14765,6 +14881,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks if a CIDR intersects with another CIDR (e.g. `192.168.0.0/16` overlaps with `192.168.1.0/24`). Supports both IPv4 and IPv6 notations.", @@ -14837,6 +14954,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Parses an IPv4/IPv6 CIDR and returns a boolean indicating if the provided CIDR is valid.", @@ -14955,6 +15073,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Merges IP addresses and subnets into the smallest possible list of CIDRs (e.g., `net.cidr_merge([\"192.0.128.0/24\", \"192.0.129.0/24\"])` generates `{\"192.0.128.0/23\"}`.This function merges adjacent subnets where possible, those contained within others and also removes any duplicates.\nSupports both IPv4 and IPv6 notations. IPv6 inputs need a prefix length (e.g. \"/128\").", @@ -15095,6 +15214,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -15183,6 +15303,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the set of IP addresses (both v4 and v6) that the passed-in `name` resolves to using the standard name resolution mechanisms available.", @@ -15310,6 +15431,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns an array of numbers in the given (inclusive) range. If `a==b`, then `range == [a]`; if `a \u003e b`, then `range` is in descending order.", @@ -15370,6 +15492,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns an array of numbers in the given (inclusive) range incremented by a positive step.\n\tIf \"a==b\", then \"range == [a]\"; if \"a \u003e b\", then \"range\" is in descending order.\n\tIf the provided \"step\" is less then 1, an error will be thrown.\n\tIf \"b\" is not in the range of the provided \"step\", \"b\" won't be included in the result.\n\t", @@ -15512,6 +15635,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Filters the object by keeping only specified keys. For example: `object.filter({\"a\": {\"b\": \"x\", \"c\": \"y\"}, \"d\": \"z\"}, [\"a\"])` will result in `{\"a\": {\"b\": \"x\", \"c\": \"y\"}}`).", @@ -15661,6 +15785,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns value of an object's key if present, otherwise a default. If the supplied `key` is an `array`, then `object.get` will search through a nested object or array using each key in turn. For example: `object.get({\"a\": [{ \"b\": true }]}, [\"a\", 0, \"b\"], false)` results in `true`.", @@ -15729,6 +15854,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a set of an object's keys. For example: `object.keys({\"a\": 1, \"b\": true, \"c\": \"d\")` results in `{\"a\", \"b\", \"c\"}`.", @@ -15871,6 +15997,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Removes specified keys from an object.", @@ -15955,6 +16082,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Determines if an object `sub` is a subset of another object `super`.Object `sub` is a subset of object `super` if and only if every key in `sub` is also in `super`, **and** for all keys which `sub` and `super` share, they have the same value. This function works with objects, sets, arrays and a set of array and set.If both arguments are objects, then the operation is recursive, e.g. `{\"c\": {\"x\": {10, 15, 20}}` is a subset of `{\"a\": \"b\", \"c\": {\"x\": {10, 15, 20, 25}, \"y\": \"z\"}`. If both arguments are sets, then this function checks if every element of `sub` is a member of `super`, but does not attempt to recurse. If both arguments are arrays, then this function checks if `sub` appears contiguously in order within `super`, and also does not attempt to recurse. If `super` is array and `sub` is set, then this function checks if `super` contains every element of `sub` with no consideration of ordering, and also does not attempt to recurse.", @@ -16097,6 +16225,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Creates a new object of the asymmetric union of two objects. For example: `object.union({\"a\": 1, \"b\": 2, \"c\": {\"d\": 3}}, {\"a\": 7, \"c\": {\"d\": 4, \"e\": 5}})` will result in `{\"a\": 7, \"b\": 2, \"c\": {\"d\": 4, \"e\": 5}}`.", @@ -16184,6 +16313,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Creates a new object that is the asymmetric union of all objects merged from left to right. For example: `object.union_n([{\"a\": 1}, {\"b\": 2}, {\"a\": 3}])` will result in `{\"b\": 2, \"a\": 3}`.", @@ -16317,6 +16447,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns an object that describes the runtime environment where OPA is deployed.", @@ -16459,6 +16590,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the union of two sets.", @@ -16602,6 +16734,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Plus adds two numbers together.", @@ -16690,6 +16823,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "introduced": "v0.34.0", @@ -16824,6 +16958,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Multiplies elements of an array or set of numbers", @@ -16902,6 +17037,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Signs an HTTP request object for Amazon Web Services. Currently implements [AWS Signature Version 4 request signing](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) by the `Authorization` header method.", @@ -17005,6 +17141,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a random integer between `0` and `n` (`n` exclusive). If `n` is `0`, then `y` is always `0`. For any given argument pair (`str`, `n`), the output will be consistent throughout a query evaluation.", @@ -17145,6 +17282,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -17292,6 +17430,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns all successive matches of the expression.", @@ -17441,6 +17580,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the specified number of matches when matching the input against the pattern.", @@ -17585,6 +17725,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks if the intersection of two glob-style regular expressions matches a non-empty set of non-empty strings.\nThe set of regex symbols is limited for this builtin: only `.`, `*`, `+`, `[`, `-`, `]` and `\\` are treated as special symbols.", @@ -17706,6 +17847,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Checks if a string is a valid regular expression: the detailed syntax for patterns is defined by https://github.com/google/re2/wiki/Syntax.", @@ -17832,6 +17974,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Matches a string against a regular expression.", @@ -17915,6 +18058,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Find and replaces the text using the regular expression pattern.", @@ -18059,6 +18203,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Splits the input string by the occurrences of the given pattern.", @@ -18213,6 +18358,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Matches a string against a pattern, where there pattern may be glob-like", @@ -18288,6 +18434,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the chain of metadata for the active rule.\nOrdered starting at the active rule, going outward to the most distant node in its package ancestry.\nA chain entry is a JSON document with two members: \"path\", an array representing the path of the node; and \"annotations\", a JSON document containing the annotations declared for the node.\nThe first entry in the chain always points to the active rule, even if it has no declared annotations (in which case the \"annotations\" member is not present).", @@ -18363,6 +18510,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns annotations declared for the active rule and using the _rule_ scope.", @@ -18507,6 +18655,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Parses the input Rego string and returns an object representation of the AST.", @@ -18649,6 +18798,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the remainder for of `x` divided by `y`, for `y != 0`.", @@ -18799,6 +18949,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Replace replaces all instances of a sub-string.", @@ -18938,6 +19089,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Rounds the number to the nearest integer.", @@ -19065,6 +19217,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Compares valid SemVer formatted version strings.", @@ -19187,6 +19340,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Validates that the input is a valid SemVer string.", @@ -19327,6 +19481,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "deprecated": true, @@ -19464,6 +19619,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a sorted array.", @@ -19608,6 +19764,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Split returns an array containing elements of the input string split on a delimiter.", @@ -19752,6 +19909,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the given string, formatted.", @@ -19896,6 +20054,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns true if the search string begins with the base string.", @@ -19975,6 +20134,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns true if any of the search strings begins with any of the base strings.", @@ -20054,6 +20214,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns true if any of the search strings ends with any of the base strings.", @@ -20095,6 +20256,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the number of non-overlapping instances of a substring in a string.", @@ -20146,6 +20308,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Renders a templated string with given template variables injected. For a given templated string and key/value mapping, values will be injected into the template where they are referenced by key.\n\tFor examples of templating syntax, see https://pkg.go.dev/text/template", @@ -20290,6 +20453,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Replaces a string from a list of old, new string pairs.\nReplacements are performed in the order they appear in the target string, without overlapping matches.\nThe old string comparisons are done in argument order.", @@ -20379,6 +20543,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Reverses a given string.", @@ -20528,6 +20693,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the portion of a string for a given `offset` and a `length`. If `length \u003c 0`, `output` is the remainder of the string.", @@ -20667,6 +20833,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Sums elements of an array or set of numbers.", @@ -20815,6 +20982,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the nanoseconds since epoch after adding years, months and days to nanoseconds. Month \u0026 day values outside their usual ranges after the operation and will be normalized - for example, October 32 would become November 1. `undefined` if the result would be outside the valid time range that can fit within an `int64`.", @@ -20954,6 +21122,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the `[hour, minute, second]` of the day for the nanoseconds since epoch.", @@ -21093,6 +21262,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the `[year, month, day]` for the nanoseconds since epoch.", @@ -21205,6 +21375,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the difference between two unix timestamps in nanoseconds (with optional timezone strings).", @@ -21268,6 +21439,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the formatted timestamp for the nanoseconds since epoch.", @@ -21401,6 +21573,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the current time since epoch in nanoseconds.", @@ -21540,6 +21713,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the duration in nanoseconds represented by a string.", @@ -21684,6 +21858,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the time in nanoseconds parsed from the string in the given format. `undefined` if the result would be outside the valid time range that can fit within an `int64`.", @@ -21823,6 +21998,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the time in nanoseconds parsed from the string in RFC3339 format. `undefined` if the result would be outside the valid time range that can fit within an `int64`.", @@ -21962,6 +22138,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the day of the week (Monday, Tuesday, ...) for the nanoseconds since epoch.", @@ -22101,6 +22278,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Converts a string, bool, or number value to a number: Strings are converted to numbers using `strconv.Atoi`, Boolean `false` is converted to 0 and `true` is converted to 1.", @@ -22240,6 +22418,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Emits `note` as a `Note` event in the query explanation. Query explanations show the exact expressions evaluated by OPA during policy execution. For example, `trace(\"Hello There!\")` includes `Note \"Hello There!\"` in the query explanation. To include variables in the message, use `sprintf`. For example, `person := \"Bob\"; trace(sprintf(\"Hello There! %v\", [person]))` will emit `Note \"Hello There! Bob\"` inside of the explanation.", @@ -22384,6 +22563,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `value` with all leading or trailing instances of the `cutset` characters removed.", @@ -22528,6 +22708,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `value` with all leading instances of the `cutset` characters removed.", @@ -22672,6 +22853,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `value` without the prefix. If `value` doesn't start with `prefix`, it is returned unchanged.", @@ -22816,6 +22998,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `value` with all trailing instances of the `cutset` characters removed.", @@ -22955,6 +23138,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Return the given string with all leading and trailing white space removed.", @@ -23099,6 +23283,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns `value` without the suffix. If `value` doesn't end with `suffix`, it is returned unchanged.", @@ -23238,6 +23423,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the type of its input value.", @@ -23377,6 +23563,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the union of the given input sets.", @@ -23457,6 +23644,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Converts strings like \"10G\", \"5K\", \"4M\", \"1500m\", and the like into a number.\nThis number can be a non-integer, such as 1.5, 0.22, etc. Scientific notation is supported,\nallowing values such as \"1e-3K\" (1) or \"2.5e6M\" (2.5 million M).\n\nSupports standard metric decimal and binary SI units (e.g., K, Ki, M, Mi, G, Gi, etc.) where\nm, K, M, G, T, P, and E are treated as decimal units and Ki, Mi, Gi, Ti, Pi, and Ei are treated as\nbinary units.\n\nNote that 'm' and 'M' are case-sensitive to allow distinguishing between \"milli\" and \"mega\" units\nrespectively. Other units are case-insensitive.", @@ -23596,6 +23784,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Converts strings like \"10GB\", \"5K\", \"4mb\", or \"1e6KB\" into an integer number of bytes.\n\nSupports standard byte units (e.g., KB, KiB, etc.) where KB, MB, GB, and TB are treated as decimal\nunits, and KiB, MiB, GiB, and TiB are treated as binary units. Scientific notation is supported,\nenabling values like \"1.5e3MB\" (1500MB) or \"2e6GiB\" (2 million GiB).\n\nThe bytes symbol (b/B) in the unit is optional; omitting it will yield the same result (e.g., \"Mi\"\nand \"MiB\" are equivalent).", @@ -23735,6 +23924,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns the input string but with all characters in upper-case.", @@ -23874,6 +24064,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Decodes a URL-encoded input string.", @@ -23992,6 +24183,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Decodes the given URL query string into an object.", @@ -24131,6 +24323,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Encodes the input string into a URL-encoded string.", @@ -24270,6 +24463,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Encodes the given object into a URL encoded query string.", @@ -24319,6 +24513,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Parses the string value as an UUID and returns an object with the well-defined fields of the UUID if valid.", @@ -24449,6 +24644,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Returns a new UUIDv4.", @@ -24588,6 +24784,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Generates `[path, value]` tuples for all nested documents of `x` (recursively). Queries can use `walk` to traverse documents nested under `x`.", @@ -24706,6 +24903,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Verifies the input string is a valid YAML document.", @@ -24845,6 +25043,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Serializes the input term to YAML.", @@ -24984,6 +25183,7 @@ "v1.5.0", "v1.5.1", "v1.6.0", + "v1.7.0", "edge" ], "description": "Deserializes the input string.", diff --git a/capabilities/v1.7.0.json b/capabilities/v1.7.0.json new file mode 100644 index 0000000000..110c3eca91 --- /dev/null +++ b/capabilities/v1.7.0.json @@ -0,0 +1,4850 @@ +{ + "builtins": [ + { + "name": "abs", + "decl": { + "args": [ + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "all", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "and", + "decl": { + "args": [ + { + "of": { + "type": "any" + }, + "type": "set" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + }, + "infix": "\u0026" + }, + { + "name": "any", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "array.concat", + "decl": { + "args": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "result": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "array.reverse", + "decl": { + "args": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "result": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "array.slice", + "decl": { + "args": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "assign", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": ":=" + }, + { + "name": "base64.decode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "base64.encode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "base64.is_valid", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "base64url.decode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "base64url.encode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "base64url.encode_no_pad", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "bits.and", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "bits.lsh", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "bits.negate", + "decl": { + "args": [ + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "bits.or", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "bits.rsh", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "bits.xor", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "cast_array", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "cast_boolean", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "cast_null", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "null" + }, + "type": "function" + } + }, + { + "name": "cast_object", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "cast_set", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "cast_string", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "ceil", + "decl": { + "args": [ + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "concat", + "decl": { + "args": [ + { + "type": "string" + }, + { + "of": [ + { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "contains", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "count", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "crypto.hmac.equal", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "crypto.hmac.md5", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.hmac.sha1", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.hmac.sha256", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.hmac.sha512", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.md5", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.parse_private_keys", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "crypto.sha1", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.sha256", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "crypto.x509.parse_and_verify_certificates", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "static": [ + { + "type": "boolean" + }, + { + "dynamic": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "array" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "crypto.x509.parse_and_verify_certificates_with_options", + "decl": { + "args": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "static": [ + { + "type": "boolean" + }, + { + "dynamic": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "array" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "crypto.x509.parse_certificate_request", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "crypto.x509.parse_certificates", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "crypto.x509.parse_keypair", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "crypto.x509.parse_rsa_private_key", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "div", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + }, + "infix": "/" + }, + { + "name": "endswith", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "eq", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "=" + }, + { + "name": "equal", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "==" + }, + { + "name": "floor", + "decl": { + "args": [ + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "format_int", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "glob.match", + "decl": { + "args": [ + { + "type": "string" + }, + { + "of": [ + { + "type": "null" + }, + { + "dynamic": { + "type": "string" + }, + "type": "array" + } + ], + "type": "any" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "glob.quote_meta", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "graph.reachable", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + }, + "type": "object" + }, + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "graph.reachable_paths", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + }, + "type": "object" + }, + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "of": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "graphql.is_valid", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "graphql.parse", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "graphql.parse_and_verify", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "type": "boolean" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "graphql.parse_query", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "graphql.parse_schema", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "graphql.schema_is_valid", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "gt", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "\u003e" + }, + { + "name": "gte", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "\u003e=" + }, + { + "name": "hex.decode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "hex.encode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "http.send", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "indexof", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "indexof_n", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "dynamic": { + "type": "number" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "internal.member_2", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "in" + }, + { + "name": "internal.member_3", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "in" + }, + { + "name": "internal.print", + "decl": { + "args": [ + { + "dynamic": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "array" + } + ], + "type": "function" + } + }, + { + "name": "internal.test_case", + "decl": { + "args": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "function" + } + }, + { + "name": "intersection", + "decl": { + "args": [ + { + "of": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "set" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "io.jwt.decode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "static": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "type": "string" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "io.jwt.decode_verify", + "decl": { + "args": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "static": [ + { + "type": "boolean" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "array" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "io.jwt.encode_sign", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "type": "string" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "io.jwt.encode_sign_raw", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "io.jwt.verify_es256", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_es384", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_es512", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_hs256", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_hs384", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_hs512", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_ps256", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_ps384", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_ps512", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_rs256", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_rs384", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "io.jwt.verify_rs512", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_array", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_boolean", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_null", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_number", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_object", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_set", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "is_string", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "json.filter", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": [ + { + "dynamic": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "array" + }, + { + "of": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "json.is_valid", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "json.marshal", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "json.marshal_with_options", + "decl": { + "args": [ + { + "type": "any" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "static": [ + { + "key": "indent", + "value": { + "type": "string" + } + }, + { + "key": "prefix", + "value": { + "type": "string" + } + }, + { + "key": "pretty", + "value": { + "type": "boolean" + } + } + ], + "type": "object" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "json.match_schema", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "type": "boolean" + }, + { + "dynamic": { + "static": [ + { + "key": "desc", + "value": { + "type": "string" + } + }, + { + "key": "error", + "value": { + "type": "string" + } + }, + { + "key": "field", + "value": { + "type": "string" + } + }, + { + "key": "type", + "value": { + "type": "string" + } + } + ], + "type": "object" + }, + "type": "array" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "json.patch", + "decl": { + "args": [ + { + "type": "any" + }, + { + "dynamic": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "static": [ + { + "key": "op", + "value": { + "type": "string" + } + }, + { + "key": "path", + "value": { + "type": "any" + } + } + ], + "type": "object" + }, + "type": "array" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "json.remove", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": [ + { + "dynamic": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "array" + }, + { + "of": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "json.unmarshal", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "json.verify_schema", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "type": "boolean" + }, + { + "of": [ + { + "type": "null" + }, + { + "type": "string" + } + ], + "type": "any" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "lower", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "lt", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "\u003c" + }, + { + "name": "lte", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "\u003c=" + }, + { + "name": "max", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "min", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "minus", + "decl": { + "args": [ + { + "of": [ + { + "type": "number" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "number" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "of": [ + { + "type": "number" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + }, + "type": "function" + }, + "infix": "-" + }, + { + "name": "mul", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + }, + "infix": "*" + }, + { + "name": "neq", + "decl": { + "args": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + }, + "infix": "!=" + }, + { + "name": "net.cidr_contains", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "net.cidr_contains_matches", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "of": { + "static": [ + { + "type": "any" + }, + { + "type": "any" + } + ], + "type": "array" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "net.cidr_expand", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "of": { + "type": "string" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "net.cidr_intersects", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "net.cidr_is_valid", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "net.cidr_merge", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "of": [ + { + "type": "string" + } + ], + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "of": { + "type": "string" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "net.cidr_overlap", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "net.lookup_ip_addr", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "of": { + "type": "string" + }, + "type": "set" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "numbers.range", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "dynamic": { + "type": "number" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "numbers.range_step", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "dynamic": { + "type": "number" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "object.filter", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "object.get", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "type": "any" + }, + { + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "object.keys", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "object.remove", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "object.subset", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + }, + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "object.union", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "object.union_n", + "decl": { + "args": [ + { + "dynamic": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "array" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "opa.runtime", + "decl": { + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "or", + "decl": { + "args": [ + { + "of": { + "type": "any" + }, + "type": "set" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + }, + "infix": "|" + }, + { + "name": "plus", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + }, + "infix": "+" + }, + { + "name": "print", + "decl": { + "type": "function", + "variadic": { + "type": "any" + } + } + }, + { + "name": "product", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "number" + }, + "type": "array" + }, + { + "of": { + "type": "number" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "providers.aws.sign_req", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + { + "type": "number" + } + ], + "result": { + "dynamic": { + "key": { + "type": "any" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "rand.intn", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "re_match", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "regex.find_all_string_submatch_n", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "number" + } + ], + "result": { + "dynamic": { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "regex.find_n", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "number" + } + ], + "result": { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "regex.globs_match", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "regex.is_valid", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "regex.match", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "regex.replace", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "regex.split", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "regex.template_match", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "rego.metadata.chain", + "decl": { + "result": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "rego.metadata.rule", + "decl": { + "result": { + "type": "any" + }, + "type": "function" + } + }, + { + "name": "rego.parse_module", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "rem", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + }, + "infix": "%" + }, + { + "name": "replace", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "round", + "decl": { + "args": [ + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "semver.compare", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "semver.is_valid", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "set_diff", + "decl": { + "args": [ + { + "of": { + "type": "any" + }, + "type": "set" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "sort", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "of": { + "type": "any" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "split", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + "type": "function" + } + }, + { + "name": "sprintf", + "decl": { + "args": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "any" + }, + "type": "array" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "startswith", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "strings.any_prefix_match", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "strings.any_suffix_match", + "decl": { + "args": [ + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "strings.count", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "strings.render_template", + "decl": { + "args": [ + { + "type": "string" + }, + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "strings.replace_n", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "strings.reverse", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "substring", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "sum", + "decl": { + "args": [ + { + "of": [ + { + "dynamic": { + "type": "number" + }, + "type": "array" + }, + { + "of": { + "type": "number" + }, + "type": "set" + } + ], + "type": "any" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "time.add_date", + "decl": { + "args": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "time.clock", + "decl": { + "args": [ + { + "of": [ + { + "type": "number" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "array" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "time.date", + "decl": { + "args": [ + { + "of": [ + { + "type": "number" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "array" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "time.diff", + "decl": { + "args": [ + { + "of": [ + { + "type": "number" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "array" + } + ], + "type": "any" + }, + { + "of": [ + { + "type": "number" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "array" + } + ], + "type": "any" + } + ], + "result": { + "static": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "type": "array" + }, + "type": "function" + } + }, + { + "name": "time.format", + "decl": { + "args": [ + { + "of": [ + { + "type": "number" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "array" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "string" + } + ], + "type": "array" + } + ], + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "time.now_ns", + "decl": { + "result": { + "type": "number" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "time.parse_duration_ns", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "time.parse_ns", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "time.parse_rfc3339_ns", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "time.weekday", + "decl": { + "args": [ + { + "of": [ + { + "type": "number" + }, + { + "static": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "array" + } + ], + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "to_number", + "decl": { + "args": [ + { + "of": [ + { + "type": "null" + }, + { + "type": "boolean" + }, + { + "type": "number" + }, + { + "type": "string" + } + ], + "type": "any" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "trace", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "trim", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "trim_left", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "trim_prefix", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "trim_right", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "trim_space", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "trim_suffix", + "decl": { + "args": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "type_name", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "union", + "decl": { + "args": [ + { + "of": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "set" + } + ], + "result": { + "of": { + "type": "any" + }, + "type": "set" + }, + "type": "function" + } + }, + { + "name": "units.parse", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "units.parse_bytes", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "number" + }, + "type": "function" + } + }, + { + "name": "upper", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "urlquery.decode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "urlquery.decode_object", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "dynamic": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "urlquery.encode", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "urlquery.encode_object", + "decl": { + "args": [ + { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "of": [ + { + "type": "string" + }, + { + "dynamic": { + "type": "string" + }, + "type": "array" + }, + { + "of": { + "type": "string" + }, + "type": "set" + } + ], + "type": "any" + } + }, + "type": "object" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "uuid.parse", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "dynamic": { + "key": { + "type": "string" + }, + "value": { + "type": "any" + } + }, + "type": "object" + }, + "type": "function" + } + }, + { + "name": "uuid.rfc4122", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "string" + }, + "type": "function" + }, + "nondeterministic": true + }, + { + "name": "walk", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "static": [ + { + "dynamic": { + "type": "any" + }, + "type": "array" + }, + { + "type": "any" + } + ], + "type": "array" + }, + "type": "function" + }, + "relation": true + }, + { + "name": "yaml.is_valid", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "boolean" + }, + "type": "function" + } + }, + { + "name": "yaml.marshal", + "decl": { + "args": [ + { + "type": "any" + } + ], + "result": { + "type": "string" + }, + "type": "function" + } + }, + { + "name": "yaml.unmarshal", + "decl": { + "args": [ + { + "type": "string" + } + ], + "result": { + "type": "any" + }, + "type": "function" + } + } + ], + "wasm_abi_versions": [ + { + "version": 1, + "minor_version": 1 + }, + { + "version": 1, + "minor_version": 2 + } + ], + "features": [ + "keywords_in_refs", + "rego_v1" + ] +} diff --git a/v1/version/version.go b/v1/version/version.go index c6a099754e..3561c005be 100644 --- a/v1/version/version.go +++ b/v1/version/version.go @@ -10,7 +10,7 @@ import ( "runtime/debug" ) -var Version = "1.7.0-dev" +var Version = "1.7.0" // GoVersion is the version of Go this was built with var GoVersion = runtime.Version() From 625776633dde7c0e94d06c94369878c9787ae3be Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 13:51:15 +0200 Subject: [PATCH 2/8] CHANGELOG touchup Signed-off-by: Johan Fylling --- CHANGELOG.md | 141 +++++++++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cd97adc5e..f6a8f43443 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,70 +5,91 @@ project adheres to [Semantic Versioning](http://semver.org/). ## 1.7.0 -### Fixes +This release contains a mix of new features, performance improvements, and bugfixes. Notably: + +- Improved OPA SDK/API for better extensibility + +### SDK Improvements + +The OPA SDK/API has been improved to provide better extensibility an more points of integration for developers. + +- ast: Add `DefaultModuleLoader` ([#7794](https://github.com/open-policy-agent/opa/pull/7794)) authored by @srenatus +- ast: Add feature registration from the outside ([#7782](https://github.com/open-policy-agent/opa/pull/7782)) authored by @srenatus +- bundle: Add support for bundle store and activation plugins ([#7771](https://github.com/open-policy-agent/opa/pull/7771)) authored by @philipaconrad +- cmd: Allow branding ([#7797](https://github.com/open-policy-agent/opa/pull/7797)) authored by @srenatus +- decisionlogs: Add custom fields grab bag ([#7793](https://github.com/open-policy-agent/opa/pull/7793)) authored by @srenatus +- plugins: allow registering handlerfuncs with name+path ([#7769](https://github.com/open-policy-agent/opa/pull/7769)) authored by @srenatus +- rego: Expose `QueryTracers`, `tracing.Options` and `Cancel` from `QueryContext` ([#7767](https://github.com/open-policy-agent/opa/pull/7767)) authored by @philipaconrad +- rego: Pass along `TracingOpts` into `EvalContext` ([#](https://github.com/open-policy-agent/opa/pull/7778)) authored by @srenatus +- runtime: add `ExtraDiscoveryOpts` to `runtime.Params` ([#7766](https://github.com/open-policy-agent/opa/pull/7766)) authored by @srenatus +- sdk: Allow for setting default options for all instances ([#7760 B](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus +- sdk: Options store takes precedence over ext store ([#7800](https://github.com/open-policy-agent/opa/pull/7800)) authored by @srenatus +- server: Add hooks wiring + new hooks for inter-query caches ([#](https://github.com/open-policy-agent/opa/pull/7775)) authored by @srenatus +- server: Ensure that wrapped middlewares all support `http.Flusher` ([#7772](https://github.com/open-policy-agent/opa/pull/7772)) authored by @srenatus +- server/authorizer: Allow adding paths to validator ([#7792](https://github.com/open-policy-agent/opa/pull/7792)) authored by @philipaconrad +- server+plugins: Allow plugins to inject http handler middlewares ([#7789](https://github.com/open-policy-agent/opa/pull/7789)) authored by @srenatus +- store+runtime: Extension points for custom stores ([#7779](https://github.com/open-policy-agent/opa/pull/7779)) authored by @srenatus +- test+eval: Add helper to smuggle compiler through context ([#7790](https://github.com/open-policy-agent/opa/pull/7790)) authored by @srenatus +- tester: Support `uint64` and `float64` metrics in `runBenchmark` ([#7761](https://github.com/open-policy-agent/opa/pull/7761)) authored by @srenatus + +### Runtime, Tooling + +- config: Keep unknown env replacements ([#7786](https://github.com/open-policy-agent/opa/pull/7786)) authored by @srenatus +- format: Not bracketing keywords in imports ([#7742](https://github.com/open-policy-agent/opa/issues/7742)) authored by @johanfylling +- loader: Add bundle lazy loading mode across the runtime. ([#7768](https://github.com/open-policy-agent/opa/pull/7768)) authored by @philipaconrad +- loader: Pass bundle name in `AsBundle()` ([#7798](https://github.com/open-policy-agent/opa/pull/7798)) authored by @srenatus +- opa exec: stop plugins before exit ([#7760 A](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus +- plugins/discovery: Make `Factories()` merge the factories ([#7777](https://github.com/open-policy-agent/opa/pull/7777)) authored by @srenatus +- plugins/discovery: Replace environment variables after evaluation ([#7787](https://github.com/open-policy-agent/opa/pull/7787)) authored by @philipaconrad +- plugins/logs: Add experimental intermediate results field ([#7796](https://github.com/open-policy-agent/opa/pull/7796)) authored by @philipaconrad +- report: Fetching latest OPA release version from GitHub ([#7756](https://github.com/open-policy-agent/opa/pull/7756)) authored by @johanfylling +- runtime: Allow enabling NDBCache by default ([#7780](https://github.com/open-policy-agent/opa/pull/7780)) authored by @srenatus +- server+logging: Add `BatchDecisionID` field to Decision Logs ([#7791](https://github.com/open-policy-agent/opa/pull/7791)) authored by @philipaconrad + +### Compiler, Topdown and Rego -- format: Not bracketing keywords in imports (#7744) ([#7742](https://github.com/open-policy-agent/opa/issues/7742)) authored by @johanfylling +- perf: AST compiler optimizations ([#7740](https://github.com/open-policy-agent/opa/pull/7740)) authored by @anderseknert + +### Docs, Website, Ecosystem + +- docs: Add examples for crypto.sha256 and base64.encode built-in functions ([#7762](https://github.com/open-policy-agent/opa/pull/7762)) authored by @ToluGIT +- docs: Break out the built-in categories in policy ref ([#7722](https://github.com/open-policy-agent/opa/pull/7722)) authored by @sky3n3t +- docs: Correctly spell NetBSD ([#7738](https://github.com/open-policy-agent/opa/pull/7738)) authored by @iamleot +- docs: Fix a number of minor docs typos ([#7799](https://github.com/open-policy-agent/opa/pull/7799)) authored by @charlieegan3 +- docs: Fix `/docs/envoy-authorization/` `404` ([#7755]https://github.com/open-policy-agent/opa/issues/7755) authored by @charlieegan3 +- docs: Remove link to OPA playground share ([#7750](https://github.com/open-policy-agent/opa/pull/7750)) authored by @charlieegan3 +- docs: Revise docs index page wording ([#7805](https://github.com/open-policy-agent/opa/pull/7805)) authored by @charlieegan3 +- docs: Update warning note in GraphQL API docs ([#7737](https://github.com/open-policy-agent/opa/pull/7737)) authored by @charlieegan3 +- website: Add wildcard CORS for data/versions.json ([#7784](https://github.com/open-policy-agent/opa/pull/7784)) authored by @charlieegan3 +- website: Ensure no hscroll on built-in tables ([#7773](https://github.com/open-policy-agent/opa/pull/7773)) authored by @charlieegan3 +- website: Render versions under `/data/versions.json` ([#7783](https://github.com/open-policy-agent/opa/pull/7783)) authored by @charlieegan3 +- website: Set mobile and desktop tab sizes ([#7774](https://github.com/open-policy-agent/opa/pull/7774)) authored by @charlieegan3 +- website: Show link to the edge release of the docs ([#7776](https://github.com/open-policy-agent/opa/pull/7776)) authored by @charlieegan3 ### Miscellaneous -- .github: Use types for issues (#7751) (authored by @charlieegan3) -- Benchmark fixes (#7765) (authored by @anderseknert) -- Prepare v1.7.0 development (#7736) (authored by @johanfylling) -- Use Regal for linting Rego (#7752) (authored by @anderseknert) -- Use shorthand form for types (#7757) (authored by @anderseknert) -- add top-level token permissions for workflows (#7795) (authored by @timothyklee) -- ast: add DefaultModuleLoader (authored by @srenatus) -- ast: add feature registration from the outside (authored by @srenatus) -- build(deps): bump github.com/go-viper/mapstructure/v2 (#7734) (authored by @dependabot[bot]) -- build(deps): bump on-headers and compression in /docs (#7785) (authored by @dependabot[bot]) -- build(deps): bump the dependencies group across 1 directory with 10 updates (#7803) (authored by @dependabot[bot]) -- build(deps): bump the gha-dependencies group with 3 updates (#7747) (authored by @dependabot[bot]) -- build(deps): bump the go-opentelemetry-io group with 7 updates (#7745) (authored by @dependabot[bot]) -- build: Show a warning when .manifest is ignored (#7807) (authored by @charlieegan3) -- bundle: Add support for bundle store and activation plugins. (#7771) (authored by @philipaconrad) -- cmd: allow branding (authored by @srenatus) -- cmd: only plumb through target if it was set (authored by @srenatus) -- cmd: use command.RunE to return errors and perform orderly shutdown of OPA (authored by @srenatus) -- cmd: use regoError to carry compiler errors into CLI machinery (authored by @srenatus) -- decisionlogs: add custom fields grab bag (authored by @srenatus) -- docs/build: Link checker fixes (#7743) (authored by @charlieegan3) -- docs: Add examples for crypto.sha256 and base64.encode built-in functions (#7762) (authored by @ToluGIT) -- docs: Break out the built-in categories in policy ref (#7722) (authored by @sky3n3t) -- docs: Correctly spell NetBSD (#7738) (authored by @iamleot) -- docs: Fix /docs/envoy-authorization/ 404 (#7770) (authored by @charlieegan3) -- docs: Fix a number of minor docs typos (#7799) (authored by @charlieegan3) -- docs: Remove link to OPA playground share (#7750) (authored by @charlieegan3) -- docs: Revise docs index page wording (#7805) (authored by @charlieegan3) -- docs: Update warning note in GraphQL API docs (#7737) (authored by @charlieegan3) -- internal/config: keep unknown env replacements (authored by @srenatus) -- loader+internal: Add bundle lazy loading mode across the runtime. (#7768) (authored by @philipaconrad) -- loader: pass bundle name in AsBundle() (authored by @srenatus) -- opa exec: stop plugins before exit (authored by @srenatus) -- perf: AST compiler optimizations (#7740) (authored by @anderseknert) -- plugin/discovery: make Factories() merge the factories (authored by @srenatus) -- plugins/discovery: Replace environment variables after evaluation. (authored by @philipaconrad) -- plugins/logs: Add experimental intermediate results field. (authored by @philipaconrad) -- plugins: allow registering handlerfuncs with name+path (authored by @srenatus) -- rego: expose QueryTracers, tracing.Options and Cancel from QueryContext (authored by @philipaconrad) -- rego: pass along TracingOpts into EvalContext (authored by @srenatus) -- report: Fetching latest OPA release version from GH (#7756) (authored by @johanfylling) -- runtime: add ExtraDiscoveryOpts to runtime.Params (authored by @srenatus) -- runtime: allow enabling NDBCache by default (#7780) (authored by @srenatus) -- sdk: allow for setting default options for all instances (authored by @srenatus) -- sdk: options store takes precedence over ext store (authored by @srenatus) -- server+logging: Add BatchDecisionID field to Decision Logs. (authored by @philipaconrad) -- server+plugins: allow plugins to inject http handler middlewares (authored by @srenatus) -- server/authorizer: Allow adding paths to validator. (#7792) (authored by @philipaconrad) -- server: add hooks wiring + new hooks for inter-query caches (authored by @srenatus) -- server: ensure that wrapped middlewares all support http.Flusher (authored by @srenatus) -- store+runtime: extension points for custom stores (#7779) (authored by @srenatus) -- test+eval: add helper to smuggle compiler through context (authored by @srenatus) -- v1/tester: support uint64 and float64 metrics in runBenchmark (authored by @srenatus) -- website: Add wildcard CORS for data/versions.json (#7784) (authored by @charlieegan3) -- website: Ensure no hscroll on built-in tables (#7773) (authored by @charlieegan3) -- website: Render versions under /data/versions.json (#7783) (authored by @charlieegan3) -- website: Set mobile and desktop tab sizes (authored by @charlieegan3) -- website: Show link to the edge release of the docs (#7776) (authored by @charlieegan3) +- Benchmark fixes ([#7765](https://github.com/open-policy-agent/opa/pull/7765)) authored by @anderseknert +- Use Regal for linting Rego ([#7752](https://github.com/open-policy-agent/opa/pull/7752)) authored by @anderseknert +- Use shorthand form for types ([#7757](https://github.com/open-policy-agent/opa/pull/7757)) authored by @anderseknert +- .github: Use types for issues ([#7751](https://github.com/open-policy-agent/opa/pull/7751)) authored by @charlieegan3 +- build: Add top-level token permissions for workflows ([#7795](https://github.com/open-policy-agent/opa/pull/7795)) authored by @timothyklee +- build: Show a warning when .manifest is ignored ([#7807](https://github.com/open-policy-agent/opa/pull/7807)) authored by @charlieegan3 +- cli: Avoid os.Exit() in Run() funcs ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus +- cmd: Use command.RunE to return errors and perform orderly shutdown of OPA ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus +- docs/build: Link checker fixes ([#7743](https://github.com/open-policy-agent/opa/pull/7743)) authored by @charlieegan3 +- Dependency updates; notably: + - build(deps): bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0. + - build(deps): bump github.com/containerd/containerd/v2 from 2.1.1 to 2.1.3 + - build(deps): bump github.com/dgraph-io/badger/v4 from 4.7.0 to 4.8.0 + - build(deps): bump github.com/sergi/go-diff from 1.3.1 to 1.4.0 + - build(deps): bump github.com/spf13/pflag from 1.0.6 to 1.0.7 + - build(deps): bump github.com/tchap/go-patricia/v2 from 2.3.2 to 2.3.3 + - build(deps): bump github.com/vektah/gqlparser/v2 from 2.5.28 to 2.5.30 + - build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 + - build(deps): bump golang.org/x/time from 0.11.0 to 0.12.0 + - build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 + - build(deps): bump sigs.k8s.io/yaml from 1.4.0 to 1.6.0 + - build(deps): bump go.opentelemetry.io deps from 1.36.0/0.61.0 to 1.37.0/0.62.0 ## 1.6.0 From 58a9d8eeef4a940e768eb9206399540a6732cb3f Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 14:02:30 +0200 Subject: [PATCH 3/8] Adding commit added to `main` Signed-off-by: Johan Fylling --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6a8f43443..72d31a7342 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ The OPA SDK/API has been improved to provide better extensibility an more points - report: Fetching latest OPA release version from GitHub ([#7756](https://github.com/open-policy-agent/opa/pull/7756)) authored by @johanfylling - runtime: Allow enabling NDBCache by default ([#7780](https://github.com/open-policy-agent/opa/pull/7780)) authored by @srenatus - server+logging: Add `BatchDecisionID` field to Decision Logs ([#7791](https://github.com/open-policy-agent/opa/pull/7791)) authored by @philipaconrad +- store: Improve conflicting root error message ([#7806](https://github.com/open-policy-agent/opa/issues/7806)) authored by @charlieegan3 ### Compiler, Topdown and Rego From c65ff09ba3b5a32116c1c425ee1a9b8da4b3f458 Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 14:19:26 +0200 Subject: [PATCH 4/8] Fixing suggestions by @srenatus Signed-off-by: Johan Fylling --- CHANGELOG.md | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72d31a7342..63d6d0ef19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,29 +20,32 @@ The OPA SDK/API has been improved to provide better extensibility an more points - decisionlogs: Add custom fields grab bag ([#7793](https://github.com/open-policy-agent/opa/pull/7793)) authored by @srenatus - plugins: allow registering handlerfuncs with name+path ([#7769](https://github.com/open-policy-agent/opa/pull/7769)) authored by @srenatus - rego: Expose `QueryTracers`, `tracing.Options` and `Cancel` from `QueryContext` ([#7767](https://github.com/open-policy-agent/opa/pull/7767)) authored by @philipaconrad -- rego: Pass along `TracingOpts` into `EvalContext` ([#](https://github.com/open-policy-agent/opa/pull/7778)) authored by @srenatus +- rego: Pass along `TracingOpts` into `EvalContext` ([#7778](https://github.com/open-policy-agent/opa/pull/7778)) authored by @srenatus - runtime: add `ExtraDiscoveryOpts` to `runtime.Params` ([#7766](https://github.com/open-policy-agent/opa/pull/7766)) authored by @srenatus -- sdk: Allow for setting default options for all instances ([#7760 B](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus -- sdk: Options store takes precedence over ext store ([#7800](https://github.com/open-policy-agent/opa/pull/7800)) authored by @srenatus +- sdk: Allow for setting default options for all instances ([#7760](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus - server: Add hooks wiring + new hooks for inter-query caches ([#](https://github.com/open-policy-agent/opa/pull/7775)) authored by @srenatus - server: Ensure that wrapped middlewares all support `http.Flusher` ([#7772](https://github.com/open-policy-agent/opa/pull/7772)) authored by @srenatus - server/authorizer: Allow adding paths to validator ([#7792](https://github.com/open-policy-agent/opa/pull/7792)) authored by @philipaconrad -- server+plugins: Allow plugins to inject http handler middlewares ([#7789](https://github.com/open-policy-agent/opa/pull/7789)) authored by @srenatus +- server+plugins: Allow plugins to inject http handler middlewares ([#7789](https://github.com/open-policy-agent/opa/pull/7789)) authored by @srenatus reported by @deeglaze - store+runtime: Extension points for custom stores ([#7779](https://github.com/open-policy-agent/opa/pull/7779)) authored by @srenatus - test+eval: Add helper to smuggle compiler through context ([#7790](https://github.com/open-policy-agent/opa/pull/7790)) authored by @srenatus - tester: Support `uint64` and `float64` metrics in `runBenchmark` ([#7761](https://github.com/open-policy-agent/opa/pull/7761)) authored by @srenatus ### Runtime, Tooling +- build: Show a warning when .manifest is ignored ([#7807](https://github.com/open-policy-agent/opa/pull/7807)) authored by @charlieegan3 +- cli: Avoid os.Exit() in Run() funcs ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus +- cmd: Use command.RunE to return errors and perform orderly shutdown of OPA ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus - config: Keep unknown env replacements ([#7786](https://github.com/open-policy-agent/opa/pull/7786)) authored by @srenatus - format: Not bracketing keywords in imports ([#7742](https://github.com/open-policy-agent/opa/issues/7742)) authored by @johanfylling - loader: Add bundle lazy loading mode across the runtime. ([#7768](https://github.com/open-policy-agent/opa/pull/7768)) authored by @philipaconrad - loader: Pass bundle name in `AsBundle()` ([#7798](https://github.com/open-policy-agent/opa/pull/7798)) authored by @srenatus -- opa exec: stop plugins before exit ([#7760 A](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus +- opa exec: stop plugins before exit ([#7760](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus - plugins/discovery: Make `Factories()` merge the factories ([#7777](https://github.com/open-policy-agent/opa/pull/7777)) authored by @srenatus - plugins/discovery: Replace environment variables after evaluation ([#7787](https://github.com/open-policy-agent/opa/pull/7787)) authored by @philipaconrad - plugins/logs: Add experimental intermediate results field ([#7796](https://github.com/open-policy-agent/opa/pull/7796)) authored by @philipaconrad -- report: Fetching latest OPA release version from GitHub ([#7756](https://github.com/open-policy-agent/opa/pull/7756)) authored by @johanfylling +- report: Fetching latest OPA release version from GitHub ([#7756](https://github.com/open-policy-agent/opa/pull/7756)) authored by @johanfylling + OPA will no longer send telemetry data when fetching the latest release version. - runtime: Allow enabling NDBCache by default ([#7780](https://github.com/open-policy-agent/opa/pull/7780)) authored by @srenatus - server+logging: Add `BatchDecisionID` field to Decision Logs ([#7791](https://github.com/open-policy-agent/opa/pull/7791)) authored by @philipaconrad - store: Improve conflicting root error message ([#7806](https://github.com/open-policy-agent/opa/issues/7806)) authored by @charlieegan3 @@ -51,7 +54,7 @@ The OPA SDK/API has been improved to provide better extensibility an more points - perf: AST compiler optimizations ([#7740](https://github.com/open-policy-agent/opa/pull/7740)) authored by @anderseknert -### Docs, Website, Ecosystem +### Docs, Website - docs: Add examples for crypto.sha256 and base64.encode built-in functions ([#7762](https://github.com/open-policy-agent/opa/pull/7762)) authored by @ToluGIT - docs: Break out the built-in categories in policy ref ([#7722](https://github.com/open-policy-agent/opa/pull/7722)) authored by @sky3n3t @@ -74,22 +77,11 @@ The OPA SDK/API has been improved to provide better extensibility an more points - Use shorthand form for types ([#7757](https://github.com/open-policy-agent/opa/pull/7757)) authored by @anderseknert - .github: Use types for issues ([#7751](https://github.com/open-policy-agent/opa/pull/7751)) authored by @charlieegan3 - build: Add top-level token permissions for workflows ([#7795](https://github.com/open-policy-agent/opa/pull/7795)) authored by @timothyklee -- build: Show a warning when .manifest is ignored ([#7807](https://github.com/open-policy-agent/opa/pull/7807)) authored by @charlieegan3 -- cli: Avoid os.Exit() in Run() funcs ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus -- cmd: Use command.RunE to return errors and perform orderly shutdown of OPA ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus + - docs/build: Link checker fixes ([#7743](https://github.com/open-policy-agent/opa/pull/7743)) authored by @charlieegan3 - Dependency updates; notably: - - build(deps): bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0. - build(deps): bump github.com/containerd/containerd/v2 from 2.1.1 to 2.1.3 - - build(deps): bump github.com/dgraph-io/badger/v4 from 4.7.0 to 4.8.0 - - build(deps): bump github.com/sergi/go-diff from 1.3.1 to 1.4.0 - - build(deps): bump github.com/spf13/pflag from 1.0.6 to 1.0.7 - - build(deps): bump github.com/tchap/go-patricia/v2 from 2.3.2 to 2.3.3 - - build(deps): bump github.com/vektah/gqlparser/v2 from 2.5.28 to 2.5.30 - - build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 - - build(deps): bump golang.org/x/time from 0.11.0 to 0.12.0 - build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 - - build(deps): bump sigs.k8s.io/yaml from 1.4.0 to 1.6.0 - build(deps): bump go.opentelemetry.io deps from 1.36.0/0.61.0 to 1.37.0/0.62.0 ## 1.6.0 From 7f2bde2ab91ce4f50f3841ba224d8e2669bcc750 Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 14:20:36 +0200 Subject: [PATCH 5/8] Update CHANGELOG.md Co-authored-by: Charlie Egan Signed-off-by: Johan Fylling --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63d6d0ef19..1c4898f851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,15 @@ The OPA SDK/API has been improved to provide better extensibility an more points ### Docs, Website +**Note:** While we have been working on the new website we have been showing +the edge documentation contents (as contents and framework changes often must +go hand in hand). Now that the website development pace has slowed and the +functionality is more stable, we will be returning to showing the documentation +content from the latest release instead. Please use the +[edge documentation site](https://edge--opa-docs.netlify.app/) +to review new changes. PR previews are also based on the latest branch commit. +This change will be made to show the v1.7.0 release shortly after publishing. + - docs: Add examples for crypto.sha256 and base64.encode built-in functions ([#7762](https://github.com/open-policy-agent/opa/pull/7762)) authored by @ToluGIT - docs: Break out the built-in categories in policy ref ([#7722](https://github.com/open-policy-agent/opa/pull/7722)) authored by @sky3n3t - docs: Correctly spell NetBSD ([#7738](https://github.com/open-policy-agent/opa/pull/7738)) authored by @iamleot From c841b05213b916f95b51fee8c3949328aa1ea044 Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 14:35:27 +0200 Subject: [PATCH 6/8] Update CHANGELOG.md Co-authored-by: Charlie Egan Signed-off-by: Johan Fylling --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c4898f851..e53794d946 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ The OPA SDK/API has been improved to provide better extensibility an more points - rego: Pass along `TracingOpts` into `EvalContext` ([#7778](https://github.com/open-policy-agent/opa/pull/7778)) authored by @srenatus - runtime: add `ExtraDiscoveryOpts` to `runtime.Params` ([#7766](https://github.com/open-policy-agent/opa/pull/7766)) authored by @srenatus - sdk: Allow for setting default options for all instances ([#7760](https://github.com/open-policy-agent/opa/pull/7760)) authored by @srenatus -- server: Add hooks wiring + new hooks for inter-query caches ([#](https://github.com/open-policy-agent/opa/pull/7775)) authored by @srenatus +- server: Add hooks wiring + new hooks for inter-query caches ([#7775](https://github.com/open-policy-agent/opa/pull/7775)) authored by @srenatus - server: Ensure that wrapped middlewares all support `http.Flusher` ([#7772](https://github.com/open-policy-agent/opa/pull/7772)) authored by @srenatus - server/authorizer: Allow adding paths to validator ([#7792](https://github.com/open-policy-agent/opa/pull/7792)) authored by @philipaconrad - server+plugins: Allow plugins to inject http handler middlewares ([#7789](https://github.com/open-policy-agent/opa/pull/7789)) authored by @srenatus reported by @deeglaze From 320419fb6c8f68c645d3ccfa80be4ad3807b78c4 Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 14:35:46 +0200 Subject: [PATCH 7/8] Update CHANGELOG.md Co-authored-by: Charlie Egan Signed-off-by: Johan Fylling --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e53794d946..5a1ed6e0a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,7 +69,7 @@ This change will be made to show the v1.7.0 release shortly after publishing. - docs: Break out the built-in categories in policy ref ([#7722](https://github.com/open-policy-agent/opa/pull/7722)) authored by @sky3n3t - docs: Correctly spell NetBSD ([#7738](https://github.com/open-policy-agent/opa/pull/7738)) authored by @iamleot - docs: Fix a number of minor docs typos ([#7799](https://github.com/open-policy-agent/opa/pull/7799)) authored by @charlieegan3 -- docs: Fix `/docs/envoy-authorization/` `404` ([#7755]https://github.com/open-policy-agent/opa/issues/7755) authored by @charlieegan3 +- docs: Fix `/docs/envoy-authorization/` `404` ([#7755](https://github.com/open-policy-agent/opa/issues/7755) authored by @charlieegan3 - docs: Remove link to OPA playground share ([#7750](https://github.com/open-policy-agent/opa/pull/7750)) authored by @charlieegan3 - docs: Revise docs index page wording ([#7805](https://github.com/open-policy-agent/opa/pull/7805)) authored by @charlieegan3 - docs: Update warning note in GraphQL API docs ([#7737](https://github.com/open-policy-agent/opa/pull/7737)) authored by @charlieegan3 From fb2b298a97ba2b4f9114ae1cc9bdd1adc8cb1fa4 Mon Sep 17 00:00:00 2001 From: Johan Fylling Date: Thu, 31 Jul 2025 14:49:39 +0200 Subject: [PATCH 8/8] Merging commit notes belonging to same PR Signed-off-by: Johan Fylling --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a1ed6e0a9..ec773402cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,6 @@ The OPA SDK/API has been improved to provide better extensibility an more points - build: Show a warning when .manifest is ignored ([#7807](https://github.com/open-policy-agent/opa/pull/7807)) authored by @charlieegan3 - cli: Avoid os.Exit() in Run() funcs ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus -- cmd: Use command.RunE to return errors and perform orderly shutdown of OPA ([#7788](https://github.com/open-policy-agent/opa/pull/7788)) authored by @srenatus - config: Keep unknown env replacements ([#7786](https://github.com/open-policy-agent/opa/pull/7786)) authored by @srenatus - format: Not bracketing keywords in imports ([#7742](https://github.com/open-policy-agent/opa/issues/7742)) authored by @johanfylling - loader: Add bundle lazy loading mode across the runtime. ([#7768](https://github.com/open-policy-agent/opa/pull/7768)) authored by @philipaconrad