AppViewConfig
- Index
- Properties
- additionalFlags
- collapseSearchBar
- collapseSearchBarInitially
- contextMenuTrigger
- coverAndFilterOptionInPDF
- customActions
- customizations
- dataPanelCustomGroupsAccordionInitialState
- dataPanelV2
- defaultHeight
- defaultQueryMode
- disableProfileAndHelp
- disableRedirectionLinksInNewTab
- disabledActionReason
- disabledActions
- discoveryExperience
- doNotTrackPreRenderSize
- enable2ColumnLayout
- enableAskSage
- enableCustomColumnGroups
- enableHomepageAnnouncement
- enableLinkOverridesV2
- enableLiveboardDataCache
- enablePastConversationsSidebar
- enablePendoHelp
- enableScrollableContainerLazyLoading
- enableSearchAssist
- enableStopAnswerGenerationEmbed
- enableV2Shell_experimental
- excludeRuntimeFiltersfromURL
- excludeRuntimeParametersfromURL
- exposeTranslationIDs
- frameParams
- fullHeight
- hiddenActions
- hiddenHomeLeftNavItems
- hiddenHomepageModules
- hiddenListColumns
- hideAnswerEditPanel
- hideApplicationSwitcher
- hideHamburger
- hideHomepageLeftNav
- hideIrrelevantChipsInLiveboardTabs
- hideLiveboardHeader
- hideNotification
- hideObjectSearch
- hideObjects
- hideOrgSwitcher
- hideTagFilterChips
- homePageSearchBarMode
- insertAsSibling
- interceptTimeout
- interceptUrls
- isCentralizedLiveboardFilterUXEnabled
- isContinuousLiveboardPDFEnabled
- isDarkMode
- isEnhancedFilterInteractivityEnabled
- isGranularXLSXCSVSchedulesEnabled
- isLinkParametersEnabled
- isLiveboardAlwaysOn12ColLayout
- isLiveboardCompactHeaderEnabled
- isLiveboardHeaderSticky
- isLiveboardMasterpiecesEnabled
- isLiveboardStylingAndGroupingEnabled
- isLiveboardXLSXCSVDownloadEnabled
- isOnBeforeGetVizDataInterceptEnabled
- isPNGInScheduledEmailsEnabled
- isScopedLiveboardFilteringEnabled
- isThisPeriodInDateFiltersEnabled
- isUnifiedSearchExperienceEnabled
- lazyLoadingForFullHeight
- lazyLoadingMargin
- linkOverride
- liveboardGutter
- locale
- minimumHeight
- modularHomeExperience
- newChartsLibrary
- newConnectionsExperience
- overrideHistoryState
- overrideOrgId
- pageId
- path
- preRenderConfig
- preRenderContainer
- preRenderId
- primaryAction
- refreshAuthTokenOnNearExpiry
- reorderedHomepageModules
- runtimeFilters
- runtimeParameters
- shouldBypassPayloadValidation
- showAlerts
- showLiveboardDescription
- showLiveboardReverifyBanner
- showLiveboardTitle
- showLiveboardVerifiedBadge
- showMaskedFilterChip
- showPrimaryNavbar
- showSpotterRadiance
- spotterChatConfig
- spotterDataSources
- spotterExperienceVersion
- spotterShareConversationConfig
- spotterSidebarConfig
- spotterViz
- tag
- updatedSpotterChatPrompt
- updatedSpotterExperience
- useHostEventsV2
- visibleActions
- visualOverrides
The view configuration for full app embedding.
Indexπ
Propertiesπ
additionalFlagsπ
additionalFlags: {[key: string ] : string | number | boolean} Optional
Version : SDK: 1.9.0 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
This is an object (key/val) of override flags which will be applied to the internal embedded object. This can be used to add any URL flag. If the same flags are passed in init, they will be overridden by the values here. Warning: This option is for advanced use only and is used internally to control embed behavior in non-regular ways. We do not publish the list of supported keys and values associated with each.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Index Signature Parameters
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
additionalFlags: {
flag1: 'value1',
flag2: 'value2'
},
});
collapseSearchBarπ
collapseSearchBar: boolean Optional
Version : SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl
To set the initial state of the search bar in case of saved Answers.
Supported embed types: AppEmbed, SearchBarEmbed
default : true
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, or SearchBarEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
collapseSearchBar: true,
});
collapseSearchBarInitiallyπ
collapseSearchBarInitially: boolean Optional
To set the initial state of the search bar in case of saved-answers. Use collapseSearchBar instead.
Deprecated : This flag is deprecated.
Version : SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl
default : false
contextMenuTriggerπ
contextMenuTrigger: ContextMenuTriggerOptions Optional
Version : SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
flag to set ContextMenu Trigger to either left or right click.
Supported embed types: AppEmbed, SearchEmbed
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, or SearchEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
contextMenuTrigger:ContextMenuTriggerOptions.LEFT_CLICK || RIGHT_CLICK,
})
coverAndFilterOptionInPDFπ
coverAndFilterOptionInPDF: boolean Optional
Version : SDK: 1.40.0 | ThoughtSpot: 10.8.0.cl
This flag is used to show or hide checkboxes for including or excluding the cover and filters pages in the Liveboard PDF.
Supported embed types: AppEmbed, LiveboardEmbed
// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
coverAndFilterOptionInPDF: false,
})
customActionsπ
customActions: CustomAction[] Optional
Version : SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl
Custom Actions allows users to define interactive UI actions (like buttons or menu items) that appear in ThoughtSpotβs visualizations, answers, and Liveboards. These actions enable users to trigger custom workflows β such as navigating to an external app, calling an API, or opening a modal β based on the data context of what they clicked can be used to trigger custom logic when the action is clicked.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterEmbed
import {
CustomActionPayload,
CustomActionsPosition,
CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
// Use supported embed types such as AppEmbed or LiveboardEmbed
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed config options
customActions: [
{
// Unique identifier for the custom action
id: 'my-custom-action',
// Display name shown to users in the UI
name: 'My Custom Action',
// Where the action appears in the UI
// PRIMARY: Shows as a primary button (e.g., in the toolbar)
// MENU: Shows in the "More" menu (three dots menu)
// CONTEXTMENU: Shows in the right-click context menu
position: CustomActionsPosition.PRIMARY,
// What type of content this action applies to
// ANSWER: Available on answer pages
target: CustomActionTarget.ANSWER,
// Optional: Restrict where this action appears based on data models
// dataModelIds: {
// // Restrict to specific data models
// modelIds: ['model-id-1', 'model-id-2'],
// // Restrict to specific columns within models
// modelColumnNames: ['model-id::column-name']
// },
// Optional: Restrict where this action appears based on metadata
// metadataIds: {
// // Restrict to specific answers
// answerIds: ['answer-id-1', 'answer-id-2'],
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1', 'group-id-2'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1', 'org-id-2'],
}
],
})
// to trigger a custom flow on custom action click listen to Custom action embed event
embed.on(EmbedEvent.CustomAction, (payload: CustomActionPayload) => {
console.log('Custom Action event:', payload);
})
import {
CustomActionsPosition,
CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed config options
customActions: [
{
// Unique identifier for the custom action
id: 'my-custom-action',
// Display name shown to users in the UI
name: 'My Custom Action',
// Where the action appears in the UI
// MENU: Shows in the "More" menu (three dots menu)
// CONTEXTMENU: Shows in the right-click context menu
position: CustomActionsPosition.MENU,
// What type of content this action applies to
// SPOTTER: Available in Spotter (AI-powered search)
target: CustomActionTarget.SPOTTER,
// Optional: Restrict where this action appears based on data models
// dataModelIds: {
// // Restrict to specific data models
// modelIds: ['model-id-1', 'model-id-2'],
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1'],
}
],
})
import {
CustomActionsPosition,
CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed config options
customActions: [
{
// Unique identifier for the custom action
id: 'my-liveboard-custom-action',
// Display name shown to users in the UI
name: 'My Liveboard Custom Action',
// Where the action appears in the UI
// PRIMARY: Shows as a primary button (e.g., in the toolbar)
// MENU: Shows in the "More" menu (three dots menu)
position: CustomActionsPosition.PRIMARY,
// What type of content this action applies to
// LIVEBOARD: Available on liveboard pages
target: CustomActionTarget.LIVEBOARD,
// Optional: Restrict where this action appears based on metadata
// metadataIds: {
// // Restrict to specific liveboards
// liveboardIds: ['liveboard-id-1', 'liveboard-id-2'],
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1', 'group-id-2'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1', 'org-id-2'],
},
{
// Unique identifier for the custom action
id: 'my-viz-custom-action',
// Display name shown to users in the UI
name: 'My Viz Custom Action',
// Where the action appears in the UI
// PRIMARY: Shows as a primary button (e.g., in the toolbar)
// MENU: Shows in the "More" menu (three dots menu)
// CONTEXTMENU: Shows in the right-click context menu
position: CustomActionsPosition.PRIMARY,
// What type of content this action applies to
// VIZ: Available on individual visualizations
target: CustomActionTarget.VIZ,
// Optional: Restrict where this action appears based on metadata
// metadataIds: {
// // Restrict to specific answers
// answerIds: ['answer-id-1', 'answer-id-2'],
// // Restrict to specific liveboard. If liveboardId is
// // passed, custom actions will appear on all vizzes of liveboard
// liveboardIds: ['liveboard-id-1'],
// // Restrict to specific vizIds
// vizIds: ['viz-id-1']
// },
// dataModelIds: {
// // Restrict to specific data models
// modelIds: ['model-id-1', 'model-id-2'],
// // Restrict to specific columns within models
// modelColumnNames: ['model-id::column-name']
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1', 'group-id-2'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1', 'org-id-2'],
}
],
})
customizationsπ
customizations: CustomisationsInterface Optional
Version : SDK: 1.17.2 | ThoughtSpot: 8.4.1.sw, 8.4.0.cl
Dynamic CSSUrl and customCSS to be injected in the loaded application.
You would also need to set style-src in the CSP settings.
default : ''
dataPanelCustomGroupsAccordionInitialStateπ
dataPanelCustomGroupsAccordionInitialState: DataPanelCustomColumnGroupsAccordionState Optional
Version : SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl
This controls the initial behaviour of custom column groups accordion. It takes DataPanelCustomColumnGroupsAccordionState enum values as input. List of different enum values:-
-
EXPAND_ALL: Expand all the accordion initially in data panel v2.
-
COLLAPSE_ALL: Collapse all the accordions initially in data panel v2.
-
EXPAND_FIRST: Expand the first accordion and collapse the rest.
Supported embed types: AppEmbed
default : DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL
const embed = new AppEmbed('#embed', {
... // other app view config
dataPanelCustomGroupsAccordionInitialState:
DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
});
dataPanelV2π
dataPanelV2: boolean Optional
Flag to control Data panel experience
Supported embed types: AppEmbed, SearchBarEmbed, LiveboardEmbed, SearchEmbed
Deprecated : from SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
default : true
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, or SearchBarEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
dataPanelV2: true,
})
defaultHeightπ
defaultHeight: number Optional
This is the minimum height (in pixels) for a full-height Liveboard. Setting this height helps resolve issues with empty Liveboards and other screens navigable from a Liveboard.
Supported embed types: LiveboardEmbed, AppEmbed
Deprecated : Use minimumHeight instead.
Version : SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
default : 500
// Replace <EmbedComponent> with the embed component name.
// For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#embed', {
... // other view config
fullHeight: true,
defaultHeight: 600,
});
defaultQueryModeπ
defaultQueryMode: SpotterQueryMode Optional
Version : SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
Sets the default query mode when Spotter loads β Fast Search or Research Mode. Applies fresh on every new session for this embed instance only; it does not persist as a user preference and does not affect other embeds or native ThoughtSpot usage. Only applicable when navigating to Spotter within the app.
Supported embed types: AppEmbed
default : SpotterQueryMode.FAST_SEARCH
const embed = new AppEmbed('#tsEmbed', {
... //other embed view config
defaultQueryMode: SpotterQueryMode.RESEARCH,
})
disableProfileAndHelpπ
disableProfileAndHelp: boolean Optional
Version : SDK: 1.2.0 | ThoughtSpot: 8.4.0.cl
Control the visibility of the help (?) and profile
buttons on the top navigation bar.
These buttons are visible if the
navigation bar is not hidden via showPrimaryNavbar.
Supported embed types: AppEmbed
default : false
const embed = new AppEmbed('#tsEmbed', {
... // other embed view config
disableProfileAndHelp: true,
})
disableRedirectionLinksInNewTabπ
disableRedirectionLinksInNewTab: boolean Optional
Version : SDK: 1.32.1 | ThoughtSpot: 10.3.0.cl
This flag can be used to disable links inside the embedded app, and disable redirection of links in a new tab.
Note: When set to true, this flag automatically disables
enableLinkOverridesV2 for the
embed session. The two features are mutually exclusive β link
overrides mutate anchors (delete href, attach a JS click handler),
which breaks native browser behavior (Cmd/Ctrl+Click, middle-click,
right-click "Open in new tab") when combined with the disable flag.
The disable flag preserves native anchor semantics instead.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disableRedirectionLinksInNewTab: true,
});
disabledActionReasonπ
disabledActionReason: string Optional
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
The tooltip to display for disabled actions.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disabledActions: [Action.Download, Action.Save],
disabledActionReason: "Reason for disabling",
});
disabledActionsπ
disabledActions: Action[] Optional
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
The list of actions to disable from the primary menu, more menu (β¦β), and the contextual menu. Disabled actions are grayed out and still visible to the user, but cannot be clicked. Use this when you want to disable an action (keep it visible but non-interactive). To completely remove an action from the UI, use hiddenActions instead.
Supported embed types: AppEmbed, LiveboardEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disabledActions: [Action.Download, Action.Save],
});
discoveryExperienceπ
discoveryExperience: DiscoveryExperience Optional
Version : SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
Configures the V3 navigation and home page experience.
For more information, see
full app embed documentation.
Supported embed types: AppEmbed
default : false
const embed = new AppEmbed('#tsEmbed', {
// Enable V3 navigation and home page experience
discoveryExperience : {
primaryNavbarVersion: PrimaryNavbarVersion.Sliding, // Enable V3 navigation
homePage: HomePage.ModularWithStylingChanges, // Enable V3 modular home page
... // other embed view config
},
})