curl --request GET \
--url https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-ruleimport requests
url = "https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule', 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://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule")
.asString();require 'uri'
require 'net/http'
url = URI("https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"agentic": false,
"approval_ttl_sec": 600,
"connection_names": [
"pgdemo",
"mysql-prod"
],
"created_at": "2024-07-25T15:56:35.317601Z",
"custom_prompt": "Treat any query that touches the payments schema as high risk.",
"description": "Blocks high-risk SQL commands",
"id": "15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7",
"managed_by": "hoop",
"name": "block-dangerous-queries",
"pending_ttl_sec": 900,
"reviewers_groups": [
"dba-leads"
],
"risk_evaluation": {
"high_risk": {
"action": "require_access_request",
"access_request_rule_name": "prod-approvals"
},
"high_risk_action": "block_execution",
"low_risk": {
"action": "require_access_request",
"access_request_rule_name": "prod-approvals"
},
"low_risk_action": "allow_execution",
"medium_risk": {
"action": "require_access_request",
"access_request_rule_name": "prod-approvals"
},
"medium_risk_action": "allow_execution"
},
"sidecar_spec": {},
"sidecar_targets": [
{
"listener_name": "appdb",
"sidecar_id": "15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7"
}
],
"updated_at": "2024-07-25T15:56:35.317601Z"
}{
"message": "the error description"
}{
"message": "the error description"
}Get AI Session Analyzer Rule by Connection
Get the AI session analyzer rule configured for a specific connection
curl --request GET \
--url https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-ruleimport requests
url = "https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule', 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://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule")
.asString();require 'uri'
require 'net/http'
url = URI("https://use.hoop.dev/api/connections/{nameOrId}/ai-session-analyzer-rule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"agentic": false,
"approval_ttl_sec": 600,
"connection_names": [
"pgdemo",
"mysql-prod"
],
"created_at": "2024-07-25T15:56:35.317601Z",
"custom_prompt": "Treat any query that touches the payments schema as high risk.",
"description": "Blocks high-risk SQL commands",
"id": "15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7",
"managed_by": "hoop",
"name": "block-dangerous-queries",
"pending_ttl_sec": 900,
"reviewers_groups": [
"dba-leads"
],
"risk_evaluation": {
"high_risk": {
"action": "require_access_request",
"access_request_rule_name": "prod-approvals"
},
"high_risk_action": "block_execution",
"low_risk": {
"action": "require_access_request",
"access_request_rule_name": "prod-approvals"
},
"low_risk_action": "allow_execution",
"medium_risk": {
"action": "require_access_request",
"access_request_rule_name": "prod-approvals"
},
"medium_risk_action": "allow_execution"
},
"sidecar_spec": {},
"sidecar_targets": [
{
"listener_name": "appdb",
"sidecar_id": "15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7"
}
],
"updated_at": "2024-07-25T15:56:35.317601Z"
}{
"message": "the error description"
}{
"message": "the error description"
}Path Parameters
The name or ID of the connection
Response
OK
When true, the analyzer runs an agentic tool-calling loop over past sessions and resource metadata before classifying.
false
Seconds an approval lasts from the approval. Present as pending_ttl_sec is
600
Connection names this rule applies to
["pgdemo", "mysql-prod"]
The time the resource was created
"2024-07-25T15:56:35.317601Z"
Optional extra instructions appended to the default system prompt
"Treat any query that touches the payments schema as high risk."
Optional description
"Blocks high-risk SQL commands"
The resource identifier
"15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7"
Set to "hoop" when the rule is materialized and lifecycle-managed by a protection profile; managed rules are read-only through this API
"hoop"
Unique name for the rule
"block-dangerous-queries"
Seconds a held statement's approval request may wait for a decision. Present only while the rule holds and the limit is set
900
The groups whose members may release a statement this rule holds. Present while the rule holds.
["dba-leads"]
Risk evaluation actions per level
Show child attributes
Show child attributes
SidecarSpec is this rule in the sidecar's own vocabulary; see the request type. Present when the rule carries one.
The sidecar listeners this rule is bound to, and therefore distributed to
Show child attributes
Show child attributes
The time the resource was updated
"2024-07-25T15:56:35.317601Z"
Was this page helpful?