![Dependent objects](/docs/doc-images/images/dependency.png)
Dependent objects APIs
- Data object types
- Supported operations
- Get dependent objects for metadata type
- Get dependent objects for a column
- Get dependent details for data objects
- Get dependent objects for table joins
- Get dependent objects for physical columns
- Get dependent objects for physical tables
- Get dependent details for Liveboards
- Get incomplete objects
The tspublic/v1/dependency
endpoints allow you to query dependent objects for a metadata object type or ID.
Dependency in ThoughtSpot is defined as a relation between the referenced and referencing objects. If the referenced object cannot be deleted without first deleting the referencing object, the referenced object is considered as a dependent object.
Consider a Worksheet (Worksheet1
) that has a derived logical column (Column1
), which in turn has a reference to a base logical column (Column2
).
![Dependent objects](/docs/doc-images/images/dependency.png)
In this example, Worksheet1
has a dependency on Column2
, which means that Worksheet1
is a referencing object and Column2
is a referenced object. ThoughtSpot does not allow you to delete Column2
if you have not deleted Worksheet1
, because the deletion of Column2
will be prevented by the relationship between Worksheet1’s
Column1
and Column2
. Similarly, Column1
has a dependency on Column2
; that is, Column1
is a referencing object and Column2
is a referenced object. You cannot delete Column2
without first deleting Column1
.
Before deleting a data object such as a Worksheet, table, or column, you must check if it has any dependent objects, and remove its associations.
Data object types🔗
The tspublic/v1/dependency
endpoint allows you to query and edit dependency for the following data object types:
-
LOGICAL_TABLE
for data objects such as tables, worksheets, or views. -
QUESTION_ANSWER_BOOK
for answers. -
PINBOARD_ANSWER_BOOK
for Liveboards. -
LOGICAL_COLUMN
for columns of a table, Worksheet, or View. -
LOGICAL_RELATIONSHIP
for table joins.A join combines columns from one or several data objects by using matching values.
-
PHYSICAL_COLUMN
for the underlying column objects that exist in the physical layer of the data repository. -
PHYSICAL_TABLE
for the original underlying table that is mapped to a logical table, Worksheet, or View. Physical table mapping details are available only on ThoughtSpot instances that use the Falcon database, most commonly ThoughtSpot software instances.
Note
|
You need to specify the GUIDs of the data objects in the API requests to fetch dependent details.
|
Supported operations🔗
API endpoint | Available from |
---|---|
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
Required permissions🔗
You must have edit access to the metadata objects that you want to query.
Get dependent objects for metadata type🔗
To get a list of dependents for a specific metadata object type, send a POST
request to the /tspublic/v1/dependency/listdependents
endpoint.
Resource URL🔗
POST /tspublic/v1/dependency/listdependents
Request parameters🔗
Form parameter | Description |
---|---|
| String. Type of the data object. Valid values are:
|
| Array of strings. A JSON array of GUIDs of the metadata objects. |
| Integer. The maximum number of batches to fetch in a query. If this attribute is not defined, the |
Example request🔗
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'id=%5B%22cd252e5c-b552-49a8-821d-3eadaa049cca%22%2C%20%2269428b60-58fd-42d7-b645-16ea3d524a06%22%5D&batchsize=1' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/listdependents'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/listdependents
Example response🔗
If the POST
operation is successful, the API returns a response body with dependent object details:
{
"69428b60-58fd-42d7-b645-16ea3d524a06": {},
"cd252e5c-b552-49a8-821d-3eadaa049cca": {
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "d084c256-e284-4fc4-b80c-111cb606449a",
"indexVersion": 12,
"generationNum": 566,
"name": "Sales Performance",
"description": "",
"author": "59481331-ee53-42be-a548-bd87be6ddd4a",
"authorName": "tsadmin",
"authorDisplayName": "Administrator",
"created": 1620247455573,
"modified": 1620247455573,
"modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
"owner": "d084c256-e284-4fc4-b80c-111cb606449a",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful addition of dependent objects |
400 | Invalid object ID |
500 | Null object ID |
Get dependent objects for a column🔗
To get the details of dependent objects for a logical column in a worksheet, table, or View, send a GET
request to /tspublic/v1/dependency/logicalcolumn
API endpoint.
Resource URL🔗
GET /tspublic/v1/dependency/logicalcolumn
Request parameters🔗
Query parameter | Description |
---|---|
| Array of strings. A JSON array of GUIDs of the columns of a Table, Worksheet, or View. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/logicalcolumn?id=%5B%220761cc6a-543b-4db3-a066-43c707a2655e%22%2C%20%2234d09c13-08a3-4b09-907b-92cc6f544f78%22%5D'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/logicalcolumn?id=%5B%220761cc6a-543b-4db3-a066-43c707a2655e%22%2C%20%2234d09c13-08a3-4b09-907b-92cc6f544f78%22%5D
Example response🔗
If the GET operation is successful, the API returns a list of dependent objects such as worksheets, Liveboard objects, and answers.
{
"34d09c13-08a3-4b09-907b-92cc6f544f78": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
],
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 2271,
"name": "Stats and Trends for Search on Answers",
"description": "This Liveboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
},
"0761cc6a-543b-4db3-a066-43c707a2655e": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
],
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 2271,
"name": "Stats and Trends for Search on Answers",
"description": "This Liveboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of dependent objects |
400 | Invalid object ID |
Get dependent details for data objects🔗
To get the details of dependent objects for a Worksheet, Table, or View, send a GET
request to the /tspublic/v1/dependency/logicaltable
API endpoint.
Resource URL🔗
GET /tspublic/v1/dependency/logicaltable
Request parameters🔗
Query parameter | Description |
---|---|
| Array of strings. The GUIDs of data objects such as a worksheet, tables, or views. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/logicaltable?id=%5B%222b9d083a-275c-4984-9cfe-90b036affa17%22%2C%20%22b8781e3b-6972-4c3b-9581-15fe800eee16%22%2C%20%22f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4%22%5D'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/logicaltable?id=%5B%222b9d083a-275c-4984-9cfe-90b036affa17%22%2C%20%22b8781e3b-6972-4c3b-9581-15fe800eee16%22%2C%20%22f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4%22%5D
Example response🔗
If the GET
operation is success, the API returns a list of dependent objects:
{
"f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4": {
"QUESTION_ANSWER_BOOK": [
{
"id": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"indexVersion": 15,
"generationNum": 547,
"name": "Table wise details of data, query and performance - Last 90 days",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1579692750445,
"modified": 1579692930908,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"clientState": {
"queryState": "FALCON",
"hasUserDefinedName": true
},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
],
"LOGICAL_TABLE": [
{
"id": "a4a991b4-7039-4998-b903-ce58688989ee",
"indexVersion": 560,
"generationNum": 560,
"name": "TS: Rows of un-cached tables by Connection [Deprecated]",
"description": "Aggregate Worksheet to keep sum of row for each un-cached tables in a connection",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1572114887820,
"modified": 1598437970534,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "a4a991b4-7039-4998-b903-ce58688989ee",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "AGGR_WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
]
},
"2b9d083a-275c-4984-9cfe-90b036affa17": {
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 552,
"name": "Stats and Trends for Search on Answers",
"description": "This Liveboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of dependent objects |
400 | Invalid object ID |
Get dependent objects for table joins🔗
To get the details of dependent objects for table joins, send a GET request to the /tspublic/v1/dependency/logicalrelationship
API endpoint.
Resource URL🔗
GET /tspublic/v1/dependency/logicalrelationship
Request parameters🔗
Query parameter | Description |
---|---|
| Array of strings. A JSON array of the GUIDs of table joins. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/logicalrelationship?id=%5B%22594ac790-4b03-4853-8953-47040332bc36%22%5D'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/logicalrelationship?id=%5B%22594ac790-4b03-4853-8953-47040332bc36%22%5D
Example response🔗
If the GET operation is successful, the API returns the following response:
{
"594ac790-4b03-4853-8953-47040332bc36": {
"QUESTION_ANSWER_BOOK": [
{
"id": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"indexVersion": 15,
"generationNum": 547,
"name": "Table wise details of data, query and performance - Last 90 days",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1579692750445,
"modified": 1579692930908,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"clientState": {
"queryState": "FALCON",
"hasUserDefinedName": true
},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of dependent objects |
400 | Invalid object ID |
Get dependent objects for physical columns🔗
To get the details of dependent objects for a physical column, send a GET
request to the /tspublic/v1/dependency/physicalcolumn
API endpoints.
Resource URL🔗
GET /tspublic/v1/dependency/physicalcolumn
Request parameters🔗
Query parameter | Description |
---|---|
| Array of strings. A JSON array of GUIDs of the physical columns. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/physicalcolumn?id=%5B%2209247580-95b6-4018-9f0f-f5a8b333065c%22%2C%20%22ae3fbcb0-60c9-43b3-98a1-48dd47cb4151%22%5D'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/physicalcolumn?id=%5B%2209247580-95b6-4018-9f0f-f5a8b333065c%22%2C%20%22ae3fbcb0-60c9-43b3-98a1-48dd47cb4151%22%5D
Example response🔗
{
"34d09c13-08a3-4b09-907b-92cc6f544f78": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
],
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 2271,
"name": "Stats and Trends for Search on Answers",
"description": "This Liveboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
},
"0761cc6a-543b-4db3-a066-43c707a2655e": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
]
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of dependent objects |
400 | Invalid object ID |
Get dependent objects for physical tables🔗
To get dependent objects for a physical table, send a GET
request to the /tspublic/v1/dependency/physicaltable
API endpoint.
Resource URL🔗
GET /tspublic/v1/dependency/physicaltable
Request parameters🔗
Query parameter | Description |
---|---|
| Array of strings. A JSON array of the GUIDs of the physical table. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/physicaltable?id=%5B%22182f1e7c-c461-4535-b9da-c5297147631a%22%5D'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/dependency/physicaltable?id=%5B%22182f1e7c-c461-4535-b9da-c5297147631a%22%5D
Example response🔗
{
"f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4": {
"QUESTION_ANSWER_BOOK": [
{
"id": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"indexVersion": 15,
"generationNum": 547,
"name": "Table wise details of data, query and performance - Last 90 days",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1579692750445,
"modified": 1579692930908,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"clientState": {
"queryState": "FALCON",
"hasUserDefinedName": true
},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
],
"LOGICAL_TABLE": [
{
"id": "a4a991b4-7039-4998-b903-ce58688989ee",
"indexVersion": 560,
"generationNum": 560,
"name": "TS: Rows of un-cached tables by Connection [Deprecated]",
"description": "Aggregate Worksheet to keep sum of row for each un-cached tables in a connection",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1572114887820,
"modified": 1598437970534,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "a4a991b4-7039-4998-b903-ce58688989ee",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "AGGR_WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
]
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of dependent objects |
400 | Invalid object ID |
Get dependent details for Liveboards🔗
When a default Liveboard is assigned to a user group in ThoughtSpot, it is used for onboarding new users of that group. Users of this group can also mark the default Liveboard as a favorite and use its data source for a new search.
If a Liveboard is set as a default Liveboard for a user group, the /tspublic/v1/dependency/pinboard
endpoint will return the user group as a dependent object for that Liveboard. This API endpoint does not return other dependent data objects such as tables, views, and worksheets.