From eb9c784fdbc2ae75b43c906e8681de54675d46f1 Mon Sep 17 00:00:00 2001 From: Rani Gangwar Date: Tue, 11 Aug 2026 22:23:30 +0530 Subject: [PATCH 1/5] SCAL-318536 --- modules/ROOT/pages/embed-pinboard.adoc | 6 +++-- modules/ROOT/pages/filters_overview.adoc | 6 +++-- modules/ROOT/pages/runtime-filters.adoc | 28 ++++++++++++++--------- modules/ROOT/pages/runtime-overrides.adoc | 9 ++++---- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/modules/ROOT/pages/embed-pinboard.adoc b/modules/ROOT/pages/embed-pinboard.adoc index 0f2c70d79..80de55335 100644 --- a/modules/ROOT/pages/embed-pinboard.adoc +++ b/modules/ROOT/pages/embed-pinboard.adoc @@ -296,8 +296,10 @@ To view specific data across the tables and charts on an embedded Liveboard, use [IMPORTANT] ==== -The SDK processes up to 49 runtime filters per embed. Any objects at index 50 or -beyond are silently dropped without an error or warning. For more information, see +Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. +When using the Visual Embed SDK `runtimeFilters` property, the limit is configurable by a +ThoughtSpot administrator, with a default and maximum of 1,000. Filters beyond the enforced +limit are silently dropped without an error or warning. For more information, see xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit]. ==== diff --git a/modules/ROOT/pages/filters_overview.adoc b/modules/ROOT/pages/filters_overview.adoc index d4c0d9849..f76e75d8f 100644 --- a/modules/ROOT/pages/filters_overview.adoc +++ b/modules/ROOT/pages/filters_overview.adoc @@ -28,8 +28,10 @@ You can define xref:runtime-filters.adoc[runtime filters] and xref:runtime-param [NOTE] ==== * Runtime filters do not display as UI filter components. -* The SDK processes at most 49 entries per embed. Any objects at index 50 or -beyond are silently dropped without an error or warning. See +* Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. +When using the Visual Embed SDK `runtimeFilters` property, the limit is configurable by a +ThoughtSpot administrator, with a default and maximum of 1,000. Filters beyond the enforced +limit are silently dropped without an error or warning. See xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit] for more information. ==== diff --git a/modules/ROOT/pages/runtime-filters.adoc b/modules/ROOT/pages/runtime-filters.adoc index 338c9a5d5..d228cbec0 100644 --- a/modules/ROOT/pages/runtime-filters.adoc +++ b/modules/ROOT/pages/runtime-filters.adoc @@ -46,28 +46,34 @@ This attribute is defined as `val1`, `val2`, `val3` in the object URLs and REST Some operators like `EQ` and `LE` accept a single operand, whereas `BW_INC_MAX`, `BW_INC_MIN`, `BW_INC`, `BW`, and `IN` accept multiple operands. === Maximum filter count +ThoughtSpot enforces separate filter count limits depending on how runtime filters are applied: -The SDK processes a maximum of 49 runtime filters per embedded object. +URL-based runtime filters:: -The internal constant `MAX_RUNTIME_FILTERS` is set to `50`, but the +URL-based runtime filters are capped at exactly 50. This limit is fixed and cannot be configured. The internal constant `MAX_RUNTIME_FILTERS` is set to `50`, but the parsing loop runs from index `1` up to (but not including) `50` (`index < MAX_RUNTIME_FILTERS`). This means filter values `col1`/`op1`/`val1` through `col49`/`op49`/`val49` are processed; `col50` and above are ignored. -This applies to both input paths: - -* URL query parameters: filter values appended to the embed URL -(`col1=`, `op1=`, `val1=`, `col2=`, …) -* `runtimeFilters` embed config property: filters passed as an array in the -SDK initialization config for `LiveboardEmbed`, `AppEmbed`, and -`SearchEmbed` - [IMPORTANT] ==== When the number of runtime filters exceeds 49, filters beyond that index are silently dropped. No error is thrown, no warning is emitted, and no embed event is fired. The embedded object renders using only the first 49 filters -without any indication that additional filters were discarded. This silent-drop behavior means that, if your application passes 60 runtime filters, the last 11 are ignored without any notification to the developer. Always validate filter counts in your application before passing them to the SDK. +without any indication that additional filters were discarded. +==== + +Embed payload runtime filters (Visual Embed SDK):: + +When you pass runtime filters as an array in the SDK initialization config for `LiveboardEmbed`, `AppEmbed`, `SpotterEmbed` and +`SearchEmbed` using the `runtimeFilters` property in the Visual Embed SDK, ThoughtSpot applies a configurable limit. The default and maximum value is 1000 filters. + +ThoughtSpot administrators can configure this limit for their instance. The value must be between 1 and 1000. +To check or update the configured limit, contact your ThoughtSpot administrator. + +[IMPORTANT] +==== +Regardless of the filter path, filters beyond the enforced limit are silently dropped. No error is thrown, no warning is emitted, and no embed event is fired. The embedded object renders using only the filters within the allowed count. Always validate filter counts in your application before passing them to the SDK. ==== === Supported data types diff --git a/modules/ROOT/pages/runtime-overrides.adoc b/modules/ROOT/pages/runtime-overrides.adoc index 4176940fc..96ef02ad6 100644 --- a/modules/ROOT/pages/runtime-overrides.adoc +++ b/modules/ROOT/pages/runtime-overrides.adoc @@ -21,10 +21,11 @@ Developers can set runtime filters in the Visual Embed SDK for the following emb After the object loads, runtime filters can be xref:runtime-filters.adoc#_adjust_runtime_filters_using_sdk_events[adjusted using the SDK events]. -WARNING: The SDK processes at most 49 entries per embed. Any objects at index 50 or -beyond are silently dropped without an error or warning. See -xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit] for -more information. +WARNING: Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. +When using the Visual Embed SDK `runtimeFilters` property, the limit is configurable by a +ThoughtSpot administrator, with a default and maximum of 1,000. Filters beyond the enforced +limit are silently dropped without an error or warning. See +xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit] for more information. == Runtime Parameters From e85138325ed6bb92b40bafbf28a0acaa6b260311 Mon Sep 17 00:00:00 2001 From: Rani Gangwar Date: Tue, 11 Aug 2026 22:42:41 +0530 Subject: [PATCH 2/5] SCAL-318536 --- modules/ROOT/pages/runtime-filters.adoc | 8 -------- 1 file changed, 8 deletions(-) diff --git a/modules/ROOT/pages/runtime-filters.adoc b/modules/ROOT/pages/runtime-filters.adoc index d228cbec0..de21f1bf3 100644 --- a/modules/ROOT/pages/runtime-filters.adoc +++ b/modules/ROOT/pages/runtime-filters.adoc @@ -55,14 +55,6 @@ parsing loop runs from index `1` up to (but not including) `50` (`index < MAX_RUNTIME_FILTERS`). This means filter values `col1`/`op1`/`val1` through `col49`/`op49`/`val49` are processed; `col50` and above are ignored. -[IMPORTANT] -==== -When the number of runtime filters exceeds 49, filters beyond that index are -silently dropped. No error is thrown, no warning is emitted, and no embed -event is fired. The embedded object renders using only the first 49 filters -without any indication that additional filters were discarded. -==== - Embed payload runtime filters (Visual Embed SDK):: When you pass runtime filters as an array in the SDK initialization config for `LiveboardEmbed`, `AppEmbed`, `SpotterEmbed` and From cdc94a8c83647a948fbeb91b22c040b752302331 Mon Sep 17 00:00:00 2001 From: Rani Gangwar Date: Wed, 12 Aug 2026 10:11:46 +0530 Subject: [PATCH 3/5] edited based on feedback --- modules/ROOT/pages/embed-pinboard.adoc | 2 +- modules/ROOT/pages/filters_overview.adoc | 2 +- modules/ROOT/pages/runtime-filters.adoc | 6 +++--- modules/ROOT/pages/runtime-overrides.adoc | 8 +++++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/ROOT/pages/embed-pinboard.adoc b/modules/ROOT/pages/embed-pinboard.adoc index 80de55335..b0c39e1d5 100644 --- a/modules/ROOT/pages/embed-pinboard.adoc +++ b/modules/ROOT/pages/embed-pinboard.adoc @@ -298,7 +298,7 @@ To view specific data across the tables and charts on an embedded Liveboard, use ==== Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. When using the Visual Embed SDK `runtimeFilters` property, the limit is configurable by a -ThoughtSpot administrator, with a default and maximum of 1,000. Filters beyond the enforced +ThoughtSpot administrator, with a default and maximum of 1,000 runtime filters. Filters beyond the enforced limit are silently dropped without an error or warning. For more information, see xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit]. ==== diff --git a/modules/ROOT/pages/filters_overview.adoc b/modules/ROOT/pages/filters_overview.adoc index f76e75d8f..fe4672d0d 100644 --- a/modules/ROOT/pages/filters_overview.adoc +++ b/modules/ROOT/pages/filters_overview.adoc @@ -30,7 +30,7 @@ You can define xref:runtime-filters.adoc[runtime filters] and xref:runtime-param * Runtime filters do not display as UI filter components. * Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. When using the Visual Embed SDK `runtimeFilters` property, the limit is configurable by a -ThoughtSpot administrator, with a default and maximum of 1,000. Filters beyond the enforced +ThoughtSpot administrator, with a default and maximum of 1,000 runtime filters. Filters beyond the enforced limit are silently dropped without an error or warning. See xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit] for more information. ==== diff --git a/modules/ROOT/pages/runtime-filters.adoc b/modules/ROOT/pages/runtime-filters.adoc index de21f1bf3..745ab1618 100644 --- a/modules/ROOT/pages/runtime-filters.adoc +++ b/modules/ROOT/pages/runtime-filters.adoc @@ -58,10 +58,10 @@ through `col49`/`op49`/`val49` are processed; `col50` and above are ignored. Embed payload runtime filters (Visual Embed SDK):: When you pass runtime filters as an array in the SDK initialization config for `LiveboardEmbed`, `AppEmbed`, `SpotterEmbed` and -`SearchEmbed` using the `runtimeFilters` property in the Visual Embed SDK, ThoughtSpot applies a configurable limit. The default and maximum value is 1000 filters. +`SearchEmbed` using the `runtimeFilters` property in the Visual Embed SDK, ThoughtSpot applies a configurable limit. The default and maximum value is 1000 runtime filters. + +Contact ThoughtSpot support to configure this limit for your instance. The value for the number of filters must be between 1 and 1000. -ThoughtSpot administrators can configure this limit for their instance. The value must be between 1 and 1000. -To check or update the configured limit, contact your ThoughtSpot administrator. [IMPORTANT] ==== diff --git a/modules/ROOT/pages/runtime-overrides.adoc b/modules/ROOT/pages/runtime-overrides.adoc index 96ef02ad6..44093dd9d 100644 --- a/modules/ROOT/pages/runtime-overrides.adoc +++ b/modules/ROOT/pages/runtime-overrides.adoc @@ -21,12 +21,14 @@ Developers can set runtime filters in the Visual Embed SDK for the following emb After the object loads, runtime filters can be xref:runtime-filters.adoc#_adjust_runtime_filters_using_sdk_events[adjusted using the SDK events]. -WARNING: Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. +[IMPORTANT] +==== +Runtime filter limits vary by input path. URL-based runtime filters are capped at 50. When using the Visual Embed SDK `runtimeFilters` property, the limit is configurable by a -ThoughtSpot administrator, with a default and maximum of 1,000. Filters beyond the enforced +ThoughtSpot administrator, with a default and maximum of 1,000 runtime filters. Filters beyond the enforced limit are silently dropped without an error or warning. See xref:runtime-filters.adoc#_maximum_filter_count[Runtime filter limit] for more information. - +==== == Runtime Parameters Parameters allow users to visualize data by running different scenarios with adjustable values. You can use Parameters within formulas when analyzing your data via Search, Liveboards, or Answers. From 21fa9bb3dcd52d82b9845a730609ae07a11aef66 Mon Sep 17 00:00:00 2001 From: Rani Gangwar Date: Wed, 12 Aug 2026 12:29:40 +0530 Subject: [PATCH 4/5] collections sdk support --- modules/ROOT/pages/collections.adoc | 8 ++--- .../ROOT/pages/customize-nav-full-embed.adoc | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/collections.adoc b/modules/ROOT/pages/collections.adoc index 4a5cf27ca..62cabb52c 100644 --- a/modules/ROOT/pages/collections.adoc +++ b/modules/ROOT/pages/collections.adoc @@ -9,10 +9,10 @@ ThoughtSpot now provides REST APIs that enable developers to organize different ThoughtSpot objects into an organizational container called *Collections*. These objects can be Liveboards, Answers, data models, tables, and even other Collections. Collections provide a powerful way to manage your data assets, making discovery and collaboration easier, while ensuring the integrity of embedded workflows. -[NOTE] -==== -The Collections APIs are in Beta and disabled by default on ThoughtSpot instances. To enable these APIs on your instance, contact ThoughtSpot Support. -==== +You can also embed the Collections page directly in your application using the Visual Embed SDK. +To navigate users to the Collections page in full application embedding, set `pageId` to `Page.Collections` in `AppViewConfig`. +For more information, see xref:customize-nav-full-embed.adoc#_navigate_to_the_collections_page[Navigate to the Collections page]. + == Before you begin diff --git a/modules/ROOT/pages/customize-nav-full-embed.adoc b/modules/ROOT/pages/customize-nav-full-embed.adoc index b90c71995..92d34d7b5 100644 --- a/modules/ROOT/pages/customize-nav-full-embed.adoc +++ b/modules/ROOT/pages/customize-nav-full-embed.adoc @@ -104,6 +104,31 @@ const embed = new AppEmbed("#embed", { == Command palette availability in embed In ThoughtSpot application, users can open the link:https://docs.thoughtspot.com/cloud/latest/thoughtspot-homepage#command-palette[command palette] by pressing kbd:[Cmd+K] on macOS or kbd:[Ctrl+K] on Windows to quickly navigate to objects and perform actions. However, when you embed ThoughtSpot, this feature is disabled and embedded pages include only the standard object search experience. +== Navigate to the Collections page + +To set the Collections page as the default landing page for full application embedding, use `Page.Collections` in the `pageId` property of `AppViewConfig`. + +// SOURCE: https://github.com/thoughtspot/visual-embed-sdk/blob/master/src/embed/app.ts + +[source,JavaScript] +---- +import { AppEmbed, Page } from '@thoughtspot/visual-embed-sdk'; + +const embed = new AppEmbed('#tsEmbed', { + // ... other embed view config + pageId: Page.Collections, + showPrimaryNavbar: true, +}); +embed.render(); +---- + +You can also use `navigateToPage` to route users to the Collections page programmatically after the app loads: + +[source,JavaScript] +---- +appEmbed.navigateToPage('collections'); +---- + == Customize the left navigation panel on the home page In the V3 and V4 experience modes, the left navigation panel on the *Insights* > *Home* page includes menu items such as *Spotter*, *Answers*, *Liveboards*, *SpotIQ Analysis*, *Monitor Subscriptions*, and more. You can hide this navigation panel by setting the `hideHomepageLeftNav` property to `true` in the SDK. Note that this attribute hides the left navigation only on the home page. @@ -181,6 +206,11 @@ To show or hide the *Scheduled Liveboards* section in the | [tag greenBackground tick]#✓# Supported | [tag greenBackground tick]#✓# Supported +| `HomeLeftNavItem.Collections` + +To show or hide the *Collections* menu item in the *Insights* left navigation panel. +| [tag greenBackground tick]#✓# Supported +| [tag greenBackground tick]#✓# Supported + |==== From 238fb9322060d9f4f0df40916461f484df416d13 Mon Sep 17 00:00:00 2001 From: Rani Gangwar Date: Wed, 12 Aug 2026 13:48:17 +0530 Subject: [PATCH 5/5] highlighted coll changes --- modules/ROOT/pages/collections.adoc | 4 ++-- modules/ROOT/pages/customize-nav-full-embed.adoc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/collections.adoc b/modules/ROOT/pages/collections.adoc index 62cabb52c..614c2d713 100644 --- a/modules/ROOT/pages/collections.adoc +++ b/modules/ROOT/pages/collections.adoc @@ -9,9 +9,9 @@ ThoughtSpot now provides REST APIs that enable developers to organize different ThoughtSpot objects into an organizational container called *Collections*. These objects can be Liveboards, Answers, data models, tables, and even other Collections. Collections provide a powerful way to manage your data assets, making discovery and collaboration easier, while ensuring the integrity of embedded workflows. -You can also embed the Collections page directly in your application using the Visual Embed SDK. +#You can also embed the Collections page directly in your application using the Visual Embed SDK. To navigate users to the Collections page in full application embedding, set `pageId` to `Page.Collections` in `AppViewConfig`. -For more information, see xref:customize-nav-full-embed.adoc#_navigate_to_the_collections_page[Navigate to the Collections page]. +For more information, see xref:customize-nav-full-embed.adoc#_navigate_to_the_collections_page[Navigate to the Collections page].# == Before you begin diff --git a/modules/ROOT/pages/customize-nav-full-embed.adoc b/modules/ROOT/pages/customize-nav-full-embed.adoc index 92d34d7b5..f28daee1d 100644 --- a/modules/ROOT/pages/customize-nav-full-embed.adoc +++ b/modules/ROOT/pages/customize-nav-full-embed.adoc @@ -104,7 +104,7 @@ const embed = new AppEmbed("#embed", { == Command palette availability in embed In ThoughtSpot application, users can open the link:https://docs.thoughtspot.com/cloud/latest/thoughtspot-homepage#command-palette[command palette] by pressing kbd:[Cmd+K] on macOS or kbd:[Ctrl+K] on Windows to quickly navigate to objects and perform actions. However, when you embed ThoughtSpot, this feature is disabled and embedded pages include only the standard object search experience. -== Navigate to the Collections page +== #Navigate to the Collections page# To set the Collections page as the default landing page for full application embedding, use `Page.Collections` in the `pageId` property of `AppViewConfig`. @@ -207,7 +207,7 @@ To show or hide the *Scheduled Liveboards* section in the | [tag greenBackground tick]#✓# Supported | `HomeLeftNavItem.Collections` + -To show or hide the *Collections* menu item in the *Insights* left navigation panel. +#To show or hide the *Collections* menu item in the *Insights* left navigation panel.# | [tag greenBackground tick]#✓# Supported | [tag greenBackground tick]#✓# Supported