curl --request POST \
--url https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cel": {
"environment": "<string>",
"expression": "<string>"
},
"policyId": "<string>",
"request": {
"action": {
"name": "<string>"
},
"context": {},
"resource": {
"id": "<string>",
"properties": {},
"type": "<string>"
},
"subject": {
"id": "<string>",
"properties": {},
"type": "<string>"
}
}
}
'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy"
payload = {
"cel": {
"environment": "<string>",
"expression": "<string>"
},
"policyId": "<string>",
"request": {
"action": { "name": "<string>" },
"context": {},
"resource": {
"id": "<string>",
"properties": {},
"type": "<string>"
},
"subject": {
"id": "<string>",
"properties": {},
"type": "<string>"
}
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cel: {environment: '<string>', expression: '<string>'},
policyId: '<string>',
request: {
action: {name: '<string>'},
context: {},
resource: {id: '<string>', properties: {}, type: '<string>'},
subject: {id: '<string>', properties: {}, type: '<string>'}
}
})
};
fetch('https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cel' => [
'environment' => '<string>',
'expression' => '<string>'
],
'policyId' => '<string>',
'request' => [
'action' => [
'name' => '<string>'
],
'context' => [
],
'resource' => [
'id' => '<string>',
'properties' => [
],
'type' => '<string>'
],
'subject' => [
'id' => '<string>',
'properties' => [
],
'type' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy"
payload := strings.NewReader("{\n \"cel\": {\n \"environment\": \"<string>\",\n \"expression\": \"<string>\"\n },\n \"policyId\": \"<string>\",\n \"request\": {\n \"action\": {\n \"name\": \"<string>\"\n },\n \"context\": {},\n \"resource\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n },\n \"subject\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cel\": {\n \"environment\": \"<string>\",\n \"expression\": \"<string>\"\n },\n \"policyId\": \"<string>\",\n \"request\": {\n \"action\": {\n \"name\": \"<string>\"\n },\n \"context\": {},\n \"resource\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n },\n \"subject\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cel\": {\n \"environment\": \"<string>\",\n \"expression\": \"<string>\"\n },\n \"policyId\": \"<string>\",\n \"request\": {\n \"action\": {\n \"name\": \"<string>\"\n },\n \"context\": {},\n \"resource\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n },\n \"subject\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"decision": true,
"error": "<string>",
"variables": {}
}Test Authzen Policy
TestAuthzenPolicy evaluates a stored or inline CEL policy against a live request tuple and returns the decision and the variables it saw, without requiring the policy to be activated on any server.
curl --request POST \
--url https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cel": {
"environment": "<string>",
"expression": "<string>"
},
"policyId": "<string>",
"request": {
"action": {
"name": "<string>"
},
"context": {},
"resource": {
"id": "<string>",
"properties": {},
"type": "<string>"
},
"subject": {
"id": "<string>",
"properties": {},
"type": "<string>"
}
}
}
'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy"
payload = {
"cel": {
"environment": "<string>",
"expression": "<string>"
},
"policyId": "<string>",
"request": {
"action": { "name": "<string>" },
"context": {},
"resource": {
"id": "<string>",
"properties": {},
"type": "<string>"
},
"subject": {
"id": "<string>",
"properties": {},
"type": "<string>"
}
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cel: {environment: '<string>', expression: '<string>'},
policyId: '<string>',
request: {
action: {name: '<string>'},
context: {},
resource: {id: '<string>', properties: {}, type: '<string>'},
subject: {id: '<string>', properties: {}, type: '<string>'}
}
})
};
fetch('https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cel' => [
'environment' => '<string>',
'expression' => '<string>'
],
'policyId' => '<string>',
'request' => [
'action' => [
'name' => '<string>'
],
'context' => [
],
'resource' => [
'id' => '<string>',
'properties' => [
],
'type' => '<string>'
],
'subject' => [
'id' => '<string>',
'properties' => [
],
'type' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy"
payload := strings.NewReader("{\n \"cel\": {\n \"environment\": \"<string>\",\n \"expression\": \"<string>\"\n },\n \"policyId\": \"<string>\",\n \"request\": {\n \"action\": {\n \"name\": \"<string>\"\n },\n \"context\": {},\n \"resource\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n },\n \"subject\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cel\": {\n \"environment\": \"<string>\",\n \"expression\": \"<string>\"\n },\n \"policyId\": \"<string>\",\n \"request\": {\n \"action\": {\n \"name\": \"<string>\"\n },\n \"context\": {},\n \"resource\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n },\n \"subject\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cel\": {\n \"environment\": \"<string>\",\n \"expression\": \"<string>\"\n },\n \"policyId\": \"<string>\",\n \"request\": {\n \"action\": {\n \"name\": \"<string>\"\n },\n \"context\": {},\n \"resource\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n },\n \"subject\": {\n \"id\": \"<string>\",\n \"properties\": {},\n \"type\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"decision": true,
"error": "<string>",
"variables": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.
Path Parameters
App identifier.
AuthZEN server identifier.
Body
AuthzenServerServiceTestAuthzenPolicyRequest evaluates a stored or inline CEL policy against a live request tuple without requiring activation.
This message contains a oneof named policy. Only a single field of the following list may be set at a time:
- policyId
- cel
AuthzenCelPolicy holds the CEL source for a policy revision.
Show child attributes
Show child attributes
Test an already-stored policy revision by id.
This field is part of the policy oneof.
See the documentation for c1.api.authzen.v1.AuthzenServerServiceTestAuthzenPolicyRequest for more details.
AuthzenTestRequest is one AuthZEN access-evaluation request tuple to test a policy against.
Show child attributes
Show child attributes
Response
AuthzenServerServiceTestAuthzenPolicyResponse returns the evaluation outcome for authoring feedback.
Was this page helpful?