TypeScript (SDK)
import { Textql } from "@textql/sdk";
const textql = new Textql({
apiKey: process.env["TEXTQL_API_KEY"] ?? "",
});
async function run() {
const result = await textql.ontology.getEffectiveOwners({
body: {},
});
console.log(result);
}
run();import os
from textql_sdk import Textql
with Textql(
api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:
res = textql.ontology.get_effective_owners()
# Handle response
print(res)curl --request POST \
--url https://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--header 'tql_api_key: <api-key>' \
--data '
{
"path": "<string>"
}
'const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
tql_api_key: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({path: '<string>'})
};
fetch('https://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners', 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://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners",
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([
'path' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Connect-Protocol-Version: <connect-protocol-version>",
"Content-Type: application/json",
"tql_api_key: <api-key>"
],
]);
$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://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners"
payload := strings.NewReader("{\n \"path\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("tql_api_key", "<api-key>")
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://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("tql_api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["tql_api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"path": "<string>",
"entries": [
{
"roleId": "<string>",
"permission": "ONTOLOGY_PERMISSION_UNSPECIFIED",
"memberId": "<string>"
}
],
"unlistedPrincipalPermission": "ONTOLOGY_PERMISSION_UNSPECIFIED"
}{
"code": "not_found",
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Ontology Management Service
Get Effective Ontology Owners
POST
/
textql.rpc.public.patches.OntologyManagementService
/
GetEffectiveOntologyOwners
TypeScript (SDK)
import { Textql } from "@textql/sdk";
const textql = new Textql({
apiKey: process.env["TEXTQL_API_KEY"] ?? "",
});
async function run() {
const result = await textql.ontology.getEffectiveOwners({
body: {},
});
console.log(result);
}
run();import os
from textql_sdk import Textql
with Textql(
api_key=os.getenv("TEXTQL_API_KEY", ""),
) as textql:
res = textql.ontology.get_effective_owners()
# Handle response
print(res)curl --request POST \
--url https://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--header 'tql_api_key: <api-key>' \
--data '
{
"path": "<string>"
}
'const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
tql_api_key: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({path: '<string>'})
};
fetch('https://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners', 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://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners",
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([
'path' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Connect-Protocol-Version: <connect-protocol-version>",
"Content-Type: application/json",
"tql_api_key: <api-key>"
],
]);
$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://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners"
payload := strings.NewReader("{\n \"path\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("tql_api_key", "<api-key>")
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://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("tql_api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.textql.com/rpc/public/textql.rpc.public.patches.OntologyManagementService/GetEffectiveOntologyOwners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["tql_api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"path": "<string>",
"entries": [
{
"roleId": "<string>",
"permission": "ONTOLOGY_PERMISSION_UNSPECIFIED",
"memberId": "<string>"
}
],
"unlistedPrincipalPermission": "ONTOLOGY_PERMISSION_UNSPECIFIED"
}{
"code": "not_found",
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Authorizations
Headers
Define the version of the Connect protocol
Available options:
1 Define the timeout, in ms
Body
application/json
Returns the effective owners for a directory after walking ancestor
OWNERS files: for every role in the org, the resolved permission the
role would have on this directory (per permissionForDirWithRoles).
Use this when you need to compare permissions across paths — the
literal GetOntologyOwners only reflects the OWNERS file at the exact
path, missing inheritance.
Response
Success
Show child attributes
Show child attributes
Effective permission for principals omitted from entries. Unrestricted paths grant full access; restricted paths leave this unspecified.
Available options:
ONTOLOGY_PERMISSION_UNSPECIFIED, ONTOLOGY_PERMISSION_EXECUTE, ONTOLOGY_PERMISSION_READ, ONTOLOGY_PERMISSION_READ_EXECUTE, ONTOLOGY_PERMISSION_READ_WRITE, ONTOLOGY_PERMISSION_READ_WRITE_EXECUTE