curl --request PATCH \
--url https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"break_glass_allowed": true,
"column_masks": {},
"compliance_tags": [
"<string>"
],
"description": "<string>",
"enabled": true,
"external_id": "<string>",
"labels": "<unknown>",
"name": "<string>",
"purpose_tags": [
"<string>"
],
"row_filter_dsl": "<unknown>",
"table_name": "<string>"
}
'import requests
url = "https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}"
payload = {
"break_glass_allowed": True,
"column_masks": {},
"compliance_tags": ["<string>"],
"description": "<string>",
"enabled": True,
"external_id": "<string>",
"labels": "<unknown>",
"name": "<string>",
"purpose_tags": ["<string>"],
"row_filter_dsl": "<unknown>",
"table_name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
break_glass_allowed: true,
column_masks: {},
compliance_tags: ['<string>'],
description: '<string>',
enabled: true,
external_id: '<string>',
labels: '<unknown>',
name: '<string>',
purpose_tags: ['<string>'],
row_filter_dsl: '<unknown>',
table_name: '<string>'
})
};
fetch('https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}', 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://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'break_glass_allowed' => true,
'column_masks' => [
],
'compliance_tags' => [
'<string>'
],
'description' => '<string>',
'enabled' => true,
'external_id' => '<string>',
'labels' => '<unknown>',
'name' => '<string>',
'purpose_tags' => [
'<string>'
],
'row_filter_dsl' => '<unknown>',
'table_name' => '<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://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}"
payload := strings.NewReader("{\n \"break_glass_allowed\": true,\n \"column_masks\": {},\n \"compliance_tags\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"enabled\": true,\n \"external_id\": \"<string>\",\n \"labels\": \"<unknown>\",\n \"name\": \"<string>\",\n \"purpose_tags\": [\n \"<string>\"\n ],\n \"row_filter_dsl\": \"<unknown>\",\n \"table_name\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"break_glass_allowed\": true,\n \"column_masks\": {},\n \"compliance_tags\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"enabled\": true,\n \"external_id\": \"<string>\",\n \"labels\": \"<unknown>\",\n \"name\": \"<string>\",\n \"purpose_tags\": [\n \"<string>\"\n ],\n \"row_filter_dsl\": \"<unknown>\",\n \"table_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"break_glass_allowed\": true,\n \"column_masks\": {},\n \"compliance_tags\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"enabled\": true,\n \"external_id\": \"<string>\",\n \"labels\": \"<unknown>\",\n \"name\": \"<string>\",\n \"purpose_tags\": [\n \"<string>\"\n ],\n \"row_filter_dsl\": \"<unknown>\",\n \"table_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"audit_level": "none",
"break_glass_allowed": true,
"compliance_tags": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"enabled": true,
"id": "<string>",
"kb_id": "<string>",
"labels": {},
"name": "<string>",
"purpose_tags": [
"<string>"
],
"revision": 123,
"row_filter_dsl": {},
"source": "manual",
"updated_at": "2023-11-07T05:31:56Z",
"column_masks": {},
"description": "<string>",
"external_id": "<string>",
"table_name": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}Update Policy
Update an access-shaping rule on a knowledge base.
curl --request PATCH \
--url https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"break_glass_allowed": true,
"column_masks": {},
"compliance_tags": [
"<string>"
],
"description": "<string>",
"enabled": true,
"external_id": "<string>",
"labels": "<unknown>",
"name": "<string>",
"purpose_tags": [
"<string>"
],
"row_filter_dsl": "<unknown>",
"table_name": "<string>"
}
'import requests
url = "https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}"
payload = {
"break_glass_allowed": True,
"column_masks": {},
"compliance_tags": ["<string>"],
"description": "<string>",
"enabled": True,
"external_id": "<string>",
"labels": "<unknown>",
"name": "<string>",
"purpose_tags": ["<string>"],
"row_filter_dsl": "<unknown>",
"table_name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
break_glass_allowed: true,
column_masks: {},
compliance_tags: ['<string>'],
description: '<string>',
enabled: true,
external_id: '<string>',
labels: '<unknown>',
name: '<string>',
purpose_tags: ['<string>'],
row_filter_dsl: '<unknown>',
table_name: '<string>'
})
};
fetch('https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}', 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://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'break_glass_allowed' => true,
'column_masks' => [
],
'compliance_tags' => [
'<string>'
],
'description' => '<string>',
'enabled' => true,
'external_id' => '<string>',
'labels' => '<unknown>',
'name' => '<string>',
'purpose_tags' => [
'<string>'
],
'row_filter_dsl' => '<unknown>',
'table_name' => '<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://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}"
payload := strings.NewReader("{\n \"break_glass_allowed\": true,\n \"column_masks\": {},\n \"compliance_tags\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"enabled\": true,\n \"external_id\": \"<string>\",\n \"labels\": \"<unknown>\",\n \"name\": \"<string>\",\n \"purpose_tags\": [\n \"<string>\"\n ],\n \"row_filter_dsl\": \"<unknown>\",\n \"table_name\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"break_glass_allowed\": true,\n \"column_masks\": {},\n \"compliance_tags\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"enabled\": true,\n \"external_id\": \"<string>\",\n \"labels\": \"<unknown>\",\n \"name\": \"<string>\",\n \"purpose_tags\": [\n \"<string>\"\n ],\n \"row_filter_dsl\": \"<unknown>\",\n \"table_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timbal.ai/orgs/{org_id}/k2/{kb_id}/policies/{policy_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"break_glass_allowed\": true,\n \"column_masks\": {},\n \"compliance_tags\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"enabled\": true,\n \"external_id\": \"<string>\",\n \"labels\": \"<unknown>\",\n \"name\": \"<string>\",\n \"purpose_tags\": [\n \"<string>\"\n ],\n \"row_filter_dsl\": \"<unknown>\",\n \"table_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"audit_level": "none",
"break_glass_allowed": true,
"compliance_tags": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"enabled": true,
"id": "<string>",
"kb_id": "<string>",
"labels": {},
"name": "<string>",
"purpose_tags": [
"<string>"
],
"revision": 123,
"row_filter_dsl": {},
"source": "manual",
"updated_at": "2023-11-07T05:31:56Z",
"column_masks": {},
"description": "<string>",
"external_id": "<string>",
"table_name": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}Authorizations
Timbal API key. Obtain your API key from the Timbal platform settings. See Authentication for more information.
Body
Audit verbosity for matches against this rule.
none, normal, verbose Omit to leave unchanged; send null to clear all masks.
Show child attributes
Show child attributes
Omit to leave unchanged; send null to clear.
Omit to leave unchanged; send null to clear the row filter.
Provenance of the rule.
manual, imported, derived Omit to leave unchanged; send null to apply to every table.
Response
Policy updated
Audit verbosity for matches against this rule.
none, normal, verbose Whether sessions may bypass the rule via a logged escalation.
Compliance classifications (e.g. hipaa.phi, pci.pan).
When false, the rule body is inactive everywhere it is bound.
Free-form key/value labels.
Operator-facing label.
Purpose-of-use bindings (e.g. treatment, research).
Revision token for optimistic concurrency on update and delete.
Row predicate authored as JSON. Stored opaquely in this release.
Provenance of the rule.
manual, imported, derived Per-column transformation map. Null means no masks.
{"col": {"type":"redact"}} is the canonical "hide this column".
Show child attributes
Show child attributes
Target table within the knowledge base. Null applies to every table.