Built-in Functions Implementation Status
Bellow is the list of supported OPA built-in functions as for version v0.53.1 along with their implementation status in OpaDotNet.Wasm.
Numbers
| Function | Status | OpaDotNet version |
|---|---|---|
| numbers.range_step | ✅ | v2.2.0 |
Strings
| Function | Status | OpaDotNet version |
|---|---|---|
| indexof_n | ✅ | v1.0.0 |
| sprintf | ✅ | v1.1.0 (*) |
| strings.strings.any_prefix_match | ✅ | v1.0.0 |
| strings.any_suffix_match | ✅ | v1.0.0 |
| strings.render_template | - | - |
* 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 |
* 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_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 | :white_check_mark: | 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.x509.parse_and_verify_certificates | ✅ | v2.5.0 (*) |
| 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.
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 |