diff --git a/modules/ROOT/pages/api-changelog.adoc b/modules/ROOT/pages/api-changelog.adoc index da7ec9f9f..8ae11f2ca 100644 --- a/modules/ROOT/pages/api-changelog.adoc +++ b/modules/ROOT/pages/api-changelog.adoc @@ -9,6 +9,88 @@ This page documents the changes introduced in each release of the Visual Embed SDK. For information about the REST API v2.0 changes, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +== Version 1.51.x, August 2026 + +[width="100%", cols="1,4"] +|==== +|[tag greenBackground]#NEW FEATURE# a| + +[discrete] +===== Spotter Analysts embedding [earlyAccess eaBackground]#Early Access# + +The Visual Embed SDK 1.51.0 introduces support for embedding Spotter with custom AI personas called Analysts (also referred to as Spots). Analysts are configurable AI personas with a specific data context, behavioral instructions, and personality. + +New configuration parameter::: +`showAnalysts`;; +When set to `true` in `SpotterEmbed`, displays the Analysts section in the embedded Spotter side navigation panel. The Analysts section is hidden by default in all embedded Spotter deployments. + +New action IDs for Analysts::: + +* `Action.CreateAnalyst` + +Controls the visibility of the option to create a new Analyst. +* `Action.EditAnalyst` + +Controls the visibility of the option to edit an existing Analyst. +* `Action.MakeACopyAnalyst` + +Controls the visibility of the option to copy an Analyst. +* `Action.ShareAnalyst` + +Controls the visibility of the option to share an Analyst with other users. +* `Action.DeleteAnalyst` + +Controls the visibility of the option to delete an Analyst. + +// NOTE TO WRITER: Verify exact Action enum string values and the analystId init param name with the SDK team before publishing. (SCAL-312622) + +.Example: SpotterEmbed with Analysts panel enabled and create/delete actions hidden +[source,javascript] +---- +const spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { + frameParams: { + width: '100%', + height: '100%', + }, + worksheetId: '<%=datasourceGUID%>', + showAnalysts: true, + hiddenActions: [ + Action.CreateAnalyst, + Action.DeleteAnalyst, + ], + disabledActions: [ + Action.ShareAnalyst, + ], + disabledActionReason: 'Sharing is not available in this context.', +}); +spotterEmbed.render(); +---- + +For more information, see xref:embed-spotter.adoc#spotter-analysts[Spotter Analysts in embedded apps]. + +(SCAL-310399, SCAL-312622) + +|[tag greenBackground]#NEW FEATURE# a| + +[discrete] +===== WYSIWYG Liveboard PDF — generally available + +The continuous Liveboard PDF experience, previously available in Beta as `isContinuousLiveboardPDFEnabled`, is now generally available in 26.8.0.cl. PDF exports now accurately match the on-screen Liveboard layout. + +The `Action.DownloadLiveboardAsContinuousPDF` action ID introduced in SDK 1.48.0 continues to control visibility of the new PDF download action. No configuration changes are required for existing embedded integrations — backward compatibility is preserved. + +For more information, see xref:embed-pinboard.adoc#wysiwyg-pdf[Download Liveboard as PDF]. + +(SCAL-309481) + +|[tag orangeBackground]#DEPRECATED# a| + +[discrete] +===== Navigation V1 and V2 deprecated + +SDK configuration properties that set the homepage or navigation experience to V1 or V2 are deprecated and ignored starting with ThoughtSpot 26.8.0.cl. All embedded sessions render V3 navigation and homepage by default. + +*Migration*: Remove any `discoveryExperience` configuration that sets `primaryNavbarVersion` to a V1 or V2 value. Verify that your embed configuration, custom CSS selectors, and DOM-dependent code are compatible with the V3 navigation structure. For more information, see xref:full-app-customize.adoc[Customize full application embedding]. + +(SCAL-312731) + +|==== + == Version 1.50.x, July 2026 [width="100%", cols="1,4"] @@ -153,1715 +235,5 @@ EmbedEvent:: * `EmbedEvent.Subscribed` + The SDK introduces the `EmbedEvent.Subscribed` to emit an event when a HostEvent listener is registered. You can use this event to dispatch host events during the initial load without race conditions. This is particularly useful for Spotter, where host events such as `HostEvent.ResetSpotterConversation` may be triggered immediately after load. -* `EmbedEvent.Error` + -The `EmbedEvent.Error` now fires on HostEvent payload validation failures. -* `EmbedEvent.ChangePersonalizedView` + -Emits when a user selects a different Personalized View or resets to default. - -HostEvent:: -* `HostEvent.GetExportRequestForCurrentPinboard` [.version-badge.breaking]#Breaking# + -The response payload of the `GetExportRequestForCurrentPinboard` passthrough -host event has been updated to include a `type` discriminator field, making it -consistent with the shape of other host event responses. It now returns `{ data: { v2Content }, type }` instead of `{ v2Content }` directly. This enhancement introduces a breaking change for any code that reads `result.v2Content` directly. Update your integration workflows to use `result.data.v2Content`. - -* `HostEvent.SelectPersonalizedView` + -Triggers the selection of a specific Personalized View and resets the default view on a Liveboard. - -⚠️Deprecated events and action IDs️:: -The following events are deprecated and replaced with new event IDs. - -* `EmbedEvent.UpdatePersonalisedView`. Use `EmbedEvent.UpdatePersonalizedView`. -* `EmbedEvent.SavePersonalisedView`. Use `EmbedEvent.SavePersonalizedView`. -* `EmbedEvent.DeletePersonalisedView`. Use `EmbedEvent.DeletePersonalizedView`. -* `HostEvent.ResetLiveboardPersonalisedView`. Use `HostEvent.ResetLiveboardPersonalizedView`. -* `Action.PersonalisedViewsDropdown`. Use `Action.PersonalizedViewsDropdown`. -* `Action.OrganiseFavourites`. Use `Action.OrganizeFavorites`. - - -|==== - - -== Version 1.47.x, April 2026 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| **Spotter chat history sidebar customization** - -The SDK introduces the `SpotterSidebarViewConfig` interface and the `spotterSidebarConfig` object with configuration controls to customize the appearance and contents of the chat history panel. Developers can use the following properties in the `spotterSidebarConfig` object to enable or disable chat history panel and customize the contents of the sidebar when enabled: - -* `enablePastConversationsSidebar` + -Controls the visibility of the past conversations sidebar panel. The chat history panel is disabled by default in embed view. When this property in `spotterSidebarConfig` is specified, it takes precedence over the standalone `enablePastConversationsSidebar` setting, which is deprecated from v1.47.0. - -* `spotterSidebarTitle` + -Allows adding custom title text for the sidebar header. - -* `spotterSidebarDefaultExpanded` + -Sets the default state of the sidebar to expanded or collapsed view. - -* `spotterChatRenameLabel` + -Allows setting a custom label for the **Rename** action in the conversation edit menu. - -* `spotterChatDeleteLabel` + -Allows setting a custom label for the **Delete** action in the conversation edit menu. - -* `spotterDeleteConversationModalTitle` + -Allows editing the title text of the chat delete confirmation modal. - -* `spotterPastConversationAlertMessage` + -Sets a custom message text for the past conversation banner alert. Defaults to the translated alert message. - -* `spotterBestPracticesLabel` + -Allows customizing the label for the best practices button in the sidebar footer. - -* `spotterDocumentationUrl` + -The best practices documentation link shown in the sidebar footer. You can customize the link by specifying the full URL. - -* `spotterConversationsBatchSize` + -Sets the number of conversations to fetch per batch when loading conversation history. Default is `30`. - -* `spotterNewChatButtonTitle` + -Allows customizing the title text for the **New chat** button in the sidebar. - -|[tag redBackground]#DEPRECATED# a| **Standalone `enablePastConversationsSidebar` attribute in Spotter embed** - -The standalone `enablePastConversationsSidebar` property on `SpotterEmbedViewConfig` and `AppViewConfig` is deprecated from SDK 1.47.0 and ThoughtSpot 26.4.0.cl. - -Use `enablePastConversationsSidebar` in the `spotterSidebarConfig` instead. When both are defined, the property in the `spotterSidebarConfig` object takes precedence. - -[source,javascript] ----- -// Deprecated -enablePastConversationsSidebar: false, - -// Recommended -spotterSidebarConfig: { - enablePastConversationsSidebar: true, - //... other config properties -} ----- - -|[tag greenBackground]#NEW FEATURE# a| **Spotter chat UI branding** - -The SDK introduces the `SpotterChatViewConfig` interface for customizing branding in Spotter tool response cards. You can pass these parameters as the `spotterChatConfig` object properties in `SpotterEmbed`, `AppEmbed`, or `LiveboardEmbed` where Spotter interface is used. - -* `hideToolResponseCardBranding` + -When set to `true`, hides the ThoughtSpot logo and icon in tool response cards. The branding label prefix is controlled separately via `toolResponseCardBrandingLabel`. Default value is `false`. - -* `toolResponseCardBrandingLabel` + -Custom label to replace the `ThoughtSpot` prefix in tool response cards. Set to an empty string (`''`) to hide the prefix entirely. - -[NOTE] -==== -These settings do not affect the external MCP tool branding. -==== - -|[tag greenBackground]#NEW FEATURE# a|**Liveboard embed enhancements** - -Personalized Liveboard view:: - -The `personalizedViewId` property allows embedding a saved personalized view of a Liveboard. A personalized view is a saved configuration that includes specific filter selections and changes applied by a user. To embed a personalized view of Liveboard, specify the GUID of the saved personalized view to load along with `liveboardId`. - -Centralized Liveboard filter setting:: - -When set to `true`, the `isCentralizedLiveboardFilterUXEnabled` enables displaying a unified modal to manage and update multiple filters at once, replacing the older individual filter interactions. This feature is disabled by default on ThoughtSpot Embedded instances. - -|[tag greenBackground]#NEW FEATURE# a|**Option to include current period in rolling date filters** - -If the current period inclusion in rolling date filters feature is enabled on your instance, the rolling date filters options such as **Last ** and **Next ** for the Liveboards and Answers in the embed view will allow you to include current period. For example, when you define a date range such as "Last 2 months", the date filter interface displays the **Include this month** checkbox. -To disable this feature, use the `isThisPeriodInDateFiltersEnabled` setting. To hide, show, or disable this option in the embed view, use the action ID, `Action.IncludeCurrentPeriod`. -|==== - - -== Version 1.46.x, March 2026 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| **Host events with page context framework** - -The Visual Embed SDK introduces the HostEvent V2 framework for improved handling and execution of host events in embedded ThoughtSpot experiences with multi-layer UI interactions. The v2 framework supports the page context feature, which tracks the top-most active layer in the user's current context. Developers can use this feature to route events based on the user's current context or set a specific target context for precise and predictable handling of host events. - -* To enable this feature, set `useHostEventsV2` to `true`. -* To retrieve the current context, use `getCurrentContext()`. -* To set a target context for a host event, use xref:ContextType.adoc[ContextType]. - -For more information, refer to the xref:events-context-aware-routing.adoc[Host events documentation]. - -|[tag redBackground]#DEPRECATED# a| **dataPanelV2** - -The `dataPanelV2` parameter is deprecated and can no longer be used to switch between the classic and new data panel experience. By default, the new data panel v2 experience is enabled on all ThoughtSpot embedded instances. - -|[tag greenBackground]#NEW FEATURE# a| **Spotter experience** -The SDK includes the following parameters, action IDs, and events to customize the Spotter embed experience. - -Chat history sidebar customization:: - -//* `SpotterSidebarViewConfig` interface with configuration parameters for customizing the visibility and appearance of the chat history sidebar. -//* `spotterSidebarConfig` properties for customizing the appearance and available options in the chat history sidebar. -* Action IDs for customizing the visibility and status of actions in the embedded Spotter interface: -** `Action.DataModelInstructions` for the data model instructions icon. -** `Action.SpotterSidebarHeader` for the chat history sidebar header -** `Action.SpotterSidebarFooter` for the chat history sidebar footer -** `Action.SpotterSidebarToggle` for the chat history toggle that expands or collapses the sidebar. -** `Action.SpotterNewChat` for the new chat icon in the chat history sidebar. -** `Action.SpotterPastChatBanner` for the banner in the chat history sidebar. -** `Action.SpotterChatMenu` for the chat menu component in the chat history sidebar. -** `Action.SpotterChatRename` for **Rename** action in the chat menu of a saved chat. -** `Action.SpotterChatDelete` for **Delete** action in the chat menu of a saved chat. -//** `Action.SpotterDocs` for best practices documentation icon in the chat history sidebar. - -Events:: -* `HostEvent.DataModelInstructions` + -Opens the Data Model instructions modal. -* `EmbedEvent.DataModelInstructions` + -Is emitted when a user clicks the Data Model instructions icon in the Spotter interface. -* `EmbedEvent.SpotterConversationRenamed` + -Is emitted when a user renames a saved chat. -* `EmbedEvent.SpotterConversationDeleted` + -Is emitted when a saved chat is deleted. -* `EmbedEvent.SpotterConversationSelected` + -Is emitted when a saved chat is selected in the chat history sidebar. - -|[tag greenBackground]#NEW FEATURE# | `enableLinkOverridesV2` + - -Use this configuration setting to override ThoughtSpot URLs on hover or when opening in a new tab. This is recommended over the earlier `linkOverride` flag for a better user experience. - -|[tag greenBackground]#NEW FEATURE# a| **Liveboard experience enhancements** - -* The `isLiveboardXLSXCSVDownloadEnabled` attribute adds XLSX and CSV to the available Liveboard download formats. -* The `isGranularXLSXCSVSchedulesEnabled` attribute allows you to include the entire Liveboard, specific visualizations, or only tables and pivot tables in the XLSX and CSV schedules. -|==== - -== Version 1.45.0, February 2026 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| **Spotter enhancements** - -You can now embed the Spotter 3 experience in your application and use features such as Auto mode for automatic data model selection, chat history, and a new chat prompt interface. - -* To enable the new chat prompt interface, set `updatedSpotterChatPrompt` to `true`. -* To use Auto mode, set the `worksheetId` to `auto_mode`. -* To enable Chat history, set `enablePastConversationsSidebar` to `true`. - -For more information, see xref:embed-spotter.adoc[Embedding Spotter] and xref:embed-ai-analytics.adoc#_feature_status_and_availability_in_embed_mode[Features available with Spotter 3 experience]. - -Events:: - -* `EmbedEvent.AddToCoaching` for the *Add to Coaching* workflow in a Spotter conversation session -* `HostEvent.AddToCoaching` to trigger the *Add to Coaching* action in a Spotter conversation session. -* `HostEvent.StartNewSpotterConversation` to trigger the action to start a new chat session with Spotter. - -[NOTE] -==== -On Spotter embed deployments running version 26.2.0.cl or later, the *Add to Coaching* feature is enabled by default. To disable or hide the *Add to Coaching* button, use the xref:Action.adoc#_inconversationtraining[InConversationTraining] action ID. -==== - -|[tag greenBackground]#NEW FEATURE# a| **Liveboard experience enhancements** + - -Styling and grouping:: - -* The `isLiveboardStylingAndGrouping` attribute, used to enable the Liveboard styling and grouping feature, is now replaced with `isLiveboardMasterpiecesEnabled`. While your existing configuration with the deprecated `isLiveboardStylingAndGrouping` attribute continues to work, we recommend switching to the new configuration setting. -* The following action IDs are now available to show, disable, or hide the grouping menu actions on a Liveboard: -** `Action.MoveToGroup` for the **Move to Group** menu action. -** `Action.MoveOutOfGroup` for the **Move out of Group** menu action. -** `Action.CreateGroup` for the *Create Group* menu action. -** `Action.UngroupLiveboardGroup` for the **Ungroup Liveboard Group** menu action. - -Filter chip masking:: -The `showMaskedFilterChip` boolean parameter is now available to control the visibility of masked filter chips on a Liveboard. When set to `true`, if a Liveboard is shared with a user who has restricted access due to column-level security, the filter chip corresponding to those inaccessible columns will be displayed as masked to that user. When set to `false`, the filter chip for inaccessible columns will not be visible to the user. -+ -For more information, see link:https://docs.thoughtspot.com/cloud/latest/security-data-object#csr-liveboard[Column security rules on Liveboards]. -+ -The `showMaskedFilterChip` setting is also available in full application embedding. - -|[tag greenBackground]#NEW FEATURE# a| **Publishing objects** - -The following action IDs are available for the data publishing menu actions in the *Data workspace* page: - -* `Action.Publish` for *Publish* -* `Action.ManagePublishing` for *Manage publishing* -* `Action.Unpublish` for *Unpublish* -* `Action.Parameterize` for *Parameterize* -|[tag greenBackground]#NEW FEATURE# a| **Error handling improvements** - -To handle errors in the embedding workflows, the SDK includes the following features: - -* `ErrorDetailsTypes` enum for categorizing error types, such as `API`, `VALIDATION_ERROR`, and `NETWORK`. -* `EmbedErrorCodes` enum with specific error codes for programmatic error handling. -* `EmbedErrorDetailsEvent` interface for structured error event handling. - -For more information, see link:https://developers.thoughtspot.com/docs/Enumeration_EmbedErrorCodes[EmbedErrorCodes] and link:https://developers.thoughtspot.com/docs/Enumeration_ErrorDetailsTypes[ErrorDetailsTypes]. -|==== - -== Version 1.44.x, January 2026 - -[width="100%" cols="1,4"] -|==== - -|[tag redBackground]#DEPRECATED# | **Use `minimumHeight` instead of `defaultHeight`** + - -The `defaultHeight` parameter is deprecated in Visual Embed SDK v1.44.2 and later. -To set the minimum height of the embed container for ThoughtSpot components such as a Liveboard, use the `minimumHeight` attribute instead. - -|[tag greenBackground]#NEW FEATURE# a| *Intercepting API calls* + -The SDK provides the following attributes to intercept API calls and handle interception via events and custom workflows: - -//* `enableApiIntercept` + -//When set to true, enables the feature on your ThoughtSpot embed. -* `interceptUrls` + -Allows configuring which API calls to intercept. -* `interceptTimeout` + -Sets the timeout duration for handling interception. -* `isOnBeforeGetVizDataInterceptEnabled` + -When set to true, it enables use of `EmbedEvent.OnBeforeGetVizDataIntercept` to emit and intercept search execution calls initiated by users and implement custom logic or workflows to allow or restrict search execution. -* `EmbedEvent.ApiIntercept` + -Emits when an API call matching the conditions defined in `interceptUrls` is detected. - -For more information, see xref:api-intercept.adoc[Intercept API calls and search requests]. -|==== - -== Version 1.43.0, November 2025 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| *Code-based custom actions* - -The following enumerations are available for code-based custom actions: - -* `CustomActionTarget` + -To define the target object for the custom action, such as on a Liveboard, visualization, Answer, or in Spotter. -* `CustomActionsPosition` + -To define the position of the custom action in the target object, such as primary menu, **More** options menu image:./images/icon-more-10px.png[the more options menu], or the contextual menu. -|[tag greenBackground]#NEW FEATURE# | *Attribute to set Parameter chip visibility during overrides* + -The `HostEvent.UpdateParameters` event now supports configuring the `isVisibleToUser` attribute to show or hide the Parameter chips after an override. For more information, see xref:runtime-parameters.adoc#_show_or_hide_parameter_chips_in_embedded_sessions[Show or hide Parameter chips in embedded sessions]. -|==== - -== Version 1.42.0, October 2025 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|*Runtime overrides in Spotter embed* - -The Visual Embed SDK now supports runtime overrides in Spotter embed. - -* To apply runtime filters, use the `runtimeFilters` object -* To apply runtime Parameters, use the `runtimeParameters` object. - -|[tag greenBackground]#NEW FEATURE# a|*PNG images in Liveboard schedule notifications* + -To enable embedding PNG images of Liveboards in scheduled job notifications sent to subscribers, the SDK provides the `isPNGInScheduledEmailsEnabled` boolean parameter. When set to true, scheduled emails will include a PNG image of the Liveboard. - -The SDK also provides the following action IDs: - -* `Action.PngScreenshotInEmail` + -Adds the option to include a PNG screenshot in the notification email body when scheduling emails in ThoughtSpot. -* `Action.RemoveAttachment` + -Allows the user to remove an attachment from the email configuration in the schedule email dialog. -|[tag greenBackground]#NEW FEATURE# a|*Spotter embed* - -Action IDs:: -The following action IDs are available for Spotter embedding and are currently supported only in the `hiddenActions` array: - -* `Action.SpotterWarningsBanner` + -Action ID to control the visibility of the Spotter warnings banner in the UI. This banner displays general warnings or informational messages related to Spotter results or queries. -* `Action.SpotterWarningsOnTokens` + -Action ID to control the visibility of warning indicators on individual Spotter tokens parsed from a Spotter query. -* `Action.SpotterTokenQuickEdit` + -Action ID to enable or disable the link:https://docs.thoughtspot.com/cloud/latest/spotter-getting-started#quick-edits[quick edit functionality^] for Spotter tokens. -|==== - -== Version 1.41.0, September 2025 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|*React component for Spotter Agent embed* - -The Visual Embed SDK now supports embedding Spotter Agent feature without a body or Spotter interface in a React app. For ease of implementation, the SDK also provides a custom React hook, `useSpotterAgent`. - -For more information, see xref:embed-ts-react-app.adoc#_embed_spotter_agent_in_your_own_app[Spotter Agent embedding in a React app]. - -|[tag greenBackground]#NEW FEATURE# a|*Event handlers for Spotter embed* - -The following event handlers are now available for Spotter embed: - -* `EmbedEvent.SpotterInit` + -Fires when Spotter embed component rendering is initialized. -* `EmbedEvent.QueryChanged` + -Fires when the Spotter query is updated by the user. -* `HostEvent.AskSpotter` + -Triggers *Ask Spotter* action for visualizations. -* `HostEvent.GetParameters` + -Triggers the action to fetch runtime Parameters applied on a visualization. -* `HostEvent.UpdateParameters` + -Triggers the action to update runtime Parameters for a Spotter-generated Answer. -* `HostEvent.GetTML` + -Triggers the action to get TML representation of a Spotter-generated Answer. - -For more information, see xref:EmbedEvent.adoc[EmbedEvent] and xref:HostEvent.adoc[HostEvent]. - -|[tag greenBackground]#NEW FEATURE# a|*Event handlers for Spotter Agent embed* - -You can now use the following host events in Spotter Agent embedding: - -- `HostEvent.DownloadAsCsv` + -Triggers the action to download a Spotter-generated Answer in CSV format. -- `HostEvent.DownloadAsPng` + -Triggers the action to download a Spotter-generated Answer in PNG format. -- `HostEvent.DownloadAsXlsx` + -Triggers the action to download a Spotter-generated Answer in XLSX format. -- `HostEvent.DownloadAsPdf` + -Triggers the action to download the PDF version of a Spotter-generated Answer. -- `HostEvent.Pin` + -Triggers the action to add a Spotter-generated Answer to a Liveboard. -- `HostEvent.Save` + -Triggers the *Save* action for a Spotter-generated Answer. - -For more information, see xref:HostEvent.adoc[HostEvent]. - -|[tag greenBackground]#NEW FEATURE# a| *Lazy loading of visualizations on an embedded Liveboard* - -You can now use the `lazyLoadingForFullHeight` parameter with the `fullHeight` to progressively load visualizations on an embedded Liveboard. When both these attributes are enabled, only the visualizations in the current viewport are loaded initially, while the other visualizations load as the user scrolls the Liveboard page. - -You can also set the margin property for lazy loading to define when the visualization should load. - -For more information, see xref:lazy-loading-fullheight.adoc[Lazy loading of visualizations in an embedded Liveboard]. - -|[tag greenBackground]#NEW FEATURE# a| *Full application embed* + - -You can now enable the persona-based left navigation panel and home page experience on your ThoughtSpot instance. This feature is disabled by default on ThoughtSpot instances and is available for Early Access. When it's enabled on your ThoughtSpot instance, you can roll out the new experience on embedding applications by configuring the xref:AppViewConfig.adoc#_discoveryexperience[`discoveryExperience`] attribute. - -When enabled, the left navigation panel organizes the application menu into persona-based contextual sections. For example, the *Insights* icon for business users, the *Data Workspace* icon for Analysts and Data engineers, and the *Develop* icon for developers. Your application users can navigate to each option using the tabs in the left navigation panel. The new interface also provides a slider to allow users to view or hide the left navigation panel. -|==== - -== Version 1.40.0, July 2025 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| *Fullscreen presentation mode controls for embedded Liveboards and visualizations* + -Developers can now control whether a visualization or Liveboard can be presented in full screen mode using the `disableFullscreenPresentation` attribute. By default, the full screen mode is disabled on embedded Liveboards and visualizations. -|[tag greenBackground]#NEW FEATURE# a| *PDF download settings* + -Developers can now control the display of *Include cover page* and *Include filter page(s)* options on the Download PDF dialog for Liveboards. The *Include cover page* and *Include filter page(s)* options are disabled by default on ThoughtSpot instances. When this feature is enabled, developers can use the `coverAndFilterOptionInPDF` attribute to show or hide these options for the Liveboard users in their embedding app. - -|[tag greenBackground]#NEW FEATURE# a| *Parameter for overriding a default primary action* + - -If Spotter is enabled on your instance, the *Spotter* button appears by default as the primary action on embedded Liveboard charts; if Spotter is not enabled, the *Explore* button is set as the primary action. If you want to replace the primary action with a different action, you can now use the `primaryAction` attribute. - -For more information, see xref:embed-actions.adoc#_override_default_primary_actions[Override default primary action]. - -|[tag greenBackground]#NEW FEATURE# a| *Full application embed experience enhancements* + - -The SDK now includes the `hideObjectSearch` property, which allows developers to hide the object search button in the navigation bar when embedding the full application. - -|[tag greenBackground]#NEW FEATURE# a| *Host events* + - -In this version, the SDK introduces the following host event handlers: - -- `HostEvent.ExitPresentMode` + -Triggers the exit action that allows users to exit the Liveboard or visualization present mode. -- `HostEvent.SpotterSearch` + -Triggers a search operation for the specified query string in Spotter embed. -- `HostEvent.PreviewSpotterData` + -Triggers the *Preview data* action that shows the data used for Spotter conversations. -- `HostEvent.ResetSpotterConversation` + -Triggers the *Reset* action to reset a Spotter conversation. -- `HostEvent.EditLastPrompt` + -Triggers the edit prompt action. -- `HostEvent.DeleteLastPrompt` + -Triggers the delete prompt action. - -For more information, see xref:HostEvent.adoc[HostEvent]. - -|[tag greenBackground]#NEW FEATURE# a|*Events support for Spotter embed* - -You can now use the following host events in Spotter embed: - -- `HostEvent.DownloadAsCsv` -- `HostEvent.DownloadAsPng` -- `HostEvent.DownloadAsXlsx` -- `HostEvent.Edit` -//- `HostEvent.GetParameters` -//- `HostEvent.GetTML` -- `HostEvent.MakeACopy` -- `HostEvent.Pin` -- `HostEvent.Save` - -For more information, see xref:HostEvent.adoc[HostEvent]. - -|[tag greenBackground]#NEW FEATURE# a| *Lazy loading with full height* - -The SDK introduces `lazyLoadingForFullHeight` parameter, which enables progressive loading of visualizations on an embedded Liveboard. -This parameter works in conjunction with the `fullHeight` attribute. When both these attributes are enabled, only the visualizations in the current viewport are loaded initially, while the other visualizations load as the user scrolls the Liveboard page. - -[NOTE] -==== -To use these attributes effectively in embedded applications, your ThoughtSpot instance must be upgraded to version 10.12.0.cl or later. -==== -|==== - - -== Version 1.39.0, July 2025 - -[width="100%" cols="1,4"] |==== -|[tag greenBackground]#NEW FEATURE# a| *Spotter embed components with new names* + -The following Spotter embed components are now deprecated and replaced with new components in the SDK and Visual Embed Playground: - -* `ConversationEmbed` + -Replaced with `SpotterEmbed` -* `ConversationViewConfig` + -Replaced with `SpotterEmbedViewConfig` -* `BodylessConversation` + -Replaced with `SpotterAgentEmbed` -* `BodylessConversationViewConfig` + -Replaced with `SpotterAgentEmbedViewConfig` - -The deprecated components with old names in the existing Spotter embed implementations will continue to function until further notice. For code samples with new component names, see xref:embed-spotter.adoc[Spotter embed documentation]. - -|[tag greenBackground]#NEW FEATURE# a| *Action ID for Spotter in-conversation training* + -For ThoughtSpot instances that have the new Spotter in-conversation training workflow enabled, the SDK provides the action ID `Action.InConversationTraining` to manage the visibility of the *Add to Coaching* button on Answers generated from Spotter prompts. - -[NOTE] -The *Add to Coaching* feature is currently in beta and is turned off by default on embed deployments. To enable this feature on your instance, contact ThoughtSpot Support. - -|[tag greenBackground]#NEW FEATURE# a|*Events support for Spotter embed* - -New embed events:: - -- `EmbedEvent.ExitPresentMode` + -Emits when a user exits the Liveboard or visualization presentation mode. -- `EmbedEvent.LastPromptDeleted` + -Emits when a query prompt in Spotter embed is deleted. -- `EmbedEvent.LastPromptEdited` + -Emits when a query prompt in Spotter embed is edited. -- `EmbedEvent.ResetSpotterConversation` + -Emits when a Spotter query is reset. -- `EmbedEvent.PreviewSpotterData` + -Emits when a user clicks the Preview data button in the Spotter conversation panel. -- `EmbedEvent.SpotterQueryTriggered` -Emits when a Spotter query is triggered. - -The following embed events are also supported in Spotter embed: - -- `EmbedEvent.AddRemoveColumns` -- `EmbedEvent.AnswerChartSwitcher` -- `EmbedEvent.AuthExpire` -- `EmbedEvent.AuthInit` -- `EmbedEvent.CopyToClipboard` -- `EmbedEvent.CustomAction` -- `EmbedEvent.Data` -- `EmbedEvent.DataSourceSelected` -- `EmbedEvent.DialogClose` -- `EmbedEvent.DialogOpen` -- `EmbedEvent.Download` -- `EmbedEvent.DownloadAsCsv` -- `EmbedEvent.DownloadAsPng` -- `EmbedEvent.DownloadAsXlsx` -- `EmbedEvent.DrillDown` -- `EmbedEvent.DrillExclude` -- `EmbedEvent.DrillInclude` -- `EmbedEvent.Edit` -- `EmbedEvent.Error` -- `EmbedEvent.Load` -- `EmbedEvent.Pin` -- `EmbedEvent.Save` -- `EmbedEvent.TableVizRendered` -- `EmbedEvent.VizPointClick` -- `EmbedEvent.VizPointDoubleClick` -- `EmbedEvent.VizPointRightClick` - -For more information, see xref:EmbedEvent.adoc[EmbedEvent]. - -|==== - -== Version 1.38.0, June 2025 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| *String IDs for text customization* + -Developers can now customize a specific occurrence of a visible text string in the ThoughtSpot UI using the `stringIDs` object in the customization interface. - -To locate the string IDs, SDK provides the `exposeTranslationIds` attribute. By setting `exposeTranslationIds` to `true` in the Playground, you can find the string ID of the UI text and use it in your customization code. - -Additionally, the SDK provides the `StringIDsUrl` attribute to allow using a JSON file with string IDs and custom strings to override the visible text in the UI. - -For more information, see xref:customize-text-strings.adoc[Customize text strings]. - -|[tag greenBackground]#NEW FEATURE# a| *Hide columns on list pages* + - -In full app embedding, you can now hide the following columns on the *Liveboards* and *Answers* listing pages using the `hiddenListColumns` array: - -* *Author* + -`hiddenListColumns: [ListPageColumns.Author]` -* *Favorite* + -`hiddenListColumns: [ListPageColumns.Favourite]` -* *Last modified* + -`hiddenListColumns: [ListPageColumns.DateSort]` -* *Tags* + -`hiddenListColumns: [ListPageColumns.Tags]` -* *Share* + -`hiddenListColumns: [ListPageColumns.Share]` + - -For more information, see xref:full-app-customize.adoc#_hide_columns_on_list_pages_new_experience[Customize full application embed]. -|==== - -== Version 1.37.0, April 2025 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| -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 pairs. -This feature is available only if third-party integration is enabled on your instance and the script hosting domain URL is added to the CSP allowlist. - -For more information, see xref:3rd-party-script.adoc[Integrate third-party tools and allow custom scripts]. - -|[tag greenBackground]#NEW FEATURE# a| -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. - -|[tag greenBackground]#NEW FEATURE# a| This version of the SDK supports the following embed and host events: - -Embed Events:: - -* `EmbedEvent.TableVizRendered` + -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]. - -* `EmbedEvent.CreateLiveboard` + -Emits when a Liveboard is created. - -Host Events:: - -* `HostEvent.TransformTableVizData` + -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. - -* `HostEvent.Remove` + -Triggers the *Delete* action on a Liveboard. -|==== - -== Version 1.36.0, February 2025 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| -The following HostEvents now allow custom parameters to set object properties programmatically: - -* `HostEvent.SaveAnswer` + -Allows adding `name` and `description` text strings. When these parameters are defined, the event triggers the Save action to save the Answer with the predefined properties without opening the *Describe your Answer* modal. -* `HostEvent.Pin` + -Allows adding custom properties for visualization ID, name, and description, Liveboard ID, and Tab ID. When these parameters are defined, the event triggers an action to pin the Answer to the Liveboard specified in the code, without opening the *Pin* modal. - -For more information, see xref:events-hostEvents.adoc#hostEventParameterization[Host Events] documentation. - -|[tag greenBackground]#NEW FEATURE# a| - -New configuration attributes:: - -* `disableSourceSelection` + -Disables data source selection panel for embed users when set to `true`. -* `hideSourceSelection` + -Hides data source selection panel when set to `true` -* `locale` + -Sets the xref:locale-setting.adoc[locale and regional settings] for the Spotter interface. -* `showSpotterLimitations` + -Shows functional limitations of Spotter when set to `true` -* `hideSampleQuestions` + -Hides sample questions that appear on the default Spotter page. - -Action IDs for menu customization:: -Use the following action IDs in the `disabledActions`, `visibleActions`, or `hiddenActions` array to disable, show, or hide menu actions and elements in the embedded Spotter interface: - -* `Action.PreviewDataSpotter` + -The *Preview data* button on the Spotter conversation panel. -* `Action.ResetSpotterChat` + -The *Reset* button on the Spotter conversation panel. -* `Action.SpotterFeedback` + -The feedback widget on Spotter-generated charts. -* `Action.EditPreviousPrompt` + -The edit icon on the prompt panel. -The Prompt panel appears after Spotter generates a response to a user query. -* `Action.DeletePreviousPrompt` + -The delete icon on the prompt panel. - -//// -* `Action.EditTokens` + -The option to edit tokens on a Spotter-generated chart or table. -//// -CSS variables:: - -The following new CSS variables are available for Spotter interface customization: - -* `--ts-var-spotter-input-background` -* `--ts-var-spotter-prompt-background` - -For more information about Spotter customization, see xref:embed-spotter.adoc#SpotterCSS[Customize styles]. -|[tag greenBackground]#NEW FEATURE# a| - - -Configuration attributes:: - -* `hideIrrelevantChipsInLiveboardTabs` + -Hides filter chips on a Liveboard when set to `true`. - -* `isLiveboardCompactHeaderEnabled` + -Enables the compact Liveboard header feature when set to `true`. - -Action IDs:: -Use the following action IDs in the `disabledActions`, `visibleActions`, or `hiddenActions` array to disable, show, or hide menu actions on an embedded Liveboard: - -* `Action.DisableChipReorder` + -ID for the action that disables filter chip reordering. -* `Action.ChangeFilterVisibilityInTab` - -|==== - -== Version 1.35.0, December 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| -The SDK now provides the `isUnifiedSearchExperienceEnabled` setting to customize the Search experience on ThoughtSpot Home page for embedding application users: - -* When set to `true`, the split search experience is disabled and the Search bar on the Home page functions as Natural Language Search interface -* When set to `false`, the split search experience is enabled and object Search is set as the default Home page search experience. - -For more information, see xref:full-app-customize.adoc#_search_components[Search interface on the Home page in full application embedding]. - -|[tag greenBackground]#NEW FEATURE# a| The `overrideOrgId` parameter in the SDK provides the ability to override Org context for embedding application users. This parameter allows users authenticated to an Org to temporarily view content from another Org. Before specifying the Org ID for override, make sure the Per Org URL feature is enabled on your ThoughtSpot instance. To enable Per Org URL on your instance, contact ThoughtSpot Support. -|==== - -== Version 1.34.0, November 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| You can now embed the following ThoughtSpot Spotter components in your app: - -* `SpotterEmbed` + -Embeds Spotter conversation interface in your app -* `SpotterAgentEmbed` + -Creates a conversation component without the body, which can be integrated into chatbots or other conversational apps. - -For more information, see xref:embed-spotter.adoc[Embed Spotter] and xref:spotter-in-custom-chatbot.adoc[Integrate Spotter into your chatbot]. - -|[tag greenBackground]#NEW FEATURE# a|The following parameters and enumerations are available for customizing Liveboard experience: - -* `showLiveboardVerifiedBadge` + -Shows or hides the Liveboard verified badge. Available if the Liveboard compact header feature is enabled. -* `showLiveboardReverifyBanner` + -Shows or hides the re-verify banner. Available if the Liveboard compact header feature is enabled. -* `Action.KPIAnalysisCTA` + -Action ID to show, hide, or disable the **Analyze CTA** action on a KPI chart. - -|[tag greenBackground]#NEW FEATURE# |You can now use the `HostEvent.GetIframeUrl` to get the iframe src URL from the Visual Embed Playground. If you are embedding ThoughtSpot in apps like Salesforce and Sharepoint without the SDK, use this event to generate the iframe URL. - -|[tag greenBackground]#NEW FEATURE# a|The following parameters are available for customizing Search experience: - -* `collapseDataPanel` -Minimizes the data panel view. Users can click the data panel header any time to expand the panel. -* `collapseSearchBar` -Sets the initial state of the search bar when embedding a saved Answer. - -|[tag greenBackground]#NEW FEATURE# a| The following settings are available for customizing the new home page and navigation experience in full app embedding: - -* `HomeLeftNavItem.LiveboardSchedules` + -The Liveboard schedules menu on the left navigation panel. - -Action enumerations:: - -* `Action.EditScheduleHomepage` + -To show, disable, or hide the *Edit* action on the *Liveboard schedules* page -* `Action.PauseScheduleHomepage` + -To show, disable, or hide the *Pause* action on the *Liveboard schedules* page -* `Action.ViewScheduleRunHomepage` + -To show, disable, or hide the *View run history* action on the *Liveboard schedules* page -* `Action.DeleteScheduleHomepage` + -To show, disable, or hide the *Delete* action on the *Liveboard schedules* page -* `Action.UnsubscribeScheduleHomepage` + -To show, disable, or hide the *Unsubscribe* action on the *Liveboard schedules* page -|==== - -== Version 1.33.x, October 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| You can now customize the search experience for the embedded ThoughtSpot **Home** page using `homePageSearchBarMode`. By default, the **Home** page includes the Object Search bar, which allows finding popular Liveboards and Answers. - -You can set the `homePageSearchBarMode` property to one of the following options: - -** `aiAnswer` + -Displays the search bar for Natural Language Search. -** `none` -Hides the Search bar on the **Home** page. Note that it only hides the Search bar on the **Home** page and doesn't affect the Object Search bar visibility on the top navigation bar. -** `objectSearch` (default) + -Displays Object Search bar on the **Home** page. -|[tag greenBackground]#NEW FEATURE# a|The SDK now allows you to set the focus on the Search bar or outside the Search bar when rendering the embedded Search page. Use the `focusSearchBarOnRender` property to set the position of the cursor focus. -|[tag greenBackground]#NEW FEATURE# a| The SDK includes the following Event and Action enumeration members: - -Events:: - -* `EmbedEvent.OnBeforeGetVizDataIntercept` + -Developers can emit this event to intercept search execution, allow or restrict certain queries, and show an error message with custom text for restricted queries. To allow the embedded page to emit this event, you must set the `isOnBeforeGetVizDataInterceptEnabled` attribute to `true`. - -* `EmbedEvent.ParameterChanged` + -Emitted when a Parameter is changed on a saved Answer or Liveboard. - -Actions:: - -* `Action.ManageTags` + -Use this action enumeration to disable, show, or hide the **Manage tags** button on the Liveboards and Answers pages. -|==== - -== Version 1.32.x, August 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The following new action enumerations are available in this version: + - -* `Action.CreateLiveboard` for the *Create Liveboard* menu action on the Liveboards lists page. + -* `Action.SyncToTeams` for the **Sync to Teams** menu action on Liveboard visualizations. -* `Action.SyncToSlack` for the **Sync to Slack** action on Liveboard visualizations. -* `Action.AddQuerySet` for the **Add Query Set** action on the data panel (new experience) of the Search page. -* `Action.AddColumnSet` for the **Add Column Set** action on the data panel (new experience) of the Search page. -* `Action.AddDataPanelObjects` for the **Add** menu that includes sub-menu options such as Formulas, Parameters, Query set, and Column set actions. -* `Action.OrganiseFavourites` for the **Organize** action above the Favorites panel on the modular Homepage (New experience) -For more information, see xref:Action.adoc[Actions]. -|[tag greenBackground]#NEW FEATURE#| Developers can now use the `disableRedirectionLinksInNewTab` parameter to disable links and redirection of links in the embedded view. -|[tag greenBackground]#NEW FEATURE# a|You can now enable `enable2ColumnLayout` on a Liveboard to adjust the page view according to the width and resolution of users' devices. -|| -|==== - -== Version 1.31.x, July 2024 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| Runtime filters + - -* `NOT_IN` operator for Runtime filters. -For more information, see xref:runtime-filters.adoc#runtimeFilterOp[Runtime filters]. -* `excludeRuntimeParametersfromURL` parameter to exclude or remove runtimeParameters from the URL. -|[tag greenBackground]#NEW FEATURE# |For performance optimization, developers can choose to load embedded views in a lightweight V2 shell by setting `enableV2Shell_experimental` to `true`. -|==== - -== Version 1.30.0, June 2024 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| **CSS variables for new homepage experience** - -* `--ts-var-home-watchlist-selected-text-color` + -* `--ts-var-home-card-color` + -* `--ts-var-home-favorite-suggestion-card-text-color` + -* `--ts-var-home-favorite-suggestion-card-background` + -* `--ts-var-home-favorite-suggestion-card-icon-color` - -For more information, see xref:css-customization.adoc#_homepage_modules_new_experience_mode[CSS variables and overrides]. -|==== - -== Version 1.29.0, May 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| **Ask Sage** - -With Ask Sage [beta betaBackground]^Beta^ embedded application users can ask follow-up questions on a visualization generated from a Natural Language Search query, converse with AI analyst, and refine results. To enable this feature, set `enableAskSage` to `true`. - -Action enumeration:: -To show, hide, or disable Ask Sage on a visualization, add `Action.AskAi`. For example, -+ -[source,JavaScript] ----- -hiddenActions: [Action.AskAi] ----- - -Events:: -* `HostEvent.AskSage` + -Triggers the **Ask Sage** action on a Liveboard visualization. -* `EmbedEvent.AskSageInit` + -Emits when the **Ask Sage** action is initialized. -* `HostEvent.GetParameters` + -Triggers a fetch action to get runtime Parameters. -* `HostEvent.UpdateParameters` + -Updates runtime Parameters -* `HostEvent.ResetLiveboardPersonalisedView` + -Resets a personalized Liveboard view. -* `HostEvent.UpdateCrossFilter` + -Updates cross filters applied on a Liveboard. -|==== - -== Version 1.28.x, April 2024 - -[width="100%" cols="1,4"] -|===== -|[tag greenBackground]#NEW FEATURE# a| The SDK includes the following new enumeration members in v1.28.0: - -** `Action.VerifiedLiveboard` + -Can be used to show or hide the *Verified Liveboard* banner. -|[tag greenBackground]#NEW FEATURE# a| To access the new Home page and global navigation experience in the full application embedding, you can use the `modularHomeExperience` property in the SDK. The modular homepage experience is turned off by default and is available as an Early Access feature in 9.12.5.cl release. When `modularHomeExperience` is set to `true`, you can use the following parameters in the SDK to control the application experience: - -* `hiddenhomeleftnavitems` -* `hiddenhomepagemodules` -* `hideapplicationswitcher` -* `hidehomepageleftnav` -* `hideorgswitcher` -* `reorderedhomepagemodules` -* `hiddenhomeleftnavitems` -* `HomeLeftNavItem` - -For more information, see xref:full-app-customize.adoc[Customize full application embedding] and xref:AppViewConfig.adoc[AppViewConfig]. -|[tag greenBackground]#NEW FEATURE# a| The following embed event is available from the v1.28.0 onwards: - -`EmbedEvent.Rename` + -Emits when an embedded Liveboard or visualization is renamed. -|[tag greenBackground]#NEW FEATURE# a| TML actions - -The following TML menu actions are now grouped under *TML* sub-menu of the **More** image:./images/icon-more-10px.png[the more options menu] menu on Answer page. - -* Export TML -* Edit TML -* Update TML - -To show, hide, or disable these actions in the embedded mode, use the following format: - -[source,JavaScript] ----- - // to show the TML menu and its sub-menu options -visibleActions: [Action.TML, Action.ExportTML, Action.EditTML] ----- - -[source,JavaScript] ----- - // to hide all TML actions -hiddenActions: [Action.TML] ----- - -[source,JavaScript] ----- - // to disable all TML actions -disabledActions: [Action.TML] ----- -|[tag greenBackground]#NEW FEATURE# | You can now reset authentication token and fetch a new token for new authentication requests. -For more information, see link:https://developers.thoughtspot.com/docs/Function_resetCachedAuthToken[resetCachedAuthToken]. - -|[tag greenBackground]#NEW FEATURE#| You can now override the default number, date, and currency format defined by your locale settings. To override the default settings, use the following parameters: - -* `numberFormatLocale` + -* `dateFormatLocale` + -* `currencyFormat` - -For more information, see xref:locale-setting.adoc#_set_locale_in_the_sdk[Customize locale]. - -|[tag greenBackground]#NEW FEATURE# |Tokenized fetch + -The SDK now provides a fetch wrapper that adds the authentication token to the API requests. -For more information, see link:https://developers.thoughtspot.com/docs/Function_tokenizedFetch#_tokenizedfetch[tokenizedFetch]. -|===== - -== Version 1.27.x, March 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The following action enumeration members are available from v1.27.9 and v1.27.10: - -* `Action.AIHighlights` -* `Action.AddToWatchlist` -* `Action.RemoveFromWatchlist` -* `Action.CopyKpiLink` - -For more information, see xref:Action.adoc[Action]. -| [tag greenBackground]#NEW FEATURE# a| You can now use `HostEvent.GetAnswerSession` to get Answer session data for a Search Answer or Liveboard Visualization in the embedded view. -|==== - -== Version 1.27.0, January 2024 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|The `SageEmbed` package is now available on all clusters. You can use this SDK package to embed Natural Language Search capabilities and assist users with AI-suggested queries and AI-generated answers. This SDK package also allows you to customize the Natural Language Search experience in the embedded view. - -For a complete list of methods, functions, interface objects, and properties, see the following pages: + - -* xref:SageEmbed.adoc[SageEmbed] -* xref:SageViewConfig.adoc[SageViewConfig] - -|[tag orangeBackground]#MODIFIED# a| The `HostEvent.DrillDown` now supports the `vizId` parameter to trigger a drill-down action on a specific visualization of a Liveboard. -For more information, see xref:HostEvent.adoc#_drilldown[DrillDown]. -|[tag greenBackground]#NEW FEATURE# a| The new version of the SDK introduces the following new enumeration members: - -* Host Events -** `HostEvent.UpdateSageQuery` + -Updates the search query string for Natural Language Search operations. -* Embed Events -** `EmbedEvent.CreateConnection` + -Emitted when a user creates a new data connection on the **Data** page. -** `EmbedEvent.CreateWorksheet` + -Emitted when a user creates a new Worksheet. -|==== - -== Version 1.26.0, November 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The SDK provides `AnswerService` class to trigger the answer service with a custom action payload. -You can use this service to run GraphQL queries in the context of the Answer with a custom action trigger. For more information, see link:https://developers.thoughtspot.com/docs/Class_AnswerService[AnswerService]. Recommended ThoughtSpot application version is 9.10.0.cl. - -|[tag greenBackground]#NEW FEATURE# a|The following object properties and feature flags are introduced in the `LiveboardEmbed` and `AppEmbed` SDK packages: - -* `showLiveboardDescription` + -Shows the Liveboard description text when set to `true` -* `showLiveboardTitle` + -Shows the Liveboard title when set to `true` -* `isLiveboardHeaderSticky` + -Sets Liveboard header bar as a fixed element when set to `true` -* `hideLiveboardHeader` + -Hides the Liveboard header when set to `true` -* `hiddenTabs` + -Hides the specified tabs from the Liveboard page -* `visibleTabs` + -Displays the specified tabs on the Liveboard page - -|[tag greenBackground]#NEW FEATURE# |You can now enable the new data panel experience by setting `dataPanelV2` to `true` in the SDK when embedding ThoughtSpot Search. The new data panel experience is turned off by default on embedded ThoughtSpot instances. - -|[tag greenBackground]#NEW FEATURE# a|The new version of the SDK supports the following events: - -Embed events:: -* `EmbedEvent.hiddenTabs` -* `EmbedEvent.visibleTabs` -* `EmbedEvent.UpdatePersonalisedView` -* `EmbedEvent.SavePersonalisedView` -* `EmbedEvent.ResetLiveboard` -* `EmbedEvent.DeletePersonalisedView` -* `EmbedEvent.SageWorksheetUpdated` -* `EmbedEvent.SageEmbedQuery` -+ -For more information, see xref:EmbedEvent.adoc[EmbedEvent]. - -Host events:: - -* `HostEvent.GetTabs` -* `HostEvent.SetVisibleTabs` -* `HostEvent.SetHiddenTabs` -* `HostEvent.GetAnswerSession` -* `HostEvent.UpdateSageQuery` -+ -For more information, see xref:HostEvent.adoc[HostEvent]. - -|[tag greenBackground]#NEW FEATURE# a| The SDK introduces the following action enumeration members: - -* `Action.AddTab` + -Show, disable, or hide the **Add Tab** action on a Liveboard. -* `Action.PersonalisedViewsDropdown` + -Show, disable, or hide the Liveboard views saved by a user. -* `Action.LiveboardUsers` + -Show, disable, or hide Liveboard users. -* `Action.SageAnswerFeedback` -Show, disable, or hide the feedback widget on AI-generated Answer page. -* `Action.EditSageAnswer` -Show, disable, or hide the **Edit** action on the AI-generated Answer page. - -For more information, see xref:Action.adoc[Actions]. -|==== - -== Version 1.25.0, October 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# | The SDK now supports runtime Parameter overrides on Liveboards and Answers. -For more information, see xref:runtime-parameters.adoc#_apply_parameter_overrides_using_visual_embed_sdk[Runtime Parameter overrides]. - -|[tag greenBackground]#NEW FEATURE# a| The SDK introduces the following action enumeration members: - -* `Action.RenameModalTitleDescription` -* `Action.EnableContextualChangeAnalysis` -* `Action.RequestVerification` -* `Action.AddTab` - -For more information, see xref:Action.adoc[Actions]. -|==== - -== Version 1.24.0, September 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| ThoughtSpot now provides the `SageEmbed` package to embed the ThoughtSpot Search page with Sage features such as natural language search and AI-suggested search examples. This feature is in beta and not available in the Visual Embed Playground. -|[tag greenBackground]#NEW FEATURE# a| The `HostEvent.SetActiveTab` event in the upcoming version of the SDK allows you to set a tab as an active tab on a Liveboard. -|==== - -== Version 1.23.0, August 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The SDK supports the following performance optimization enhancements: + - -* Ability to pre-render a generic instance of the ThoughtSpot component using the `prerenderGeneric` attribute. The generic instance uses the default host and flags and can be rendered in the background to improve application response. -* Ability to use an iFrame from a pre-rendered iFrame pool using the `usePrerenderedIfAvailable` attribute. -|==== - -//// -|[tag greenBackground]#NEW FEATURE# a| New events for Liveboard filters + - -* `EmbedEvent.FilterChanged` + -* `HostEvent.GetFilters` + -* `HostEvent.UpdateFilters` -//// - -== Version 1.22.0, June 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The new version of the SDK introduces the `TrustedAuthTokenCookieless` `authType` property to allow Cookieless embedding. The Cookieless authentication method allows using a bearer token to identify the signed-in user instead of session cookies. - -For more information, see xref:embed-authentication.adoc#_cookieless_authentication[Cookieless authentication]. - -|[tag greenBackground]#NEW FEATURE# a|The new version of the SDK allows you to block user access to the non-embedded instance of the ThoughtSpot application. In full app embed deployments, you can use the `blockNonEmbedFullAppAccess` property in the SDK to restrict or allow your application users from accessing ThoughtSpot pages in the non-embed mode. - -For more information, see xref:security-settings.adoc#_block_access_to_non_embedded_thoughtspot_pages[Block access to non-embedded ThoughtSpot pages]. - -|==== - -//// -|[tag greenBackground]#NEW FEATURE# a| The SDK supports the following performance optimization enhancements: + - -* Ability to pre-render a generic instance of the ThoughtSpot component using the `prerenderGeneric` attribute. The generic instance uses the default host and flags and can be rendered in the background to improve application response. -* Ability to use an iFrame from a pre-rendered iFrame pool using the `usePrerenderedIfAvailable` attribute. -//// - -== Version 1.21.0, May 2023 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|The new version of the SDK introduces the following action enumeration members: - -* `Action.AxisMenuAggregate` -* `Action.AxisMenuConditionalFormat` -* `Action.AxisMenuEdit` -* `Action.AxisMenuFilter` -* `Action.AxisMenuGroup` -* `Action.AxisMenuNumberFormat` -* `Action.AxisMenuPosition` -* `Action.AxisMenuRemove` -* `Action.AxisMenuRename` -* `Action.AxisMenuSort` -* `Action.AxisMenuTextWrapping` -* `Action.AxisMenuTimeBucket` -* `Action.CrossFilter` -* `Action.RemoveCrossFilter` - -For more information, see xref:embed-action-ref.adoc[Action reference]. - -|[tag greenBackground]#NEW FEATURE# a| The SDK introduces the following events: - -* `HostEvent.AddColumns` -* `HostEvent.OpenFilter` -* `HostEvent.RemoveColumn` -* `HostEvent.ResetSearch` -* `EmbedEvent.CrossFilterChanged` -* `EmbedEvent.DownloadAsPng` -* `EmbedEvent.VizPointRightClick` - -For more information, see xref:embed-events.adoc[Events]. - -|[tag redBackground]#DEPRECATED# a| - -The following events are deprecated from version 1.21.0 onwards. - -* `HostEvent.Download` + -* `EmbedEvent.Download` - -You can use the `DownloadAsPng`, `DownloadAsXlsx`, `DownloadAsCsv` and `DownloadAsPdf` events for download actions. - -For more information, see xref:embed-events.adoc[Events reference]. -|[tag orangeBackground]#MODIFIED# a| - -Events:: -The SDK supports omitting or executing a search query in xref:HostEvent.adoc#_search[`HostEvent.Search`]. -Actions:: -Use the following action enumeration members instead of `Action.Download` to show, hide, or disable the *Download* menu action on an embedded Liveboard, visualization, or Answer: -+ -* `Action.DownloadAsCsv` -* `Action.DownloadAsPdf` -* `Action.DownloadAsXlsx` -* `Action.DownloadAsPng` - -+ -To disable or hide download actions, you can use `Action.Download` in the `disabledActions` and `hiddenActions` arrays respectively. However, if you are using the `visibleActions` array to show or hide actions on a visualization or Answer, include the following download action enumerations along with `Action.Download` in the array: + - -** `Action.DownloadAsCsv` + -** `Action.DownloadAsPdf` + -** `Action.DownloadAsXlsx` + -** `Action.DownloadAsPng` - -|[tag greenBackground]#NEW FEATURE# a| The SDK includes new attributes to customize the experience for embedded app users: - -* `linkOverride` -+ -Allows overriding the *Open in new tab* link on embedded pages. - -* `contextMenuTrigger` -+ -Allows triggering contextual menu on the Liveboard visualizations and Answers from left-click to right-click. - -* `hideSearchBar` -+ -Allows hiding the Search bar on the embedded Search page. -|[tag greenBackground]#NEW FEATURE# | The SDK now allows setting the loading preference for embedded iFrames. -For performance optimization, you can set the `loading` attribute to `lazy` in the `FrameParams` property. -|==== - -== Version 1.20.0, April 2023 - -[width="100%" cols="1,4"] -|==== -|[tag redBackground]#DEPRECATED# a|The `dataSources` property in `SearchEmbed` and `SearchBarEmbed` is deprecated and replaced with the `dataSource` attribute. The SDK supports searching from a single data source only. -|[tag greenBackground]#NEW FEATURE# a|The embed SDK packages now include the `insertAsSibling` property. This attribute can be used to insert the embedded object as a sibling to the element inside the target container. -|==== - -== Version 1.19.0, February 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|The `customCSS` property in the `customizations` object supports new variables to customize the styles for dialogs, search bar, search navigation and search suggestions panels. -For more information, see xref:css-customization.adoc[Customize CSS]. -|[tag redBackground]#BREAKING CHANGE# a|The new Liveboard experience mode introduces changes to the data format of the JSON response payload triggered by callback custom actions. For example, the `reportBookData`, and `vizData` attributes are modified, and the custom action `id` now is part of the data attribute. These changes may break your current custom action event handlers. For interoperability, we recommend adding the data attribute to `payload` in your code as shown in the example here: - -[source,JavaScript] - ----- -liveboardEmbed.on(EmbedEvent.CustomAction, payload => { - if (payload.id === "callback-action-id" \|\| payload.data.id === "callback-action-id") { - console.log('Custom Action event:', payload.data); - } -}) ----- - -You may also want to update the data classes in your scripts to process the JSON response payload and handle complex data. For more information, see xref:custom-actions-callback.adoc#_define_functions_and_classes_to_handle_liveboard_data[Callback custom actions]. - -|[tag greenBackground]#NEW FEATURE# a|The new version of the SDK introduces the following Host events: - -* `HostEvent.Delete` -* `HostEvent.Download` -* `HostEvent.DownloadAsCsv` -* `HostEvent.DownloadAsXlsx` -* `HostEvent.ManagePipelines` -* `HostEvent.Save` -* `HostEvent.Share` -* `HostEvent.ShowUnderlyingData` -* `HostEvent.SpotIQAnalyze` -* `HostEvent.SyncToOtherApps` -* `HostEvent.SyncToSheets` - -For more information, see xref:events-hostEvents.adoc[Host events]. - -|[tag redBackground]#DEPRECATED# a|The `noRedirect` property in the SDK is deprecated and replaced with the `inPopup` attribute. When set to `true`, the `inPopup` attribute allows the SAML SSO authentication flow in a pop-up window. - -For more information, see xref:embed-authentication.adoc#_saml_redirection[SAML Redirection]. -|==== - -== Version 1.18.0, January 2023 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|The new version of the SDK provides the `SearchBarEmbed` JavaScript package to embed only the ThoughtSpot Search bar in your app. + - -For more information, see xref:embed-searchbar.adoc[Embed ThoughtSpot search bar]. - -|[tag greenBackground]#NEW FEATURE# a|The `customCSS` property in the `customizations` object supports new variables to customize the UI elements on Liveboard, visualization, and Answer pages. You can also use these variables to define custom styles in the CSS file. + -For more information, see xref:css-customization.adoc[Customize CSS]. -|[tag greenBackground]#NEW FEATURE# |The new version of the SDK allows fetching TML objects via `GetTML` host event. This event is triggered when a user clicks on the *Show underlying data* action on a Liveboard visualization or Answer page. + - -For more information, see xref:HostEvent.adoc#_gettml[GetTML]. - -|[tag greenBackground]#NEW FEATURE# a| The new version of the SDK introduces the following enums in the `Action` object: - -* `Action.SyncToOtherApps` + -* `Action.SyncToSheets` + -* `Action.ManagePipelines` + - -You can use these enums to show, hide, or disable *Sync to sheets*, *Sync to other apps*, and *Manage pipelines* menu actions on a Liveboard visualization or Answer. - -For more information, see xref:embed-action-ref.adoc[Actions]. -|==== - -== Version 1.17.1, December 2022 - -Bug fixes to the trusted authentication feature. - -== Version 1.17.0, November 2022 - -The new version of the SDK introduces several new features and enhancements. -[width="100%" cols="1,4"] -|==== -|[tag orangeBackground]#MODIFIED# a|The `AuthType` property is modified and supports new enums. + - -* `AuthType.SAML` is renamed as `AuthType.SAMLRedirect` + -* `AuthType.OIDC` is renamed as `AuthType.OIDCRedirect` + -* `AuthType.AuthServer` is renamed to `AuthType.TrustedAuthToken` + -This enhancement does not introduce any breaking changes to your current implementation. -|[tag greenBackground]#NEW FEATURE# a|To use your current SAML or OIDC authentication setup and redirect users to the IdP for authentication within the embedded iFrame, you can now use `AuthType.EmbeddedSSO`. + -For more information, see xref:embed-authentication.adoc[Authentication]. -|[tag greenBackground]#NEW FEATURE#| -The `customizations` object in the SDK allows you to specify a custom CSS URL. You can also use this object to define CSS variables directly in the `init` code. + -For more information, see xref:css-customization.adoc[Customize CSS]. -|==== - -== Version 1.16.0, October 2022 - -The new version of the SDK includes bug fixes and improvements to the new Liveboard experience. - -== Version 1.15.1, September 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| -The `prefetch` method now supports the `url` and `prefetchFeatures` parameters. You can use these parameters to call the prefetch method before `init` and prefetch static resources on application load. + -For more information, see xref:prefetch-and-cache.adoc[Prefetch static resources]. -|==== - -== Version 1.15.0, September 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| -For embedded instances with the new Liveboard experience, the Visual Embed SDK provides the `activeTabId` attribute, using which you can set a Liveboard tab as an active tab. - -For more information, see xref:embed-pinboard.adoc#_liveboard_tabs[Customize Liveboard tabs]. - -|[tag greenBackground]#NEW FEATURE# a|The new version of the SDK supports firing events for Liveboard menu actions from the host application. The SDK introduces the following host event enumeration members for Liveboard objects: - -* CopyLink -* CreateMonitor -* DownloadAsPdf -* Edit -* EditTML -* Explore -* ExportTML -* LiveboardInfo -* MakeACopy -* ManageMonitor -* Pin -* Present -* Remove -* Schedule -* SchedulesList -* UpdateTML - -For more information, see xref:events-hostEvents.adoc[Events reference]. -|==== - -== Version 1.14.0, August 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| -The Visual Embed SDK now includes the `liveboardV2` attribute in the `LiveboardEmbed` package to allow developers to enable the new Liveboard experience on their embedded ThoughtSpot instance. + -For more information, see xref:embed-pinboard.adoc[Embed a Liveboard]. -|[tag orangeBackground]#MODIFIED#|If trusted authentication is enabled, the SDK makes a `POST` API call to get a login token and log the user into ThoughtSpot. -The earlier versions of the SDK supported only `GET` API requests. For more information, see xref:embed-authentication.adoc#_configure_token_based_authentication_method_in_visual_embed_sdk[Configure token-based authentication method in Visual Embed SDK]. -|==== - -== Version 1.13.0, July 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| -This version of Visual Embed SDK includes the `enableSearchAssist` attribute, using which you can turn on the Search Assist feature on an embedded instance. -|[tag greenBackground]#NEW FEATURE#| The new version of SDK introduces the `AuthType.SAML` enum for SAML-based SSO authentication. Note that `AuthType.SAML` replaces the `AuthType.SSO` enum, which is deprecated in the v1.13.0 version of the SDK. + -For more information, see xref:embed-authentication.adoc#saml-sso-embed[Authentication]. -|[tag redBackground]#DEPRECATED#| The `AuthType.SSO` enum is deprecated in v1.13.0. ThoughtSpot recommends using `AuthType.SAML` for the SAML SSO authentication method. + -This change does not impact your current embed implementation with `AuthType.SSO`. -|[tag greenBackground]#NEW FEATURE#| The SDK includes the `getExportRequestForCurrentPinboard` event, which is triggered when a user tries to export a Liveboard in its current state. + -For more information, see xref:events-hostEvents.adoc[Events reference]. -|==== - -== Version 1.12.0, June 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| -This version of Visual Embed SDK introduces the `navigate` host event, which is triggered when a user navigates to an application page without a page reload. - -For more information, see xref:events-hostEvents.adoc[Events reference]. -|[tag greenBackground]#NEW FEATURE# | The new `getThoughtSpotPostUrlParams` method fetches ThoughtSpot URL query parameters prefixed with `ts-`. -|==== - -== Version 1.11.2, June 2022 - -Bug fix for Typescript builds that affect Angular project configurations. - -== Version 1.11.1, May 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| The SDK includes the action enum `ReportError`, using which you can turn off ThoughtSpot-specific error reporting. -|==== - -== Version 1.11.0, May 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The new version of SDK includes the following new events: - -* `ALL` -* `AnswerChartSwitcher` -* `AnswerDelete` -* `CopyAEdit` -* `CopyToClipboard` -* `Download` -* `DownloadAsPdf` -* `DownloadAsCsv` -* `DownloadAsXlsx` -* `DrillExclude` -* `DrillInclude` -* `EditTML` -* `ExportTML` -* `Monitor` -* `Pin` -* `Save` -* `SaveAsView` -* `Share` -* `ShowUnderlyingData` -* `SpotIQAnalyze` -* `UpdateTML` -* `VizPointClick` - -For more information about how to register and handle these events, see xref:embed-events.adoc[Events and app integration]. -|[tag greenBackground]#NEW FEATURE# a| The new version of SDK supports the `showAlerts` attribute, using which you can show or hide alerts and error messages in the embedded view. - -|[tag greenBackground]#NEW FEATURE# a| The `Action.CreateMonitor` enumeration is available in the SDK for embedded ThoughtSpot environments on which the *Monitor* feature is enabled. -For more information, see xref:embed-actions.adoc[Show or hide UI actions]. -|==== - -== Version 1.10.4, May 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#|The `detectCookieAccessSlow` parameter in the SDK allows your app to check if third-party cookies are enabled on the browser. This parameter is available only for trusted and `Basic` authentication types. -|==== -== Version 1.10.3, May 2022 - -Bug fix and improvements to the `logout` method. - -== Version 1.10.2, May 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#|Ability to configure `redirectPath` on the origin when using the SAMLRedirect `authType`. -|==== - -== Version 1.10.1, May 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#|You can now use the `logout` method to log out embed users. -|[tag orangeBackground]#MODIFIED# a| Note the following changes: + - -* You can now use the `loginFailedMessage` property on init to display the `Not logged in` message when a user login fails. You can customize this message by defining a custom text string in the `loginFailedMessage` attribute. -* The `init` method now returns an event emitter which can be used to listen to `AuthStatus` such as login failure, success, or user logout. -|==== - -== Version 1.10.0, April 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The `AddRemoveColumns` event is now available in the SDK. For more information, see xref:event-embedEvents.adoc[Events reference]. -|==== - -== Version 1.9.8, April 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#|The `pageId` attribute now allows you to set the **SpotIQ** page as the home tab of your embedded ThoughtSpot app. - -For more information, see xref:full-embed.adoc[Embed full application]. -|==== - -== Version 1.9.6 and 1.9.7, April 2022 - -Bug fixes and improvements - -== Version 1.9.5, April 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#|The `locale` attribute is now available in embed packages. You can use this attribute to set the locale or language of your embedded application view. -For more information, see xref:locale-setting.adoc[Set locale and display language]. -|==== - -== Version 1.9.4, April 2022 - -Bug fixes and improvements to React components. - -== Version 1.9.3, March 2022 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| The SDK now supports the `disableLoginRedirect` attribute to improve the login experience for your application users. When enabled, this attribute prevents your app from redirecting users to the login page when their session expires. + -You can use this attribute along with `autoLogin` to automatically authenticate and re-login a user. + -This feature is applicable to token-based authentication, that is, when the `AuthType` is set as `TrustedAuthToken` in the SDK. - -For more information, see xref:embed-authentication.adoc#trusted-auth-embed[Authentication]. -|==== - -== Version 1.9.2, March 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| You can now trigger events on React components using the `useEmbedRef` hook. - -For more information, see xref:embed-ts-react-app.adoc[Embed ThoughtSpot in a React app]. -|==== - -== Version 1.9.1, March 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE#| The SDK now includes the `visibleVizs` attribute in the `LiveboardEmbed` package. This attribute allows you to add visualization GUIDs that you want to display when a Liveboard renders for the first time. - -For more information, see xref:embed-pinboard.adoc[Embed a Liveboard]. - -|[tag greenBackground]#NEW FEATURE# a| The following events are now available in the SDK: + - -* `LiveboardRendered` (EmbedEvent) - -For more information, see xref:event-embedEvents.adoc[Events reference]. -|==== - -== Version 1.9.0, March 2022 -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a| The SDK now includes the following new enumerations for UI actions: - -* `Action.AnswerDelete` + -* `Action.AnswerChartSwitcher` + -* `Action.AddToFavorites` + -* `Action.EditDetails` + - -For more information, see xref:embed-actions.adoc#standard-actions[Show or hide UI actions]. - -|[tag greenBackground]#NEW FEATURE# a| The SDK now supports the `UpdateRuntimeFilters` host event. For more information, see xref:events-hostEvents.adoc[Events reference]. -|==== - -== Version 1.8.x, February 2022 - -[width="100%" cols="1,4"] -|==== -|[tag redBackground]#BREAKING CHANGE# | The `autoLogin` attribute is now set as `false` by default. This attribute is used in the `init` method to automatically re-login a user when a session expires. -|[tag greenBackground]#NEW FEATURE# | The `init` method now returns the `authPromise` which resolves when a user authentication is completed. -|==== - - -== Version 1.7.0, January 2022 - -[width="100%" cols="1,4"] -|==== -| -[tag greenBackground]#NEW FEATURE# |+++
OIDC AuthType
+++ - -The SDK supports the `OIDC` `authType` in `init` calls. If you want your application users to authenticate to an OpenID provider and use their SSO credentials to access the embedded ThoughtSpot content, you can enable the `OIDC` authentication type in the SDK. - -For more information, see xref:embed-authentication.adoc#oidc-auth[Authentication and security attributes]. -|[tag greenBackground]#NEW FEATURE# a|+++
Embed events
+++ - -The SDK includes the following new event: - -* `RouteChange` - -For more information, see xref:event-embedEvents.adoc[Events reference]. - -|==== - -== Version 1.6.x, November 2021 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|+++
Visible actions
+++ - -You can now configure a set of ThoughtSpot UI actions as visible actions and display these actions in the embedded UI. If your embedded instance requires only a few actions, you can use the `visibleActions` API to show only these actions in the embedded ThoughtSpot UI. - -For more information, see xref:embed-actions.adoc[Show or hide UI actions]. - -|[tag orangeBackground]#MODIFIED# | +++
Terminology changes
+++ - -The SDK library and object parameter names are modified to rebrand pinboards as Liveboards. For a complete list of changes, see xref:terminology-update.adoc#sdk-changes[Terminology changes]. - -|[tag greenBackground]#NEW FEATURE# a|+++
Embed events
+++ - -The SDK supports the following new events: - -* `DialogOpen` -* `DialogClose` - -For more information, see xref:event-embedEvents.adoc[Events reference]. -|==== - -== Version 1.5.0, October 2021 - -[width="100%" cols="1,4"] -|==== -|| -|[tag greenBackground]#NEW FEATURE# | +++
Render embedded objects in queue
+++ - -The SDK now supports rendering embedded objects in a queue. If you have multiple embedded objects, you can enable the `queueMultiRenders` parameter to queue your embedded objects and render them one after another. This feature helps in decreasing the load on the web browsers and improving your application loading experience. By default, this attribute is set to `false`. - -|[tag greenBackground]#NEW FEATURE# a|+++
Liveboard embed
+++ - -The `pinboardEmbed` package includes the `defaultHeight` attribute that sets a minimum height for embedded objects on a pinboard page, and the corresponding visualization pages that a user can navigate to. - -For more information, see xref:embed-search.adoc[Embed a pinboard]. - -|[tag greenBackground]#NEW FEATURE# a|+++
Embed events
+++ - -The SDK EmbedEvent library includes the following new events: - -* `VizPointDoubleClick` -* `Drilldown` -* `SetVisibleVizs` - -For more information, see xref:event-embedEvents.adoc[Events reference]. - -|==== - -== Version 1.4.0, September 2021 - -[width="100%" cols="1,4"] -|==== -|| -|[tag greenBackground]#NEW FEATURE# a|+++
+++Prefetch API+++
+++ - -The `prefetch` API fetches static resources from a given URL before your application loads. Web browsers can then cache the prefetched resources locally and serve them from a user's local disk. You can use this API to load the embedded objects faster and improve your application response time. - -For more information, see xref:prefetch-and-cache.adoc[Prefetch static resources]. - -|[tag greenBackground]#NEW FEATURE# a|+++
+++In-app page navigation+++
+++ - -The `navigateToPage` method in the SDK lets you provide quick and direct access to a specific pinboard, saved Answer, or an application page. You can add a custom menu action or button in your application UI that calls the `navigateToPage` method and leads your users to the page specified in the `path` parameter. - -For more information, see xref:page-navigation.adoc[Add a custom action for in-app navigation]. - -|[tag greenBackground]#NEW FEATURE# a|+++
+++Full application embedding+++
+++ - -The `appEmbed` SDK package includes the following new attributes: - -* The `disableProfileAndHelp` attribute to show or hide the `Help (?)` and the user profile menu in the navigation bar of your embedded app. - -* The `hideObjects` attribute to hide specific objects from a user's page view. - -For more information, see xref:full-embed.adoc[Embed full application]. - -|[tag greenBackground]#NEW FEATURE# |+++
+++Search embed +++
+++ - -The `searchEmbed` package includes the `forceTable` attribute that sets tabular view as the default format for presenting search data. You can set this attribute to `true` to force search results to appear in the table view. - -For more information, see xref:embed-search.adoc[Embed ThoughtSpot search]. - -|[tag redBackground]#REMOVED# | - -The `searchQuery` parameter is no longer supported and is removed from the `searchEmbed` SDK package. -|[tag greenBackground]#NEW FEATURE# a|+++
+++Embed events +++
+++ -The SDK EmbedEvent library includes the following events: - -* `QueryChanged` -* `AuthExpire` - -For more information, see xref:embed-events.adoc[Events and app integration]. -|==== - -== Version 1.3.0, August 2021 - -[width="100%" cols="1,4"] -|==== -|| -|[tag greenBackground]#NEW FEATURE# a| +++
searchOptions
+++ - -The `searchEmbed` SDK package introduces the `searchOptions` parameter for setting search tokens. The `searchOptions` parameter includes the following attributes: - -* `searchTokenString` -+ -A TML query string to define search tokens. - -* `executeSearch` -+ -When set to `true`, it executes search and shows the search results. - -For more information, see xref:embed-search.adoc#search-query[Embed ThoughtSpot search]. - -|[tag redBackground]#DEPRECATED# a| +++
searchQuery
+++ - -The `searchQuery` parameter in the `searchEmbed` SDK package is deprecated in the Visual Embed SDK version 1.3.1. Instead, you can use the `searchOptions` parameter to define the search token string. - -For more information about `searchOptions`, see xref:embed-search.adoc#search-query[Embed ThoughtSpot search]. - -|[tag greenBackground]#NEW FEATURE# a| +++
autoLogin
+++ - -The SDK now supports logging in users automatically after a user session has expired. - -For more information, see xref:embed-authentication.adoc#embed-session-sec[Embed user authentication]. - -|[tag greenBackground]#NEW FEATURE# a| +++
shouldEncodeUrlQueryParams
+++ - -You can now convert query parameters in the ThoughtSpot generated URLs to base64-encoded format. You can enable this attribute to secure your cluster from cross-site scripting attacks. -|[tag redBackground]#BREAKING CHANGE# a| +++
Data structure changes in custom action response payloads
+++ - -* The data structure passed in the custom action response for search now shows as `payload.data.embedAnswerData` instead of `payload.data.columnsAndData`. - -* The Answer payload for custom actions includes the following metadata: - -** `reportBookmetadata` -+ -Includes visualization metadata attributes such as description, object header metadata, author details, timestamp of the Answer creation, and modification. - -** user data -+ -Includes user information such as username, GUID of the user, and email address. - -To view a sample response payload, see xref:callback-response-payload.adoc#search-data-payload[Custom action response payload]. - -|[tag greenBackground]#NEW FEATURE# a| +++
preventPinboardFilterRemoval
+++ - -The `pinboardEmbed` SDK package now includes the `preventPinboardFilterRemoval` attribute. You can use this attribute to disable the filter removal action and thus prevent users from removing the filter chips added on a pinboard page. - -For more information, see xref:embed-pinboard.adoc[Embed a pinboard] and xref:embed-a-viz.adoc[Embed a visualization]. -|[tag greenBackground]#NEW FEATURE# a| +++
suppressNoCookieAccessAlert
+++ - -You can now set custom alerts for `noCookieAccess` events. By default, the SDK triggers a `noCookieAccess` event and generates an alert when a user's browser blocks third-party cookies. The `suppressNoCookieAccessAlert` allows you to disable this alert. - -|[tag greenBackground]#NEW FEATURE# a| +++
Support for fetching callback custom action payload in batches
+++ - -The Visual Embed SDK now supports processing data in batches for callback custom action responses. -The callback custom action event in the SDK package supports defining `batchSize` and `offset` values to paginate the Answer payload and send the records in batches. - -For more information, see xref:push-data-to-external-app.adoc#large-dataset[Callback custom action workflow]. -|==== - -== Version 1.2.0, June 2021 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|+++
SAML authentication
+++ - -The Visual Embed SDK packages now include the `noRedirect` attribute as an optional parameter for the SAMLRedirect SSO `AuthType`. If you want to display the SAML authentication workflow in a pop-up window, instead of refreshing the application web page to direct users to the SAML login page, you can set the `noRedirect` attribute to `true`. - -For more information, see the instructions for embedding xref:full-embed.adoc[ThoughtSpot pages], xref:embed-search.adoc[search], xref:embed-pinboard.adoc[pinboard], and xref:embed-a-viz.adoc[visualizations]. - -|[tag greenBackground]#NEW FEATURE# a|+++
Pinboard actions
+++ -The *More* menu image:./images/icon-more-10px.png[the more options menu] in the embedded Pinboard page now shows the following actions for pinboard and visualizations. - -Pinboard:: -* Save -* Make a copy -* Add filters -* Configure filters -* Present -* Download as PDF -* Pinboard info -* Manage schedules - - -[NOTE] -Users with edit permissions can view and access the *Save*, *Add filters*, *Configure filters*, and *Manage schedules* actions. -|[tag greenBackground]#NEW FEATURE# a|+++
Visualization actions
+++ - -Visualizations on a pinboard: - -* Pin -* Download -* Edit -* Present -* Download as CSV -* Download as XLSX -* Download as PDF - -[NOTE] -Users with edit permissions can view and access the *Edit* action. The *Download as CSV*, *Download as XLSX*, and *Download as PDF* actions are available for table visualizations. The *Download* action is available for chart visualizations. - -|==== - -== Version 1.1.0, May 2021 - -[width="100%" cols="1,4"] -|==== -|[tag greenBackground]#NEW FEATURE# a|+++
NoCookieAccess event
+++ - -When a user accesses the embedded application from a web browser that has third-party cookies disabled, the Visual Embed SDK emits the `NoCookieAccess` event to notify the developer. Cookies are disabled by default in Safari. Users can enable third-party cookies in Safari’s Preferences setting page or use another web browser. -To know how to enable this setting by default on Safari for a ThoughtSpot embedded instance, contact ThoughtSpot Support. -|==== \ No newline at end of file diff --git a/modules/ROOT/pages/common/nav-embedding.adoc b/modules/ROOT/pages/common/nav-embedding.adoc index 004467551..4f5f8a246 100644 --- a/modules/ROOT/pages/common/nav-embedding.adoc +++ b/modules/ROOT/pages/common/nav-embedding.adoc @@ -173,10 +173,6 @@ include::generated/typedoc/CustomSideNav.adoc[] [.sidebar-title] Additional resources -* link:{{navprefix}}/embed-ts[About ThoughtSpot embedding] -* link:{{navprefix}}/get-started-tse[Embed licenses] -* link:{{navprefix}}/license-feature-matrix[Feature matrix] * link:{{navprefix}}/faqs[FAQs] -* link:{{navprefix}}/code-samples[Code samples] * link:https://codesandbox.io/s/big-tse-react-demo-i4g9xi[React CodeSandbox, window=_blank] -* link:https://codesandbox.io/s/graphqlcookieembed-wf4fk9?file=/src/App.js:418-426[GraphQL CodeSandbox, window=_blank] +* link:https://github.com/thoughtspot/developer-examples[Developer examples, window=_blank] diff --git a/modules/ROOT/pages/common/nav-in-product-help.adoc b/modules/ROOT/pages/common/nav-in-product-help.adoc new file mode 100644 index 000000000..cf7312ff9 --- /dev/null +++ b/modules/ROOT/pages/common/nav-in-product-help.adoc @@ -0,0 +1,308 @@ + +:page-pageid: nav-in-product-help +:page-description: In-product navigation + +[navSection] + +[.sidebar-title] +Release notes and changelogs + +* link:{{navprefix}}/whats-new[What's new] +* Changelog +** link:{{navprefix}}/embed-sdk-changelog[Visual Embed SDK changelog] +** link:{{navprefix}}/mobile-sdk-changelog[Mobile Embed SDK changelog] +** link:{{navprefix}}/rest-v2-changelog[REST API v2 changelog] +* link:{{navprefix}}/deprecated-features[Deprecation announcements] + +[.sidebar-title] +Live Playgrounds + +* +++Visual Embed Playground+++ +** link:{{navprefix}}/dev-playground[How to use] +* link:{{navprefix}}/restV2-playground?apiResourceId=http%2Fgetting-started%2Fintroduction[REST API v2 Playground] +** link:{{navprefix}}/rest-playground[How to use] +* +++Theme Builder+++ +** link:{{navprefix}}/theme-builder-doc[How to use] + +[.sidebar-title] +Embed ThoughtSpot in a web app + +* link:{{navprefix}}/getting-started[Embed with Visual Embed SDK] +* link:{{navprefix}}/tsembed[Quickstart guide] +* link:{{navprefix}}/embed-ai-search-analytics[Embed AI Search and Analytics] +** link:{{navprefix}}/embed-spotter[Embed Spotter experience] +** link:{{navprefix}}/embed-spotter-agent[Embed Spotter Agent] +* link:{{navprefix}}/embed-liveboard[Embed Analytics] +** link:{{navprefix}}/embed-liveboard[Embed a Liveboard] +** link:{{navprefix}}/spotterViz-agent[SpotterViz AI agent in Liveboards] +** link:{{navprefix}}/embed-a-viz[Embed a visualization] +* link:{{navprefix}}/full-embed[Embed full application] +** link:{{navprefix}}/full-app-customize[Customize your embed] +** link:{{navprefix}}/customize-nav-controls[Customize navigation panels] +** link:{{navprefix}}/set-default-page[Customize default page and navigation path] +** link:{{navprefix}}/customize-homepage-experience[Customize home page experience] +* Embed token-based Search +** link:{{navprefix}}/search-embed[Embed Search] +** link:{{navprefix}}/embed-searchbar[Embed search bar] +** link:{{navprefix}}/visualization-overrides[Visualization overrides] +* link:{{navprefix}}/react-app-embed[Embed with React components] + +[.sidebar-title] +Embed ThoughtSpot in a mobile app + +* link:{{navprefix}}/mobile-embed[Overview] +* link:{{navprefix}}/embed-ts-mobile-react-native[React Native SDK] +* link:{{navprefix}}/embed-ts-flutter[Flutter embed SDK] +* link:{{navprefix}}/embed-ts-swift[Swift Embed SDK] +* link:{{navprefix}}/embed-ts-android[Android Embed SDK] + +[.sidebar-title] +Embed without SDK + +** link:{{navprefix}}/embed-without-sdk[Embed without SDK] +** link:{{navprefix}}/custom-viz-rest-api[Create a custom visualization] + +[.sidebar-title] +Authentication and data security + +* link:{{navprefix}}/embed-auth[Authentication] +** link:{{navprefix}}/trusted-auth[Trusted authentication] +*** link:{{navprefix}}/trusted-auth-secret-key[Secret key management] +*** link:{{navprefix}}/trusted-auth-sdk[Front-end trusted authentication integration] +*** link:{{navprefix}}/trusted-auth-token-request-service[Token request service] +*** link:{{navprefix}}/trusted-auth-troubleshoot[Troubleshoot trusted authentication] +** link:{{navprefix}}/saml-sso[SAML SSO authentication] +** link:{{navprefix}}/oidc-auth[OpenID Connect authentication] +** link:{{navprefix}}/just-in-time-provisioning[Just-in-time provisioning] +* link:{{navprefix}}/security-settings[Security settings] + +* link:{{navprefix}}/embed-object-access[Authorization] +** link:{{navprefix}}/access-control-sharing[Access control and sharing] +** link:{{navprefix}}/privileges-and-roles[Privileges and Roles] +** link:{{navprefix}}/data-security[Data security] +*** link:{{navprefix}}/rls-rules[RLS Rules] +*** link:{{navprefix}}/abac-via-rls-variables[ABAC via RLS with variables] +*** link:{{navprefix}}/jwt-abac-migration-guide[ABAC JWT migration guide] +**** link:{{navprefix}}/jwt-filter-parameters-rules-migration-guide[JWT ABAC with filter rules -> ABAC via RLS] +**** link:{{navprefix}}/jwt-abac-beta-migration-guide[JWT ABAC beta implementation -> ABAC via RLS] +*** link:{{navprefix}}/abac-user-parameters[ABAC via JWT with filter rules and parameters] +* link:{{navprefix}}/selective-user-access[User access] +* link:{{navprefix}}/troubleshoot-errors[Troubleshoot errors] + +[.sidebar-title] +Customize and integrate + +* link:{{navprefix}}/style-customization[Customize UI layout and styles] +** link:{{navprefix}}/customize-style[Customize basic styles] +** link:{{navprefix}}/custom-css[CSS customization framework] +** link:{{navprefix}}/theme-builder-doc[Theme builder] +** link:{{navprefix}}/customize-icons[Customize icons] +** link:{{navprefix}}/customize-text[Customize text strings] +** link:{{navprefix}}/css-variables-reference[CSS variables reference] + +* link:{{navprefix}}/filters-overview[Filters types and application layers] +** link:{{navprefix}}/runtime-overrides[Runtime overrides] +** link:{{navprefix}}/runtime-filters[Runtime filters] +** link:{{navprefix}}/runtime-params[Runtime Parameters] +* link:{{navprefix}}/action-config[Customize menus] +** link:{{navprefix}}/actions[Action IDs in the SDK] +* link:{{navprefix}}/events-app-integration[Events and app interactions] +** link:{{navprefix}}/embed-events[Using embed events] +** link:{{navprefix}}/host-events[Using host events] +** link:{{navprefix}}/context-aware-event-routing[Context-based execution of host events] +** link:{{navprefix}}/hostEventsV2-migration[Migrating from Host Event v1 to Host Events v2 framework] +** link:{{navprefix}}/handling-embed-errors[Handling embed errors] +** link:{{navprefix}}/api-search-intercept[API intercept and data fetch requests] + +* link:{{navprefix}}/custom-action-intro[Custom actions] +** link:{{navprefix}}/customize-actions[Custom actions through the UI] +*** link:{{navprefix}}/custom-action-url[URL actions] +*** link:{{navprefix}}/custom-action-callback[Callback actions] +*** link:{{navprefix}}/edit-custom-action[Set the position of a custom action] +*** link:{{navprefix}}/add-action-viz[Add a local action to a visualization] +*** link:{{navprefix}}/add-action-worksheet[Add a local action to a model] +** link:{{navprefix}}/code-based-custom-action[Code based custom actions] +** link:{{navprefix}}/custom-action-payload[Callback response payload] + +* link:{{navprefix}}/customize-links[Customize links] +* link:{{navprefix}}/set-locale[Customize locale] +* link:{{navprefix}}/custom-domain-config[Custom domain configuration] +* link:{{navprefix}}/customize-emails[Customize onboarding settings] +* link:{{navprefix}}/customize-email-apis[Customize email template] +* link:{{navprefix}}/in-app-navigation[Create dynamic menus and navigation] +* link:{{navprefix}}/best-practices[Performance optimization] +** link:{{navprefix}}/best-practices[Best practices] +** link:{{navprefix}}/prerender[Prerender components] +** link:{{navprefix}}/lazy-load-fullHeight[Full height and lazy loading options] +** link:{{navprefix}}/prefetch[Prefetch static resources] +* link:{{navprefix}}/troubleshoot-errors[Troubleshoot errors] + +[.sidebar-title] +Visual Embed SDK reference guide + +* link:{{navprefix}}/VisualEmbedSdk[Visual Embed SDK Reference] +include::generated/typedoc/CustomSideNav.adoc[] +** Custom styles +*** [.typedoc-Interface]#link:{{navprefix}}/Interface_CustomStyles[CustomStyles]# +*** [.typedoc-Interface]#link:{{navprefix}}/Interface_CustomisationsInterface[CustomisationsInterface]# +*** [.typedoc-Interface]#link:{{navprefix}}/Interface_customCssInterface[customCssInterface]# +*** [.typedoc-Interface]#link:{{navprefix}}/Interface_CustomCssVariables[customCssVariables]# +** Runtime filters +*** [.typedoc-Interface]#link:{{navprefix}}/Interface_RuntimeFilter[RuntimeFilter]# +*** [.typedoc-Enumeration]#link:{{navprefix}}/Enumeration_RuntimeFilterOp[RuntimeFilterOp]# +** Others +*** [.typedoc-Enumeration]#link:{{navprefix}}/Enumeration_Action[Action]# +*** [.typedoc-Enumeration]#link:{{navprefix}}/Enumeration_ContextMenuTriggerOptions[ContextMenuTriggerOptions]# +*** [.typedoc-Enumeration]#link:{{navprefix}}/Enumeration_DataSourceVisualMode[DataSourceVisualMode]# +*** [.typedoc-Enumeration]#link:{{navprefix}}/Enumeration_Page[Page]# +*** [.typedoc-Enumeration]#link:{{navprefix}}/Enumeration_PrefetchFeatures[PrefetchFeatures]# +*** [.typedoc-Function]#link:{{navprefix}}/Function_executeTML[executeTML]# +*** [.typedoc-Function]#link:{{navprefix}}/Function_exportTML[exportTML]# + + +[.sidebar-title] +Multi-tenancy + +* link:{{navprefix}}/multi-tenancy[Overview] +* link:{{navprefix}}/orgs[Multi-tenancy with Orgs] +** link:{{navprefix}}/orgs-api-op[Org administration] +** link:{{navprefix}}/multitenancy-within-an-org[Multi-tenancy within an Org] +** link:{{navprefix}}/single-tenant-data-models[Single-tenant data models with Orgs] +* link:{{navprefix}}/tse-cluster[Cluster maintenance and upgrade] + +[.sidebar-title] +Webhooks + +* link:{{navprefix}}/webhooks-overview[Overview] +* link:{{navprefix}}/webhooks-ui[Webhooks UI] +* link:{{navprefix}}/webhooks-comm-channel[Webhook communication channels] +* link:{{navprefix}}/webhooks-lb-schedule[Webhook connection for Liveboard scheduled events] +* link:{{navprefix}}/webhooks-s3-integration[AWS S3 storage integration for webhook delivery] +* link:{{navprefix}}/webhooks-gcs-storage[GCS storage integration for webhook delivery] +* link:{{navprefix}}/webhooks-lb-payload[Webhook response payload] +* link:{{navprefix}}/webhooks-kpi[Webhook connection for KPI alerts] + +[.sidebar-title] +Integration with external tools + +** link:{{navprefix}}/external-tool-script-integration[External tools and scripts] +** link:{{navprefix}}/pendo-integration[Pendo integration with embed] +** link:{{navprefix}}/sf-integration[Integration with Salesforce] +** link:{{navprefix}}/vercel-integration[Vercel integration] + +[.sidebar-title] +Build and deploy + +** link:{{navprefix}}/thoughtspot-objects[ThoughtSpot objects] +** link:{{navprefix}}/timezone-aware-filtering[Timezone-aware keywords and filters] +** link:{{navprefix}}/variables[Variables] +** link:{{navprefix}}/parameterize-metadata[Parameterize metadata] +* link:{{navprefix}}/development-and-deployment[Development and deployment] +** link:{{navprefix}}/deploy-with-tml-apis[Deploy with TML APIs] +*** link:{{navprefix}}/git-provider-integration[Git provider integration] +*** link:{{navprefix}}/modify-tml[TML modification] +* link:{{navprefix}}/publish-data-overview[Publish content to Orgs] +** link:{{navprefix}}/publish-to-orgs[Publish objects to Orgs] +* link:{{navprefix}}/git-integration[Deploy with GitHub APIs (legacy)] +** link:{{navprefix}}/git-configuration[Configure GitHub integration] +** link:{{navprefix}}/git-api[GitHub REST APIs] +** link:{{navprefix}}/guid-mapping[GUID mapping] + +[.sidebar-title] +REST APIs + +* link:{{navprefix}}/rest-apis[Overview] +* link:{{navprefix}}/rest-apiv2-getstarted[Get started] +* link:{{navprefix}}/api-authv2[REST API v2.0 authentication] +* link:{{navprefix}}/rest-apiv2-reference[REST API v2.0 Reference] +** link:{{navprefix}}/api-user-management[Users and group privileges] +** link:{{navprefix}}/rbac[Role-based access control] +** link:{{navprefix}}/rest-apiv2-search[Search API endpoints] +*** link:{{navprefix}}/rest-apiv2-users-search[Search users] +*** link:{{navprefix}}/rest-apiv2-groups-search[Search groups] +*** link:{{navprefix}}/rest-apiv2-metadata-search[Search metadata] +** link:{{navprefix}}/fetch-data-and-report-apis[Data and Report APIs] +** link:{{navprefix}}/spotter-api[Spotter APIs] +*** link:{{navprefix}}/spotter-agent-apis[AI APIs (Spotter Agent and Spotter 3)] +*** link:{{navprefix}}/spotter-agent-instructions[Spotter AI agent instructions] +*** link:{{navprefix}}/spotter-agent-conversation-mgmt-apis[APIs for managing saved conversations] +*** link:{{navprefix}}/spotter-apis-classic[AI APIs (Spotter Classic) ^BETA^] +*** link:{{navprefix}}/spotter-nl-instructions[Data model instructions APIs ^BETA^] +** link:{{navprefix}}/style-customization-apis[Style customization APIs] +** link:{{navprefix}}/audit-logs[Audit logs] +** link:{{navprefix}}/tml[TML] +** link:{{navprefix}}/collections[Collections ^BETA^] +** link:{{navprefix}}/connections[Connections] +** link:{{navprefix}}/connection-config[Connection configuration] +** link:{{navprefix}}/runtime-sort[Runtime sorting] +* link:{{navprefix}}/manual-translation-api[Manual translations] +* link:{{navprefix}}/webhooks-rest-api[Webhook APIs] + +[.sidebar-title] +REST API SDK + +* link:{{navprefix}}/rest-api-sdk[Overview] +* link:{{navprefix}}/rest-api-sdk-typescript[TypeScript SDK] +* link:{{navprefix}}/rest-api-sdk-java[Java SDK] +* link:{{navprefix}}/rest-apiv2-js[REST API v2.0 in JavaScript] + +[.sidebar-title] +REST API v1 (DEPRECATED) + +* link:{{navprefix}}/rest-api-getstarted[Get started] +* link:{{navprefix}}/api-auth-session[REST API v1 authentication] +* link:{{navprefix}}/catalog-and-audit[Catalog and audit content] +* link:{{navprefix}}/rest-api-pagination[Paginate API response] +* link:{{navprefix}}/rest-api-reference[REST API v1 Reference] +* link:{{navprefix}}/rest-v1-changelog[REST API v1 changelog] +* link:{{navprefix}}/v1v2-comparison[REST v1 and v2.0 comparison] + + +[.sidebar-title] +SpotterCode + +* link:{{navprefix}}/SpotterCode[SpotterCode for IDEs] +* link:{{navprefix}}/integrate-SpotterCode[Integrating SpotterCode] +* link:{{navprefix}}/spottercode-prompting-guide[SpotterCode prompting guide] + +[.sidebar-title] +Tutorials + +* link:{{navprefix}}/tutorials/tutorials-overview[Embedding tutorials] +** link:{{navprefix}}/tutorials/tse-fundamentals/intro[Embedding Fundamentals] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-01[01 - Overview] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-02[02 - Set up for course] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-03[03 - Security setup] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-04[04 - Start coding] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-05[05 - Embed Search] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-06[06 - Embed Natural Language Search] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-07[07 - Embed Liveboard] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-08[08 - Embed Visualization] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-09[09 - Embed full application] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-10[10 - Style embedded app] +*** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-11[11 - Course summary] +*** link:{{navprefix}}/tutorials/style-customization/tutorial[Style customization] +** link:{{navprefix}}/tutorials/react-components/intro[React components] +*** link:{{navprefix}}/tutorials/react-components/lesson-01[01 - Initialize Visual Embed SDK] +*** link:{{navprefix}}/tutorials/react-components/lesson-02[02 - ThoughtSpot component pages] +*** link:{{navprefix}}/tutorials/react-components/lesson-03[03 - Menus and navigation elements] +*** link:{{navprefix}}/tutorials/react-components/lesson-04[04 - Event handling] +** link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your Chatbot] + +* link:{{navprefix}}/tutorials/rest-api/intro[REST API Tutorials] +** link:{{navprefix}}/tutorials/rest-api/lesson-01[01 - REST API overview] +** link:{{navprefix}}/tutorials/rest-api/lesson-02[02 - Simple Python implementation] +** link:{{navprefix}}/tutorials/rest-api/lesson-03[03 - Complex REST API workflows] + + +[.sidebar-title] +Additional resources + +* link:{{navprefix}}/embed-ts[About ThoughtSpot embedding] +* link:{{navprefix}}/faqs[FAQs] +* link:https://codesandbox.io/s/big-tse-react-demo-i4g9xi[React CodeSandbox, window=_blank] +* link:https://community.thoughtspot.com/customers/s/[Community, window=_blank] +* link:https://training.thoughtspot.com/page/developer[Training resources, window=_blank] +* link:https://docs.thoughtspot.com[Product Documentation, window=_blank] +* link:https://github.com/thoughtspot/developer-examples[Developer examples, window=_blank] + diff --git a/modules/ROOT/pages/common/nav-rest-api.adoc b/modules/ROOT/pages/common/nav-rest-api.adoc index 04378ff93..62dc5391c 100644 --- a/modules/ROOT/pages/common/nav-rest-api.adoc +++ b/modules/ROOT/pages/common/nav-rest-api.adoc @@ -22,8 +22,10 @@ REST APIs ** link:{{navprefix}}/fetch-data-and-report-apis[Data and Report APIs] ** link:{{navprefix}}/spotter-api[Spotter APIs] *** link:{{navprefix}}/spotter-agent-apis[AI APIs (Spotter Agent and Spotter 3)] +*** link:{{navprefix}}/spotter-agent-instructions[Spotter AI agent instructions] +*** link:{{navprefix}}/spotter-agent-conversation-mgmt-apis[APIs for managing saved conversations] *** link:{{navprefix}}/spotter-apis-classic[AI APIs (Spotter Classic) ^BETA^] -*** link:{{navprefix}}/spotter-coaching-apis[Spotter coaching APIs ^BETA^] +*** link:{{navprefix}}/spotter-nl-instructions[Data model instructions APIs ^BETA^] ** link:{{navprefix}}/style-customization-apis[Style customization APIs] ** link:{{navprefix}}/audit-logs[Audit logs] ** link:{{navprefix}}/tml[TML] @@ -31,28 +33,8 @@ REST APIs ** link:{{navprefix}}/connections[Connections] ** link:{{navprefix}}/connection-config[Connection configuration] ** link:{{navprefix}}/runtime-sort[Runtime sorting] -* link:{{navprefix}}/api-user-management[Users and group privileges] -* link:{{navprefix}}/rbac[Role-based access control] -* link:{{navprefix}}/rest-apiv2-search[Search API endpoints] -** link:{{navprefix}}/rest-apiv2-users-search[Search users] -** link:{{navprefix}}/rest-apiv2-groups-search[Search groups] -** link:{{navprefix}}/rest-apiv2-metadata-search[Search metadata] -* link:{{navprefix}}/fetch-data-and-report-apis[Data and Report APIs] -* link:{{navprefix}}/spotter-api[Spotter APIs] -** link:{{navprefix}}/spotter-agent-apis[AI APIs (Spotter Agent and Spotter 3)] -** link:{{navprefix}}/spotter-agent-instructions[Spotter AI agent instructions] -** link:{{navprefix}}/spotter-agent-conversation-mgmt-apis[APIs for managing saved conversations] -** link:{{navprefix}}/spotter-apis-classic[AI APIs (Spotter Classic) ^BETA^] -** link:{{navprefix}}/spotter-nl-instructions[Spotter instructions APIs ^BETA^] -** link:{{navprefix}}/spotter-agent-instructions[Spotter instructions APIs ^BETA^] -* link:{{navprefix}}/audit-logs[Audit logs] -* link:{{navprefix}}/tml[TML] -* link:{{navprefix}}/collections[Collections ^BETA^] -* link:{{navprefix}}/connections[Connections] -* link:{{navprefix}}/connection-config[Connection configuration] -* link:{{navprefix}}/runtime-sort[Runtime sorting] -* link:{{navprefix}}/manual-translation-api[Manual translations] -* link:{{navprefix}}/webhooks-rest-api[Webhook APIs] +** link:{{navprefix}}/manual-translation-api[Manual translations] +** link:{{navprefix}}/webhooks-rest-api[Webhook APIs] [.sidebar-title] @@ -79,28 +61,14 @@ REST API v1 (DEPRECATED) * link:{{navprefix}}/catalog-and-audit[Catalog and audit content] * link:{{navprefix}}/rest-api-pagination[Paginate API response] * link:{{navprefix}}/rest-api-reference[REST API v1 Reference] -** link:{{navprefix}}/orgs-api[Orgs API] -** link:{{navprefix}}/user-api[User API] -** link:{{navprefix}}/group-api[Group API] -** link:{{navprefix}}/role-api[Role API] -** link:{{navprefix}}/session-api[Session API] -** link:{{navprefix}}/connections-api[Data connection API] -** link:{{navprefix}}/metadata-api[Metadata API] -** link:{{navprefix}}/admin-api[Admin API] -** link:{{navprefix}}/tml-api[TML API] -** link:{{navprefix}}/dependent-objects-api[Dependent objects API] -** link:{{navprefix}}/search-data-api[Search data API] -** link:{{navprefix}}/liveboard-data-api[Liveboard data API] -** link:{{navprefix}}/liveboard-export-api[Liveboard export API] -** link:{{navprefix}}/security-api[Security API] -** link:{{navprefix}}/logs-api[Audit logs API] -** link:{{navprefix}}/materialization-api[Materialization API] -** link:{{navprefix}}/database-api[Database API] -** link:{{navprefix}}/rest-v1-changelog[REST API v1 changelog] -** link:{{navprefix}}/v1v2-comparison[REST v1 and v2.0 comparison] - - -//** link:{{navprefix}}/graphql-guide[GraphQL API ^Beta^] +* link:{{navprefix}}/rest-v1-changelog[REST API v1 changelog] +* link:{{navprefix}}/v1v2-comparison[REST v1 and v2.0 comparison] + +[.sidebar-title] +Additional resources + +* link:{{navprefix}}/faqs[FAQs] +* link:https://github.com/thoughtspot/developer-examples[Developer examples, window=_blank] diff --git a/modules/ROOT/pages/common/nav.adoc b/modules/ROOT/pages/common/nav.adoc index a848131e2..141aada68 100644 --- a/modules/ROOT/pages/common/nav.adoc +++ b/modules/ROOT/pages/common/nav.adoc @@ -100,11 +100,7 @@ Additional resources * link:{{navprefix}}/faqs[FAQs] * link:https://codesandbox.io/s/big-tse-react-demo-i4g9xi[React CodeSandbox, window=_blank] -//** link:https://codesandbox.io/s/graphqlcookieembed-wf4fk9?file=/src/App.js:418-426[GraphQL CodeSandbox, window=_blank] - * link:https://community.thoughtspot.com/customers/s/[Community, window=_blank] * link:https://training.thoughtspot.com/page/developer[Training resources, window=_blank] * link:https://docs.thoughtspot.com[Product Documentation, window=_blank] -* link:https://developers.thoughtspot.com[ThoughtSpot Developers, window=_blank] -* Deprecated feature docs -** link:{{navprefix}}/abac-user-parameters-beta[ABAC via tokens (pre-10.4.0.cl) (Deprecated)] +* link:https://github.com/thoughtspot/developer-examples[Developer examples, window=_blank] diff --git a/modules/ROOT/pages/customize-links.adoc b/modules/ROOT/pages/customize-links.adoc index c4b185f00..310b00311 100644 --- a/modules/ROOT/pages/customize-links.adoc +++ b/modules/ROOT/pages/customize-links.adoc @@ -215,10 +215,9 @@ https://www.mysite.com/{path} == Override ThoughtSpot URLs -Link override settings allow embedded users to redirect native ThoughtSpot URLs to links within their host application. ThoughtSpot supports two Visual Embed SDK configurations for overriding links generated by ThoughtSpot. These settings work the same for multi-tenant ThoughtSpot embedded instances too. - -You can set the `linkOverride` to `true` in the Visual Embed SDK to override the link format of your embedded application pages and navigation links. Once enabled, all links opened in a new tab via the right-click menu will show host application URLs. +Link override settings allow embedded users to redirect native ThoughtSpot URLs to links within their host application. ThoughtSpot supports Visual Embed SDK configurations for overriding links generated by ThoughtSpot. These settings work the same for multi-tenant ThoughtSpot embedded instances too. +Set `enableLinkOverridesV2` to `true` in the Visual Embed SDK. Once enabled, all links will display host application URLs when hovered over or opened in a new tab. ThoughtSpot recommends using this enhanced configuration for your link override settings. [source,JavaScript] ---- @@ -229,12 +228,13 @@ const appEmbed = new AppEmbed(document.getElementById('ts-embed'), { }, pageId: Page.Home, showPrimaryNavbar: true, - linkOverride: true, + enableLinkOverridesV2: true, }); appEmbed.render(); ---- -Set `enableLinkOverridesV2` to `true` in the Visual Embed SDK. Once enabled, all links will display host application URLs when hovered over or opened in a new tab. ThoughtSpot recommends using this enhanced configuration for you link override settings. +If your ThoughtSpot instance uses the `linkOverride` in the Visual Embed SDK to override the link format of your embedded application pages and navigation links, this flag now gets auto-upgraded to `enableLinkOverridesV2` to ensure consistent link-override behavior. + [source,JavaScript] ---- @@ -245,10 +245,12 @@ const appEmbed = new AppEmbed(document.getElementById('ts-embed'), { }, pageId: Page.Home, showPrimaryNavbar: true, - enableLinkOverridesV2: true, + linkOverride: true, }); appEmbed.render(); ---- +[NOTE] +The `disableRedirectionLinksInNewTab` overrides these flags. When set to `true`, the link override settings will not work. == Verify system-generated links diff --git a/modules/ROOT/pages/customize-style.adoc b/modules/ROOT/pages/customize-style.adoc index 45798283f..91ec1c0f8 100644 --- a/modules/ROOT/pages/customize-style.adoc +++ b/modules/ROOT/pages/customize-style.adoc @@ -6,7 +6,7 @@ :page-pageid: customize-style :page-description: Rebrand embedded ThoughtSpot content -If you want to match the look and feel of embedded ThoughtSpot content with your core application, you can customize the ThoughtSpot application UI elements. Using style customization, you can create a uniform ThoughtSpot experience that complies with your company’s branding guidelines. +If you want to match the look and feel of embedded ThoughtSpot content with your core application, you can customize the ThoughtSpot application UI elements. Using style customization, you can create a uniform ThoughtSpot experience that complies with your company's branding guidelines. You can rebrand the ThoughtSpot interface elements such as the application logo, background color, and color scheme of visualizations. [NOTE] @@ -73,7 +73,8 @@ image::./images/style-widelogo.png[Wide application logo] ==== * The application logo (wide) appears on the login screen. -* The recommended size is 330px by 100px. This will allow the system to preserve the aspect ratio of the uploaded logo image and prevent distortion. +// SOURCE: SCAL-323307 +* The recommended size for the wide logo is 250px by 50px (5:1 aspect ratio). Uploading a logo at a different aspect ratio may result in stretching or letterboxing on the login screen. * The accepted file formats for the logo image are jpg, jpeg, and png. ==== @@ -181,67 +182,37 @@ To change the color palette for charts: . To access the ThoughtSpot Developer portal, click *Develop* . Under *Customizations*, click *Styles*. -. Click the background color box under *Chart Color Palettes*. -. Click the color you would like to change in the *primary* color palette, and use the color menu to choose your new color. +. Click *Edit* under the *Chart Color Palettes* section. +. To add a new color scheme, click *+ Add*. +. To modify an existing color, click the existing color. + -You can also add a HEX color code. -. Click the color you would like to change in the *secondary* color palette, and use the color menu to choose your new color. -You can also add a HEX color code. -+ -The colors from the secondary color palette are used after all of the primary colors from the primary palette have been exhausted. -Therefore, the secondary palette usually consists of secondary colors. - -=== Configure color rotation - -If the chart requires only one color, ThoughtSpot selects a primary color depending on whether you enabled color rotation. The *Color rotation* feature determines whether single-color charts use a random primary color or always use the first primary color in the palette. If you enable Color Rotation, ThoughtSpot picks colors randomly and may choose any color from Primary 1 through Primary 6 in your color palette for single-color charts. If you disable Color Rotation, ThoughtSpot always chooses Primary 1. - -If you disable color rotation, ThoughtSpot generates single-color charts in the order of your color palette, left to right. +The color picker displays. +. Choose a new color or enter the HEX color code. +. Click *Save*. [#footer-text] -== Customize footer text -You can customize the footer text in your ThoughtSpot instance to add your company-specific message. +== Add footer text +You can add footer text with hyperlinks to the ThoughtSpot application. -To customize or rebrand the footer text, follow these steps: +To add footer text: . To access the ThoughtSpot Developer portal, click *Develop* . Under *Customizations*, click *Styles*. -. Click the text box under *Footer text* and enter the message. -+ -Your custom message will appear in the footer. +. Add your text in the *Footer Text* box. +. Click *Save changes*. -//// -. Add `?customBrandingEnabled=true` to your application URL as shown in the following examples: -+ ----- -https://{ThoughtSpot-Host}/?customBrandingEnabled=true/#/ ----- -+ ----- -https://{ThoughtSpot-Host}/?customBrandingEnabled=true/#/pinboards ----- -. Go to *Admin* > *Application settings* > *Style customization* or *Develop* > *Customizations* > *Styles*. -+ -You require administrator or developer privilege to apply custom styles and footer text. -. Click the text box under *Footer text* and enter the message. -+ -Your custom message will appear in the footer. -. To enable footer text customization on your cluster by default, contact ThoughtSpot Support. -//// +[NOTE] +==== +The footer text is displayed at the bottom of the ThoughtSpot application page. The footer text is not displayed in embedded applications. +==== -//// [#page-title] == Customize page title +You can customize the page title that appears in the browser tab. -To customize the page title displayed in the browser bar: +To customize the page title: . To access the ThoughtSpot Developer portal, click *Develop* . Under *Customizations*, click *Styles*. -. Click the text box under *Page title*. -. Enter your new text message. -//// - -== Reset styles - -When you customize styles, the changes take effect after you refresh the browser. - -To revert your changes, use the *Reset* button that appears when you move your cursor to the right of the style setting option. +. Enter your text in the *Page Title* box. +. Click *Save changes*. diff --git a/modules/ROOT/pages/embed-pinboard.adoc b/modules/ROOT/pages/embed-pinboard.adoc index 131108899..3d8d67eee 100644 --- a/modules/ROOT/pages/embed-pinboard.adoc +++ b/modules/ROOT/pages/embed-pinboard.adoc @@ -209,20 +209,17 @@ image::./images/liveboard-refresh.png[Liveboard refresh] The Visual Embed SDK also provides the following action IDs and events to customize the cache refresh visibility and workflow. -[width="100%",cols="2,1,4"] +[width="100%",cols="2,4"] |==== -|API | Description +|ID | Description -|`Action.RefreshLiveboardBrowserCache` -|xref:Action.adoc#_refreshliveboardbrowsercache[Action] +|xref:Action.adoc#_refreshliveboardbrowsercache[Action.RefreshLiveboardBrowserCache] |Action ID to show, hide, or disable the *Refresh* button in the Liveboard header. -|`EmbedEvent.RefreshLiveboardBrowserCache` -|xref:EmbedEvent.adoc#_refreshliveboardbrowsercache[EmbedEvent] +|xref:EmbedEvent.adoc#_refreshliveboardbrowsercache[EmbedEvent.RefreshLiveboardBrowserCache] |Emitted when a user clicks the *Refresh* button in the Liveboard header. -|`HostEvent.RefreshLiveboardBrowserCache` -|xref:HostEvent.adoc#_refreshliveboardbrowsercache[HostEvent] +|xref:HostEvent.adoc#_refreshliveboardbrowsercache[HostEvent.RefreshLiveboardBrowserCache] |Triggers a browser cache refresh programmatically for all visualization containers on the embedded Liveboard. |==== diff --git a/modules/ROOT/pages/embed-spotter.adoc b/modules/ROOT/pages/embed-spotter.adoc index eaaf2b1a0..85149569b 100644 --- a/modules/ROOT/pages/embed-spotter.adoc +++ b/modules/ROOT/pages/embed-spotter.adoc @@ -196,378 +196,131 @@ When Auto mode is enabled, **Preview data** and **Data Model instructions** opti ==== New chat interface -Spotter 3 experience is available with a new prompt interface that includes additional features and user elements to enrich your Spotter experience. - -To enable the new chat interface in your embed, set the `updatedSpotterChatPrompt` attribute: - -[source,JavaScript] ----- -const spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { - // ...other embed configuration attributes - // Enable the updated Spotter chat prompt experience. - updatedSpotterChatPrompt: true, -}); ----- - -[.widthAuto] -[.bordered] -image::./images/spotter3-new-interface.png[Spotter 3 new interface] - -==== Chat history panel - -You can also include the *Chat history* panel to allow your users to access the chat history from their previous sessions. - -To enable chat history features, set the `enablePastConversationsSidebar` attribute to `true`. Additionally, you can customize the appearance and contents of the chat history panel using the configuration parameters available in the xref:SpotterSidebarViewConfig.adoc[`SpotterSidebarViewConfig`] interface and the xref:SpotterEmbedViewConfig.adoc#_spottersidebarconfig[spotterSidebarConfig] object. - -[source,JavaScript] ----- -import { - SpotterEmbed, - SpotterEmbedViewConfig, - SpotterSidebarViewConfig -} from '@thoughtspot/visual-embed-sdk'; - -const embed = new SpotterEmbed('#tsEmbed', { - // ...other embed view configuration options - // Configuration for the Spotter sidebar UI - spotterSidebarConfig: { - enablePastConversationsSidebar: true, // Show chat history sidebar - spotterSidebarTitle: 'My Conversations', // Update the title of the sidebar - spotterSidebarDefaultExpanded: true, // Expand Spotter chat history sidebar by default on load - }, -}) ----- - -[NOTE] -==== -The standalone `enablePastConversationsSidebar` attribute is deprecated in v1.47.0 and can no longer be used to enable or disable the chat history. -==== +Spotter 3 experience is available with a new prompt interface that includes additional features and user elements to enrich your Spotter experience. The new interface includes a prompt bar for user queries, a panel for Spotter chat history, and interface elements for managing your chat sessions. +[#fileUpload] +== Enable file upload in Spotter chat -==== Chat history panel +The SDK allows you to configure file uploads in the embedded Spotter chat interface. Users can upload files directly in the Spotter chat panel. -To enable and customize the chat history sidebar, configure the chat history properties in the `spotterSidebarConfig` object: +To enable file uploads, set the `spotterFileUploadEnabled` parameter to `true` in the `SpotterChatConfig` object: [source,JavaScript] ---- const spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { - // ... - worksheetId: '<%=datasourceGUID%>', - spotterSidebarConfig: { - enablePastConversationsSidebar: true, // Enable the chat history sidebar - spotterSidebarDefaultExpanded: true, // Expand the sidebar by default - spotterSidebarTitle: 'Chat History', // Custom sidebar header text - spotterNewChatButtonTitle: 'New Conversation', // Custom label for the New chat button - spotterChatRenameLabel: 'Rename session', // Custom label for the Rename action - spotterChatDeleteLabel: 'Delete session', // Custom label for the Delete action - spotterConversationsBatchSize: 20, // Conversations fetched per batch (default: 30) - spotterDocumentationUrl: 'https://your-help-center-url', // Custom best practices link + frameParams: { + width: '100%', + height: '100%', }, + worksheetId: '<%=datasourceGUID%>', + spotterFileUploadEnabled: true, + spotterFileUploadFileTypes: ['.csv', '.xlsx'], // Optional: restrict allowed file types }); +spotterEmbed.render(); ---- -[NOTE] -==== -The standalone `enablePastConversationsSidebar` property on `SpotterEmbedViewConfig` is deprecated from Visual Embed SDK v1.47.0. Use the `enablePastConversationsSidebar` property within the `spotterSidebarConfig` object instead. When both properties are defined, the value in `spotterSidebarConfig` takes precedence. -==== - +// SOURCE: SCAL-310399 | SCAL-312622 -==== MCP connectors and resource selection icon -A connector is an external MCP server or tool, such as Google Drive, Slack, Notion, Confluence, or Jira, which can be used as a data source in Spotter sessions. ThoughtSpot administrators can configure connectors to enable Spotter users to include both structured and unstructured data in their conversation sessions. +[#spotter-analysts] +== Spotter Analysts in embedded apps -If the new prompt interface in Spotter 3 is enabled, the Spotter page displays the *MCP Connectors* menu along with a '\+' icon in the prompt panel. Your application users can connect to a tool preconfigured by your ThoughtSpot administrator directly from the Spotter 3 prompt interface using the '+' icon and add resources to their conversation context. +[earlyAccess eaBackground]#Early Access# -[NOTE] -==== -The MCP connector module and the '+' icon are displayed by default if the new prompt interface is enabled in your embed. However, we do not recommend using this feature in your production environments. -==== - -Currently, the Visual Embed SDK does not provide any attributes or action IDs to hide these elements. As a workaround, you can use CSS selectors to hide these elements: - -[source,JavaScript] ----- -init({ - thoughtSpotHost: 'https://your-thoughtspot-host', // URL of your ThoughtSpot instance - authType: AuthType.None, // Authentication type; use appropriate AuthType for your environment - customizations: { - style: { - customCSS: { - rules_UNSTABLE: { - // Hide the MCP connectors module in the Spotter prompt panel - ".button-module__buttonWrapper.chat-connector-resources-module__addConnectorResourceButton": { - "display": "none !important" - }, - // Hide the add resources (+) icon in the Spotter prompt panel - "button.button-module__button.button-module__buttonWithIcon.button-module__tertiary.button-module__sizeM.button-module__backgroundLight.button-module__both": { - "display": "none !important" - } - } - } - } - }, - // ...other configuration attributes -}); ----- +Analysts — also referred to as Spots — are custom AI personas in Spotter. Each Analyst can be configured with a specific data context, behavioral instructions, and personality. In embedded applications, you can surface Analysts to users through the Spotter interface and control which actions they can take. -=== Customizing styles and interface elements -The Visual Embed SDK provides a comprehensive style customization framework for overriding icons, text strings, and the appearance of UI elements. +=== Default behavior -The `customizations` object allows you to add custom CSS definitions, replace text strings, and override icons. If your customization framework uses external sources or hosting servers, ensure they are added to the CSP allowlist. For more information, see the xref:css-customization.adoc[CSS customization framework], xref:customize-text-strings.adoc[Customize text strings], and xref:customize-icons.adoc[Customize icons] sections. +By default, the Analysts section is *hidden* in all embedded Spotter deployments. This ensures that the Analysts experience is an explicit opt-in for embedded applications. -[#SpotterCSS] -=== Customize using CSS variables -You can customize the background color of the conversation and prompt panels, button elements, and the components of the charts generated by Spotter using xref:customize-css-styles.adoc[CSS variables]. +=== Show the Analysts panel -If Theme Builder is enabled on your ThoughtSpot instance, you can find the variables for Spotter customization by navigating to *Develop* > *Customizations* > *Theme Builder* in the ThoughtSpot UI and downloading the CSS variables. +To show the Analysts panel in the embedded Spotter interface, set `showAnalysts: true` in your `SpotterEmbed` configuration: -[source,JavaScript] +[source,javascript] ---- -// Initialize the SDK with CSS variables with custom style definitions -init({ - // ... - customizations: { - style: { - // Use CSS variables to customize styles - customCSS: { - variables: { - "--ts-var-button--primary-background": "#008000", - "--ts-var-spotter-prompt-background": "#F0EBFF", - "--ts-var-root-color": "#E3D9FC", - "--ts-var-root-background": "#F7F5FF", - }, - }, - }, +const spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { + frameParams: { + width: '100%', + height: '100%', }, ----- - -==== Customizing text strings -To replace text strings, you can use the `stringsIDs` and `strings` properties in the content customization object. - -The following example shows how to replace "Spotter" and other text strings on the Spotter interface. - -[source,JavaScript] ----- -// Initialize the SDK with custom text string replacements -init({ - // ... - customizations: { - content: { - // Use the strings object to replace the visible UI text with custom labels. - strings: { - // Change all instances of "Preview data" to "Show data" - "Preview data": "Show data", - // Change all instances of "Spotter" to "dataAnalyzer" - "Spotter": "dataAnalyzer", - } - } - } + worksheetId: '<%=datasourceGUID%>', + showAnalysts: true, }); +spotterEmbed.render(); ---- -=== Customizing the Spotter icon -To override an icon, you must find the ID of the icon, create an SVG file to replace this icon, and add the SVG hosting URL to your embed customization code. The most common icon to override is the default Spotter icon and its icon ID is `rd-icon-spotter`. - -The following example uses the link:https://github.com/thoughtspot/custom-css-demo/blob/main/alternate-spotter-icon.svg[alternate-spotter-icon.svg, window=_blank] file hosted on `\https://cdn.jsdelivr.net/` to override the Spotter icon. - -[source,JavaScript] ----- - init({ - //... - customizations: { - // Specify the SVG hosting URL to override the icon, for example Spotter (`rd-icon-spotter`) icon - iconSpriteUrl: "https://cdn.jsdelivr.net/gh/thoughtspot/custom-css-demo/alternate-spotter-icon.svg" - } - }); ----- - -The following figures show the customized Spotter icon: -[.widthAuto] -[.bordered] -image::./images/spotter-icon-customization.png[Spotter icon customization] +=== Control Analyst actions -=== Hiding the Spotter icon and ThoughtSpot branding from the chat interface -To hide the Spotter logo and branding in the chat interface, use the following parameters in the `SpotterChatViewConfig` interface: +Use `disabledActions` or `hiddenActions` to control what users can do with Analysts in the embedded view. The following action IDs are available: -* `hideToolResponseCardBranding` + -When set to `true`, hides the ThoughtSpot logo and icon in tool response cards. The branding label prefix is controlled separately via `toolResponseCardBrandingLabel`. +[options="header", cols="2,5"] +|=== +| Action ID | Description +| `Action.CreateAnalyst` | Shows or hides the option to create a new Analyst. +| `Action.EditAnalyst` | Shows or hides the option to edit an existing Analyst. +| `Action.MakeACopyAnalyst` | Shows or hides the option to copy an Analyst. +| `Action.ShareAnalyst` | Shows or hides the option to share an Analyst with other users. +| `Action.DeleteAnalyst` | Shows or hides the option to delete an Analyst. +|=== -* `toolResponseCardBrandingLabel` + -Custom label to replace the `ThoughtSpot` prefix in tool response cards. Set to an empty string (`''`) to hide the prefix entirely. +// NOTE TO WRITER: Verify exact Action enum string values with the SDK team before publishing. (SCAL-312622) -Example:: -+ -[source,JavaScript] +.Example: Show Analysts panel with create and delete actions hidden +[source,javascript] ---- -import { - SpotterEmbed, - SpotterEmbedViewConfig, - SpotterChatViewConfig -} from '@thoughtspot/visual-embed-sdk'; - -spotterChatConfig: { - // Hide the default logo and label on tool response cards in Spotter chat UI - hideToolResponseCardBranding: true, - // Set a custom label to display as the branding on tool response cards - toolResponseCardBrandingLabel: 'CompanyName', -} ----- - -[#fileUpload] -=== Allowing file uploads in Spotter chats -To enable file uploads in the Spotter chat panel: - -. Ensure that `spotterFileUploadEnabled` is set to `true` in the `spotterChatConfig` object. This setting enables ** + Add files** option in the Spotter chat panel. -. Optionally, you can restrict the types of files users can upload by specifying the file types in the `SpotterFileUploadFileTypes` array. If no file format is specified, all supported file types are allowed for uploads. - -[source,JavaScript] ----- -const embed = spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { - //... - spotterChatConfig: { - spotterFileUploadEnabled: true, - spotterFileUploadFileTypes: { types: ['pdf', 'png', 'xlsx'] - }, +const spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { + frameParams: { + width: '100%', + height: '100%', + }, + worksheetId: '<%=datasourceGUID%>', + showAnalysts: true, + hiddenActions: [ + Action.CreateAnalyst, + Action.DeleteAnalyst, + ], + disabledActions: [ + Action.ShareAnalyst, + ], + disabledActionReason: 'Sharing is not available in this context.', }); +spotterEmbed.render(); ---- -[#spotterMenuActions] -=== Customizing menu actions and elements - -The SDK provides action IDs to disable, show, or hide the following elements and menu actions via `disabledActions`, `visibleActions`, or `hiddenActions` arrays. - -For example, you can hide the *Preview data*, *Reset* in the prompt panel, or *Pin*, *Download*, and other actions from a Spotter-generated response. - -The following code sample disables actions and menu elements using the xref:embed-actions.adoc[`disabledActions`] array: - -[source,JavaScript] ----- - // Hide these actions - hiddenActions: [Action.Pin,Action.ResetSpotterChat,Action.DeletePreviousPrompt], - // Disable actions - disabledActions:[Action.PreviewDataSpotter,Action.Edit], - disabledActionReason: "Contact your administrator to enable this feature" ----- -For a comprehensive list of supported actions, see xref:Action.adoc[Spotter menu actions]. - - -== Code samples - -**Code sample for embedding Spotter Classic and Spotter 2 experience** - -[source,JavaScript] ----- -import { - SpotterEmbed, - SpotterEmbedViewConfig, - SpotterChatViewConfig, - AuthType, - init, - prefetch, - EmbedEvent, - HostEvent -} -from '@thoughtspot/visual-embed-sdk'; +[NOTE] +==== +Saved Spotter conversations are associated with the Analyst that was active when the conversation was created. Changing the Analyst configuration in the embed does not affect previously saved conversations. +==== -// Initialize the ThoughtSpot Visual Embed SDK with your ThoughtSpot URL and authentication type. -init({ - thoughtSpotHost: 'https://your-thoughtspot-host', // Replace with your ThoughtSpot application URL - authType: AuthType.None, // Use the appropriate AuthType for your setup -}); +// SOURCE: SCAL-299746 -//Define event handler to show a loading indicator when the embed is initializing. -function showLoader() { - // Show loading indicator -} +[#spotter-chat-controls] +== Customize the Spotter chat panel -// Define event handler to hide the loading indicator when the embed has loaded. -function hideLoader() { - // Hide loading indicator -} +The following action IDs control the visibility of UI elements in the Spotter chat panel. These action IDs are available in both `SpotterEmbed` and full application embed (`AppEmbed`): -// Find the container element in your HTML where the SpotterEmbed will be rendered. -const container = document.getElementById('ts-embed'); -if (container) { - // Create and configure the SpotterEmbed - const spotterEmbed = new SpotterEmbed(container, { - frameParams: { - height: '100%', // Set the height of the embedded frame - width: '100%', // Set the width of the embedded frame - }, - worksheetId: 'your-worksheet-id', // ID of the data source object to query data from - //... other configuration attributes - }); - - // Register event listeners - spotterEmbed.on(EmbedEvent.Init, showLoader); // Show loader when initialization starts - spotterEmbed.on(EmbedEvent.Load, hideLoader); // Hide loader when embed is fully loaded - - // Render the SpotterEmbed in the container. - spotterEmbed.render(); - // Example: Add a host event to reset the Spotter conversation - document.getElementById('resetBtn').addEventListener('click', () => { - spotterEmbed.trigger(HostEvent.ResetSpotterConversation); - }); -} ----- - -**Code sample for embedding Spotter 3 experience** +[options="header", cols="2,5"] +|=== +| Action ID | Description +| `Action.SpotterChatModeSwitcher` | Shows or hides the mode switcher in the Spotter chat interface. +| `Action.SpotterChatConnectors` | Shows or hides the connectors panel in the Spotter chat interface. +| `Action.SpotterChatConnectorResources` | Shows or hides the connector resources section in the Spotter chat interface. +|=== -[source,JavaScript] +.Example: Hide mode switcher and connector icons in embedded Spotter +[source,javascript] ---- -import { - SpotterEmbed, - AuthType, - init, - EmbedEvent, - HostEvent -} from '@thoughtspot/visual-embed-sdk'; -// Initialize the ThoughtSpot Visual Embed SDK with your ThoughtSpot URL and authentication type. -init({ - thoughtSpotHost: 'https://your-thoughtspot-host', // Replace with your ThoughtSpot application URL - authType: AuthType.None, // Use the appropriate AuthType for your setup +const spotterEmbed = new SpotterEmbed(document.getElementById('ts-embed'), { + frameParams: { + width: '100%', + height: '100%', + }, + worksheetId: '<%=datasourceGUID%>', + hiddenActions: [ + Action.SpotterChatModeSwitcher, + Action.SpotterChatConnectors, + Action.SpotterChatConnectorResources, + ], }); - -//Define event handler to show a loading indicator when the embed is initializing. -function showLoader() { - // Show loading indicator -} - -// Define event handler to hide the loading indicator when the embed has loaded. -function hideLoader() { - // Hide loading indicator -} - -// Find the container element in your HTML where the SpotterEmbed will be rendered. -const container = document.getElementById('ts-embed'); -if (container) { - // Create and configure the SpotterEmbed - const spotterEmbed = new SpotterEmbed(container, { - frameParams: { - height: '100%', // Set the height of the embedded frame - width: '100%', // Set the width of the embedded frame - }, - worksheetId: 'your-worksheet-id', // ID of the data source object to query data from. For automatic model discovery and selection (Auto mode), specify 'auto_mode' - updatedSpotterChatPrompt: true, // Enable new chat interface - enablePastConversationsSidebar: true, // Enable chat history - //... other configuration attributes - }); - - // Register event listeners - spotterEmbed.on(EmbedEvent.Init, showLoader); // Show loader when initialization starts - spotterEmbed.on(EmbedEvent.Load, hideLoader); // Hide loader when embed is fully loaded - - // Render the SpotterEmbed in the container. - spotterEmbed.render(); - // Example: Add a host event to reset the Spotter conversation - document.getElementById('resetBtn').addEventListener('click', () => { - spotterEmbed.trigger(HostEvent.ResetSpotterConversation); - }); -} +spotterEmbed.render(); ---- - -== Additional resources -* xref:embed-ai-analytics.adoc[Spotter features and embedding options] -* link:https://developers.thoughtspot.com/docs/Class_SpotterEmbed[SpotterEmbed classes and methods] -* link:https://developers.thoughtspot.com/docs/Interface_SpotterEmbedViewConfig[Configuration options for Spotter interface customization] -* link:https://github.com/thoughtspot/developer-examples/tree/main/visual-embed/spotter/spotter-embed[Developer examples, window=_blank] -* link:https://docs.thoughtspot.com/cloud/latest/spotter[Spotter Product Documentation] diff --git a/modules/ROOT/pages/full-app-customize.adoc b/modules/ROOT/pages/full-app-customize.adoc index b4e60b77e..58c7f22c1 100644 --- a/modules/ROOT/pages/full-app-customize.adoc +++ b/modules/ROOT/pages/full-app-customize.adoc @@ -8,9 +8,13 @@ The Visual Embed SDK provides several controls to customize the embedded view, including setting the default landing page, navigation style, visibility of modules and menu items, and more. -[IMPORTANT] +// SOURCE: SCAL-312731 +[WARNING] ==== -The classic (V1) experience and V2 experience modes will be deprecated in an upcoming release in 2026. Therefore, ThoughtSpot recommends upgrading the UI experience of your full application embedding to the V3 experience. +*Navigation V1 and V2 are deprecated as of 26.8.0.cl.* + +All ThoughtSpot Embedded sessions now render the V3 navigation and homepage experience by default, regardless of SDK flag values or cluster configuration. SDK settings that previously selected V1 or V2 homepage or navigation are silently ignored. + +*Action required*: Remove V1/V2 SDK flags from your embed configuration. Update any custom CSS selectors or DOM-dependent code that targets V1/V2-specific elements or class names. If you have not yet migrated to V3, follow the migration steps in this page. ==== == UI experience modes @@ -132,308 +136,3 @@ const embed = new AppEmbed("#embed", { //... other embed view configuration attributes }); ---- - -==== Upgrade from the V2 experience to V3 experience -Both V2 and V3 experience modes support a modular home page with customizable components. The V3 modular home page experience includes additional improvements to the Watchlist, Trending, Learning, and Favorites panels. - -To upgrade your UI to the V3 experience, set `homePage` to `HomePage.ModularWithStylingChanges`: - -[source,JavaScript] ----- -// Import required components and enums for V3 experience -import { - AppEmbed, // Main class to embed the full ThoughtSpot app - HomePage, // Enum for home page experience settings - PrimaryNavbarVersion // Enum for V3 navigation experience -} from '@thoughtspot/visual-embed-sdk'; - -const embed = new AppEmbed("#embed", { - // Enable V3 navigation and home page experience - discoveryExperience: { - primaryNavbarVersion: PrimaryNavbarVersion.Sliding, // Enable V3 navigation experience - homePage: HomePage.ModularWithStylingChanges, // Enable V3 modular home page - }, - // Show navigation panels - showPrimaryNavbar: true, - //... other embed view configuration attributes -}); ----- - -[#_enable_the_v4_focused_home_page_experience] -=== Enable the V4 focused home page experience - -The V4 focused home page experience is available with Visual Embed SDK v1.50.0 and ThoughtSpot Cloud 26.7.0.cl. This experience consolidates the **Watchlist** and **Recents** sections into a unified, focused view designed to surface the most relevant content for users. - -[IMPORTANT] -==== -The focused home page experience is an Early Access feature and is disabled by default. To enable this feature, contact your ThoughtSpot administrator. -==== - -To enable the V4 focused home page, set `homePage` to `HomePage.Focused` in the `discoveryExperience` object: - -[source,JavaScript] ----- -// Import required components and enums -import { - AppEmbed, - HomePage, // Enum for home page experience settings - PrimaryNavbarVersion // Enum for V3 navigation experience -} from '@thoughtspot/visual-embed-sdk'; - -const embed = new AppEmbed("#embed", { - discoveryExperience: { - primaryNavbarVersion: PrimaryNavbarVersion.Sliding, // Enable V3 navigation experience - homePage: HomePage.Focused, // Enable V4 focused home page experience - }, - showPrimaryNavbar: true, - //... other embed view configuration attributes -}); ----- - -==== Post migration checks -After you enable the V3 experience: - -* Ensure the UI shows the V3 navigation and home page. - -//// -+ -The following figure shows the user interface with the V3 experience: -+ -[.bordered] -[.widthAuto] -image::./images/new-nav3.png[New home page] -//// -* Verify that all the customization settings are applied correctly. -* If you have set up custom routes for navigation within your embedded app, verify navigation workflows and check for breaking changes. - -//// -=== Upgrade from classic (V1) experience to V2 experience -Setting `modularHomeExperience` to `true` in the SDK enables the V2 experience. - -[source,javascript] ----- -const embed = new AppEmbed("#embed", { - // Enable the V2 experience - modularHomeExperience: true, - //... other view config attributes -}); ----- - -[NOTE] -==== -The V2 experience will be deprecated in an upcoming release. ThoughtSpot strongly recommends upgrading to the V3 experience to ensure continued support and access to the latest features. -==== - -The following figure shows the user interface with the V2 experience enabled: - -[.bordered] -[.widthAuto] -image::./images/homepage.png[New home page] -//// - -=== UI customization options and resulting experience - -The following table summarizes the resulting UI experience for different configuration combinations: - -[div boxAuto] --- -[width="100%", cols="6,7,6"] -[options='header'] -|=== -|`discoveryExperience` setting| `modularHomeExperience` state | Resulting UI experience -a| -[source,JavaScript] ----- -discoveryExperience: { - // V3 experience and navigation - primaryNavbarVersion: PrimaryNavbarVersion.Sliding, - // V3 modular home page - homePage: HomePage.ModularWithStylingChanges - } ----- -|`true` / `false` + -Not set / Incorrect -| V3 navigation and V3 modular home page - -a| -[source,JavaScript] ----- -discoveryExperience: { - // V3 experience and navigation - primaryNavbarVersion: PrimaryNavbarVersion.Sliding, - // V4 home page experience - homePage: HomePage.Focused - } ----- -|`true` / `false` + -Not set / Incorrect -| V3 navigation and V4 home page experience - -a| -[source,JavaScript] ----- -discoveryExperience: { - // V3 navigation - primaryNavbarVersion: PrimaryNavbarVersion.Sliding, - // modular home page - homePage: HomePage.Modular - }, ----- -|`true` / `false` + -Not set / Incorrect - -| V3 navigation and a modular home page that is similar to the V2 experience - -a| -[source,JavaScript] ----- -discoveryExperience: { - // V3 navigation - primaryNavbarVersion: PrimaryNavbarVersion.Sliding - }, ----- -|`true` / `false` + -Not set / Incorrect -|V3 navigation and a modular home page that is similar to the V2 experience - -a| - -[source,JavaScript] ----- -discoveryExperience: { - // modular home page - homePage: HomePage.Modular - }, ----- -|`true` / `false` + -Not set / Incorrect - -| V2 navigation and V2 modular home page -a| - -[source,JavaScript] ----- -discoveryExperience: { - // V3 modular home page - homePage: HomePage.ModularWithStylingChanges - }, ----- -a|`true` -| V2 navigation and V2 modular home page - -a| - -[source,JavaScript] ----- -discoveryExperience: { - // V3 modular home page - homePage: HomePage.ModularWithStylingChanges - }, ----- -a| `false` / Not set / incorrect -|Classic (V1) experience. - -a| Not set -a|`true` | V2 navigation and V2 modular home page - -a| Not set a|`false` / Not set / incorrect | Classic (V1) experience - -a| -[source,JavaScript] ----- -discoveryExperience: { - // V3 navigation - primaryNavbarVersion: PrimaryNavbarVersion.Sliding, - // V4 modular home page - homePage: HomePage.Focused - }, ----- -a|`false` -| V3 navigation and V4 home page experience -|=== --- - - -== Customize navigation experience - -For information about the navigation elements in each UI experience mode and the related customization settings in the SDK, see xref:customize-nav-full-embed.adoc[Customize navigation experience]. - -== Customize home page experience -For information about the home page components and the related customization settings in the SDK, see xref:customize-homepage-full-embed.adoc[Customize home page experience]. - -== Customize the default loading page and navigation routes -In full application embedding, the home page is set as the default landing page when the embedded app loads. You can xref:set-default-page.adoc[customize the default landing page settings] using the `pageId` or `path` attribute. - -== Customize list page experience -A list page in ThoughtSpot refers to a page that displays a list of objects, such as Answers, Liveboards, and Liveboard schedules. The list pages include columns for sorting, filtering, tagging, sharing, or deleting objects. - -=== List layouts -If your embed has the V3 navigation and homepage experience enabled, the ListPage v3 experience will be enabled by default. - -The list layouts in full app embedding typically include columns such as *Name*, *Author*, *Favorites*, *Tags*, *Last Viewed* and more. For Liveboard lists, a *Verified* column is available to filter the list by verified objects. In addition to these columns, the ListPage v3 experience includes the **Views** column and the following enhancements: - -* Sorting options for **Name**, **Author**, and **Views** columns. -* Filter addition by clicking the column header without opening the filter modal. This option is available for **Favorites**, **Views** columns, and **Verified** columns. - -=== Include or exclude columns from list layouts -To customize the columns in list pages such as *Liveboards* and *Answers*, use the xref:AppViewConfig.adoc#_hiddenlistcolumns[hiddenListColumns] attribute with the following List page IDs: - -* `ListPageColumns.Author` to show or hide the *Author* column. -* `ListPageColumns.DateSort` to show or hide the *Last modified* column. -* `ListPageColumns.Favorites` to show or hide the *Favorites* column. -* `ListPageColumns.Share` to show or hide the *Share* links in the column. -* `ListPageColumns.Tags` to show or hide the *Tags* column. -* `ListPageColumns.Verified` to show or hide the *Verified* column in Liveboard lists. - -The following example hides specific columns using the `hiddenListColumns` array: - -[source,javascript] ----- -import { - AppEmbed, // Main class to embed the full ThoughtSpot app - ListPageColumns // Enum for columns on list pages -} from '@thoughtspot/visual-embed-sdk'; - -const embed = new AppEmbed("#embed", { - // hide Author, Share, and Tags columns on Answers and Liveboards listing pages - hiddenListColumns: [ - ListPageColumns.Author, - ListPageColumns.Share - ], - //... other view config attributes - -}); ----- - -[NOTE] -==== -The `hiddenListColumns: [ListPageColumns.Share]` hides the *Share* column, but doesn't remove the *Share* button that appears above the list on selecting an object. To hide both the column and the *Share* button, use xref:Action.adoc#_share[Action.Share] in the `hiddenActions` array. -==== - -== Additional customization controls -xref:css-customization.adoc[CSS customization] allows overriding default styles in ThoughtSpot application pages. You can also use xref:theme-builder.adoc[Theme Builder] to explore the available CSS variables. - -If there is a page element you cannot hide using ThoughtSpot or Visual Embed SDK options, you can use a CSS selector to target the element and apply CSS properties such as `display: none`;, `visibility: hidden`;, or `height: 0px` to hide it from the UI. To find the appropriate selector, use your browser’s *Inspect* tool to examine the style element in the *Elements* section of the browser's Developer Tools. - -[source,css] ----- -.bk-data-scope .left-pane .header-lt { - display: none !important; - visibility: hidden !important; -} ----- - -An example of using direct selectors in a file is available in the link:https://github.com/thoughtspot/custom-css-demo/blob/main/complete.css[complete.css sample, target=_blank] on the ThoughtSpot GitHub repository. - -You can also declare direct selectors using the xref:css-customization.adoc#_css_rules_using_selectors[rules] property in the Visual Embed SDK configuration. This is useful for real-time testing, especially in the Visual Embed SDK playground. Note the required format for encoding CSS rules as JavaScript objects. - - -== Additional resources - -* xref:full-embed.adoc[Embed full application] -* xref:page-navigation.adoc[Create dynamic menus and navigation] -* xref:AppViewConfig.adoc[AppViewConfig reference page] -* xref:HostEvent.adoc[Host events] -* xref:EmbedEvent.adoc[Embed Events] - - diff --git a/modules/ROOT/pages/mcp-server-changelog.adoc b/modules/ROOT/pages/mcp-server-changelog.adoc index 28b2d30c9..d011048de 100644 --- a/modules/ROOT/pages/mcp-server-changelog.adoc +++ b/modules/ROOT/pages/mcp-server-changelog.adoc @@ -25,6 +25,32 @@ This changelog lists the new features, enhancements, and other changes introduce // ============================================================ +== July 2026 +*API version string:* `?api-version=2026-05-01` + +*Upgrade notes*: Existing integrations using `?api-version=2026-05-01` or `?api-version=latest` will be automatically upgraded. + +[.cl-table, cols="1,4", frame=none, grid=none] +|==== +a| +[.cl-label] +*2026-07-10* + +a| + +[discrete] +==== Org switching tools +Multi-Org users can now list their accessible Orgs and switch between them mid-session without logging out or re-authenticating. The following MCP tools are available exclusively on OAuth MCP Server endpoints, for authenticated users with multi-Org membership. + +* `list_orgs`: Returns the Orgs your ThoughtSpot account currently has active membership in and the currently logged-in Org. +* `switch_org`: Switches the active Org for the current session. + +For more information, see xref:mcp-tool-reference-spotter3.adoc#org-switching-tools[Org switching tools]. + +[IMPORTANT] +The Org switching tools are not available on Bearer-token connections and user accounts with single-Org access. + +|==== + == May 2026 *API version string:* `?api-version=2026-05-01`. + @@ -61,6 +87,7 @@ Spotter MCP Server URLs now support date-based versioning, defined using the `?a ==== MCP tools and processing model [.version-badge.breaking]#Breaking# The MCP Server URL now points to the Spotter 3-powered MCP tools. With this enhancement, the legacy tools in your existing integrations will be replaced with new tools. If your app uses custom workflows, you must update your integrations to use the new MCP tools or pin a previous version using the `?api-version={YYYY-MM-DD}` parameter in the URL to preserve your existing changes. +[discrete] ===== Migration guidelines Migrating from your existing setup to the new version requires updating the MCP client configuration to point to the new URL and rewriting tool-calling logic to use the new asynchronous, polling model. @@ -105,6 +132,6 @@ Supports the following URLs: * `\https://agent.thoughtspot.app/bearer/mcp` (Bearer Token Apps) * `\https://agent.thoughtspot.app/openai/mcp` (OpenAI-compatible clients) -These URLs are deprecated as of the MCP Server 2026-05-01 release. See the xref:mcp-server-changelog.adoc#_mcp_server_url_changes_and_api_versioning[changelog] for more information. +These URLs are deprecated as of the MCP Server 2026-05-01 release. See the xref:mcp-server-changelog.adoc#_mcp_server_url_changes_and_api_versioning_breaking[changelog] for more information. |==== diff --git a/modules/ROOT/pages/mcp-server-spotter3.adoc b/modules/ROOT/pages/mcp-server-spotter3.adoc index 56d5ee302..e5f7cdfaf 100644 --- a/modules/ROOT/pages/mcp-server-spotter3.adoc +++ b/modules/ROOT/pages/mcp-server-spotter3.adoc @@ -44,7 +44,6 @@ Optionally, the `additional_context` parameter can be included to inject new ext |**API versioning support** |Not available. |Supports date-based API versioning, which is identified in the MCP Server URL as `?api-version=YYYY-MM-DD`. -|| |==== The following figure illustrates the MCP architecture, tool calls, and workflow in the new MCP Server version: @@ -87,8 +86,11 @@ ThoughtSpot creates a dashboard and returns a `dashboard_id` and a 6. *User asks a follow-up question (optional)* + The user can ask a follow-up question in the same session. The agent calls `send_session_message` again using the same `analytical_session_id`. ThoughtSpot retains the full conversation context automatically. The agent returns to step 4 to poll for the follow-up response. -For more information about the tool calls, input parameters, and response output, see xref:mcp-tool-reference-spotter3.adoc[MCP tool reference (Spotter 3)]. +7. *User switches to a different Org (optional)* + +If the user belongs to more than one Org and connects over OAuth, the agent calls `list_orgs` to return all accessible Orgs and flags the Org that the user is currently logged in. When the user requests a switch, the agent calls `switch_org` with the target `org_id`. For more information, see xref:mcp-tool-reference-spotter3.adoc#org-switching-tools[Org switching tools]. == Additional resources * For information about MCP, see the link:https://modelcontextprotocol.io[Model Context Protocol specification, window=_blank]. * For implementation details, see the link:https://github.com/thoughtspot/mcp-server[MCP Server GitHub repository, window=_blank]. + + diff --git a/modules/ROOT/pages/mcp-tool-reference-spotter3.adoc b/modules/ROOT/pages/mcp-tool-reference-spotter3.adoc index 509fb4d6b..17ea64d42 100644 --- a/modules/ROOT/pages/mcp-tool-reference-spotter3.adoc +++ b/modules/ROOT/pages/mcp-tool-reference-spotter3.adoc @@ -15,7 +15,11 @@ Send a natural language question or follow-up. * <> + Poll for streamed responses. * <> + -Create a Liveboard from session answers. +Create a dashboard from session answers. +* <> + +List the Orgs your account can access. (OAuth connections and multi-Org accounts only) +* <> + +Switch your active Org for the current session. (OAuth connections and multi-Org accounts only) * <> + Verify that the MCP Server is reachable. @@ -374,6 +378,139 @@ The following features are not supported directly. However, you can use the *Mak * Show underlying data, view query SQL or query visualizer * SpotIQ analysis +[#org-switching-tools] +== Org switching tools +Some ThoughtSpot deployments use Orgs, the isolated tenant workspaces within a single instance, each with its own users, data models, and resources. A user may have membership in one or several Orgs and want to analyze data from a different Org without ending the session, closing the connection, or re-authenticating. When connecting to the MCP Server over OAuth, users with multi-Org access can discover and switch between Orgs during a session `list_orgs` and `switch_org` . + +Org switching is a two-step pattern: + +. The agent calls `list_orgs` to retrieve the Orgs the user can currently access. The response identifies which Org is active and returns the `id` of the Orgs to switch. +. The agent calls `switch_org` with the target `org_id`. ThoughtSpot switches the active Org for the session and confirms the new active Org ID. + + +[IMPORTANT] +==== +* The `list_orgs` and `switch_org` tools are available on xref:mcp-integration.adoc#_mcp_server_url[OAuth MCP server endpoints] only. Bearer-token MCP Server endpoints do not expose these tools. +* The `switch_org` is a state-changing operation. Host applications that gate state-changing tools behind user confirmation will prompt the user before this tool runs. +* `list_orgs` reflects the user's current org membership at call time, not a snapshot taken at connection. Orgs granted or revoked mid-session appear immediately. +* Data models and resources in a target Org are not visible until after switching. Use `list_orgs` to discover Org names, then `switch_org` to enter an Org and explore its contents. +==== + +[#list_orgs] +=== list_orgs +Returns the `orgId` of the Orgs that the authenticated user has access to and flags the Org that the user is currently logged in to. + +Use the `list_orgs` tool to discover which Orgs you can reach before switching. The list always reflects your live access at call time, not a snapshot taken when you connected, so orgs granted or revoked since your session started are reflected immediately. + +==== Example call + +[div tabbed-code] +-- +[source,javascript] +---- +const orgs = await callMCPTool("list_orgs", {}); +---- + +[source,python] +---- +call_mcp_tool("list_orgs", {}) +---- +-- + +==== Response + +[source,json] +---- +{ + "orgs": [ + { + "id": 1001, + "name": "Finance", + "description": "Finance org — Q3 revenue models and budget data.", + "is_active": true + }, + { + "id": 1002, + "name": "Staging", + "description": "Staging environment for testing new data models." + } + ] +} +---- + +[cols="2,4", options="header"] +|==== +|Field|Description + +|`id`|Unique identifier for the Org. Pass this value to `switch_org` to switch to this Org. +|`name`|Display name of the Org. +|`description`|Description of the Org. +|`is_active`|Set to `true` if the user's current session is in this Org (the active Org). If the user's current session is not in this Org, this field is omitted from the response. +|==== + +[#switch_org] +=== switch_org +Switches the active Org for the current session. + +After a successful switch, all subsequent tool calls including `create_analysis_session` and data source lookups run against the Org to which the user is switched. This switch persists across all active sessions without requiring re-authentication or logging out. + +[IMPORTANT] +==== +* `switch_org` is a state-changing tool (`readOnlyHint: false`). Host applications that gate state-changing tools behind user confirmation will prompt the user before this tool runs. +* The data models that exist in a target Org cannot be viewed or accessed until after you have switched into it. Use `list_orgs` to discover available Orgs and then use `switch_org` to switch. +* After switching Orgs, the list of data model resources will stay static unless the LLM client provides dynamic resource lists. +* The active Org selection persists across sessions and applies across all your active sessions. It resets only on re-authentication or after prolonged inactivity. +==== + +==== Input parameters + +[cols="2,4", options="header"] +|==== +|Field|Description + +|`org_id` + +__Required__|The ID of the org to switch to. Obtain this value from `list_orgs`. +|==== + +=== Example call + +[div tabbed-code] +-- +[source,javascript] +---- +const result = await callMCPTool("switch_org", { + org_id: 1002 // ID of the org to switch to, obtained from list_orgs. +}); +---- + +[source,python] +---- +call_mcp_tool( + "switch_org", + {"org_id": 1002}, # ID of the org to switch to, obtained from list_orgs. +) +---- +-- + +=== Response + +[source,json] +---- +{ + "success": true, + "active_org_id": 1002 +} +---- + +* `success`: `true` if the org switch completed successfully. If the user lacks access to the requested Org, it is set as `false` and the active Org remains unchanged. +* `active_org_id`: The ID of the active Org. + + +=== Known limitations + +* Signing in currently relies on a browser cookie from your ThoughtSpot cluster. If your browser blocks third-party cookies, the connection may fail to complete. +* Occasional re-authentication. Your connection is designed to stay active for up to 30 days. In rare cases, for example, if your ThoughtSpot instance is temporarily unreachable when your session token renews, you may be signed out and prompted to reconnect. If this occurs, reconnect the connector to restore access. + [#check_connectivity] == check_connectivity Runs a basic health check to verify that the ThoughtSpot Spotter MCP Server is reachable and responding. Use this tool to confirm your connection before starting an analytical session. diff --git a/modules/ROOT/pages/rest-apiv2-changelog.adoc b/modules/ROOT/pages/rest-apiv2-changelog.adoc index 0cad327a6..cbde51a26 100644 --- a/modules/ROOT/pages/rest-apiv2-changelog.adoc +++ b/modules/ROOT/pages/rest-apiv2-changelog.adoc @@ -8,6 +8,53 @@ This changelog lists the features and enhancements introduced in REST API v2.0. For information about new features and enhancements available for embedded analytics, see xref:whats-new.adoc[What's New]. +== Version 26.8.0.cl, August 2026 + +=== Object identity and TML APIs + +Object ID support for Collections:: +// SOURCE: SCAL-317357 +Collections now support stable object IDs in TML import, export, and the metadata update API. + +* The `POST /api/rest/2.0/metadata/headers/update_obj_id` endpoint now accepts `COLLECTION` as a valid value for the `metadata_type` parameter. This allows you to assign or update stable object IDs for Collections programmatically, enabling consistent SDLC promotion across environments. + +* The TML import and export APIs now accept `COLLECTION` as a supported metadata type: +** +++POST /api/rest/2.0/metadata/tml/import+++ — set `metadata_type` to `COLLECTION` to import Collection TML files. +** +++POST /api/rest/2.0/metadata/tml/export+++ — set `metadata_type` to `COLLECTION` to export Collections as TML. + +For more information, see xref:tml.adoc[TML]. + +Personalized Views in TML:: +// SOURCE: SCAL-307283 +The TML schema for Liveboards now includes `owned_by` and `obj_id` fields for Personalized Views. The TML import API applies smart-merge behavior for views: + +* Views that exist only in the destination environment are preserved. +* Views that exist only in the imported TML are appended. +* Views that exist in both the imported TML and the destination environment are updated. + +The `PERSONALIZED_VIEW` type is also supported in the `POST /api/rest/2.0/metadata/headers/update_obj_id` endpoint, allowing you to assign stable object IDs to Personalized Views programmatically. + +// NOTE TO WRITER: Verify exact TML YAML field names (`owned_by`, `obj_id`) and their placement within the Liveboard TML structure with the TML/Liveboard team before publishing. (SCAL-307283) + +For more information, see xref:tml.adoc[TML]. + +=== User management and access control + +Granular download privileges:: +// SOURCE: SCAL-273333 +The `Can Download Data` privilege has been split into two separate privileges. Update REST API calls that assign or query privileges for user groups or roles to use the new values: + +* `DATADOWNLOADING_VISUALS` — grants permission to download Liveboards and visualizations as PDF or PNG. +* `DATADOWNLOADING_DETAILED` — grants permission to download raw tabular data as XLSX or CSV. + +// NOTE TO WRITER: Verify the exact REST API v2 enum strings for both new privilege values with the Platform/IAM team before publishing. (SCAL-273333) + +=== Scheduled jobs + +Deprecation of per-minute schedule frequency:: +// SOURCE: SCAL-244749 +The `MINUTES` frequency type is no longer supported in Liveboard notification schedule requests. Remove `MINUTES` from the frequency type in any API calls to the schedule create or update endpoints. The supported frequency types remain `HOURLY`, `DAILY`, `WEEKLY`, and `MONTHLY`. + == Version 26.7.0.cl, July 2026 === Spotter AI APIs @@ -80,7 +127,6 @@ Uploads a custom font file to ThoughtSpot. * `POST /api/rest/2.0/customization/styles/fonts/search` + Returns custom fonts uploaded to the instance. -//Use the `include_font_assignments` parameter to include information about which visualization elements each font is assigned to. * `PUT /api/rest/2.0/customization/styles/fonts/{font_identifier}/update` + Updates the display name, weight, style, or color of an existing custom font. @@ -145,1185 +191,3 @@ Pinned Answer export:: // SOURCE: SCAL-236681, SCAL-306548 You can now export a pinned Answer directly from a Liveboard using the Answer report API. To export a pinned Answer, specify the `viz_guid` parameter in your API request. -Exports from this endpoint inherently respect Liveboard-level filters, Runtime Filters, Column security rules, and JWT token context. -+ -To export a specific personalized view of a pinned Answer, include the `personalised_view_identifier` parameter. - -Spotter Answer export:: -XLSX and PDF export formats are now supported for Spotter (conversational) Answers. - -Custom PNG dimensions:: -PNG exports now support custom dimensions via the following new parameters: -+ -* `x_resolution`: Sets the export width in pixels. Valid range: 600–3840 px. -* `y_resolution`: Sets the export height in pixels. Valid range: 600–3840 px. - -Display scaling:: -A new `scaling` parameter allows you to adjust the relative size of visual elements in PNG exports without cropping. -Valid range: 80–500%. - -Automatic file naming:: -The API now automatically names exported files based on the Answer title and appends the correct file extension (`.png`, `.pdf`, `.csv`, or `.xlsx`). - -Contact ThoughtSpot support to enable these settings for PNG downloads on your ThoughtSpot instance. -For more information, see xref:data-report-v2-api.adoc#_answer_report_api[Answer report API documentation]. - -=== Share metadata API: Collections support [beta betaBackground]^Beta^ - -The `POST /api/rest/2.0/security/metadata/share` endpoint now supports sharing Collections. - -To share a Collection, set `metadata_type` to `COLLECTION` in the request body. -For more information, see xref:collections.adoc#share-collection[Share a Collection]. - -== Version 26.5.0.cl, May 2026 - -=== Sync connection metadata attributes -You can now synchronize connection metadata attributes from your Cloud Data Warehouse (CDW) with ThoughtSpot by sending a request to `POST /api/rest/2.0/connections/{connection_identifier}/resync-metadata` API endpoint. - -=== Spotter APIs - -==== New API endpoints - -The following new endpoints allow sending messages to an active conversation -session with a Spotter agent. - -* `POST /api/rest/2.0/ai/agent/conversation/{conversation_identifier}/send` + -Allows sending a message to an active Spotter AI conversation and returns a synchronous response. -* `POST /api/rest/2.0/ai/agent/conversation/{conversation_identifier}/send/stream` + -Allows sending to an active Spotter AI conversation and returns the response as a real-time Server-Sent Events (SSE) stream. - -These new endpoints replace the legacy agent conversation and SSE streaming APIs. - -==== Deprecated endpoints [.version-badge.deprecated]#Deprecated# - -* `POST /api/rest/2.0/ai/agent/{conversation_identifier}/converse` + -Replaced by `POST /api/rest/2.0/ai/agent/conversation/{conversation_identifier}/send`. - -* `POST /api/rest/2.0/ai/agent/converse/sse` + -Replaced by `POST /api/rest/2.0/ai/agent/conversation/{conversation_identifier}/send/stream` - -These endpoints are deprecated and will be removed in a future release. Embedding applications and integrations using these APIs are advised to migrate to the new API endpoints for improved experience. - -==== Enhancements to conversation creation API [.version-badge.breaking]#Breaking# - -The following enhancements have been introduced for the conversation creation operation workflow with the `POST /api/rest/2.0/ai/agent/conversation/create` API endpoint: - -metadata_context:: -To define the conversation context, the API request must include the `metadata_context` parameter with one of the following values: - -* `AUTO_MODE`: Automatically discovers and selects the most relevant datasets for the user's queries. -* `DATA_SOURCE`: Sets the target context as the data source. You must specify at least one data source ID. -** To set a single data source object metadata context, specify a `data_source_identifier`. -** For multi-data source context, specify the `data_source_identifiers`. -+ -[IMPORTANT] -==== -The `data_source` and `guid` attributes are deprecated in the 26.5.0.cl release version. Integrations using these parameters in ThoughtSpot versions 26.2.0.cl through 26.4.0.cl will continue to work until further notice. However, ThoughtSpot recommends using either `AUTO_MODE` or `DATA_SOURCE` with `data_source_identifier` or `data_source_identifiers` for the metadata context. -==== - -Other context options:: -The `answer_context` and `liveboard_context` are removed and no longer supported. Any existing integration or embedding application passing `answer_context` or `liveboard_context` in the request body must update their workflows to use the `AUTO_MODE` or `DATA_SOURCE` option. - -Enable save chat:: -The `enable_save_chat` parameter, when set to `true`, saves the conversation. - -API response:: -The API response now returns the `conversation_identifier`, which is used in all -subsequent send message or SSE streaming calls. - -=== Liveboard report API enhancements [beta betaBackground]^Beta^ -The `POST /api/rest/2.0/report/liveboard` API endpoint enhances the PDF downloads by introducing the following parameters: - -* `"page_size": "CONTINUOUS"` for a seamless PDF export that matches the full length of your Liveboard. Unlike the A4 format, which introduces forced page breaks between visualizations, this continuous flow maintains your exact design and intended layout. -* `zoom_level` offers various download size options to suit the viewer's screen dimensions, thereby enhancing legibility. This can be set only when `page_size` is specified as `CONTINUOUS`. - -For more information, see xref:data-report-v2-api.adoc#_liveboard_report_api[Liveboard Report API documentation]. - -== Version 26.4.0.cl, April 2026 - -=== Variable API endpoints -The following endpoints are introduced for bulk delete and update operations for variables: - -* `POST /api/rest/2.0/template/variables/{identifier}/update-values` + -Assigns multiple values to a variable and sets the scope for variable values in a single API request. -* `POST /api/rest/2.0/template/variables/delete` + -Deletes one or more variables in a single API request. - -These new API endpoints replace the following legacy API endpoints deprecated in 26.4.0.cl. - -* `POST /api/rest/2.0/template/variables/{identifier}/delete` -* `POST /api/rest/2.0/template/variables/update-values` - -Your existing implementation with the legacy API endpoints will continue to work until further notice. However, these endpoints will be removed from ThoughtSpot in a future release. Hence, we recommend updating your workflows to use the API endpoints at your earliest convenience. - -For more information, see xref:variables.adoc[Variable API documentation]. - -=== Metadata parameterization -You can now parameterize multiple fields in a metadata object in a single API request using the `/api/rest/2.0/metadata/parameterize-fields` API endpoint. -This endpoint replaces the legacy `/api/rest/2.0/metadata/parameterize` endpoint, which is deprecated in 26.4.0.cl. - -For more information, see xref:metadata-parameterization.adoc[Metadata parameterization API documentation]. - -=== Webhook integration -This release introduces the following features and enhancements to the webhook integration workflows: - -Custom HTTP headers in webhook requests:: -Administrators can configure custom HTTP headers to send in webhook requests triggered by ThoughtSpot, in addition to the standard HTTP and authentication headers. You can specify these headers in the `additional_headers` attribute during webhook creation (`/api/rest/2.0/webhooks/create`) and update (`/api/rest/2.0/webhooks/{webhook_identifier}/update`) via REST APIs. - -Webhook connection validation:: -You can now validate a webhook connection by sending a test payload via an API request to the `/api/rest/2.0/system/communication-channels/validate` endpoint. The API returns a response indicating the connection and authentication status for a given webhook connection. - -Webhook monitoring:: -To monitor the status of webhook jobs and scheduled events, ThoughtSpot introduces the `/api/rest/2.0/jobs/history/communication-channels/search` API endpoint. - -For more information, see xref:webhooks-comm-channel.adoc[Webhook configuration validation and monitoring]. - -=== Collections API endpoints - -The following APIs are introduced for Collections: - -* `POST /api/rest/2.0/collections/create` [beta betaBackground]^Beta^ + -Creates a new Collection. -* `POST /api/rest/2.0/collections/search` [beta betaBackground]^Beta^ + -Searches for a Collection in ThoughtSpot -* `POST /api/rest/2.0/collections/{collection_identifier}/update` [beta betaBackground]^Beta^ + -Updates an existing Collection -* `POST /api/rest/2.0/collections/delete` [beta betaBackground]^Beta^ + -Deletes a Collection - -For more information, see xref:collections.adoc[Collections]. - -=== Email customization API enhancements - -The `template_properties` parameter now has the `hide_logo_url` elements for email template customization. Set it to `true` to entirely hide the logo component in the ThoughtSpot notification emails. - -=== Spotter API enhancements -Spotter AI APIs now support the following error responses: - -* 401 Unauthorized: authentication token is missing, expired, or invalid. -* 403 Forbidden: the authenticated user does not have `CAN_USE_SPOTTER` privilege or view access to the underlying metadata sources. - -=== Pivot table .xlsx exports -The following API endpoints now support pivot tables in `.xlsx` downloads with full visual and structural parity: - -* `POST /api/rest/2.0/report/answer` -* `POST /api/rest/2.0/schedules/create` - -To enable pivot formatting on your ThoughtSpot instance, contact ThoughtSpot Support. - -== Version 26.3.0.cl, March 2026 - -=== Webhook APIs - -The Webhook API allows configuring Amazon S3 buckets as a storage destination for webhook payload delivery. - -* `POST /api/rest/2.0/webhooks/create` + -Configures storage destination for webhook delivery. -* `POST /api/rest/2.0/webhooks/{webhook_identifier}/update` + -Allows modifying storage configuration for a webhook. -* `POST /api/rest/2.0/webhooks/search` + -Retrieves storage configuration details. - -=== Object privilege APIs -Administrators and users with edit access to data models can now use `/api/rest/2.0/security/metadata/manage-object-privilege` to assign object-level permissions to users and groups and control access to Spotter data model instructions. - -To fetch object privileges for a data model, user, or group, use the `/api/rest/2.0/security/metadata/fetch-object-privileges` API endpoint. - -For more information, see xref:spotter-nl-instructions.adoc#_spotter_data_model_instructions_access[Spotter data model instructions access]. - - -=== User API enhancements - -The user APIs now support setting browser language as the default locale for ThoughtSpot users. Administrators can set the `use_browser_language` parameter as the default locale for ThoughtSpot users during the following API operations: - -* When creating a new user via `POST /api/rest/2.0/users/create` + -* When importing users via `POST /api/rest/2.0/users/import` + -* When updating user preferences via `POST /api/rest/2.0/users/{user_identifier}/update` + - -When set to `true`, a user's current locale preference is overridden and the browser's language takes precedence. - -The status of the browser language setting for a given user can also be retrieved using the following API endpoints: - -* `POST /api/rest/2.0/users/search` + -* `POST /api/rest/2.0/users/activate` + -* `GET /api/rest/2.0/auth/session/user` + - -=== Custom token generation API -Note the following changes to request parameters for the `/api/rest/2.0/auth/token/custom` API endpoint: - -* The `filter_rules` parameter on the custom token authentication (`/api/rest/2.0/auth/token/custom`) page in the REST API Playground is no longer available for new configurations. Existing implementations that use `filter_rules` continue to work. However, we strongly recommend migrating to `variable_values` and ABAC via RLS for data security. - -* The `parameter_values` property is supported in the current release but will be deprecated in an upcoming version. Using `parameter_values` for row-level security will be phased out with this deprecation. Therefore, we recommend generating JWTs that pass data security attributes through formula variable attributes instead of `filter_rules` or `parameter_values` for ABAC. - -For more information, see xref:abac-migration-guide.adoc[ABAC JWT migration guide] and xref:abac_rls-variables.adoc[ABAC via RLS]. - -== Version 26.2.0.cl, February 2026 - -=== Security settings APIs -This release introduces the following Security settings APIs: - -* `POST /api/rest/2.0/system/security-settings/configure` + -Allows configuring security settings at the Org level or for all Orgs on a ThoughtSpot instance. -* `POST /api/rest/2.0/system/security-settings/search` + -Gets a list of security settings configured on a specific Org or for all Orgs on a ThoughtSpot instance. - -For more information, see xref:security-settings.adoc[Security Settings]. - -=== Connection API -ThoughtSpot administrators can now revoke OAuth refresh tokens for users who no longer require access to a data warehouse connection via the `/api/rest/2.0/connections/{connection_identifier}/revoke-refresh-tokens` API endpoint. When a token is revoked, the affected user's session for that connection is terminated, and they must re-authenticate to regain access. - -=== Connection configuration API enhancements -You can now include `same_as_parent` and `policy_process_options` attributes in your API request to `/api/rest/2.0/connection-configurations/create` and `/api/rest/2.0/connection-configurations/{configuration_identifier}/update` endpoints. - -The `same_as_parent` parameter specifies if the configuration should inherit settings from its parent. The `policy_process_options` attribute can be used to define additional policy or processing options for the connection, to allow granular control over connection behavior. - -=== Liveboard Report API enhancements -You can now download Liveboard reports in the CSV and XLSX formats through the `POST /api/rest/2.0/report/liveboard` API endpoint. Both these options are Early Access features. - -For more information, see xref:data-report-v2-api.adoc[Data and Report APIs]. - -=== Email customization API enhancements - -The `template_properties` parameter now has two additional elements for email template customization: - -* `contact_support_url` to add a customized link for contacting customer support. -* `hide_contact_support_url` to hide the option of adding a link for customer support. - -=== System configuration API enhancements -The API response from the `/api/rest/2.0/system/config` endpoint indicates whether SAML or Okta authentication is enabled on the system. - -=== User API enhancements - -* `POST /api/rest/2.0/users/import` + -The `preferred_locale` parameter allows configuring the preferred locale for users being imported via API request. -* `POST /api/rest/2.0/users/search` + -The `include_variable_values` parameter in the API request allows including variable values in the search response. The variable values can be assigned for a user via xref:abac_rls-variables.adoc[ABAC tokens] or xref:variables.adoc#_define_values_and_scope_for_variables[variable API documentation]. - -== Version 10.15.0.cl, December 2025 - -=== Spotter APIs - -This release introduces the following Spotter APIs: - -* `POST /api/rest/2.0/ai/instructions/set` + -Allows configuring natural language (NL) instructions on a data model to define how Spotter interprets queries, handles data nuances, and improves responses. -* `POST /api/rest/2.0/ai/instructions/get` + -Gets NL instructions that are currently assigned to a model. -* `POST /api/rest/2.0/ai/data-source-suggestions` + -Retrieves a list of recommended data sources based on the specified query string. - -For more information, see xref:spotter-apis.adoc[Spotter AI APIs]. - -=== Variable APIs - -You can now create formula variables using the `/api/rest/2.0/template/variables/create` API endpoint, and assign values and scope to these variables using the `/api/rest/2.0/template/variables/update-values` API endpoint. - -For more information, see xref:variables.adoc[Configure variables]. - -=== ABAC tokens with formula variable attributes -The `/api/rest/2.0/auth/token/custom` API endpoint allows creating a token request with formula variables for ABAC via RLS implementation. - -For more information, see xref:abac-user-parameters.adoc[ABAC via tokens]. - -== Version 10.14.0.cl, November 2025 - -=== New API endpoints - - - -System:: -This release introduces the following endpoints for configuring communication channel preferences. - -* `POST /api/rest/2.0/system/preferences/communication-channels/configure` [beta betaBackground]^Beta^ + -Sets a communication channel preference for all Orgs at the cluster level or at the individual Org level. -* `POST /api/rest/2.0/system/preferences/communication-channels/search` [beta betaBackground]^Beta^ + -Gets details of the communication channel preferences configured on ThoughtSpot. -+ -For more information, see xref:webhooks-lb-schedule.adoc#_configure_a_webhook_communication_channel[Configure communication channel settings]. - -Webhook:: -The following APIs are introduced for webhook CRUD operations: -* `POST /api/rest/2.0/webhooks/create` -Creates a webhook. -* `POST /api/rest/2.0/webhooks/{webhook_identifier}/update` -Updates the properties of a webhook. -* `POST /api/rest/2.0/webhooks/search` -Gets a list of webhooks configured in ThoughtSpot or in a specific Org. -* `POST /api/rest/2.0/webhooks/delete` -Deletes the webhook. -+ -For more information, see xref:webhooks-lb-schedule.adoc[Webhooks for Liveboard schedule events]. - -Column security rules:: - -* `POST /api/rest/2.0/security/column/rules/update` + -Updates column security rules for a given Table. - -* `POST /api/rest/2.0/security/column/rules/fetch` + -Gets details of column security rules for the tables specified in the API request. - -//// - -Spotter:: -POST /api/rest/2.0/ai/agent/{conversation_identifier}/converse -//// -=== Variable API enhancements - -The variable API enhancements are listed in the following sections. For additional details, see xref:variables.adoc[Define variables]. - -==== Variable creation API - -* The variable creation endpoint `/api/rest/2.0/template/variables/create` does not support assigning values to a variable. To assign values to a variable, use the `/api/rest/2.0/template/variables/update-values` endpoint. -* The `sensitive` parameter is renamed as `is_sensitive`. -//* You can define the data type for variables using the `data_type`property. -//* You can now create formula variables. To create a formula variable, use define the variable type as `FORMULA_VARIABLE` variable type in your API request . - -==== Variables update APIs [tag redBackground]#BREAKING CHANGE# - -The `/api/rest/2.0/template/variables/update` endpoint is deprecated and replaced with `/api/rest/2.0/template/variables/update-values`. + -To update the properties of a specific variable, use the `/api/rest/2.0/template/variables/{identifier}/update` endpoint and to assign values to one or several variables in a single API call, use the `POST /api/rest/2.0/template/variables/update-values` endpoint. - -==== Variables search API - -* The variables search API endpoint `/api/rest/2.0/template/variables/search` now includes the `value_scope` parameter that allows you to filter the API response by the objects to which the variable is mapped. -* Filtering API response by `EDITABLE_METADATA_AND_VALUES` is no longer supported. - - -=== User API enhancements -The following APIs now support the `variable_values` parameter. The `variable_values` property can be used for user-specific customization. - -* `POST /api/rest/2.0/users/create` -* `POST /api/rest/2.0/users/search` -* `POST /api/rest/2.0/users/activate` - -=== DBT API enhancements -The `/api/rest/2.0/dbt/generate-tml` endpoint supports the `model_tables` attribute to list models and their tables. - -//// - -=== Authentication API -Support for `variable_values` property in `/api/rest/2.0/auth/session/user` API calls. - -//// - -== Version 10.13.0.cl, October 2025 - -=== New API endpoints - -Spotter:: - -* `POST /api/rest/2.0/ai/agent/conversation/create` + -Creates a new AI-driven conversation session based on a specified data source. The resulting session sets the context for subsequent queries and responses. + - - -* `POST /api/rest/2.0/ai/relevant-questions/` + -Breaks down a user-submitted query into a series of analytical sub-questions using relevant contextual metadata. - -* `POST /api/rest/2.0/ai/agent/converse/sse` + -Allows sending a follow-up message or question to an ongoing conversation session and returns the AI agent's response, including answers, tokens, and visualization details. + - -//* `POST /api/rest/2.0/ai/data-source-suggestions` + -//Returns a list of relevant data sources, such as Models, based on a query and thus helping users and agents choose the most appropriate data source for analytics. + - -For more information, see xref:spotter-apis.adoc[Spotter AI APIs]. - -Email customization:: -`POST /api/rest/2.0/customization/email/update` + -Updates an existing email customization. For more information, see xref:customize-email-apis.adoc[Customize email template]. - -=== API enhancements -The following APIs were modified to include new parameters: - -TML export:: -The TML export API now supports the `export_with_column_aliases` parameter in `export_options` to indicate whether to export column aliases of the model. - -Email customization:: -The `/api/rest/2.0/customization/email/update` and `/api/rest/2.0/customization/email` APIs now include `company_privacy_policy_url` and `company_website_url` properties in template variables, and a new `org_identifier` parameter in the API request. - -For more information, see xref:customize-email-apis.adoc[Customize email template]. - -=== Deprecated endpoints - -Spotter:: -The `POST /api/rest/2.0/ai/analytical-questions` Spotter AI API [beta betaBackground]^Beta^ is deprecated and replaced with the new API endpoint, `POST /api/rest/2.0/ai/relevant-questions/`. - -Email customization:: -The `POST /api/rest/2.0/customization/email/{template_identifier}/delete` email customization API is deprecated and replaced with the new API endpoint, `POST /api/rest/2.0/customization/email/delete`. - - -//// -=== Deprecated endpoints -The following Spotter AI APIs [beta betaBackground]^Beta^ are deprecated and replaced with the new xref:spotter-apis.adoc[AI APIs]. - -* `POST /api/rest/2.0/ai/conversation/create` -* `POST /api/rest/2.0/ai/analytical-questions` -* `POST /api/rest/2.0/ai/conversation/{conversation_identifier}/converse` -//// - -== Version 10.12.0.cl, September 2025 - -=== New API endpoints - -The following API endpoints are now available: - -Custom calendar:: -* `POST /api/rest/2.0/calendars/create` + -Creates a custom calendar. -* `POST /api/rest/2.0/calendars/generate-csv` + -Exports a custom calendar in the CSV format. -* `POST /api/rest/2.0/calendars/search` + -Gets custom calendars for the connection ID specified in the API request. -* `POST /api/rest/2.0/calendars/{calendar_identifier}/delete` + -Deletes a custom calendar. -* `POST /api/rest/2.0/calendars/{calendar_identifier}/update` + -Updates a custom calendar. - -Connection configuration:: -* `POST /api/rest/2.0/connection-configurations/create` + -Creates an additional configuration to an existing connection to a data warehouse. -* `POST /api/rest/2.0/connection-configurations/search` + -Gets the required connection configuration objects. -* `POST /api/rest/2.0/connection-configurations/{configuration_identifier}/update` + -Updates an existing connection configuration object. -* `POST /api/rest/2.0/connection-configurations/delete` + -Deletes the connection configuration object. - -=== Enhancements to APIs - -Export API endpoint:: - -* Answer TML: + -The `POST /api/rest/2.0/metadata/tml/export` API endpoint now allows fetching TML for Answer objects that do not have an ID or name assigned. The `session_identifier` and `generation_number` parameters allow you to define the session ID and the Answer generation number in the API request. These optional attributes can be used for unsaved Answers generated from Spotter queries. - -* Table TML: + -The `POST /api/rest/2.0/metadata/tml/export` API request allows exporting column security rules for Table TML objects. This attribute will export column security rules only if the object specified in the API request has column security applied and when `export_associated` is set to `true`. - -== Version 10.11.0.cl, July 2025 - -=== Search metadata API enhancements -The search metadata (`/api/rest/2.0/metadata/search`) API includes the following enhancements: - -* The `liveboard_reponse_version` parameter. It allows you to specify the xref:rest-api-v2-metadata-search.adoc#_response_format_for_liveboards[response format for Liveboard objects]. -* The `subtypes` attribute to specify the sub-type for the `LOGICAL_TABLE` metadata type. The `LOGICAL_TABLE` type allows you to fetch objects such as Tables, Models, and Views. The `subtypes` parameter allows you to filter API response by specifying subcategories of the object type. -* The `include_only_published_objects` attribute to specify whether the search should include xref:publish-api.adoc[published objects]. - - -=== System API -The API response generated from the `GET /api/rest/2.0/system/config-overrides` requests now returns the overrides in the `config_override_info` object. - -=== TML API -The API response for the `POST /api/rest/2.0/metadata/tml/async/import` and `POST /api/rest/2.0/metadata/tml/async/status` now includes the `author_display_name` property. This property shows the display name of user that initiated the asynchronous TML import request. - -=== REST API Java SDK - -The REST API Java SDK library artifacts are now available in the `com.thoughtspot` Maven namespace. If you are using Maven Central to import the REST API SDK artifacts, update the group ID in your `pom.xml` file to `com.thoughtspot` and the artifact ID to `rest-api-sdk`. - -For more information, see xref:rest-api-java-sdk.adoc#_import_the_sdk_to_your_application_environment[REST API Java SDK]. - -== Version 10.10.0.cl, July 2025 - -=== Email template customization APIs -This release introduces the following new endpoints for email template customization: - -* `POST /api/rest/2.0/customization/email` + -Allows you to personalize the ThoughtSpot notification emails content. -* `POST /api/rest/2.0/customization/email/{template_identifier}/delete` + -Removes the customizations done for the ThoughtSpot notification emails. -* `POST /api/rest/2.0/customization/email/search` + -Allows searching the email customization configuration if configured for ThoughtSpot. -* `POST /api/rest/2.0/customization/email/validate` + -Validates the email customization configuration if configured for ThoughtSpot. - -=== Group API - -The `/api/rest/2.0/groups/search` endpoint now supports the following new options in group search API requests: - -* `include_users` + -When set to `true`, it includes user details in the group search API response. -* `include_sub_groups` + -When set to `true`, it includes sub-groups in the group search response. - -=== Schedule API -You can now specify the `personalised_view_id` of a Liveboard in API requests to the following schedule APIs: - -* `POST /api/rest/2.0/schedules/create` -To schedule a job for a personalized view of the Liveboard, specify the `personalised_view_id`. -* `POST /api/rest/2.0/schedules/{schedule_identifier}/update` -To update schedule details for a specific view of the Liveboard, specify the `personalised_view_id`. - -== Version 10.9.0.cl, June 2025 - -=== Metadata parameterization and content publishing across Orgs - -This release introduces the following new endpoints for metadata parameterization [beta betaBackground]^Beta^ and content publishing [beta betaBackground]^Beta^ across Orgs. To enable the content publishing feature and the related API operations on your instance, contact ThoughtSpot Support. - -* `POST /api/rest/2.0/metadata/parameterize` [beta betaBackground]^Beta^ + -Allows you to parameterize fields in metadata objects. -* `POST /api/rest/2.0/metadata/unparameterize` [beta betaBackground]^Beta^ + -Allows removing parameterization from fields in metadata objects -* `POST /api/rest/2.0/security/metadata/publish` [beta betaBackground]^Beta^ + -Publish metadata objects to one or several Orgs on an instance. -* `POST /api/rest/2.0/security/metadata/unpublish` [beta betaBackground]^Beta^ + -Removes published metadata objects from the Orgs specified in the API request. -* `POST /api/rest/2.0/template/variables/create` [beta betaBackground]^Beta^ + -Allows creating a template variable which can be used to parameterize fields in a metadata object. -* `POST /api/rest/2.0/template/variables/search` [beta betaBackground]^Beta^ + -Allows searching template variables -* `POST /api/rest/2.0/template/variables/{identifier}/update` [beta betaBackground]^Beta^ + -Allows updating properties of a template variable. -* `POST /api/rest/2.0/template/variables/update` [beta betaBackground]^Beta^ + -Allows you to add, remove, or replace properties of one or several template variables. -* `POST /api/rest/2.0/template/variables/{identifier}/delete` [beta betaBackground]^Beta^ + -Deletes a template variable. - -If your metadata objects are parameterized, you can use the `show_resolved_parameters` to filter the API response from `/api/rest/2.0/connection/search` and `/api/rest/2.0/metadata/search` endpoints to get only the objects with resolved parameterized values. - -=== Liveboard Report API -The Liveboard Report API now allows you to define the following properties: - -* `tab_identifiers` + -Optional parameter to specify the name or GUID of a Liveboard tab to export only the visualizations in that tab. -* `personalised_view_identifier` + -Optional parameter to specify the GUID of the Liveboard personalized view that you want to download. - -In addition to these parameters, you can also define the following properties for PNG downloads: - -* `image_resolution` -* `image_scale` -* `include_header` - -For more information, see xref:data-report-v2-api.adoc#_liveboard_report_api[Liveboard Report API]. - -=== REST API Java SDK - -The REST API Java SDK enables developers to interact programmatically with ThoughtSpot REST APIs from Java applications. It provides a client library with Java methods and classes that map to API endpoints, handle authentication, send API requests, and allow creating and modifying ThoughtSpot resources and objects. - -For information about how to install and use the SDK, see xref:rest-api-java-sdk.adoc[Java SDK for REST APIs]. - - -== Version 10.8.0.cl, April 2025 - -=== New API endpoints - -This version introduces the following endpoints: -//// -* `POST /api/rest/2.0/ai/analytical-questions` + -Allows using an existing ThoughtSpot Answer or Liveboard, and include content to improve query response. -//// - -* `POST /api/rest/2.0/metadata/update-obj-id` + -Update object IDs for given metadata objects. + - -[NOTE] -==== -An object ID is a user-defined ID assigned to a ThoughtSpot object in addition to the system-generated GUID. -Note that the object ID generation for metadata objects is disabled by default. If this feature is enabled on your instance, you can use the `POST /api/rest/2.0/metadata/update-obj-id` to assign or update the object ID. -==== - -=== Metadata API - -* The `POST /api/rest/2.0/metadata/search` endpoint now supports the following parameters: - -** `include_discoverable_objects` + -Allows including Answers and Liveboards that are marked as discoverable by the object owner. -** `metadata_obj_id` + -Filters metadata objects by the user-defined object ID. This parameter returns data only if the user-defined object ID feature is enabled on your instance. - -=== TML APIs - -* The `all_orgs_context` parameter in TML import APIs (`/api/rest/2.0/metadata/tml/import` and `/api/rest/2.0/metadata/tml/async/import`) is deprecated and removed from the Playground. Use `all_orgs_override` to define the Org context in your API requests. - -* The TML export API now allows exporting TML content with user feedback received for objects such as AI-generated Answers. The `export_with_associated_feedbacks` attribute is set to `false` by default. - -=== Report APIs -The Liveboard export API (`/api/rest/2.0/report/liveboard`) now allows overriding filters applied to a Liveboard. The `override_filters` array allows specifying several types of filters and updates the Liveboard data during export. - -For more information, see xref:data-report-v2-api.adoc#_override_filters[Override filters]. - -== Version 10.6.0.cl, March 2025 - -=== New metadata API endpoints - -* `POST /api/rest/2.0/metadata/headers/update` + -Updates metadata header for a given list of objects. -* `POST /api/rest/2.0/metadata/worksheets/convert` + -Converts a Worksheet object to a Model. - -=== Report APIs -[tag redBackground]#BREAKING CHANGE# - -Downloading Liveboard reports in the CSV and XLSX file format via `POST /api/rest/2.0/report/liveboard` API endpoint is not supported. The CSV and XLSX `file_format` options have been removed because they were not functioning in the expected manner. - -==== Parameters for regional settings - -The `/api/rest/2.0/report/answer` and `/api/rest/2.0/report/liveboard` now allow users to define the following `regional_settings` attributes: - -* `currency_format` -* `user_locale` -* `number_format_locale` -* `date_format_locale` - -//// -=== Custom authentication token API - -The `/api/rest/2.0/auth/token/custom` API endpoint now allows you to define the `reset_option` to specify if the attributes assigned to the token should persist or be reset. -//// - -=== Custom object ID in TML and Metadata APIs - -The following API endpoints allow you to specify a custom object ID (`obj_identifier`) in the metadata object properties: - -* `POST /api/rest/2.0/metadata/search` -* `POST /api/rest/2.0/metadata/headers/update` -* `POST /api/rest/2.0/metadata/tml/export` + - -=== TML import API - -The `/api/rest/2.0/metadata/tml/async/import` and `POST /api/rest/2.0/metadata/tml/import` endpoints allow skipping diff check when processing TMLs for imports. The `skip_diff_check` attribute is disabled by default and can be enabled to avoid importing objects that do not have any changes. - -=== API response changes - -The 200 and 201 response body from `POST /api/rest/2.0/ai/answer/create` and `POST /api/rest/2.0/ai/conversation/{conversation_identifier}/converse` API calls now includes the `display_tokens` property. - - -== Version 10.5.0.cl, December 2024 - -=== Custom access token API -The `/api/rest/2.0/auth/token/custom` API endpoint allows setting the following attributes in API requests: - -* `auto_create` + -Creates a user if username specified in the API request is not available in ThoughtSpot. By default, the `auto_create` is set to `true`. -* `REPLACE` enum for `persist_option` + -Allows replacing persisted values with new attributes defined in the token generation API request. For more information, see xref:abac-user-parameters.adoc[ABAC via tokens]. - -=== TML import APIs - -TML async import:: - -The `/api/rest/2.0/metadata/tml/async/import` supports setting the following properties via API requests: -+ -* `import_policy` + -Allows you to specify if all objects should be imported during the TML import operation. Valid values are: - -** `PARTIAL_OBJECT` (default) -** `PARTIAL` -** `VALIDATE_ONLY` -** `ALL_OR_NONE` - -* `enable_large_metadata_validation` + -Indicates if the TMLs with large and complex metadata should be validated before the import. -+ -For more information about these attributes, see xref:tml.adoc#_import_tml_objects_asynchronously[Import TML objects asynchronously]. - -//// -* `skip_diff_check` + -Allows skipping checks that find differences in TML content before processing TML objects for import. -//// - -TML import API:: - -The `/api/rest/2.0/metadata/tml/import` API also supports setting the `enable_large_metadata_validation` attribute for large and complex metadata objects during TML import. - -TML export API:: - -The `/api/rest/2.0/metadata/tml/export` endpoint now allows you to include additional attributes when exporting TML for an object from ThoughtSpot. The `export_options` allows you to include the following optional attributes: - -* `include_obj_id_ref` + -Specifies whether to export `user_defined_id` of the referenced object. This setting is valid only if the `UserDefinedId` property in TML is enabled. -* `include_guid` + -Specifies whether to export the GUID of the object. This setting is valid only if the `UserDefinedId` property in TML is enabled. -* `include_obj_id` + -Specifies whether to export the `user_defined_id` of the object. This setting is valid only if the `UserDefinedId` property in TML is enabled. - - -Share metadata:: - -The `email` attribute is now optional in the `POST` request body sent to the `/api/rest/2.0/security/metadata/share` API endpoint. - -Role API:: - -The `/api/rest/2.0/roles/create` API endpoint now allows setting `read_only` attribute to specify if the role is read only. A read-only role cannot be updated or deleted. - -== Version 10.4.0.cl, November 2024 - -=== New API endpoints - -Spotter AI APIs [beta betaBackground]^Beta^ :: - -* `POST /api/rest/2.0/ai/conversation/create` + -Creates a conversation session. -* `POST /api/rest/2.0/ai/conversation/{conversation_identifier}/converse` + -Generates responses for user queries and follow-up questions. -* `POST /api/rest/2.0/ai/answer/create` + -Generates an Answer from a Natural Language Search query. - -Authentication:: -The `/api/rest/2.0/auth/token/custom` API endpoint is now available to generate an authentication token with custom rules and filter conditions for a user. - -+ -ThoughtSpot recommends using the custom token API endpoint to generate tokens for the Attribute-Based Access Control (ABAC) implementation. For more information, see xref:abac_rls-variables.adoc[ABAC via RLS with variables]. - -Connections:: -The following new API endpoints are available for updating and deleting a connection object: - -* `POST /api/rest/2.0/connections/{connection_identifier}/update` -* `POST /api/rest/2.0/connections/{connection_identifier}/delete` - -+ -ThoughtSpot recommends using these APIs instead of `POST /api/rest/2.0/connection/update` and `POST /api/rest/2.0/connection/delete`. - -TML:: -The following API endpoints are available for asynchronous TML import: - -* `POST /api/rest/2.0/metadata/tml/async/import` + -Validates and imports TML objects asynchronously. Use this API endpoint when importing large metadata objects. -* `POST /api/rest/2.0/metadata/tml/async/status` + -Fetches task status for the async TML import operations. - -For more information, see xref:tml.adoc#_import_tml_objects_asynchronously[Import TML objects asynchronously]. - -=== API enhancements - -User session:: - -* The 200 API response for the `/api/rest/2.0/auth/session/user` and `/api/rest/2.0/users/search` is modified to show `access_control_properties`. - -* You can now manage account activation status for IAMv2 users using the following API endpoints: - -** `POST /api/rest/2.0/users/create` + -** `POST /api/rest/2.0/users/{user_identifier}/update` - -//// -TML import API:: -You can specify the following attributes in TML import requests to `/api/rest/2.0/metadata/tml/import`: - -* `skip_cdw_validation_for_tables` + -Indicates if the Cloud Data Warehouse (CDW) validation for table imports should be skipped. -//// - -Report API:: - -The `POST /api/rest/2.0/report/answer` API endpoint supports downloading an Answer generated by the Spotter AI APIs: - -* `session_identifier` + -Session ID returned in API response by the `/api/rest/2.0/ai/answer/create` or `/api/rest/2.0/ai/conversation/create` endpoint. -* `generation_number` + -Number assigned to the Answer session with Spotter. -+ -If you are downloading an Answer generated by Spotter, you must specify the session ID. The `metadata_identifier` property is not required. - -=== Deprecated features - -Connection APIs:: - -The following connection API endpoints are deprecated: - -* `POST /api/rest/2.0/connection/delete` -* `POST /api/rest/2.0/connection/update` - -+ -Use `POST /api/rest/2.0/connections/{connection_identifier}/update` and `POST /api/rest/2.0/connections/{connection_identifier}/delete` APIs to update and delete a connection object respectively. - -Authentication:: - -The `user_parameters` property in `/api/rest/2.0/auth/token/full` and `/api/rest/2.0/auth/token/object` APIs is deprecated. -+ -ThoughtSpot recommends using `/api/rest/2.0/auth/token/custom` API endpoint with `filter_rules` and `parameter_values` to configure user properties for ABAC via tokens. - -== Version 10.3.0.cl, October 2024 - -=== New API endpoint - -You can now create a copy of a Liveboard or Answer object using `/api/rest/2.0/metadata/copyobject` API endpoint. - -== Version 10.1.0.cl, August 2024 - -=== New API endpoints - -* `POST /api/rest/2.0/metadata/tml/export/batch` + -Exports a batch of TML for user, user group, or Role objects. - -=== Security APIs -The `/api/rest/2.0/security/metadata/fetch-permissions` API endpoint supports the following parameters: - -* `record_offset` + -Specifies the starting record number from which the records for each metadata type will be included in the API response. -* `record_size` + -Specifies the number of records that should be included for each metadata type in the API response. -* `permission_type` + -Specifies the type of permission. Valid values are: -** `EFFECTIVE` - If user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong. -** `DEFINED` - If a user or user group received access to metadata objects via object sharing by another user. - -== Version 10.0.0.cl, July 2024 - -=== Roles - -You can now assign the `CAN_MANAGE_VERSION_CONTROL` role using any of the following API endpoints: - -* `POST /api/rest/2.0/roles/create` -* `POST /api/rest/2.0/roles/{role_identifier}/update` - -The `CAN_MANAGE_VERSION_CONTROL` Role privilege is required for Git integration with ThoughtSpot. - -== Version 9.12.0.cl, May 2024 - -==== New features - -Authentication API:: - -* `/api/rest/2.0/auth/token/validate` + -Validates the authentication token of the logged-in user. - -TML API:: -The export TML API requests now support the following parameters: -+ -* `export_schema_version` + -Specifies the schema version for datasets during TML export. By default, the API request uses v1 schema for Worksheet TML export. For Models, set `export_schema_version` to `v2`. + -* `export_dependent` + -Allows exporting dependent Tables while exporting a Connection. -* `export_connection_as_dependent` + -Specifies if a Connection can be exported as a dependent object when exporting a Table, Worksheet, Answer, or Liveboard. This parameter works only when `export_associated` is set to `true` in the API request. - -==== Deprecated features - -Token authentication APIs:: - -The `jwt_user_options` object property in `/api/rest/2.0/auth/token/full` and `/api/rest/2.0/auth/token/object` is deprecated. Use the `user_parameters` property to define security entitlements to a user session. For more information, see xref:abac-user-parameters.adoc[ABAC via token][beta betaBackground]^Beta^. - -== Version 9.10.5.cl, April 2024 - -=== New features - -Authentication:: - -The `/api/rest/2.0/auth/token/full` and `/api/rest/2.0/auth/token/object` API endpoints support generating JWT token for Attribute-Based Access Control. The `user_parameters` object allows you to define security entitlements for a given user. - -For more information, see xref:abac-user-parameters.adoc[ABAC via tokens]. - -Roles:: - -The `/api/rest/2.0/roles/create` and `/api/rest/2.0/roles/{role_identifier}/update` API endpoints support assigning the following privileges to a Role for granular data access control and management: - -* `CAN_MANAGE_CUSTOM_CALENDAR` -* `CAN_CREATE_OR_EDIT_CONNECTIONS` -* `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - -DBT:: - -You can now use `file_content` to upload DBT Manifest and Catalog artifact files as a ZIP file in your API requests to the `/api/rest/2.0/dbt/dbt-connection`, `/api/rest/2.0/dbt/generate-tml`, `/api/rest/2.0/dbt/generate-sync-tml`, and `/api/rest/2.0/dbt/update-dbt-connection` endpoints. This field is required if the `import_type` parameter is set to `'ZIP_FILE'`. - -Connections:: - -* `/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}` + -Validates the differences in Connection metadata between Cloud Data Warehouse and ThoughtSpot. -* `/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}` + -Downloads the connection metadata differences identified between Cloud Data Warehouse and ThoughtSpot. - -Logs:: -The `/api/rest/2.0/logs/fetch` API endpoint allows fetching all logs in a single API request. To get all logs, set `get_all_logs` to `true`. - -Share metadata:: - -The `/api/rest/2.0/security/metadata/share` API supports the following new properties: - -* `notify_on_share` + -Sends a share notification to the email addresses specified in the API request. -* `has_lenient_discoverability` + -Sets the shared metadata object as a discoverable object. Applies to Saved Answers and Liveboards only. - -Users:: -The `trigger_activation_email` property allows you to specify if an activation email must be sent to the user's email address in the user creation request to the `/api/rest/2.0/users/create` endpoint. - -=== Deprecated features - -Version Control APIs:: - -The following parameters in `/api/rest/2.0/vcs/git/config/create` and `/api/rest/2.0/vcs/git/config/update` are deprecated from 9.10.5.cl onward: - -* `default_branch_name` + -Replaced by `commit_branch_name` -* `guid_mapping_branch_name` + -Replaced by `configuration_branch_name` - -For more information, see xref:version_control.adoc[Git integration and version control]. - -== Version 9.10.0.cl, March 2024 - -=== New API endpoints - -DBT:: - -* `POST /api/rest/2.0/dbt/dbt-connection` + -Creates a DBT connection. -* `POST /api/rest/2.0/dbt/generate-tml` + -Generates Worksheets and Tables for a given DBT connection. -* `POST /api/rest/2.0/dbt/generate-sync-tml` + -Synchronizes the existing TML of data models and Worksheets and imports them to ThoughtSpot. -* `POST /api/rest/2.0/dbt/search` + -Gets a list of DBT connection objects for a given user or Org. -* `POST /api/rest/2.0/dbt/{dbt_connection_identifier}` + -Updates a DBT connection. - -System:: - -`GET api/rest/2.0/system/banner` + -Gets cluster maintenance status and banner text. - -+ -For more information, see xref:tse-eco-mode.adoc#_cluster_status_during_upgrade[Cluster maintenance and upgrade]. - -== Version 9.8.0.cl, January 2024 - -The `deploy_policy` property in the `/api/rest/2.0/vcs/git/commits/deploy` endpoint now supports the `VALIDATE_ONLY` option, which allows you to compare and validate TML content on the destination environment against the content in the main branch before deploying commits. - -== Version 9.7.0, November 2023 - -=== Version Control APIs - -This release introduces the following enhancements to the Version Control API endpoints: - -==== Git connection creation and update APIs - -The `POST /api/rest/2.0/vcs/git/config/create` and `POST /api/rest/2.0/vcs/git/config/update` API endpoints include the following enhancements: - -New parameters:: - -* `commit_branch_name` + -Allows configuring a commit branch for Git connections on your ThoughtSpot instance. ThoughtSpot recommends using `commit_branch_name` instead of `default_branch_name` in the API calls to prevent users from committing changes to the default deployment branch. -* `configuration_branch_name` + -Allows configuring a separate Git branch for storing and maintaining configuration files, such as GUID mapping and commit tracking files. If the `configuration_branch_name` property is defined, the `guid_mapping_branch_name` parameter is not required. - -Modified parameters:: -The `enable_guid_mapping` parameter is enabled by default. - -Separate branches for Orgs:: -If you are using Orgs and want to move content between these Orgs using version control APIs, ensure that you set a separate Git branch for each Org. If two Orgs are connected to the same Git `repository_url`, the `POST /api/rest/2.0/vcs/git/config/create` and `POST /api/rest/2.0/vcs/git/config/update` API endpoints do not support configuring the same branch name for these Orgs. - -Deprecation notice:: - -The `default_branch_name` and `guid_mapping_branch_name` parameters will be deprecated from version 10.0.0.cl and later releases. - -For more information, see xref:git-configuration.adoc#connectTS[Connect your ThoughtSpot environment to the Git repository]. - -==== Commit API - -The `POST /api/rest/2.0/vcs/git/branches/commit` API endpoint allows the following new attribute in the request body: - -* `delete_aware` -+ -When set to true, the system runs a check between the objects and files in the Git branch and destination environment or Org. If an object exists in the Git branch, but not the destination environment or Org, it will be deleted from the Git branch during the commit operation. - -For more information, see xref:version_control.adoc#_commit_files_and_changes[Commit files]. - -==== Deploy API - -Note the following changes: - -* The `branch_name` attribute is now mandatory in the `POST /api/rest/2.0/vcs/git/commits/deploy` API requests. Ensure that you specify the name of the Git branch from which the commits can be picked and deployed on the destination environment or Org. - -* After a successful deployment, a tracking file is generated with the `commit_id` and saved in the Git branch that is used for storing configuration files. The `commit_id` recorded in the tracking file is used for comparing changes when new commits are pushed in the subsequent API calls. - -For more information, see xref:version_control.adoc#_deploy_commits[Deploy commits]. - -=== User API - -The following new API endpoints are introduced for user account management: - -* `POST /api/rest/2.0/users/activate` + -Activates an inactive user account. - -* `POST /api/rest/2.0/users/deactivate` + -Deactivates a user account. - -=== Support for sorting of columns at runtime -The following data API endpoints now support runtime sorting of columns: - -* `POST /api/rest/2.0/searchdata` + -* `POST /api/rest/2.0/metadata/liveboard/data` + -* `POST /api/rest/2.0/metadata/answer/data` + - -For more information, see xref:runtime-sort.adoc[Runtime sorting of columns]. - -== Version 9.6.0.cl, October 2023 - -=== New API endpoints - -* `POST /api/rest/2.0/customization/custom-actions/search` + -Gets custom action objects -* `POST /api/rest/2.0/customization/custom-actions` + -Creates a custom action -* `POST /api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update` + -Updates the properties of a custom action object. -* `POST /api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete` + -Deletes a custom action - -=== SDK for TypeScript - -ThoughtSpot provides TypeScript SDK to help client applications call REST APIs using TypeScript. You can download the SDK from the link:https://www.npmjs.com/package/@thoughtspot/rest-api-sdk?activeTab=readme[NPM site, window=_blank]. - -== Version 9.5.0.cl, September 2023 - -=== New API endpoints for Role-Based Access Control [beta betaBackground]^Beta^ - -* `POST /api/rest/2.0/roles/search` + -Gets details of role objects available in the ThoughtSpot system. -* `POST /api/rest/2.0/roles/create` + -Creates a role and assigns privileges -* `POST /api/rest/2.0/roles/{role_identifier}/update` + -Updates the properties of a given role -* `POST /api/rest/2.0/roles/{role_identifier}/delete` + -Removes a role object from the ThoughtSpot system - -For more information, see xref:roles.adoc[Role-based access control]. - -[NOTE] -==== -The roles APIs work only if the Role-Based Access Control (RBAC) [beta betaBackground]^Beta^ feature is enabled on your instance. The RBAC feature is turned off by default. To enable this feature, contact ThoughtSpot Support. -==== - -=== Enhancements and API modifications - -Support for runtime parameter overrides:: -The following data and report API endpoints support applying runtime parameter overrides: -* `POST /api/rest/2.0/searchdata` + -* `POST /api/rest/2.0/metadata/liveboard/data` + -* `POST /api/rest/2.0/metadata/answer/data` + -* `POST /api/rest/2.0/report/liveboard` + -* `POST /api/rest/2.0/report/answer` - -Git integration support for Orgs:: - -The Version Control API endpoints support using Orgs as disparate deployment environments. You can create separate Orgs for `dev`, `staging`, and `prod` and integrate these environments with a GitHub repo. - -+ -For more information, see xref:version_control.adoc[Git integration and version control]. - -=== Response code change [tag redBackground]#BREAKING CHANGE# - -The following endpoints now return the 204 response code instead of 200. The 204 code does not return a response body. This change may affect your current implementation, so we recommend that you update your code to avoid issues. - -* `POST /api/rest/2.0/connection/delete` -* `POST /api/rest/2.0/connection/update` -* `POST /api/rest/2.0/users/{user_identifier}/update` -* `POST /api/rest/2.0/users/{user_identifier}/delete` -* `POST /api/rest/2.0/users/change-password` -* `POST /api/rest/2.0/users/reset-password` -* `POST /api/rest/2.0/users/force-logout` -* `POST /api/rest/2.0/groups/{group_identifier}/update` -* `POST /api/rest/2.0/groups/{group_identifier}/delete` -* `POST /api/rest/2.0/metadata/delete` -* `POST /api/rest/2.0/orgs/{org_identifier}/update` -* `POST /api/rest/2.0/orgs/{org_identifier}/delete` -* `POST /api/rest/2.0/schedules/{schedule_identifier}/delete` -* `POST /api/rest/2.0/schedules/{schedule_identifier}/update` -* `POST /api/rest/2.0/security/metadata/assign` -* `POST /api/rest/2.0/security/metadata/share` -* `POST /api/rest/2.0/system/config-update` -* `POST /api/rest/2.0/tags/{tag_identifier}/update` -* `POST /api/rest/2.0/tags/{tag_identifier}/delete` -* `POST /api/rest/2.0/tags/assign` -* `POST /api/rest/2.0/tags/unassign` -* `POST /api/rest/2.0/vcs/git/config/delete` -* `POST /api/rest/2.0/auth/session/login` -* `POST /api/rest/2.0/auth/session/logout` -* `POST /api/rest/2.0/auth/token/revoke` - - -== Version 9.4.0.cl, August 2023 - -=== API endpoints to schedule and manage Liveboard jobs - -* `*POST* /api/rest/2.0/schedules/create` + -Creates a scheduled job for a Liveboard -* `*POST* /api/rest/2.0/schedules/{schedule_identifier}/update` + -Updates a scheduled job -* `*POST* /api/rest/2.0/schedules/search` + -Gets a list of Liveboard jobs configured on a ThoughtSpot instance -* `*POST* /api/rest/2.0/schedules/{schedule_identifier}/delete` + -Deletes a scheduled job. - -For more information, see link:{{navprefix}}/restV2-playground?apiResourceId=http%2Fapi-endpoints%2Fschedules%2Fsearch-schedule[REST API v2.0 Reference]. - -=== API to fetch authentication token - -The `GET /api/rest/2.0/auth/session/token` API endpoint fetches the current authentication token used by the currently logged-in user. - -=== Version Control API enhancements - -* The following Version Control API endpoints support generating and maintaining a GUID mapping file on a Git branch connected to a ThoughtSpot instance: - -** `*POST* /api/rest/2.0/vcs/git/config/create` -** `*POST* /api/rest/2.0/vcs/git/config/update` - -=== User and group API enhancements - -* The `**POST** /api/rest/2.0/users/{user_identifier}/update` and `**POST** /api/rest/2.0/groups/{group_identifier}/update` support specifying the type of operation API request. For example, if you are removing a property of a user or group object, you can specify the `operation` type as `REMOVE` in the API request. -* The `**POST** /api/rest/2.0/users/{user_identifier}/update` allows you to define locale settings, preferences, and other properties for a user object. - -== Version 9.3.0.cl, June 2023 - -The following Version Control [beta betaBackground]^Beta^ API endpoints are now available for the lifecycle management of content on your deployment environments: - -* `*POST* /api/rest/2.0/vcs/git/config/search` -* `*POST* /api/rest/2.0/vcs/git/commits/search` -* `*POST* /api/rest/2.0/vcs/git/config/create` -* `*POST* /api/rest/2.0/vcs/git/config/update` -* `*POST* /api/rest/2.0/vcs/git/config/delete` -* `*POST* /api/rest/2.0/vcs/git/branches/commit` -* `*POST* /api/rest/2.0/vcs/git/commits/{commit_id}/revert` -* `*POST* /api/rest/2.0/vcs/git/branches/validate` -* `*POST* /api/rest/2.0/vcs/git/commits/deploy` - -For more information, see xref:version_control.adoc[Version control and Git integration]. - -== Version 9.2.0.cl, May 2023 - -New endpoints:: - -* System -+ -** `POST /api/rest/2.0/system/config-update` + -Updates system configuration -+ -** `GET /api/rest/2.0/system/config-overrides` + -Gets system configuration overrides - -* Connections -+ -** POST /api/rest/2.0/connection/create + -Creates a data connection - -** `POST /api/rest/2.0/connection/search` + -Gets a list of data connections - -** `POST /api/rest/2.0/connection/update` + -Updates a data connection - -** `POST /api/rest/2.0/connection/delete` + -Deletes a data connection - -Enhancements:: - -* Support for runtime filters and runtime sorting of columns + -The following REST API v2.0 endpoints support applying xref:runtime-filters.adoc#_apply_runtime_filters_in_rest_api_v2_requests[runtime filters] and xref:runtime-sort.adoc[sorting column data]: -+ -** `POST /api/rest/2.0/report/liveboard` + -** `POST /api/rest/2.0/report/answer` - -* Search users by their favorites -+ -The `/api/rest/2.0/users/search` API endpoint allows searching users by their favorite objects and home Liveboard setting. - -* Ability to log in to a specific Org -+ -The `/api/rest/2.0/auth/session/login` API endpoint now allows ThoughtSpot users to log in to a specific Org context. - -== Version 9.0.0.cl, February 2023 - -The ThoughtSpot Cloud 9.0.0.cl release introduces the REST API v2.0 endpoints and Playground. For information about REST API v2.0 endpoints and Playground, see the following articles: - -* xref:rest-api-v2.adoc[REST API v2.0] -* xref:rest-api-v2-getstarted.adoc[Get started with REST API v2.0] -* xref:rest-api-v2-reference.adoc[REST API v2.0 reference] -* xref:rest-api-v1v2-comparison.adoc[REST API v1 and v2.0 comparison] diff --git a/modules/ROOT/pages/tse-eco-mode.adoc b/modules/ROOT/pages/tse-eco-mode.adoc index 5b5fc8b2c..1572a307b 100644 --- a/modules/ROOT/pages/tse-eco-mode.adoc +++ b/modules/ROOT/pages/tse-eco-mode.adoc @@ -18,9 +18,15 @@ Indicates that the cluster is stopped and no user activity is detected. The cluster is currently starting, or some other workflow is running on the cluster. == Cluster status during upgrade -With ThoughtSpot’s Minimal Downtime Ephemeral Mode upgrade option, we upgrade ThoughtSpot in the background while users can use ThoughtSpot in Ephemeral mode. This means that during the upgrade, the system will be in transient state, yet it allows users to create and view data. However, any new objects created during the upgrade will be lost. +With ThoughtSpot's Minimal Downtime Ephemeral Mode upgrade option, we upgrade ThoughtSpot in the background while users can use ThoughtSpot in Ephemeral mode. This means that during the upgrade, the system will be in transient state, yet it allows users to create and view data. However, any new objects created during the upgrade will be lost. -When the upgrade starts, the ThoughtSpot instance operates in the Ephemeral (Read-Only mode) and the cluster state changes to `UNDER_MAINTENANCE`. +// SOURCE: SCAL-320519 +When the upgrade starts, the ThoughtSpot instance operates in Ephemeral mode and the cluster state changes to `UNDER_MAINTENANCE`. In Ephemeral mode, users can continue to create and view data, but any new objects created during the upgrade are discarded when the upgrade completes. + +[NOTE] +==== +Read-Only mode has been deprecated and is no longer available. The current upgrade experience uses Ephemeral mode only. +==== ThoughtSpot users can determine if their instance is under maintenance by sending a `GET` request to one of the following API endpoints: @@ -172,4 +178,4 @@ Indicates a possible error. Contact your administrator or ThoughtSpot Support if |**200**|Successful operation |**400**|Invalid request |**401**|Unauthorized access -|=== \ No newline at end of file +|=== diff --git a/modules/ROOT/pages/whats-new.adoc b/modules/ROOT/pages/whats-new.adoc index dc99edbb4..b2916e1eb 100644 --- a/modules/ROOT/pages/whats-new.adoc +++ b/modules/ROOT/pages/whats-new.adoc @@ -23,631 +23,356 @@ This page lists new features, enhancements, and deprecated functionality introdu // *Affects:* Developers, Administrators, End Users // ============================================================ -== July 2026 +== August 2026 -**Release version**: ThoughtSpot Cloud 26.7.0.cl + -*Upgrade notes*: No breaking changes + -*Recommended SDK versions*: Visual Embed SDK v1.50.0 and later +**Release version**: ThoughtSpot Cloud 26.8.0.cl + +*Upgrade notes*: xref:whats-new.adoc#268-upgrade-notes[See upgrade notes] + +*Recommended SDK versions*: Visual Embed SDK v1.51.0 and later [.cl-table, cols="2,4", frame=none, grid=none] |===== a| [.cl-label] -*Version 26.7.0.cl* +*Version 26.8.0.cl* a| [discrete] -==== SpotterViz for Liveboards [earlyAccess eaBackground]#Early Access# -You can now use SpotterViz in your embedding application to help your users build and edit Liveboards through a conversational interface. Instead of manually configuring charts and layouts, your users can describe what they want and SpotterViz generates the Liveboard for them, including the new tabs, chart types, data filters, and scheduled deliveries. +==== Spotter Analysts [earlyAccess eaBackground]#Early Access# -For SpotterViz customization in embedded view, the Visual Embed SDK also provides several options to customize the SpotterViz panel experience. For more information, see xref:embed-spotterViz.adoc[SpotterViz in embedded Liveboards]. +You can now embed Spotter with custom AI personas called Analysts (also referred to as Spots). Each Analyst can be configured with a specific data context, instructions, and personality. Embedded applications can surface Analysts to users through the Spotter interface and control what actions users can perform on them. ---- +By default, the Analysts section is disabled in embedded Spotter. To show the Analysts panel, use the `showAnalysts` configuration in `SpotterEmbed` and control available actions using the `disabledActions` or `hiddenActions` arrays. For more information, see xref:embed-spotter.adoc#spotter-analysts[Spotter Analysts in embedded apps]. -[discrete] -==== Spotter embedding +// NOTE TO WRITER: Verify exact Action enum string values and the parameter name for pre-selecting an Analyst in SpotterEmbed init config with the SDK team before publishing. (SCAL-312622) -Spotter file upload in embedded apps:: -Applications embedding the Spotter interface can now allow their users to xref:embed-spotter.adoc#_enable_file_upload_in_spotter_chat[upload files directly in the Spotter chat panel]. - -Spotter conversation history:: -You can now save your Spotter conversation and manage chat history using Spotter AI REST APIs. For more information, see xref:spotter-agent-conversation-mgmt-apis.adoc[APIs for managing saved conversations]. - -Spotter Agent instructions:: -You can configure and retrieve behavioral instructions for the Spotter agent using REST APIs. For more information, see xref:spotter-agent-instructions.adoc[Spotter AI agent instructions APIs]. +(SCAL-310399, SCAL-312622) --- [discrete] -==== Focused home page experience [earlyAccess eaBackground]#Early Access# +==== Spotter onboarding in embedded apps [.version-badge.new]#New# -In full application embedding with the V3 navigation and home page experience, ThoughtSpot provides an additional option to switch to the V4 focused home page experience. The focused home page experience provides a streamlined, contemporary experience along with the Spotter panel. For more information, see xref:full-app-customize.adoc[Customize full application embedding]. +Spotter now includes a guided onboarding experience for first-time users in embedded deployments. The onboarding flow helps users understand how to interact with Spotter and discover available data sources. Developers can control the onboarding behavior through the `SpotterEmbed` configuration. For more information, see xref:embed-spotter.adoc[Embed Spotter experience]. ---- - -[discrete] -==== Webhooks enhancements +// NOTE TO WRITER: Verify the SDK flag or init config parameter that controls onboarding behavior (enable/disable/skip) with engineering before publishing. (SCAL-293483, SCAL-314448) -ThoughtSpot introduces the following features and enhancements for webhook configuration and management: - -* New Webhooks page in the UI [earlyAccess eaBackground]#Early Access# + -The *Develop* page now includes a xref:webhooks-ux.adoc[dedicated *Webhooks* page] for creating, managing, and monitoring webhooks within the Org context. -* Storage configuration retrieval + -The `GET /api/rest/2.0/webhooks/storage-config` REST API endpoint to xref:webhooks-api.adoc#_retrieving_storage_information_for_webhook_configuration[get storage configuration details]. -* GCS storage configuration for webhook delivery + -Administrators can now xref:webhooks-gcs-storage.adoc[configure Google Cloud Storage (GCS) buckets as a storage destination] for webhook payload delivery on GCP-hosted ThoughtSpot clusters. -* Webhook activation and deactivation + -You can enable or disable a webhook connection in the UI or through REST API. -* Selective configuration reset + -The xref:webhooks-api.adoc#_updating_a_webhook[webhook update API endpoint] supports the `reset_options` parameter to remove specific optional configuration sections without replacing the full webhook configuration. +(SCAL-293483) --- [discrete] -==== SpotterCode Agent in Visual Embed Playground [earlyAccess eaBackground]#Early Access# +==== New SDK action IDs for Spotter chat controls [.version-badge.new]#New# -The Visual Embed SDK Playground now includes SpotterCode Agent, an AI-powered coding assistant. The SpotterCode panel displays pre-built prompts relevant to the component you are embedding, a prompt interface for user queries, and generates embed code. It generates boilerplate code automatically, accelerates building code and iterating embed configurations. +// NOTE TO WRITER: These action IDs were introduced in SDK 1.48.0 (documented in api-changelog.adoc). This entry covers their extended availability in full application embed (AppEmbed) in 26.8.0.cl. (SCAL-299746) -For more information, see xref:developer-playground.adoc#spottercode-panel[Using SpotterCode in the Playground]. +The following action IDs are now available for controlling Spotter chat panel elements in both `SpotterEmbed` and full application embed (`AppEmbed`): ---- +* `Action.SpotterChatModeSwitcher` — show or hide the mode switcher in the Spotter chat interface. +* `Action.SpotterChatConnectors` — show or hide the connectors panel in the Spotter chat interface. +* `Action.SpotterChatConnectorResources` — show or hide the connector resources section in the Spotter chat interface. -[discrete] -==== Org isolation for per-org SAML and OIDC authentication -ThoughtSpot now enforces strict org isolation when users authenticate through a per-org identity provider (IdP). When a per-org IdP sends SAML or OIDC group claims that reference Orgs outside its authorized scope, ThoughtSpot silently drops those claims and records them as security audit events. This prevents a rogue IdP administrator in one Org from using group assertions to gain unauthorized access to another Org. Manually-assigned existing Org memberships are unaffected. +For more information, see xref:embed-spotter.adoc#spotter-chat-controls[Customize the Spotter chat panel]. ---- - -[discrete] -==== Visual Embed SDK -The Visual Embed SDK version 1.50.0 includes several new features and enhancements. For more information, see the xref:api-changelog.adoc[Visual Embed changelog]. +(SCAL-299746) --- [discrete] -==== REST API v2 -For information about REST API v2 enhancements in this release, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - ---- - -|===== - -== June 2026 +==== WYSIWYG Liveboard PDF is generally available [.version-badge.new]#New# -**Release version**: ThoughtSpot Cloud 26.6.0.cl + -*Upgrade notes*: No breaking changes. + -*Recommended SDK versions*: Visual Embed SDK v1.49.0 and later +PDF exports from Liveboards now render a layout that matches exactly what you see on screen, including custom tile sizing and Liveboard layout. This feature — previously in Beta as the continuous Liveboard PDF experience — is now generally available. -[.cl-table, cols="2,4", frame=none, grid=none] -|===== -a| -[.cl-label] -*Version 26.6.0.cl* +For embedded applications, the `Action.DownloadLiveboardAsContinuousPDF` action ID introduced in SDK 1.48.0 continues to control the visibility of the new download action. No configuration changes are required for existing embedded integrations — backward compatibility is preserved. For more information, see xref:embed-pinboard.adoc#wysiwyg-pdf[Download Liveboard as PDF]. -a| -[discrete] -==== Chart and table overrides [.version-badge.new]#New# -You can now apply visualization overrides to charts and tables generated from a search query in ThoughtSpot search and full application embedding. The `visualOverrides` property in `SearchViewConfig` and `AppViewConfig` allows developers to apply at the embed initialization time: - -* Chart overrides + -Control legend visibility and position, data label display and per-column filter -thresholds, regression lines, grid lines, axis range and label settings, series -colors, and conditional formatting rules including font and background styling. -* Table overrides + -Control column visibility, text wrapping, row height and padding density, table -theme, and column summary visibility with per-column exceptions. - -For more information, see xref:viz-overrides.adoc[Configuring visualization overrides]. +(SCAL-309481) --- [discrete] -==== Spotter AI and embedding enhancements [.version-badge.new]#New# - -This release introduces the following enhancements for Spotter AI workflows and embedded Spotter applications. +==== New default behavior for embedded deployments [.version-badge.breaking]#Breaking# -* Spotter embedding: + -Spotter now includes data literacy skills that help users understand the underlying data model. Users can ask Spotter to explain available data sources, fields, and relationships in plain language within a conversation session. -* Spotter AI APIs: + -//** New REST API endpoints to configure and retrieve persistent behavioral xref:spotter-agent-instructions.adoc[instructions for the Spotter agent]. - New API endpoint xref:spotter-agent-apis.adoc#_stop_an_in_progress_agent_response[stop and cancel a long-running Spotter response]. +The following features are now enabled by default for all ThoughtSpot Embedded deployments starting with 26.8.0.cl. If your embedded application requires the previous behavior, set the corresponding SDK flag explicitly in your `init` configuration: ---- +* *Aether visual theme* — now the default theme for all embedded sessions. +* *Compact header* — the Liveboard header now renders in compact format by default. +* *Hide Irrelevant Filters* — filters not applicable to a visualization are now hidden by default. +* *Cover Filter Page* — now enabled by default. +* *Navan Phase 1 navigation updates* — now enabled by default. -[discrete] -==== Developer page enhancements -The **Develop** page in the ThoughtSpot UI has been updated with the following enhancements: +// NOTE TO WRITER: Verify the exact SDK flag names that can revert each of these defaults with the SDK team before publishing. (SCAL-295712) -* The **Custom actions** list page now shows the code-based custom actions configured using the Visual Embed SDK. -* Removal of REST API v1 + -The legacy REST Playground v1 has been removed from the left navigation. This change does not affect your current integrations with v1 REST API. ThoughtSpot recommends that you update your integration workflows to use REST API v2. For more information, see xref:rest-api-v1v2-comparison.adoc[REST API v1 to v2 migration]. -* Removal of GraphQL playgrounds + -The menu link to the GraphQL playground has been removed from the UI. - -[discrete] -==== Liveboard browser cache refresh -To improve load performance and reduce, you can now enable the Liveboard cache option with a **Refresh** button to allow your users to clear cache and refresh visualization data when required. For more information, see xref:api-changelog.adoc#_liveboard_browser_cache_refresh[Liveboard browser cache refresh]. +(SCAL-295712) --- [discrete] -==== Visual Embed SDK -The Visual Embed SDK version 1.49.0 includes several new features and enhancements. For more information, see the xref:api-changelog.adoc[Visual Embed changelog]. - ---- - -[discrete] -==== REST API v2 -This release introduces new API endpoints for Spotter, connections and trusted authentication. For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - -|===== - - -== May 2026 - -**Release version**: ThoughtSpot Cloud 26.5.0.cl + -*Upgrade notes*: ⚠️ Includes breaking changes to Spotter APIs. Refer to the xref:rest-apiv2-changelog.adoc[REST API changelog] for more information. + -*Recommended SDK versions*: Visual Embed SDK v1.48.0 and later - - -[.cl-table, cols="2,4", frame=none, grid=none] -|===== -a| -[.cl-label] -*Version 26.5.0.cl* - -a| - - -[discrete] -==== Liveboard downloads - -Continuous Liveboard PDF export [beta betaBackground]^Beta^:: -In PDF downloads, Liveboard tabs can now be rendered in a single page matching the UI layout. This feature can be enabled by setting `isContinuousLiveboardPDFEnabled` to `true` in the SDK. Setting this flag to `false` returns to the paginated PDF view. +==== Navigation V3 is the only supported experience [.version-badge.deprecated]#Deprecated# -Liveboard download in XLSX and CSV formats:: -Embedded Liveboards can now be downloaded in the PDF, XLSX and CSV file formats. To enable this feature, ensure that the `isLiveboardXLSXCSVDownloadEnabled` parameter is set to `true`. +Homepage V1/V2 and navigation V1/V2 have been deprecated and are no longer supported. Starting with 26.8.0.cl, all ThoughtSpot Embedded sessions render the V3 navigation and homepage experience by default, regardless of SDK flag values or cluster configuration. -Excel exports for pivot tables:: -Pivot table visualizations can now be exported to Excel format. +Review your embed configuration and update any SDK settings, custom CSS selectors, or DOM-dependent logic that targets V1/V2-specific elements. For more information, see xref:full-app-customize.adoc[Customize full application embedding]. -For more information, see xref:embed-pinboard.adoc#_liveboard_download_options[Liveboard download options]. +(SCAL-312731) --- [discrete] -==== Visualization edit interface within the Liveboard view +==== Personalized Views portability in TML [.version-badge.new]#New# -Users can now edit the underlying query of an answer directly within the Liveboard. When this feature is enabled, the edit button for visualization appears in the answer's floating toolbar when the Liveboard is opened in the edit mode. Clicking the edit button opens the Answer interface preloaded with the answer's current query context. You can make the edits and save the changes without leaving the Liveboard. +The TML schema for Liveboards now includes `owned_by` and `obj_id` fields for Personalized Views. These fields enable safe SDLC promotion of Liveboards — including their associated views — across environments without data loss. During TML import, ThoughtSpot applies smart-merge behavior: ---- +* Views that exist only in the destination environment are preserved. +* Views that exist only in the imported TML are appended. +* Views that exist in both the imported TML and the destination environment are updated. -[discrete] -==== KPI charts in embedded Liveboards +// NOTE TO WRITER: Verify exact TML YAML field names and their placement within the Liveboard TML structure with the TML/Liveboard team before publishing. (SCAL-307283) -Embedded Liveboards support advanced controls KPI chart customization. For more information, see link:https://docs.thoughtspot.com/cloud/latest/chart-kpi#advanced[KPI charts]. +For more information, see xref:tml.adoc[TML]. ---- - -[discrete] -==== Per-org and per-user timezone control via variables [beta betaBackground]^Beta^ - -You can centrally control timezone behavior per org and per user in embedded deployments using the new template variable `ts_user_timezone` and Variable APIs. - -For multi-org and multi-tenant environments, each tenant org and user can be configured independently, guaranteeing isolation and consistency of time-based analytics across regions. Administrators can reference the timezone variable in formulas to render and filter timestamp data correctly for each embedded user, without separate content per region. +(SCAL-307283) --- [discrete] -==== Timezone-aware keyword filtering [beta betaBackground]^Beta^ -ThoughtSpot now supports resolving relative date and time keywords, such as `today`, `yesterday`, and `last 7 days`, using a configurable per-user or per-Org timezone, instead of the system default timezone on a ThoughtSpot instance. This feature eliminates timezone-based inconsistencies in multi-region embedded deployments and removes the need for custom workarounds. +==== Object ID support for Collections [.version-badge.new]#New# -For more information, see xref:timezone.adoc[Timezone-aware keywords and filters]. - -[NOTE] -==== -The timezone awareness feature is in Beta and disabled by default. To enable this feature, contact ThoughtSpot Support. -==== +Collections now support stable object IDs (`obj_id`) in TML import and export workflows. You can also assign and update object IDs for Collections using the `POST /api/rest/2.0/metadata/headers/update_obj_id` REST API v2 endpoint. This enables consistent SDLC workflows for Collections across environments. For more information, see xref:tml.adoc[TML]. +(SCAL-317357) --- [discrete] -==== Visual Embed SDK -The Visual Embed SDK version 1.48.0 includes several new features and enhancements. For more information, see the xref:api-changelog.adoc[Visual Embed changelog]. +==== Granular download privileges [.version-badge.new]#New# ---- - -[discrete] -==== REST API v2 -This release introduces new Spotter API endpoints and modifications to the agent conversation APIs, and deprecates legacy agent endpoints. For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - -|===== +The `Can Download Data` privilege has been split into two separate, more granular privileges: +* *Can Download Visuals* — grants permission to download Liveboards and visualizations as PDF or PNG. +* *Can Download Detailed Data* — grants permission to download raw tabular data as XLSX or CSV. -== April 2026 +If you use the REST API to manage user group privileges or roles, update your API calls to use the new privilege values. For more information, see link:https://docs.thoughtspot.com/cloud/latest/privileges-and-roles[Privileges and roles, window=_blank]. -**Release version**: ThoughtSpot Cloud 26.4.0.cl + -*Upgrade notes*: ⚠️ Variable update and delete API and metadata parameterization endpoints are deprecated and replaced with new API endpoints. Refer to xref:rest-apiv2-changelog.adoc#version_26_4_0_cl_april_2026[REST API changelog] and xref:deprecated-features.adoc[Deprecation announcements]. + -*Recommended SDK versions*: Visual Embed SDK v1.47.0 and later +// NOTE TO WRITER: Verify the exact REST API v2 enum strings for both new privilege values with the Platform/IAM team before publishing. (SCAL-273333) -[.cl-table, cols="2,4", frame=none, grid=none] -|=== - -a| -[.cl-label] -*Version 26.4.0.cl* - -a| - -[discrete] -==== Theme builder in AI mode - -The Theme Builder now has an AI mode that enables developers to explore and preview style customizations for their embedded application’s branding using natural language instructions and uploaded brand assets. You can execute style updates such as applying colors directly from a PDF branding guide, updating all button shapes with higher contrast, matching a header to a dark background based on a screenshot, or importing typography and spacing from a JSON file. In the AI mode, Theme builder interprets your intent and applies the changes instantly. - -For more information, see xref:theme-builder.adoc[Theme builder]. +(SCAL-273333) --- - [discrete] -==== Webhook integration -In this release version, the following enhancements are introduced in the webhook configuration and delivery status monitoring workflows: +==== Schedule notifications: "every N minutes" frequency removed [.version-badge.deprecated]#Deprecated# -Channel validation:: -Administrators can verify the connection status of a webhook channel by sending a test payload in a `POST` request to the `/api/rest/2.0/system/communication-channels/validate` REST API endpoint. For more information, see xref:webhooks-comm-channel.adoc#_validate_communication_channel_configuration[Webhook channel validation]. +The per-minute schedule frequency for Liveboard notification jobs is no longer available. If you use the REST API to create or update Liveboard scheduled jobs, remove `MINUTES` from the frequency type in your requests. The supported frequency types remain `HOURLY`, `DAILY`, `WEEKLY`, and `MONTHLY`. -Monitor webhook delivery:: -Administrators can also monitor the status of a webhook delivery via a `POST /api/rest/2.0/jobs/history/communication-channels/search` API request. For more information, see xref:webhooks-comm-channel.adoc#_monitor_webhook_delivery_and_job_status[Monitor webhook delivery and job status]. - -Support for custom HTTP headers in webhook requests:: -When configuring or updating a webhook, you can now specify custom headers to include in every outbound request, in addition to the standard HTTP and authentication headers that ThoughtSpot sends. For more information, refer to the xref:webhooks-lb-schedule.adoc#_create_a_webhook[webhook documentation]. +(SCAL-244749) --- - [discrete] -==== Spotter embed enhancements -You can now customize the appearance and contents of the chat history sidebar panel in Spotter embedding. +==== Mobile app embedding: custom scheme origins [.version-badge.new]#New# -You can also customize the branding and logo in the Spotter chat interface. +If you are embedding ThoughtSpot in a mobile application built with Capacitor or Ionic, you can now add custom scheme origins such as `capacitor://localhost` and `ionic://localhost` to the CSP allowlist in the Security Settings page. For important security considerations, see xref:security-settings.adoc#mobile-app-schemes[Mobile app framework origins]. -For more information, see xref:embed-spotter.adoc#_chat_history_panel[Customizing chat history sidebar] and xref:embed-spotter.adoc#_hiding_the_spotter_icon_and_thoughtspot_branding_chat_interface[Hiding logo and brand label in Spotter chat interface]. +(SCAL-320438) --- [discrete] -==== Liveboard enhancements -The following enhancements are introduced in Liveboard export and filtering workflows. - -Embedding a personalized Liveboard view:: -You can now embed a saved personalized Liveboard view using the `personalizedViewId` and load it along with the `liveboardId` in your app. - -Centralized filter modal:: -Liveboard users can modify multiple filters and parameters in a single session using the centralized filter modal. This is an early access feature and disabled by default on ThoughtSpot embedded instances. To enable this feature on embedded Liveboards, set the `isCentralizedLiveboardFilterUXEnabled` to `true`. - -Current period inclusion in rolling date filters:: -The rolling date filters with the **Last ** and **Next ** filter types support including current period. Developers can disable, show, or hide this option using `isThisPeriodInDateFiltersEnabled` or `Action.IncludeCurrentPeriod`. +==== Visual Embed SDK -Liveboard PNG export:: -The PNG export workflow in the `/api/rest/2.0/report/liveboard` REST API is enhanced to provide high-resolution PNG files. The legacy PNG workflow is deprecated in 26.4.0.cl. For more information about breaking changes and deprecation guidelines, see xref:deprecated-features.adoc[Deprecation announcements]. For information about the new PNG download workflow, see xref:data-report-v2-api.adoc#_liveboard_report_api[Liveboard report API documentation]. +The Visual Embed SDK version 1.51.0 includes several new features and enhancements for Spotter Analysts embedding and action ID updates. For more information, see the xref:api-changelog.adoc[Visual Embed SDK changelog]. --- - [discrete] -==== Full app embedding -In full application embedded deployments with the V3 navigation and home page experience, the default list page experience is set to ListPage v3 experience. - -The ListPage V3 experience provides a refreshed list layout and styling, including the following enhancements: - -* The **Views** column to show the number of views for each object. -* Sorting options for **Name**, **Author**, and **Views** columns. -* Filters can be added by clicking the column header without opening the filter modal. This option is available for **Favorites**, **Views** columns, and **Verified** columns. +==== REST API v2 -For more information, see xref:full-app-customize.adoc#_customize_list_page_experience[List page customization]. +For information about REST API v2 enhancements in this release, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. --- +|===== -[discrete] -==== Variable API -The variable REST API provides new API endpoints for the following bulk operations: - -* Bulk deletion: -You can now delete multiple variables in a single API request using the `/api/rest/2.0/template/variables/delete` endpoint. -* Batch update of variable values: -You can now assign and update multiple values to a variable in a single API request using the `/api/rest/2.0/template/variables/{identifier}/update-values` endpoint. +[#268-upgrade-notes] +== Upgrade notes — 26.8.0.cl -[NOTE] +[WARNING] ==== -The `/api/rest/2.0/template/variables/update-values` and `/api/rest/2.0/template/variables/{identifier}/delete` endpoints are now deprecated. Use the new `/api/rest/2.0/template/variables/{identifier}/update-values` and `/api/rest/2.0/template/variables/delete` endpoints for the variable update and delete operations instead. +*Review the following breaking changes before upgrading to 26.8.0.cl.* ==== -For more information, see xref:variables.adoc[Variables documentation]. +=== Navigation V1/V2 deprecated — all sessions now render V3 ---- +All embedded sessions now render V3 navigation and homepage by default. SDK flags or cluster configuration values that previously selected V1 or V2 are silently ignored. +*Action required*: Remove V1/V2 SDK flags from your embed configuration. Update any custom CSS selectors or DOM-dependent code that targets V1/V2-specific elements or class names. (SCAL-312731) -[discrete] -==== Metadata parameterization -You can now parameterize multiple properties of metadata objects using `POST /api/rest/2.0/metadata/parameterize-fields`. The legacy endpoint `/api/rest/2.0/metadata/parameterize` is deprecated in 26.4.0.cl and later versions, and is replaced with the new endpoint to allow updating multiple fields in a single API request. +=== Default SDK behaviors changed — five features now enabled by default -For more information, see xref:metadata-parameterization.adoc[Metadata parameterization documentation]. +The Aether theme, Compact Header, Hide Irrelevant Filters, Cover Filter Page, and Navan Phase 1 are now enabled by default in all embedded sessions. If your application requires the previous defaults, set the corresponding SDK flags explicitly. (SCAL-295712) ---- +// NOTE TO WRITER: Verify the exact SDK flag names that can revert each of the above defaults with the SDK team before publishing. (SCAL-295712) +=== Download privileges split — update REST API calls -[discrete] -==== Collections [beta betaBackground]^Beta^ -ThoughtSpot embedded users can now use REST APIs v2 to organize different ThoughtSpot objects into organizational containers called *Collections*. These objects can be Liveboards, Answers, data models, tables, and even other Collections. +The `Can Download Data` privilege is replaced by `Can Download Visuals` and `Can Download Detailed Data`. Update any REST API calls that assign download privileges to user groups or roles. (SCAL-273333) -For more information, see xref:collections.adoc[Collections]. +// NOTE TO WRITER: Verify exact REST API v2 enum strings for both new privilege values with Platform/IAM team before publishing. (SCAL-273333) -[NOTE] -==== -These APIs are currently in beta and turned off by default on ThoughtSpot instances. To enable this feature on your instance, contact ThoughtSpot Support. -==== ---- - -[discrete] -==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.46.0, see the xref:api-changelog.adoc[Visual Embed changelog]. +=== "Every N minutes" schedule frequency removed +Remove `MINUTES` from the frequency type in any REST API calls that create or update Liveboard scheduled notification jobs. (SCAL-244749) -[discrete] -==== REST API v2 -For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - ---- -|=== - -== March 2026 +== July 2026 -**Release version**: ThoughtSpot Cloud 26.3.0.cl + -*Upgrade notes*: ⚠️ Includes feature deprecations. Refer to xref:rest-apiv2-changelog.adoc#_custom_access_token_api[REST API changelog] and xref:deprecated-features.adoc[Deprecation announcements]. + -*Recommended SDK versions*: Visual Embed SDK v1.46.0 and later +**Release version**: ThoughtSpot Cloud 26.7.0.cl + +*Upgrade notes*: No breaking changes + +*Recommended SDK versions*: Visual Embed SDK v1.50.0 and later [.cl-table, cols="2,4", frame=none, grid=none] -|=== - +|===== a| [.cl-label] -*Version 26.3.0.cl* +*Version 26.7.0.cl* a| [discrete] -==== Amazon S3 storage destination for webhook delivery -You can now configure ThoughtSpot to deliver webhook payloads and attachments directly into your own Amazon S3 storage using secure AWS cross-account access. To enable this integration, your AWS administrator must create an IAM role with S3 permissions and trust policy, and then register a webhook in ThoughtSpot to deliver the payloads and attachments directly to your S3 bucket. - -For more information, see xref:webhooks-s3-storage.adoc[Amazon S3 storage integration for webhook delivery]. - ---- - -[discrete] -==== Host event enhancements for context-aware routing - -HostEvents in the Visual Embed SDK are enhanced to improve event routing and context targeting in ThoughtSpot embedded applications. - -Developers can use the page context framework in the SDK to route host events to a specific UI layer and align user experience with the product UI behavior in multi-modal contexts. - -For more information, see xref:events-context-aware-routing.adoc[Context-based execution of host events]. - ---- - -[discrete] -==== JWT-based ABAC implementation -The legacy JWT-based approach that uses `filter_rules` and `parameter_values` to implement Attribute-Based Access Control (ABAC) is deprecated. - -As part of this deprecation, the following changes have been introduced to the custom authentication token API workflow and REST API Playground: - -* The `filter_rules` parameter on the custom token authentication page in the REST API Playground is no longer available for new configurations. This change does not affect your existing implementation. - -* The `parameter_values` property is not deprecated in version 26.3.0.cl and remains supported until further notice. However, using parameter values for row-level security use cases will ultimately be deprecated in an upcoming release. - -Existing ABAC implementations that use `filter_rules` will continue to function until further notice. However, we strongly recommend migrating your legacy ABAC implementation to the ABAC via RLS method that uses custom variables. For migration steps, refer to the xref:abac-migration-guide.adoc[ABAC migration guide]. - -For new deployments, use ABAC via RLS with custom variables and pass data security attributes through the `variable_values` property in the custom access token, and define your RLS rules based on those variables. For more information, see xref:abac_rls-variables.adoc[ABAC via RLS]. - ---- - -[discrete] -==== Spotter coaching access across published Orgs -Starting with the 26.3.0.cl release, ThoughtSpot supports publishing Spotter coaching information to other Orgs. Coaching changes from the primary Org are synchronized with the data models published in secondary Orgs. - -Administrators and users with edit access to data models can programmatically control user access to Spotter coaching information using the object privilege REST API endpoint, `/api/rest/2.0/security/metadata/manage-object-privilege`. They can assign `SPOTTER_COACHING_PRIVILEGE` to other users and user groups, allowing access to the coaching information without requiring data model editing or administration privileges. - -Users and groups with `SPOTTER_COACHING_PRIVILEGE` can import and export coaching TML on data models in the source and destination Orgs where the model is published, and can also share these objects with other users and groups. +==== SpotterViz for Liveboards [earlyAccess eaBackground]#Early Access# +You can now use SpotterViz in your embedding application to help your users build and edit Liveboards through a conversational interface. Instead of manually configuring charts and layouts, your users can describe what they want and SpotterViz generates the Liveboard for them, including the new tabs, chart types, data filters, and scheduled deliveries. -For more information, see xref:spotter-nl-instructions.adoc#_spotter_data_model_instructions_access[Spotter data model instructions access]. +For SpotterViz customization in embedded view, the Visual Embed SDK also provides several options to customize the SpotterViz panel experience. For more information, see xref:embed-spotterViz.adoc[SpotterViz in embedded Liveboards]. --- [discrete] -==== Full application embedding -The height and aspect ratio of the logo in the top-left corner of the ThoughtSpot application interface have been updated for visual alignment and consistency across pages. This enhancement is available only in the V3 navigation and home page experience. - -If you have embedded the full application with the V3 navigation experience, you may notice that the logo appears smaller in the top navigation. This is a design update and does not require any configuration changes to your current embedding implementation. However, we recommend that you review the logo size and appearance, and adjust your custom logo if necessary. - -For information about adding a custom logo image, see xref:customize-style.adoc#logo-change[Customize application logo and favicon]. - ---- +==== Spotter embedding -[discrete] -==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.46.0, see the xref:api-changelog.adoc[Visual Embed changelog]. +Spotter file upload in embedded apps:: +Applications embedding the Spotter interface can now allow their users to xref:embed-spotter.adoc#_enable_file_upload_in_spotter_chat[upload files directly in the Spotter chat panel]. ---- +Spotter conversation history:: +You can now save your Spotter conversation and manage chat history using Spotter AI REST APIs. For more information, see xref:spotter-agent-conversation-mgmt-apis.adoc[APIs for managing saved conversations]. -[discrete] -==== REST API v2 -For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +Spotter Agent instructions:: +You can configure and retrieve behavioral instructions for the Spotter agent using REST APIs. For more information, see xref:spotter-agent-instructions.adoc[Spotter AI agent instructions APIs]. --- -|=== - -== February 2026 -**Release version**: ThoughtSpot Cloud 26.2.0.cl + -*Upgrade notes*: ⚠️ Includes API parameter deprecations. Refer to xref:rest-apiv2-changelog.adoc[REST API changelog] and xref:deprecated-features.adoc[Deprecation announcements]. + -*Recommended SDK versions*: Visual Embed SDK v1.45.0 and later - - -[.cl-table, cols="2,4", frame=none, grid=none] -|=== -a| -[.cl-label] -*Version 26.2.0.cl* - -a| [discrete] -==== SpotterCode extension for IDEs [earlyAccess eaBackground]#Early Access# - -ThoughtSpot introduces SpotterCode, an AI-powered Model Context Protocol (MCP) extension for Integrated Development Environments (IDEs) such as Cursor, Visual Studio Code, and Claude Code. When integrated, SpotterCode enables the AI agent in the IDE to access ThoughtSpot SDKs and API documentation resources and provide in-context coding assistance to developers embedding ThoughtSpot content within their applications. +==== Focused home page experience [earlyAccess eaBackground]#Early Access# -SpotterCode is available as an Early Access feature and can be integrated with development environments that support MCP servers and tools. For more information, see xref:spottercode.adoc[SpotterCode], xref:spottercode-integration.adoc[Integrating SpotterCode in IDEs], and xref:spottercode-prompt-guide.adoc[SpotterCode prompting guide]. +In full application embedding with the V3 navigation and home page experience, ThoughtSpot provides an additional option to switch to the V4 focused home page experience. The focused home page experience provides a streamlined, contemporary experience along with the Spotter panel. For more information, see xref:full-app-customize.adoc[Customize full application embedding]. --- [discrete] -==== Spotter 3 experience [earlyAccess eaBackground]#Early Access# -You can now embed the Spotter 3 experience, which introduces several new capabilities, agentic analytics, and an enhanced user experience. Spotter 3 is an Early Access feature and is disabled by default on ThoughtSpot embedded instances. - -For more information, see xref:embed-ai-analytics.adoc[Embed AI Search and Analytics] and xref:embed-spotter.adoc[Spotter embedding documentation]. - ---- +==== Webhooks enhancements -[discrete] -==== Rate limits for REST APIs -To prevent excessive requests from reaching application servers and ensure API stability and service quality for REST API users, ThoughtSpot enforces rate limits on public API requests per client IP. These limits are applied globally at the cluster level for all public API requests, including calls to both REST API v1 and v2 endpoints. -//Administrators can adjust these limits for their ThoughtSpot deployments as needed. +ThoughtSpot introduces the following features and enhancements for webhook configuration and management: -For more information, see xref:about-rest-apis.adoc#_rate_limits_for_api_requests[Rate limits for REST APIs]. +* New Webhooks page in the UI [earlyAccess eaBackground]#Early Access# + +The *Develop* page now includes a xref:webhooks-ux.adoc[dedicated *Webhooks* page] for creating, managing, and monitoring webhooks within the Org context. +* Storage configuration retrieval + +The `GET /api/rest/2.0/webhooks/storage-config` REST API endpoint to xref:webhooks-api.adoc#_retrieving_storage_information_for_webhook_configuration[get storage configuration details]. +* GCS storage configuration for webhook delivery + +Administrators can now xref:webhooks-gcs-storage.adoc[configure Google Cloud Storage (GCS) buckets as a storage destination] for webhook payload delivery on GCP-hosted ThoughtSpot clusters. +* Webhook activation and deactivation + +You can enable or disable a webhook connection in the UI or through REST API. +* Selective configuration reset + +The xref:webhooks-api.adoc#_updating_a_webhook[webhook update API endpoint] supports the `reset_options` parameter to remove specific optional configuration sections without replacing the full webhook configuration. --- [discrete] -==== Security settings via REST APIs -Security settings that ensure data security and a seamless embedded user experience can now be configured through REST APIs v2. Administrators and developers can configure allowlists for: +==== SpotterCode Agent in Visual Embed Playground [earlyAccess eaBackground]#Early Access# -* Content Security Policy (CSP) -* Cross-origin Resource Sharing (CORS) -* Authentication attributes -* Access control settings +The Visual Embed SDK Playground now includes SpotterCode Agent, an AI-powered coding assistant. The SpotterCode panel displays pre-built prompts relevant to the component you are embedding, a prompt interface for user queries, and generates embed code. It generates boilerplate code automatically, accelerates building code and iterating embed configurations. -For more information, see xref:security-settings.adoc[Security Settings]. +For more information, see xref:developer-playground.adoc#spottercode-panel[Using SpotterCode in the Playground]. --- [discrete] -==== WebSocket support for external tools -ThoughtSpot supports secure WebSocket (`wss://`) endpoints for external tool script integrations, for example, tools that open WebSocket connections from the browser. - -To allow a WebSocket host, add the corresponding `wss://` URL to both your CSP allowlists. Only hosts explicitly listed with the `wss://` protocol are permitted. Existing `https://` entries in the allowlists remain unchanged and continue to function as expected. - -For more information, see xref:3rd-party-script.adoc#_allow_websocket_endpoints[External tools and script integration]. +==== Org isolation for per-org SAML and OIDC authentication +ThoughtSpot now enforces strict org isolation when users authenticate through a per-org identity provider (IdP). When a per-org IdP sends SAML or OIDC group claims that reference Orgs outside its authorized scope, ThoughtSpot silently drops those claims and records them as security audit events. This prevents a rogue IdP administrator in one Org from using group assertions to gain unauthorized access to another Org. Manually-assigned existing Org memberships are unaffected. --- - [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.45.0, see the xref:api-changelog.adoc[Visual Embed changelog]. +The Visual Embed SDK version 1.50.0 includes several new features and enhancements. For more information, see the xref:api-changelog.adoc[Visual Embed changelog]. --- [discrete] ==== REST API v2 -For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +For information about REST API v2 enhancements in this release, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. --- -|=== +|===== -== January 2026 +== June 2026 -**Release version**: ThoughtSpot Cloud 10.15.0.cl + +**Release version**: ThoughtSpot Cloud 26.6.0.cl + *Upgrade notes*: No breaking changes. + -*Recommended SDK versions*: Visual Embed SDK v1.44.0 and later - +*Recommended SDK versions*: Visual Embed SDK v1.49.0 and later [.cl-table, cols="2,4", frame=none, grid=none] -|=== +|===== a| [.cl-label] -*Version 10.15.0.cl* +*Version 26.6.0.cl* a| [discrete] -==== Theme Builder -Theme Builder is now generally available (GA) and will be rolled out to all ThoughtSpot instances in customer deployments over the next few weeks. - -When this feature is enabled on your instance, you can access it from the *Develop* page in ThoughtSpot and use it to customize styles and UX themes directly within the product. - -For more information, see xref:theme-builder.adoc[Theme Builder]. - ---- - -[discrete] -==== V3 navigation and home page experience - -The new V3 navigation and home page experience is now generally available (GA) and can be enabled on ThoughtSpot embedded instances. - -The default UI experience in full application embedding remains the classic (V1) experience until further notice. Developers embedding the full ThoughtSpot application can enable the V3 experience in their applications by setting the appropriate configuration options in their embed code. - -For more information, see xref:full-app-customize.adoc[Customizing full application embedding]. - ---- - -[discrete] -==== Formula variables in RLS rules +==== Chart and table overrides [.version-badge.new]#New# +You can now apply visualization overrides to charts and tables generated from a search query in ThoughtSpot search and full application embedding. The `visualOverrides` property in `SearchViewConfig` and `AppViewConfig` allows developers to apply at the embed initialization time: -You can now create formula variables using the Variable REST API and use these variables in RLS rules for a specific data context and in ABAC token requests to dynamically assign security attributes to users. +* Chart overrides + +Control legend visibility and position, data label display and per-column filter +thresholds, regression lines, grid lines, axis range and label settings, series +colors, and conditional formatting rules including font and background styling. +* Table overrides + +Control column visibility, text wrapping, row height and padding density, table +theme, and column summary visibility with per-column exceptions. -For more information, see xref:abac_rls-variables.adoc[ABAC via RLS with variables]. +For more information, see xref:viz-overrides.adoc[Configuring visualization overrides]. --- [discrete] -==== Spotter APIs - -ThoughtSpot introduces new REST APIs for the following Spotter workflows: - -* To send queries to a conversation session with the Spotter agent -* To set natural language (NL) instructions on a model to coach the Spotter system -* To fetch NL instructions configured on a model +==== Spotter AI and embedding enhancements [.version-badge.new]#New# -For more information, see xref:spotter-apis.adoc[Spotter APIs]. +This release introduces the following enhancements for Spotter AI workflows and embedded Spotter applications. ---- +* Spotter embedding: + +Spotter now includes data literacy skills that help users understand the underlying data model. Users can ask Spotter to explain available data sources, fields, and relationships in plain language within a conversation session. -[discrete] -==== Embed events and parameters to intercept API calls -You can now intercept API calls from the embedded ThoughtSpot application using the `interceptUrls` attribute in the Visual Embed SDK. This feature lets you control API requests in your embedding application and use embed events to modify, block, or handle requests before they are sent to the backend. For more information, see xref:api-intercept.adoc[Intercept API calls and search requests]. +* Spotter Model: +** link:https://docs.thoughtspot.com/cloud/latest/spotter-model[Spotter Model, window=_blank] is now generally available. +** The following new API endpoints allow you to configure and retrieve Spotter Model settings programmatically: +*** `POST /api/rest/2.0/ai/model-settings/update` — updates Spotter Model settings. +*** `POST /api/rest/2.0/ai/model-settings/get` — retrieves the current Spotter Model configuration. --- [discrete] -==== Icon customization enhancements +==== Security: custom domain CORS -You can now replace or customize the chart switcher toggle and icons in the Charts drawer on an Answer or visualization page using SVG sprites. Previously, these icons were fixed to ThoughtSpot defaults and were not configurable. In the new version, these icons are available as SVG components and can be replaced by developers through the xref:customize-icons.adoc[icon customization framework] as needed. +You can now add custom domain entries to the CORS allowlist directly from the *Security Settings* page. For more information, see xref:security-settings.adoc[Security settings]. --- [discrete] -==== Mobile Embed SDK -The SDKs for embedding ThoughtSpot components in mobile apps are now Generally Available (GA). For more information about the SDKs and how to embed a ThoughtSpot component in a mobile app, see xref:mobile-embed.adoc[Mobile embed documentation]. +==== Visual Embed SDK +The Visual Embed SDK version 1.49.0 includes several new features and enhancements. For more information, see the xref:api-changelog.adoc[Visual Embed changelog]. --- [discrete] -==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.44.0, see xref:api-changelog.adoc[Visual Embed changelog]. +==== REST API v2 +For information about REST API v2 enhancements in this release, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. --- -[discrete] -==== REST API -For information about REST API v2 enhancements, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - -|=== \ No newline at end of file +|===== diff --git a/src/components/DevDocTemplate/index.tsx b/src/components/DevDocTemplate/index.tsx index bb83b7d80..4b0ac293c 100644 --- a/src/components/DevDocTemplate/index.tsx +++ b/src/components/DevDocTemplate/index.tsx @@ -53,6 +53,10 @@ import t from '../../utils/lang-utils'; import { getHTMLFromComponent } from '../../utils/react-utils'; import VersionIframe from '../VersionIframe'; +// Key of the merged nav-in-product-help.adoc entry in processedNavMap (pageid minus 'nav-' prefix). +// Not a real DocCategory/tab — used only to pick the left sidebar content when embedded in-product. +const IN_PRODUCT_NAV_KEY = 'in-product-help'; + const DevDocTemplate: FC = (props) => { const { data, @@ -127,21 +131,28 @@ const DevDocTemplate: FC = (props) => { []); // Breadcrumb data built from master nav + all category navs for full coverage + // (excludes the merged in-product nav, which duplicates the category navs) const breadcrumsData = React.useMemo(() => { if (typeof window === 'undefined') return []; const allHtmls = [ initialNavContentData, - ...Object.values(processedNavMap as Record), + ...Object.entries(processedNavMap as Record) + .filter(([cat]) => cat !== IN_PRODUCT_NAV_KEY) + .map(([, html]) => html), ]; return allHtmls.flatMap((html) => fetchChild(html)); }, [processedNavMap]); - // Pick the right sidebar content for the active category + // Pick the right sidebar content for the active category. + // In-product (embedded) presentation has no category tabs — always show the merged nav. const activeNavContent = React.useMemo(() => { + if (!isPublicSiteOpen) { + return processedNavMap[IN_PRODUCT_NAV_KEY] || navContent; + } const navId = CATEGORY_NAV_ID[activeCategory]; const mapKey = navId.startsWith('nav-') ? navId.slice(4) : null; return (mapKey && processedNavMap[mapKey]) || navContent; - }, [activeCategory, processedNavMap, navContent]); + }, [activeCategory, processedNavMap, navContent, isPublicSiteOpen]); const isCustomPage = _.values(CUSTOM_PAGE_ID).some( (pageId: string) => pageId === params[TS_PAGE_ID_PARAM], @@ -171,11 +182,13 @@ const isVersionedIframe = VERSION_DROPDOWN.some( const isAskDocsPage = params[TS_PAGE_ID_PARAM] === CUSTOM_PAGE_ID.ASK_DOCS; /* Build pageId → category map by parsing hrefs from each category's nav HTML. - * This means writers only need to update nav-*.adoc — no TypeScript changes needed. */ + * This means writers only need to update nav-*.adoc — no TypeScript changes needed. + * Excludes the merged in-product nav, which isn't a real tab/category. */ const pageIdToCategoryMap = React.useMemo(() => { if (typeof window === 'undefined') return {}; const map: Record = {}; Object.entries(processedNavMap).forEach(([cat, html]) => { + if (cat === IN_PRODUCT_NAV_KEY) return; const doc = new DOMParser().parseFromString(html as string, 'text/html'); doc.querySelectorAll('a[href]').forEach((a) => { const href = a.getAttribute('href') || ''; @@ -723,13 +736,28 @@ if (isVersionedIframe) { } > {!isIframeMode && !isVersionedIframe && ( - + isPublicSiteOpen ? ( + + ) : !isMaxMobileResolution && ( + // In-product presentation has no tabs — show just the nav + // toggle so the sidebar stays reachable on narrow viewports. + // Desktop-width embeds skip this entirely; the sidebar is + // always visible there. + + ) )}
diff --git a/src/components/LeftSidebar/NavContent.tsx b/src/components/LeftSidebar/NavContent.tsx index 7629d9022..f4fa1ea97 100644 --- a/src/components/LeftSidebar/NavContent.tsx +++ b/src/components/LeftSidebar/NavContent.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { navigate } from 'gatsby'; import { IconContext } from '@react-icons/all-files'; import { BiSearch } from '@react-icons/all-files/bi/BiSearch'; import BackButton from '../BackButton'; @@ -50,6 +51,19 @@ const NavContent = (props: { + {/* AskDocs lives in the top SecondaryHeader on the standalone site; + that bar is hidden in-product, so surface it here instead. */} + {!props.isPublicSiteOpen && ( +
+ +
+ )}