Table of Contents

Built-in Functions Implementation Status

Below is the list of supported OPA built-in functions as for version v1.19.0 along with their implementation status in OpaDotNet.Wasm.

Numbers

Function Status OpaDotNet version
numbers.range_step ✅ v2.2.0
rand.intn ✅ v1.1.0

Strings

Function Status OpaDotNet version
indexof_n ✅ v1.0.0
sprintf ✅ v1.1.0 (*)
strings.any_prefix_match ✅ v1.0.0
strings.any_suffix_match ✅ v1.0.0
strings.render_template - -
strings.count ✅ v3.1.0
strings.split_n ✅ v3.2.0

* Inconsistent behavior with native implementation when argument is object.

Time

Function Status OpaDotNet version
time.add_date ✅ v1.0.0
time.clock ✅ v1.0.0
time.date ✅ v1.0.0
time.diff ✅ v1.0.0
time.format ✅ v2.5.0
time.now_ns ✅ v1.0.0
time.parse_duration_ns ✅ v1.1.0
time.parse_ns ✅ v2.5.0
time.parse_rfc3339_ns ✅ v1.1.0
time.weekday ✅ v1.0.0

JSON

Function Status OpaDotNet version
json.match_schema ✅ v1.2.0 (*)
json.patch ✅ v1.2.0
json.verify_schema ✅ v1.2.0
json.marshal_with_options ✅ v3.1.0

* Due to differences in JSON Schema libraries reported schema validation errors might differ from native.

Types

Function Status OpaDotNet version
object.subset ✅ v2.5.0

Regex

Function Status OpaDotNet version
regex.find_n ✅ v1.1.0
regex.globs_match - -
regex.replace ✅ v1.1.0
regex.split ✅ v1.1.0
regex.template_match ✅ v1.2.0

Glob

Function Status OpaDotNet version
glob.quote_meta ✅ v2.2.0

Units

Function Status OpaDotNet version
units.parse ✅ v1.3.0
units.parse_bytes ✅ v1.3.0

Encoding

Function Status OpaDotNet version
base64url.encode_no_pad ✅ v1.1.0
hex.decode ✅ v1.1.0
hex.encode ✅ v1.1.0
urlquery.decode ✅ v1.1.0
urlquery.decode_object ✅ v1.1.0
urlquery.encode ✅ v1.1.0
urlquery.encode_object ✅ v1.1.0

JWT

Function Status OpaDotNet version
io.jwt.encode_sign ✅ v1.1.0
io.jwt.encode_sign_raw ✅ v1.1.0
io.jwt.decode ✅ v1.1.0
io.jwt.decode_verify ✅ v1.1.0
io.jwt.verify_eddsa - -
io.jwt.verify_es256 ✅ v1.1.0
io.jwt.verify_es384 ✅ v1.1.0
io.jwt.verify_es512 ✅ v1.1.0
io.jwt.verify_hs256 ✅ v1.1.0
io.jwt.verify_hs384 ✅ v1.1.0
io.jwt.verify_hs512 ✅ v1.1.0
io.jwt.verify_ps256 ✅ v1.1.0
io.jwt.verify_ps384 ✅ v1.1.0
io.jwt.verify_ps512 ✅ v1.1.0
io.jwt.verify_rs256 ✅ v1.1.0
io.jwt.verify_rs384 ✅ v1.1.0
io.jwt.verify_rs512 ✅ v1.1.0

Cryptography

Function Status OpaDotNet version
crypto.hmac.equal ✅ v1.1.0
crypto.hmac.md5 ✅ v1.1.0
crypto.hmac.sha1 ✅ v1.1.0
crypto.hmac.sha256 ✅ v1.1.0
crypto.hmac.sha512 ✅ v1.1.0
crypto.md5 ✅ v1.1.0
crypto.sha1 ✅ v1.1.0
crypto.sha256 ✅ v1.1.0
crypto.parse_private_keys ✅ v2.5.0
crypto.x509.parse_and_verify_certificates ✅ v2.5.0 (*)
crypto.x509.parse_and_verify_certificates_with_options - -
crypto.x509.parse_certificate_request ✅ v2.5.0 (*)
crypto.x509.parse_certificates ✅ v2.5.0 (*)
crypto.x509.parse_keypair ✅ v2.5.0 (*)
crypto.x509.parse_rsa_private_key ✅ v2.5.0 (*)

* Due to differences in libraries output might differ from native.

Graphs

Function Status OpaDotNet version
graph.reachable_paths ✅ v2.5.0

GraphQL

Function Status OpaDotNet version
graphql.is_valid - -
graphql.parse - -
graphql.parse_and_verify - -
graphql.parse_query - -
graphql.parse_schema - -
graphql.schema_is_valid - -

HTTP

Function Status OpaDotNet version
http.send - -

AWS

Function Status OpaDotNet version
providers.aws.sign_req - -

Net

Function Status OpaDotNet version
net.cidr_contains_matches ✅ v1.1.0
net.cidr_expand ✅ v1.1.0
net.cidr_is_valid ✅ v1.1.0
net.cidr_merge ✅ v1.1.0
net.lookup_ip_addr ✅ v1.1.0 (*)

* There might be inconsistent behavior with native implementation due to different DNS resolver.

URI

Function Status OpaDotNet version
uri.is_valid ✅ v3.2.0
uri.parse ✅ v3.2.0

UUID

Function Status OpaDotNet version
uuid.parse ✅ v2.5.0
uuid.rfc4122 ✅ v1.0.0

SemVer

Function Status OpaDotNet version
semver.compare ✅ v1.2.0
semver.is_valid ✅ v1.2.0

Rego

Function Status OpaDotNet version
rego.metadata.chain - -
rego.metadata.rule - -
rego.parse_module - -

OPA

Function Status OpaDotNet version
opa.runtime ✅ v1.1.0

Tracing

Function Status OpaDotNet version
trace ✅ v1.1.0

Yaml

Function Status OpaDotNet version
yaml.is_valid ✅ v1.2.0
yaml.marshal ✅ v1.2.0
yaml.unmarshal ✅ v1.2.0