Skip to content

Commit 15dba43

Browse files
Merge pull request #306 from thoughtspot/main
10.8-0 doc publication
2 parents 97fb63c + e152f85 commit 15dba43

35 files changed

+1159
-103
lines changed

gatsby-node.js

+19
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const fsExtra = require('fs-extra');
22
const {
33
DOC_NAV_PAGE_ID,
44
NOT_FOUND_PAGE_ID,
5+
VERSION_DROPDOWN,
56
} = require('./src/configs/doc-configs');
67
const { getDocLinkFromEdge } = require('./src/utils/gatsby-utils.js');
78

@@ -84,4 +85,22 @@ exports.createPages = async function ({ actions, graphql }) {
8485
});
8586
}
8687
});
88+
89+
VERSION_DROPDOWN.forEach((version) => {
90+
if (version.link === ' ' || !version.iframeUrl) {
91+
return;
92+
}
93+
94+
const versionPath = version.link.startsWith('/')
95+
? version.link.substring(1)
96+
: version.link;
97+
98+
actions.createPage({
99+
path: `/${versionPath}`,
100+
component: require.resolve(
101+
'./src/components/DevDocTemplate/index.tsx',
102+
),
103+
context: { iframeUrl: version.iframeUrl },
104+
});
105+
});
87106
};
+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
= Integrate external tools and allow custom scripts
2+
:toc: true
3+
:toclevels: 2
4+
5+
:page-title: Integrate external tools and allow scripts
6+
:page-pageid: external-tool-script-integration
7+
:page-description: Security settings for embedding
8+
9+
ThoughtSpot supports integrating third-party apps such as Mixpanel, Pendo, LogRocket, and more in your embed. If you are using third-party tools to track usage, trace, log, or onboard your application users, you can seamlessly integrate these tools with ThoughtSpot embed and add custom JavaScripts. This feature is disabled by default on ThoughtSpot instances. To enable this feature, contact ThoughtSpot Support.
10+
11+
[IMPORTANT]
12+
====
13+
While ThoughtSpot allows the injection of custom JavaScripts, it is important to be aware of the associated security risks, particularly Cross-Site Scripting (XSS). XSS is a vulnerability that can enable malicious actors to inject and execute unauthorized scripts within a trusted environment. This can lead to data breaches, unauthorized access to user sessions, and compromised system integrity. ThoughtSpot strongly recommends reviewing security guidelines before activating this feature in your instances and exercising caution when integrating third-party tools into your embedded application.
14+
====
15+
16+
== Security considerations
17+
18+
Before requesting ThoughtSpot Support to enable this feature on your instance, do the following:
19+
20+
* Review the security risks associated with custom-hosted scripts and understand the potential consequences of XSS attacks.
21+
* Implement security controls and measures to validate hosted scripts and mitigate potential vulnerabilities.
22+
23+
== Feature enablement
24+
25+
Enabling third-party tools on embed involves two steps:
26+
27+
. Request for feature activation and provide the script details to ThoughtSpot Support
28+
. Adding the script sources to the CSP allowlist
29+
30+
=== Request for feature enablement
31+
32+
Create a ThoughtSpot Support ticket to enable the feature on your instance. In your request, specify the domain URLs that will host the scripts in your embedding environment.
33+
34+
Wait for ThoughtSpot Support to validate, approve, and configure the URL for your instance. This step will ensure that only the trusted and vetted domains are allowed to run scripts in your application environment.
35+
36+
=== Add script source to CSP allowlist
37+
After the script hosting URL is approved and configured by ThoughtSpot Support, you must add the JavaScript hosting domain to the CSP allowlist. This step requires administration privileges, so make sure you log in to ThoughtSpot with your administrator credentials.
38+
39+
. In your ThoughtSpot application, navigate to *Develop* > *Customizations* > *Security Settings*.
40+
. If your instance has the Orgs feature enabled, ensure that you are in the *All Orgs* context.
41+
. On the *Security Settings* page, click *Edit* and turn on the *CSP script-src domains* toggle switch.
42+
+
43+
[.widthAuto]
44+
[.bordered]
45+
image::./images/csp-script-domain.png[CSS script-src domain]
46+
. Add the script hosting domain.
47+
. Click *Save changes*.
48+
49+
[NOTE]
50+
====
51+
* The *CSP script-src domains* section is visible to users with administrative privileges only if the third-party integration feature is enabled on your instance.
52+
* The *CSP script-src domains* cannot be enabled and configured at the Org level. When configured, this setting will apply to all the Orgs configured on your instance.
53+
====
54+
55+
== Passing variables to the hosted script
56+
57+
To pass variables to the customer's hosted script, Visual Embed SDK provides the `customVariablesForThirdPartyTools` parameter. The `customVariablesForThirdPartyTools` is an object containing the variables that you wish to pass to the customer’s hosted JavaScript. These may include private information such as credentials or keys. The hosted JavaScript will access these variables via the `window.tsEmbed` object.
58+
59+
Developers can define this parameter in the **init()** function as shown in the following example. Once initialized, the JavaScript will run after the authentication is successfully completed in the ThoughtSpot Embed App.
60+
61+
[source,JavaScript]
62+
----
63+
init({
64+
//...
65+
customVariablesForThirdPartyTools: { cloud: "123Basic" }
66+
});
67+
----

modules/ROOT/pages/api-auth-session.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ include::{path}/log-in-api.adoc[]
1717
A successful login returns a session cookie that can be used in your subsequent API calls. For more information, see xref:api-auth-session.adoc#sessionCookies[Session cookies for subsequent API calls].
1818
[NOTE]
1919
====
20-
* If MFA [beta betaBackground]^Beta^ is enabled on your ThoughtSpot instance then basic authentication with only `username` and `password` will return an error.
20+
* If MFA is enabled on your ThoughtSpot instance then basic authentication with only `username` and `password` will return an error.
2121
Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
2222
* Embedded users authenticating to ThoughtSpot with basic authentication are recommended to switch to `AuthType.TrustedAuthTokenCookieless`.
2323
* MFA can be enabled on your instance only if Identity and Access Management (IAMv2) is already enabled.

modules/ROOT/pages/api-changelog.adoc

+33
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,39 @@
88

99
This changelog lists only the changes introduced in the Visual Embed SDK. For information about new features and enhancements available for embedded analytics, see xref:whats-new.adoc[What's New].
1010

11+
12+
== Version 1.37.0, April 2025
13+
14+
[width="100%" cols="1,4"]
15+
|====
16+
|[tag greenBackground]#NEW FEATURE# a|
17+
The SDK now provides the `customVariablesForThirdPartyTools` setting to pass custom variables when integrating third-party tools and running custom scripts in your embed. Developers can define this object in the **init()** function and add variables as key-value pair.
18+
This feature is available only if third-party integration is enabled on your instance and script hosting domain URL is added to the CSP allowlist.
19+
20+
For more information, see xref:3rd-party-script.adoc[Integrate third-party tools and allow custom scripts].
21+
22+
|[tag greenBackground]#NEW FEATURE# a|
23+
You can now exclude search token string from the application URL by setting `excludeSearchTokenStringFromURL` to `true` in your embed with ThoughtSpot token-based Search or Search bar.
24+
25+
|[tag greenBackground]#NEW FEATURE# a| This version of the SDK supports the following embed and host events:
26+
27+
Embed Events::
28+
29+
* `EmbedEvent.TableVizRendered` +
30+
Emits when a table visualization is rendered in the ThoughtSpot embedded app. You can also use this event as a hook to trigger host events such as `HostEvent.TransformTableVizData` on the table visualization. For more information, see the link:https://developers.thoughtspot.com/docs/Enumeration_EmbedEvent#_tablevizrendered[SDK reference documentation].
31+
32+
* `EmbedEvent.CreateLiveboard` +
33+
Emits when a Liveboard is created.
34+
35+
Host Events::
36+
37+
* `HostEvent.TransformTableVizData` +
38+
Triggers the table visualization re-render with the updated data. You can use this event in conjunction with `EmbedEvent.TableVizRendered` to apply the modifications to table visualization payload.
39+
40+
* `HostEvent.Remove` +
41+
Triggers the *Delete* action on a Liveboard.
42+
|====
43+
1144
== Version 1.36.0, February 2025
1245

1346
[width="100%" cols="1,4"]

modules/ROOT/pages/authentication.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ In this method, a REST client sends the `username` and `password` to authenticat
2020
xref:authentication.adoc#trusted-auth-v2[Trusted authentication];;
2121
In this method, the REST client must send the `username` and `secret_key` in the API request to obtain an authentication token. The `secret_key` is generated if **Trusted authentication** is enabled on your ThoughtSpot instance.
2222

23-
Multifactor authentication (MFA):: [beta betaBackground]^Beta^
23+
Multifactor authentication (MFA)::
2424
+
2525
ThoughtSpot now supports multifactor authentication (MFA) for environments using local authentication with Identity and Access Management (IAMv2). If MFA is enabled on your ThoughtSpot instance,
2626

modules/ROOT/pages/common/nav.adoc

+18-10
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
1414
** link:{{navprefix}}/embed-sdk-changelog[SDK and API changelog]
1515
*** link:{{navprefix}}/embed-sdk-changelog[Visual Embed changelog]
16+
*** link:{{navprefix}}/mobile-sdk-changelog[Mobile Embed SDK changelog]
1617
*** link:{{navprefix}}/rest-v1-changelog[REST API v1 changelog]
1718
*** link:{{navprefix}}/rest-v2-changelog[REST API v2 changelog]
1819
** link:{{navprefix}}/deprecated-features[Deprecation announcements]
@@ -57,16 +58,23 @@
5758
5859
* link:{{navprefix}}/getting-started[Embed ThoughtSpot]
5960
** link:{{navprefix}}/getting-started[Quickstart Guide]
60-
** link:{{navprefix}}/tsembed[Embed a ThoughtSpot component]
61-
*** link:{{navprefix}}/embed-liveboard[Embed a Liveboard]
62-
*** link:{{navprefix}}/embed-a-viz[Embed a visualization]
63-
*** link:{{navprefix}}/full-embed[Embed full application]
64-
*** link:{{navprefix}}/search-embed[Embed search page]
65-
*** link:{{navprefix}}/embed-nls[Embed Natural Language Search]
66-
*** link:{{navprefix}}/embed-spotter[Embed Spotter]
67-
*** link:{{navprefix}}/embed-searchbar[Embed search bar]
61+
** link:{{navprefix}}/tsembed[Embed ThoughtSpot in Web app]
62+
*** Embed analytics
63+
**** link:{{navprefix}}/embed-liveboard[Embed a Liveboard]
64+
**** link:{{navprefix}}/embed-a-viz[Embed a visualization]
65+
*** Embed natural language search
66+
**** link:{{navprefix}}/embed-spotter[Embed Spotter]
67+
**** link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter interface into a Chatbot]
68+
**** link:{{navprefix}}/embed-nls[Embed Natural Language Search (legacy interface)]
69+
*** Embed full app experience
70+
**** link:{{navprefix}}/full-embed[Embed full app]
71+
**** link:{{navprefix}}/full-app-customize[Customize full application embedding]
72+
*** Embed token-based Search
73+
**** link:{{navprefix}}/search-embed[Embed Search]
74+
**** link:{{navprefix}}/embed-searchbar[Embed search bar]
6875
*** link:{{navprefix}}/react-app-embed[Embed with React components]
69-
76+
** Embed ThoughtSpot in a mobile app
77+
*** link:{{navprefix}}/embed-ts-mobile-react-native[Embed using React Native SDK ^Beta^]
7078
** Customize and integrate
7179
*** link:{{navprefix}}/style-customization[Customize UX and styles]
7280
**** link:{{navprefix}}/customize-style[Customize basic styles]
@@ -96,7 +104,6 @@
96104
***** link:{{navprefix}}/custom-action-payload[Callback response payload]
97105

98106
*** link:{{navprefix}}/in-app-navigation[Create dynamic menus and navigation]
99-
*** link:{{navprefix}}/full-app-customize[Customize full application embedding]
100107
*** link:{{navprefix}}/customize-links[Customize links]
101108
*** link:{{navprefix}}/set-locale[Customize locale]
102109
*** link:{{navprefix}}/custom-domain-config[Custom domain configuration]
@@ -143,6 +150,7 @@ include::generated/typedoc/CustomSideNav.adoc[]
143150
*** link:{{navprefix}}/prefetch[Prefetch static resources]
144151
*** link:{{navprefix}}/prerender[Prerender components]
145152
** link:{{navprefix}}/security-settings[Security settings]
153+
*** link:{{navprefix}}/external-tool-script-integration[Integrate external tools and scripts]
146154
** Other embedding methods
147155
*** link:{{navprefix}}/embed-without-sdk[Embed without SDK]
148156
*** link:{{navprefix}}/custom-viz-rest-api[Create a custom visualization]

modules/ROOT/pages/data-report-v2-api.adoc

+56-3
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ curl -X POST \
8181
----
8282

8383
=== Fetch Liveboard Data API
84-
To get data from a Liveboard object and its visualizations via `POST /api/rest/2.0/metadata/liveboard/data` endpoint, your user account must have the `DATADOWNLOADING` (*Can download Data*) privilege and at least view access to the Liveboard specified in the API request.
84+
To get data from a Liveboard object and its visualizations via `POST /api/rest/2.0/metadata/liveboard/data` endpoint, your user account must have at least view access to the Liveboard specified in the API request.
8585

8686
The API request body must include the name or GUID of the Liveboard to fetch data. To get specific visualizations from a given Liveboard, add the names or GUIDs of the visualizations in the `visualization_identifiers` array.
8787

@@ -191,7 +191,7 @@ Download data from a saved Answer in PDF, PNG, CSV, or XLSX file format.
191191

192192
=== Liveboard Report API
193193

194-
To download a Liveboard report via `/api/rest/2.0/report/liveboard` API, you need `DATADOWNLOADING` (*Can download Data*) privilege and at least view access to the Liveboard specified in the API request.
194+
To download a Liveboard report via `/api/rest/2.0/report/liveboard` API, you need at least view access to the Liveboard specified in the API request.
195195

196196
In the `POST` request body, specify the GUID or name of the Liveboard as `metadata_identifier`. To download reports with specific visualizations, add GUIDs or names of the visualizations in the `visualization_identifiers`.
197197

@@ -227,6 +227,59 @@ curl -X POST \
227227
}'
228228
----
229229

230+
==== Override filters
231+
232+
If the Liveboard has filters applied and you want to override the filters before downloading the Liveboard, you can specify the filters in the `override_filters` array.
233+
234+
[source,JSON]
235+
----
236+
curl -X POST \
237+
--url 'https://{ThoughtSpot-Host}/api/rest/2.0/report/liveboard' \
238+
-H 'Content-Type: application/json' \
239+
-H 'Authorization: Bearer {access-token}' \
240+
--data-raw '{
241+
"metadata_identifier": "9bd202f5-d431-44bf-9a07-b4f7be372125",
242+
"file_format": "PNG",
243+
"override_filters": [
244+
{
245+
"column_name": "Color",
246+
"generic_filter": {
247+
"op": "IN",
248+
"values": [
249+
"almond",
250+
"turquoise"
251+
]
252+
},
253+
"negate": false
254+
},
255+
{
256+
"column_name": "Commit Date",
257+
"date_filter": {
258+
"datePeriod": "HOUR",
259+
"number": 3,
260+
"type": "LAST_N_PERIOD",
261+
"op": "EQ"
262+
}
263+
},
264+
{
265+
"column_name": "Sales",
266+
"generic_filter": {
267+
"op": "BW_INC",
268+
"values": [
269+
"100000",
270+
"70000"
271+
]
272+
},
273+
"negate": true
274+
}
275+
],
276+
"png_options": {
277+
"include_cover_page": true,
278+
"include_filter_page": true
279+
}
280+
}'
281+
----
282+
230283
[#transient-lb-content]
231284
==== Liveboard data with unsaved changes
232285

@@ -258,7 +311,7 @@ See also, link:https://developers.thoughtspot.com/docs/Enumeration_HostEvent#_ge
258311

259312
=== Answer Report API
260313

261-
To download Answer data via `/api/rest/2.0/report/answer` API, you need `DATADOWNLOADING` privilege and at least view access to the saved Answer.
314+
To download Answer data via `/api/rest/2.0/report/answer` API, you need at least view access to the saved Answer.
262315

263316
In the request body, specify the GUID or name of the Answer object as `metadata_identifier`.
264317

modules/ROOT/pages/deprecated-features.adoc

+29-6
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,19 @@ As ThoughtSpot applications evolve, some existing features will be deprecated an
1010

1111
== Deprecated features
1212

13-
[width="100%" cols="4,5,2,4"]
13+
[width="100%" cols="4,5,4,4"]
1414
[options='header']
1515
|=====
16-
|Feature|Impacted interface and release versions|Deprecation announcement date|Deprecation date
16+
|Feature|Impacted interface and release versions|Deprecation date |End of Support / removal from the product
17+
a|xref:deprecated-features.adoc#SageDeprecationNotice[Sage Search and Ask Sage] a|
18+
* ThoughtSpot Cloud 10.13.0.cl and later
19+
* Visual Embed SDK version 1.40.0 and later
20+
| September 2025 | September 2025
1721
a|xref:deprecated-features.adoc#connectionAPIs[Delete and update connection API v2 endpoints]
1822

1923
a|REST API v2 +
2024

21-
* ThoughtSpot Cloud 10.4.0.cl and later|November 2024 a| *Deprecated in*: November 2024 +
22-
*End of support*: September 2025
25+
* ThoughtSpot Cloud 10.4.0.cl and later|November 2024 a| September 2025
2326

2427
|xref:deprecated-features.adoc#IAMv1[IAMv1] a|
2528

@@ -41,7 +44,6 @@ a|REST API v2 +
4144
* ThoughtSpot Software 10.1.0.sw and later|February 2024| August 2024
4245
|xref:deprecated-features.adoc#_page_title_customization[Page title customization] a|Application UI +
4346

44-
4547
* ThoughtSpot Cloud 10.1.0.cl and later
4648
* ThoughtSpot Software 10.1.0.sw and later|February 2024| August 2024
4749
|xref:deprecated-features.adoc#_application_background_customization_via_ui[Application Background style customization] a|Application UI +
@@ -71,6 +73,27 @@ a|xref:deprecated-features.adoc#_deprecated_parameter_in_rest_api_v2_0_authentic
7173
||||
7274
|=====
7375

76+
[#SageDeprecationNotice]
77+
== Sage and Ask Sage deprecation
78+
79+
The Sage Search (the legacy Natural Language Search interface) and *Ask Sage* features will be deprecated in version 10.13.0.cl, which is scheduled for release in September 2025.
80+
Along with this, the xref:SageEmbed.adoc[SageEmbed] library in the Visual Embed SDK will also be deprecated.
81+
82+
//with no new enhancements or bug fixes supported after July 2025.
83+
84+
Impact on your instance::
85+
This change will impact all ThoughtSpot instances and applications that use the xref:embed-nls.adoc[Natural Language Search (legacy) interface embedded using the SageEmbed] library in Visual Embed SDK.
86+
87+
Recommended action::
88+
Customers using the legacy Natural Language Search interface and *Ask Sage* in their embedding applications are advised to upgrade to Spotter. We recommend that you start using Spotter by the 10.11.0.cl release (July 2025), so that you have sufficient time to test your rollout. +
89+
Spotter provides advanced natural language search capabilities and a conversational interface to allow users to interact with the AI analyst and ask follow-up questions. To know more about Spotter and learn how to embed Spotter in your embedding application, refer to the following documentation:
90+
91+
* link:https://www.thoughtspot.com/product/ai-analyst[About Spotter, window=_blank]
92+
* xref:embed-spotter.adoc[How to embed Spotter]
93+
* link:https://docs.thoughtspot.com/cloud/latest/spotter[How to use Spotter, window=_blank]
94+
+
95+
For additional queries and assistance, contact ThoughtSpot Support.
96+
7497
[#connectionAPIs]
7598
== Delete and update connection API v2 endpoints
7699
The following Connection API v2 endpoints are deprecated and will be removed from the product in September 2025: +
@@ -225,7 +248,7 @@ Effective from::
225248
* ThoughtSpot Cloud 8.8.0.cl
226249
* ThoughtSpot Software 9.0.1.sw
227250

228-
=== Recommended action::
251+
=== Recommended action
229252
Use the new version of REST API v2.0 endpoints and SDK versions available for these endpoints. For more information, see xref:rest-api-sdk-libraries.adoc[REST API v2.0 SDKs].
230253

231254
==== Documentation

modules/ROOT/pages/embed-authentication.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ a| Do not use this method if you don’t want the SDK to redirect your entire ap
6868
* If you want to use local authentication with ThoughtSpot `username` and `password`.
6969
* If you are developing or testing code for embedding ThoughtSpot in your host app. a|
7070
* Do not use this authentication method in production environments. +
71-
* This authentication will fail if multifactor authentication (MFA) [beta betaBackground]^Beta^ is enabled on your ThoughtSpot instance. Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
71+
* This authentication will fail if multifactor authentication (MFA) is enabled on your ThoughtSpot instance. Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
7272
|=====
7373

7474
== User accounts

0 commit comments

Comments
 (0)