From f457426fddac365e37ca5cc54e46738fe9220d92 Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:47:33 +0530 Subject: [PATCH 01/15] docs(26.10.0.cl): add Spotter Analyst API reference page [SCAL-317811] --- modules/ROOT/pages/spotter-analyst-api.adoc | 389 ++++++++++++++++++++ 1 file changed, 389 insertions(+) create mode 100644 modules/ROOT/pages/spotter-analyst-api.adoc diff --git a/modules/ROOT/pages/spotter-analyst-api.adoc b/modules/ROOT/pages/spotter-analyst-api.adoc new file mode 100644 index 000000000..5375e876f --- /dev/null +++ b/modules/ROOT/pages/spotter-analyst-api.adoc @@ -0,0 +1,389 @@ += Spotter Analyst API +:toc: true +:toclevels: 2 + +:page-title: Spotter Analyst API +:page-pageid: spotter-analyst-api +:page-description: Create, search, update, and delete Spotter Analysts using the REST API + +// SOURCE: SCAL-317811; create-analyst.md, search-analyst.md, update-analyst.md, delete-analyst.md + +ThoughtSpot Spotter Analysts are governed AI agents, each configured with a name, description, one or more data sources, and optional instructions, MCP connectors, and starter prompts. Users converse with an Analyst directly in the Spotter interface. + +The Spotter Analyst REST API lets you create, search, update, and delete Analysts programmatically. +All endpoints are under `/api/rest/2.0/ai/agent/analysts/` and are available from ThoughtSpot Cloud 26.10.0.cl. + +== Prerequisites + +* Spotter must be enabled on your ThoughtSpot instance. Contact ThoughtSpot Support to enable it. +* All requests require a Bearer token. Use a token scoped to the Org in which the Analyst exists or should be created. +* Privilege requirements vary by operation. See each endpoint section for details. + +== Analyst object + +Each Analyst has the following fields: + +[cols="1,1,3"] +|=== +| Field | Type | Description + +| `id` +| string +| Server-assigned unique identifier. + +| `name` +| string +| Display name of the Analyst. + +| `description` +| string +| Description of the Analyst. Maximum 200 characters. + +| `instructions` +| string +| Optional natural-language behavior guidelines for the agent. + +| `sources` +| array +| Data sources the Analyst can query. Each source includes an `id`, `type`, and display `name`. Supported types: `MODEL`, `ANSWER`, `LIVEBOARD`, `CONVERSATION`. + +| `mcp_connectors` +| array +| Linked MCP connectors. Each connector includes `id`, `name`, and `icon_url`. + +| `starter_prompts` +| array +| Up to 4 suggested prompts shown on the Analyst landing page. Each entry includes `label`, `text`, `order`, and `is_ai_generated`. + +| `icon_id` +| string +| Analyst icon identifier. Analysts created via the API use the default icon until one is set in the UI. + +| `updated_time_in_millis` +| integer +| Epoch timestamp in milliseconds of the last update. + +| `last_accessed_time_in_millis` +| integer +| Epoch timestamp in milliseconds of the last access. + +| `created_by` +| object +| User who created the Analyst. Includes `id`, `name`, and `display_name`. + +| `updated_by` +| object +| User who last updated the Analyst. Includes `id`, `name`, and `display_name`. +|=== + +== Create Analyst + +`POST /api/rest/2.0/ai/agent/analysts/create` + +Creates a Spotter Analyst. Analysts created via the API use the default icon until one is set in the ThoughtSpot UI. + +=== Privileges required + +At least one of the following: `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER`. The caller must also have view access to every data source listed in `sources`. + +=== Request parameters + +[cols="1,1,1,3"] +|=== +| Parameter | Type | Required | Description + +| `name` +| string +| Required +| Display name of the Analyst. + +| `description` +| string +| Required +| Description of the Analyst. Maximum 200 characters. + +| `sources` +| array +| Required +| At least one data source. Each entry requires an `identifier` and a `type` (`MODEL`, `ANSWER`, `LIVEBOARD`, or `CONVERSATION`). The `name` field is optional. The caller must have view access to every referenced source. + +| `instructions` +| string +| Optional +| Natural-language instructions that guide the agent's behavior. Instructions that conflict with system guardrails are rejected with a `409` error. + +| `mcp_connector_identifiers` +| array +| Optional +| Identifiers of MCP connectors to link to the Analyst. + +| `starter_prompts` +| array +| Optional +| Up to 4 plain-text prompts, each between 10 and 250 characters. Display order follows list position. +|=== + +=== Response + +Returns `200 OK` and the created `Analyst` object, including the server-assigned `id`. + +=== Example + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/ai/agent/analysts/create' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "name": "Revenue Analyst", + "description": "Answers revenue questions using the Sales data model.", + "sources": [ + { + "identifier": "{model-guid}", + "type": "MODEL" + } + ], + "instructions": "Focus on year-over-year comparisons. Do not surface raw transaction data.", + "starter_prompts": [ + "What was total revenue last quarter?", + "Compare revenue by region for the past 12 months." + ] +}' +---- + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 400 | Malformed request. +| 401 | Bearer token is missing, expired, or invalid. +| 403 | Insufficient privileges, or the caller does not have view access to a referenced data source. +| 409 | The `instructions` value conflicts with system guardrails. +| 422 | Validation failure: a required field is missing, `sources` is empty, the starter prompt count exceeds 4, or a field-length limit is violated. +| 429 | Rate limit exceeded. +| 500 | Unexpected server error. +|=== + +== Search Analysts + +`POST /api/rest/2.0/ai/agent/analysts/search` + +Returns Analysts visible to the caller. This endpoint operates in two modes: + +Fetch mode:: Provide `analyst_identifier` to retrieve a single Analyst. All other filters are ignored and `total_size` is `1`. +List mode:: Omit `analyst_identifier` to get a paginated list of Analysts, ordered by most recently accessed. + +=== Privileges required + +At least one of the following: `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER`. + +=== Request parameters + +[cols="1,1,1,3"] +|=== +| Parameter | Type | Required | Description + +| `analyst_identifier` +| string +| Optional +| When provided, returns exactly this Analyst. All other filters are ignored. + +| `record_size` +| integer +| Optional +| Number of records per page. Default: `50`. Range: 1 to 500. + +| `record_offset` +| integer +| Optional +| Zero-based index of the first record. Default: `0`. Maximum: `10000`. + +| `query` +| string +| Optional +| Case-insensitive substring match on Analyst name. + +| `type` +| string +| Optional +| Ownership filter. Accepted values: `ALL` (default, returns Analysts created by or shared with the caller), `CREATED_BY_ME`, or `SHARED_TO_ME`. +|=== + +=== Response + +Returns `200 OK` and an `AnalystSearchResponse` object with: + +* `analysts`: the current page of matching `Analyst` objects. +* `total_size`: total count of matching Analysts before pagination. + +=== Example: list all Analysts + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/ai/agent/analysts/search' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "record_size": 50, + "record_offset": 0, + "type": "ALL" +}' +---- + +=== Example: fetch a single Analyst + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/ai/agent/analysts/search' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "analyst_identifier": "{analyst-guid}" +}' +---- + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 403 | Missing privileges, or (fetch mode) the caller does not have access to the requested Analyst. +| 404 | (Fetch mode) No Analyst with the given identifier exists in the caller's Org. +| 422 | `record_size` or `record_offset` is out of the permitted range. +|=== + +== Update Analyst + +`POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/update` + +Updates a Spotter Analyst. The update is a full replace: the Analyst is rewritten from the request body. Any optional field omitted from the request is cleared. Include all fields you want to retain. + +When new sources are added, they are automatically shared with users the Analyst was previously shared with. Those users retain access to a working Analyst. + +=== Privileges required + +The caller must be the owner of the Analyst, or hold `ADMINISTRATION` or `CAN_MANAGE_SPOTTER` privileges. Users the Analyst is shared with can use it but cannot edit it. + +=== Path parameter + +`analyst_identifier`: unique ID of the Analyst to update, as returned by the Create Analyst or Search Analysts endpoint. + +=== Request parameters + +The request body uses the same shape as Create Analyst: `name`, `description`, `sources`, `instructions`, `mcp_connector_identifiers`, and `starter_prompts`. + +=== Response + +Returns `200 OK` and the updated `Analyst` object, including the refreshed `updated_time_in_millis` and `updated_by` fields. + +=== Example + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/ai/agent/analysts/{analyst_identifier}/update' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "name": "Revenue Analyst v2", + "description": "Updated to include APAC data model.", + "sources": [ + { + "identifier": "{model-guid}", + "type": "MODEL" + }, + { + "identifier": "{apac-model-guid}", + "type": "MODEL" + } + ], + "starter_prompts": [ + "What was total revenue last quarter?", + "Compare revenue by region for the past 12 months.", + "Show top 10 products by APAC revenue." + ] +}' +---- + +[NOTE] +==== +The update is a full replace. Omitting `instructions`, `mcp_connector_identifiers`, or `starter_prompts` clears those fields on the Analyst. Include every field you want to keep. +==== + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 400 | Malformed `analyst_identifier`. +| 401 | Bearer token is missing, expired, or invalid. +| 403 | The caller is not the Analyst owner and does not hold admin or Spotter-management privileges. +| 404 | No Analyst with the given identifier exists in the caller's Org. +| 409 | The `instructions` value conflicts with system guardrails. +| 422 | Validation failure: a required field is missing, `sources` is empty, the starter prompt count exceeds 4, or a field-length limit is violated. +| 429 | Rate limit exceeded. +| 500 | Unexpected server error. +|=== + +== Delete Analyst + +`POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/delete` + +Permanently deletes a Spotter Analyst. This operation is irreversible. Deleted Analysts cannot be recovered. + +=== Privileges required + +The caller must be the owner of the Analyst, or hold `ADMINISTRATION` or `CAN_MANAGE_SPOTTER` privileges. Users the Analyst is shared with cannot delete it. + +=== Path parameter + +`analyst_identifier`: unique ID of the Analyst to delete, as returned by the Create Analyst or Search Analysts endpoint. + +=== Request body + +None. + +=== Response + +Returns `200 OK` and an `AnalystDeleteResponse` object containing the `id` of the deleted Analyst. + +=== Example + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/ai/agent/analysts/{analyst_identifier}/delete' \ + -H 'Accept: application/json' \ + -H 'Authorization: Bearer {token}' +---- + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 400 | Malformed `analyst_identifier`. +| 401 | Bearer token is missing, expired, or invalid. +| 403 | The caller is not the Analyst owner and does not hold admin or Spotter-management privileges. +| 404 | No Analyst with the given identifier exists in the caller's Org. +| 429 | Rate limit exceeded. +| 500 | Unexpected server error. +|=== + +== Related resources + +* xref:embed-spotter-analyst.adoc[Embed Spotter Analyst] +* xref:rest-api-v2-reference.adoc[REST API v2 reference] +* xref:privileges-and-roles.adoc[Privileges and roles] From f67361a83ea34474ac01799c263228b2436730fe Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:48:22 +0530 Subject: [PATCH 02/15] docs(26.10.0.cl): add Feature Management API reference page [SCAL-319281] --- .../ROOT/pages/feature-management-api.adoc | 366 ++++++++++++++++++ 1 file changed, 366 insertions(+) create mode 100644 modules/ROOT/pages/feature-management-api.adoc diff --git a/modules/ROOT/pages/feature-management-api.adoc b/modules/ROOT/pages/feature-management-api.adoc new file mode 100644 index 000000000..7e85dab14 --- /dev/null +++ b/modules/ROOT/pages/feature-management-api.adoc @@ -0,0 +1,366 @@ += Feature Management API +:toc: true +:toclevels: 2 + +:page-title: Feature Management API +:page-pageid: feature-management-api +:page-description: Search feature configurations, assign features to Orgs, and set feature values using the REST API + +// SOURCE: SCAL-319281; search-feature.md, update-feature-assignment.md, updated-feature-value.md + +The Feature Management API lets cluster and Org admins retrieve feature configurations, assign features to Orgs, and set feature values programmatically. These endpoints replicate the feature management capabilities available in the Admin Portal 2.0 UI. + +All endpoints are under `/api/rest/2.0/configurations/features/` and are available from ThoughtSpot Cloud 26.10.0.cl. + +== Prerequisites + +* Feature Management must be enabled on your ThoughtSpot instance. +* All requests require a Bearer token. +* If link:https://developers.thoughtspot.com/docs/rbac[Role-Based Access Control (RBAC)] is enabled on your instance, the `ADMINISTRATION` privilege is required for all write operations. +* Privilege requirements vary by operation. See each endpoint section for details. + +== Key concepts + +=== Feature scope + +Feature configurations exist at two levels: + +Cluster scope:: The cluster-level default, visible to cluster admins. Returns `assigned_orgs` and `is_org_aware` for each feature. +Org scope:: A per-Org value override, visible to Org admins. Returns `element_type`, `element_config`, and `element_value` for each feature. + +=== Feature identifiers + +Each feature can be referenced by its: + +* `feature_name`: a human-readable name, such as `index_columns`. +* `feature_id`: the underlying system identifier, such as `orion.embraceConfig.doIndexing`. + +Both forms are accepted in requests to any endpoint that takes a `feature_identifier`. + +=== Feature categories + +Features are grouped into availability categories: + +* `GENERAL_ACCESS`: generally available features. This is the default. +* `EARLY_ACCESS`: features in early access. + +== Search features + +`POST /api/rest/2.0/configurations/features/search` + +Returns feature configurations available on the ThoughtSpot instance, grouped by feature group. + +=== Privileges required + +`ADMINISTRATION` or `ORG_ADMINISTRATION`. + +=== Request parameters + +[cols="1,1,1,3"] +|=== +| Parameter | Type | Required | Description + +| `scope` +| string +| Required +| Administrative view: `CLUSTER` returns the cluster-admin view, including `assigned_orgs` per feature. `ORG` returns the Org-admin view, including `element_value` per feature. + +| `org_identifier` +| integer +| Conditional +| Numeric ID of the Org. Required when `scope` is `ORG`. Omitting it returns a `400` error. Ignored when `scope` is `CLUSTER`. + +| `category` +| string +| Optional +| Feature availability category: `GENERAL_ACCESS` (default) or `EARLY_ACCESS`. +|=== + +=== Response fields by scope + +The response fields populated depend on the requested `scope`. + +*Cluster view (`scope=CLUSTER`)*: each feature includes `feature_id`, `feature_name`, `assigned_orgs`, `is_org_aware`, and (for non-Org-aware features) `feature_value`. + +*Org view (`scope=ORG`)*: each feature includes `feature_id`, `feature_name`, `element_type`, `element_config`, and `element_value`. + +=== Example: cluster view + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/configurations/features/search' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "scope": "CLUSTER", + "category": "GENERAL_ACCESS" +}' +---- + +=== Example: Org view + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/configurations/features/search' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "scope": "ORG", + "org_identifier": 1, + "category": "GENERAL_ACCESS" +}' +---- + +=== Example response (cluster view) + +[source,json] +---- +[ + { + "feature_group": "search", + "docs_url": null, + "features": [ + { + "feature_id": "orion.embraceConfig.doIndexing", + "feature_name": "index_columns", + "assigned_orgs": [ + { + "org_id": 0, + "org_name": "Primary" + } + ], + "is_org_aware": true, + "feature_value": null, + "docs_url": null + } + ] + } +] +---- + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 400 | Invalid request parameters, or `org_identifier` is missing when `scope` is `ORG`. +| 401 | Bearer token is missing, expired, or invalid. +| 403 | Insufficient privileges. +| 404 | Feature Management is not enabled on this instance. +| 500 | Unexpected server error. +|=== + +== Update feature assignments + +`POST /api/rest/2.0/configurations/features/assignments/update` + +Updates the Org assignments for a feature. Available to cluster admins only. Org-scoped admins cannot call this endpoint. + +=== Privileges required + +`ADMINISTRATION` in the cluster-admin (All-Org or default-Org) context. + +=== Request parameters + +[cols="1,1,1,3"] +|=== +| Parameter | Type | Required | Description + +| `feature_identifier` +| string +| Required +| Feature name (`feature_name`) or feature ID (`feature_id`) of the feature to update. + +| `org_identifiers` +| array +| Required +| Numeric IDs of the Orgs to assign. Send an empty array with `operation` set to `REPLACE` to remove all Org assignments for this feature. + +| `operation` +| string +| Optional +| Type of assignment update: `ADD` assigns the given Orgs in addition to existing assignments, `REMOVE` unassigns the given Orgs, or `REPLACE` sets the assignment to exactly the given Orgs. Defaults to `REPLACE`. +|=== + +=== Response + +Returns `200 OK` and a `FeatureAssignmentResponse` object with `feature_id`, `feature_name`, and the updated `assigned_orgs` list. + +=== Example: add Org assignments + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/configurations/features/assignments/update' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "feature_identifier": "index_columns", + "org_identifiers": [1, 2], + "operation": "ADD" +}' +---- + +=== Example: remove all Org assignments + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/configurations/features/assignments/update' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "feature_identifier": "index_columns", + "org_identifiers": [], + "operation": "REPLACE" +}' +---- + +=== Example response + +[source,json] +---- +{ + "feature_id": "orion.embraceConfig.doIndexing", + "feature_name": "index_columns", + "assigned_orgs": [ + { "org_id": 1, "org_name": "Acme" }, + { "org_id": 2, "org_name": "Beta" } + ] +} +---- + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 400 | Invalid request parameters. +| 401 | Bearer token is missing, expired, or invalid. +| 403 | Insufficient privileges. Org-scoped admins cannot call this endpoint. +| 404 | Feature not found, or Feature Management is not enabled on this instance. +| 500 | Unexpected server error. +|=== + +== Update feature value + +`POST /api/rest/2.0/configurations/features/values/update` + +Sets the value of a feature at the cluster or Org scope. + +[WARNING] +==== +Setting `reset_org_overrides` to `true` at `CLUSTER` scope removes all per-Org value overrides cluster-wide. All Orgs then inherit the new cluster-level value. This operation cannot be undone via the API. +==== + +=== Privileges required + +`ADMINISTRATION`. + +=== Request parameters + +[cols="1,1,1,3"] +|=== +| Parameter | Type | Required | Description + +| `scope` +| string +| Required +| Scope at which to set the value: `CLUSTER` or `ORG`. + +| `org_identifier` +| integer +| Conditional +| Numeric ID of the Org for which to set the value. Required when `scope` is `ORG`. Ignored when `scope` is `CLUSTER`. + +| `feature_identifier` +| string +| Required +| Feature name (`feature_name`) or feature ID (`feature_id`) of the feature to update. + +| `feature_value` +| string +| Required +| New value to assign to the feature. + +| `reset_org_overrides` +| boolean +| Conditional +| Applicable only when `scope` is `CLUSTER`. When `true`, removes all existing per-Org value overrides so that every Org inherits the new cluster-level value. Required when `scope` is `CLUSTER` for Org-aware features. Passing this parameter at `ORG` scope returns a `400` error. +|=== + +=== Response + +Returns `200 OK` and a `FeatureValueResponse` object with `feature_id`, `feature_name`, and the updated `feature_value`. + +=== Example: set an Org-level override + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/configurations/features/values/update' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "scope": "ORG", + "org_identifier": 1, + "feature_identifier": "index_columns", + "feature_value": "true" +}' +---- + +=== Example: set cluster value and reset all Org overrides + +[source,bash] +---- +curl -X POST \ + --url 'https://{cluster}/api/rest/2.0/configurations/features/values/update' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer {token}' \ + --data-raw '{ + "scope": "CLUSTER", + "feature_identifier": "index_columns", + "feature_value": "true", + "reset_org_overrides": true +}' +---- + +=== Example response + +[source,json] +---- +{ + "feature_id": "orion.embraceConfig.doIndexing", + "feature_name": "index_columns", + "feature_value": "true" +} +---- + +=== Error responses + +[cols="1,3"] +|=== +| HTTP status code | Description + +| 400 | Invalid request, or `reset_org_overrides` was passed with `scope: ORG`. +| 401 | Bearer token is missing, expired, or invalid. +| 403 | Insufficient privileges, or the Org is not assigned to this feature. +| 404 | Feature not found, or Feature Management is not enabled on this instance. +| 500 | Unexpected server error. +|=== + +== Related resources + +* xref:rest-api-v2-reference.adoc[REST API v2 reference] +* xref:orgs-api.adoc[Orgs API] +* xref:privileges-and-roles.adoc[Privileges and roles] From 9dd6ea8fc906c4dfef9af5f508f072cff14c43be Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:49:21 +0530 Subject: [PATCH 03/15] docs(26.10.0.cl): add Embed Spotter Analyst page [SCAL-317811] --- modules/ROOT/pages/embed-spotter-analyst.adoc | 300 ++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 modules/ROOT/pages/embed-spotter-analyst.adoc diff --git a/modules/ROOT/pages/embed-spotter-analyst.adoc b/modules/ROOT/pages/embed-spotter-analyst.adoc new file mode 100644 index 000000000..badd322a1 --- /dev/null +++ b/modules/ROOT/pages/embed-spotter-analyst.adoc @@ -0,0 +1,300 @@ += Embed Spotter Analyst +:toc: true +:toclevels: 2 + +:page-title: Embed Spotter Analyst +:page-pageid: embed-spotter-analyst +:page-description: Embed a single, pinned Spotter Analyst in your application using the Visual Embed SDK + +// SOURCE: SCAL-317811, SDK-1.53.0-changelog.md, Spotter embed developer cheatsheet + +ThoughtSpot Spotter Analysts are governed AI agents configured with specific data sources, instructions, and starter prompts. Using the Visual Embed SDK, you can embed a single, pinned Analyst in your application. This locks the embed to one governed experience and prevents users from switching to other Analysts or to the default Spotter. + +== Version requirements + +[cols="1,2"] +|=== +| Component | Minimum version + +| Visual Embed SDK | 1.51.2 +| ThoughtSpot cluster | 26.10.0.cl +|=== + +[NOTE] +==== +Some controls described in this page are available on earlier cluster versions (26.3 through 26.9). The `spotterAnalystConfig.analystId` property itself requires cluster version 26.10.0.cl. Use 26.10.0.cl as the minimum version requirement when setting up the single-Analyst embed configuration. +==== + +== How it works + +Use `spotterAnalystConfig.analystId` in `SpotterEmbed` to pin the embed to one Analyst. By default, with no additional configuration, the Analyst panel and a switcher rail remain visible and users can navigate to other Analysts. To create a fully locked experience, you must also hide the switcher actions. + +== Minimal configuration + +The following example embeds one Analyst with the chat history sidebar disabled and the switcher hidden: + +[source,javascript] +---- +// In server-side rendered frameworks (Next.js, Nuxt, SvelteKit), +// import the SDK dynamically to avoid window reference errors. +const { init, SpotterEmbed, AuthType } = + await import('@thoughtspot/visual-embed-sdk'); + +init({ + thoughtSpotHost: 'https://{cluster}', + authType: AuthType.None, // uses the browser's existing session +}); + +new SpotterEmbed(container, { + frameParams: { width: '100%', height: '100%' }, + worksheetId: '{model-guid}', + + // Pin to one Analyst. + spotterAnalystConfig: { analystId: '{analyst-guid}' }, + + // Disable the chat history sidebar. + spotterSidebarConfig: { enablePastConversationsSidebar: false }, + + // Hide the switcher so users cannot navigate to a different Analyst. + hiddenActions: [ + 'spotterAnalystSidebar', + 'spotterDefaultAnalyst', + 'spotterAnalystList', + ], + + hideSourceSelection: true, + disableSourceSelection: true, +}).render(); +---- + +== Configuration reference + +=== `spotterAnalystConfig` + +Type: `SpotterAnalystConfig`. Available from SDK 1.53.0 and ThoughtSpot Cloud 26.10.0.cl. + +Available on `SpotterEmbedViewConfig`. Pins the embed to a single Analyst. + +[cols="1,1,1,3"] +|=== +| Property | Type | Cluster version | Description + +| `analystId` +| string +| 26.10.0.cl +| GUID of the Analyst to display. Obtain this value from the xref:spotter-analyst-api.adoc[Spotter Analyst API] or from the ThoughtSpot UI. +|=== + +=== `spotterSidebarConfig` + +Type: `SpotterSidebarViewConfig`. + +[cols="1,1,1,3"] +|=== +| Property | Type | Cluster version | Description + +| `enablePastConversationsSidebar` +| boolean +| 26.4.0.cl +| Shows or hides the chat history sidebar. Set this property explicitly. Leaving it unset applies the cluster default, which may be `true`. + +| `spotterChatPinConfig` +| `SpotterChatPinConfig` +| 26.10.0.cl +| Enables pinning and unpinning conversations in the sidebar. See xref:embed-spotter-analyst.adoc#pinning-conversations[Pinning conversations]. +|=== + +=== `worksheetId` and `dataSources` + +[cols="1,1,3"] +|=== +| Property | Cluster version | Description + +| `worksheetId` +| All +| GUID of the single model Spotter queries. Include this property alongside `spotterAnalystConfig`. Omitting it can prevent host-triggered questions from executing. + +| `dataSources` +| 26.9.0.cl +| Array of model GUIDs when the Analyst spans multiple models. If both `dataSources` and `worksheetId` are set, `dataSources` takes precedence. +|=== + +=== Locking the embed with `hiddenActions` + +Pinning an Analyst without hiding the switcher only changes the default selection. Users can still navigate to a different Analyst. Use the following three action IDs together to prevent this: + +[cols="1,1,1"] +|=== +| Action ID | What it hides | Cluster version + +| `spotterAnalystSidebar` +| The Analyst selection panel +| 26.8.0.cl + +| `spotterDefaultAnalyst` +| The default Spotter row +| 26.10.0.cl + +| `spotterAnalystList` +| The Show all Analysts row +| 26.10.0.cl +|=== + +[NOTE] +==== +An action ID not recognized by the cluster is silently dropped and does not cause an error. You can include all three action IDs even when targeting a cluster that does not yet support one of them. +==== + +If a narrow sidebar rail (expand toggle, New chat icon, or footer gear icon) remains visible after hiding these three actions, add the following shell-level action IDs. These are supported from cluster version 26.3.0.cl: + +[source,javascript] +---- +hiddenActions: [ + 'spotterAnalystSidebar', + 'spotterDefaultAnalyst', + 'spotterAnalystList', + 'spotterSidebarOpen', + 'spotterSidebarClose', + 'spotterNewConversation', + 'spotterSidebarSettings', +], +---- + +=== Starter prompts + +Use `starterPrompts` in `SpotterChatViewConfig` to customize the starter prompt pills displayed above the chat input. + +[cols="1,1,1,3"] +|=== +| Property | Type | Cluster version | Description + +| `starterPrompts` +| `StarterPromptsConfig` +| 26.10.0.cl +| Top-level configuration object for Spotter starter prompts. Contains keys: `enable`, `quick`, `research`, `previewData`, and `liveboard`. + +| `openSpotterOnLiveboardByDefault` +| boolean +| 26.10.0.cl +| Opens the Spotter chat panel automatically when a Liveboard loads. Default: `true`. Supported in `LiveboardEmbed` and `AppEmbed`. +|=== + +To show or hide individual starter prompt pills, use the `Action` enum: + +[cols="1,3"] +|=== +| Action | Description + +| `Action.QuickSearchPill` +| The Basic Search starter-prompt pill. Opens a card of suggested questions that submit on click. + +| `Action.DeepAnalysisPill` +| The Deep Analysis pill. Fills the chat input with a suggested question without auto-submitting. + +| `Action.DataLiteracyPill` +| The Data Literacy pill. Submits a backend-generated prompt describing the data source. Only its label is customizable. +|=== + +[source,javascript] +---- +hiddenActions: [ + Action.QuickSearchPill, + Action.DeepAnalysisPill, + Action.DataLiteracyPill, +], +---- + +[NOTE] +==== +Setting `hideSampleQuestions: true` hides both the generic sample questions and the Analyst's own starter prompts, as they share the same block. This is generally not the intended behavior when embedding a governed Analyst. +==== + +=== Pre-filling the chat input + +Use `searchOptions.searchQuery` to pre-fill the prompt. This does not submit the question. To submit it, also fire `HostEvent.SpotterSearch` with `executeSearch: true`. + +[source,javascript] +---- +new SpotterEmbed(container, { + searchOptions: { + searchQuery: 'What was total revenue last quarter?', + }, + // ... +}).render(); +---- + +[#pinning-conversations] +== Pinning conversations + +`SpotterChatPinConfig` lets users pin Spotter conversations so they appear at the top of the sidebar for quick access. Pinning is disabled by default in embedded deployments and must be explicitly enabled. + +[cols="1,1,1,3"] +|=== +| Property | Type | Default | Description + +| `enabled` +| boolean +| `false` +| Enables the pin and unpin actions in the conversation edit menu. Set to `true` to allow users to pin conversations. + +| `pinLabel` +| string +| System default +| Custom label for the pin action in the conversation edit menu. + +| `unpinLabel` +| string +| System default +| Custom label for the unpin action in the conversation edit menu. +|=== + +[source,javascript] +---- +new SpotterEmbed(container, { + spotterSidebarConfig: { + enablePastConversationsSidebar: true, + spotterChatPinConfig: { + enabled: true, + pinLabel: 'Save to top', + unpinLabel: 'Remove from top', + }, + }, + // ... +}).render(); +---- + +To listen for pin and unpin events, or to trigger pin state programmatically from the host application, see xref:event-embedEvents.adoc#pin-events[Spotter pin and unpin events] and xref:events-hostEvents.adoc#spotter-pin-host-events[Spotter conversation pin and unpin]. + +== New actions in SDK 1.53.0 + +The following `Action` enum members are new in SDK 1.53.0 and are relevant to Analyst embed: + +[cols="1,3"] +|=== +| Action | Description + +| `Action.SpotterChatPin` +| Controls visibility and disabled state of the pin and unpin action in the Spotter conversation edit menu. + +| `Action.SpotterAnalystList` +| Controls visibility and disabled state of the Show all Analysts row in the Analyst interface. + +| `Action.SpotterDefaultAnalyst` +| Controls visibility and disabled state of the default Spotter analyst entry in the Analyst interface. + +| `Action.SpotterOnLiveboard` +| The Spotter button in the Liveboard header. + +| `Action.AllLiveboardFilters` +| Shows, hides, or disables all filter surfaces on a Liveboard: filter chips, parameter chips, and cross-filter chips at the Liveboard, tab, and group levels. Parameter and cross-filter chips support hide only and cannot be disabled. + +| `Action.EditInputTable` +| Edits an input table used by an Answer directly from the Liveboard. +|=== + +== Related resources + +* xref:spotter-analyst-api.adoc[Spotter Analyst API] +* xref:event-embedEvents.adoc[Embed events reference] +* xref:events-hostEvents.adoc[Host events reference] +* xref:customize-spotter-embed.adoc[Customize Spotter embed] From 21a16ab5ee2381ea757c955b7b84b58fa666c022 Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:53:56 +0530 Subject: [PATCH 04/15] docs(26.10.0.cl): add October 2026 What's New section [SCAL-317811, SCAL-319281, SCAL-333470, SCAL-298005] --- modules/ROOT/pages/whats-new.adoc | 765 +++--------------------------- 1 file changed, 69 insertions(+), 696 deletions(-) diff --git a/modules/ROOT/pages/whats-new.adoc b/modules/ROOT/pages/whats-new.adoc index d9fc73c1f..0f911b881 100644 --- a/modules/ROOT/pages/whats-new.adoc +++ b/modules/ROOT/pages/whats-new.adoc @@ -22,6 +22,67 @@ This page lists new features, enhancements, and deprecated functionality introdu // *Status:* Current / Supported / Deprecated // *Affects:* Developers, Administrators, End Users // ============================================================ +== October 2026 + +**Release version**: ThoughtSpot Cloud 26.10.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.53.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.10.0.cl* + +a| + +[discrete] +==== Spotter Analyst API + +Spotter Analysts are governed AI agents you can create, configure, and manage programmatically using four new REST API endpoints under `/api/rest/2.0/ai/agent/analysts/`. Each Analyst is scoped to specific data sources and can be configured with a name, description, optional instructions, MCP connectors, and up to 4 starter prompts. The API supports create, search, update, and delete operations. For more information, see xref:spotter-analyst-api.adoc[Spotter Analyst API]. + +--- + +[discrete] +==== Embed Spotter Analyst + +You can now embed a single, pinned Spotter Analyst in your application using the Visual Embed SDK. The `spotterAnalystConfig.analystId` property in `SpotterEmbed` locks the embed to one governed Analyst experience. Combined with the `hiddenActions` list, you can prevent users from switching to other Analysts or to the default Spotter. For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst]. + +--- + +[discrete] +==== Spotter conversation pinning + +Users can now pin Spotter conversations so they appear at the top of the conversation list for quick access. In embedded deployments, pinning is disabled by default and must be enabled using `spotterChatPinConfig` in `spotterSidebarConfig`. The SDK emits `EmbedEvent.SpotterConversationPinned` and `EmbedEvent.SpotterConversationUnpinned` when pin state changes. Use `HostEvent.PinSpotterConversation` and `HostEvent.UnpinSpotterConversation` to trigger pin state from the host application. The `is_pinned` field is also available on the Update Conversation endpoint (`POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update`). For more information, see xref:embed-spotter-analyst.adoc#pinning-conversations[Pinning conversations] and xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +--- + +[discrete] +==== Feature Management API + +Three new REST API endpoints are available under `/api/rest/2.0/configurations/features/` for programmatic feature management. Cluster and Org admins can search feature configurations by scope, assign features to Orgs, and set feature values without using the Admin Portal 2.0 UI. For more information, see xref:feature-management-api.adoc[Feature Management API]. + +--- + +[discrete] +==== Scoped Liveboard filtering + +ThoughtSpot 26.10.0.cl introduces a three-tier filter hierarchy on Liveboards: Liveboard level, tab level, and group level. You can enable group-level filter scoping in embedded Liveboards using the `isScopedLiveboardFilteringEnabled` property. The `HostEvent.GetGroups` event returns group details for the Liveboard. The `applicability` attribute on filter and parameter events scopes updates to a specific tab or group. For more information, see xref:embed-events.adoc[Events and app interactions] and xref:liveboard-embed.adoc[Embed a Liveboard]. + +--- + +[discrete] +==== Visual Embed SDK +For information about new features and enhancements in Visual Embed SDK version 1.53.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. + +--- + +[discrete] +==== REST API v2.0 +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +|=== + == September 2026 **Release version**: ThoughtSpot Cloud 26.9.0.cl + @@ -155,715 +216,27 @@ The following features, previously in Early Access, are now generally available * Hide irrelevant filters (`hideIrrelevantChipsInLiveboardTabs`) + xref:embed-pinboard.adoc#_customizing_filter_visibility[Hides filters] that are not relevant to the displayed visualization in a tab. -* Compact header (`isLiveboardCompactHeaderEnabled`) + -Enables in compact header in embedded Liveboards. For information about breaking changes and the affected elements, see xref:embed-pinboard.adoc#compact-header[compact Liveboard header]. -* Cover page filtering options (`coverAndFilterOptionInPDF`) + -Enables the *Include cover page* and *Include filter page(s)* checkboxes in the Liveboard download modal. -* Liveboard styling and grouping (isLiveboardMasterpiecesEnabled) + -Enables the xref:embed-pinboard.adoc#_liveboard_grouping_and_styling[Liveboard styling and grouping] feature. -* Filter interactivity (`isEnhancedFilterInteractivityEnabled`) + -Enables interactive filter chips that allow users to add, update, or remove filters in an embedded Liveboard. - ---- - -[discrete] -==== Navigation and homepage V1/V2 deprecated [.version-badge.deprecated]#Deprecated# -Starting from ThoughtSpot Cloud 26.8.0.cl, the classic V1 and V2 navigation and homepage experience modes are deprecated. All ThoughtSpot Embedded sessions now render in the V3 navigation experience by default. For more information, see xref:deprecated-features.adoc#v1-v2-exp-fullApp-embed[V1 and V2 deprecation]. - ---- - -[discrete] -==== Wide logo dimension [.version-badge.breaking]#Breaking change# -Starting from ThoughtSpot Cloud 26.8.0.cl, the recommended dimensions for the wide logo displayed on the ThoughtSpot login page have changed from 330x100px to *250x50px (5:1 aspect ratio)*. Logos uploaded at the previous dimensions may appear distorted or incorrectly scaled on the login screen. If you previously uploaded a wide logo at 330x100px, re-upload it at 250x50px to ensure correct display. - -For more information, see xref:customize-style.adoc#logo-change[Customize the login page logo]. - ---- - - -[discrete] -==== Granular download privileges -The new granular download privileges that replace the single general download privilege for RBAC enabled clusters are now generally available. +* Compact header (`isLiveboardHeaderSticky`) + +xref:embed-pinboard.adoc#_liveboard_header[Enables a sticky compact header] for Liveboards that persists as users scroll. -* *Can Download Visuals*: Allows downloading chart images and visual exports. -* *Can Download Detailed Data*: Allows downloading raw tabular data (CSV, XLSX). - -These privileges can be assigned independently per user or group. Update privilege assignments in your embedded application accordingly. - ---- - -[discrete] -==== Personalized Views portability [earlyAccess eaBackground]#Early Access# -ThoughtSpot improves the portability of Personalized Views across environments. Import operations use smart merge logic to avoid duplicating Personalized Views. -Two new fields have been added to the TML for Personalized Views: - -* A new `author` field is added to the Personalized View TML during export. This field is used to assign ownership during import. -* Personalized Views now support `obj_id` for stable cross-environment object identity. - -For more information, see xref:tml-import.adoc#personalized-views-portability[Personalized Views portability]. +For more information, see xref:embed-pinboard.adoc[Embed a Liveboard]. --- [discrete] -==== Discoverability checkbox deprecation [.version-badge.breaking]#Breaking change# -The *Make this Liveboard Discoverable* checkbox has been removed from the ThoughtSpot UI. Embedding applications that relied on discoverability for content visibility should review their sharing logic and update user-facing guidance for content access. For more information, see xref:deprecated-features.adoc#liveboardDiscoverable[Deprecation announcements]. +==== Custom styles for embedded ThoughtSpot +Custom styles and CSS classes are now supported for embedded ThoughtSpot application components. For more information, see xref:custom-styles.adoc[Custom styles]. --- [discrete] -==== SpotterCode widget for documentation assistance -This developer documentation site now includes a SpotterCode AI assistant panel that replaces the earlier *AskDocs* feature. When you open the assistant panel, it displays prebuilt starter prompts relevant to the page you are currently viewing and allows you to explore topics instantly. You can also type your own questions about embedding, REST APIs, SDK configuration, and developer guides. For more information, see xref:spottercode.adoc[SpotterCode documentation]. +==== REST API v2.0 enhancements +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. --- [discrete] ==== Visual Embed SDK -The Visual Embed SDK version 1.51.0 includes new features and enhancements for Spotter Analysts, starter prompts, and the `HostEvent.Navigate` object format. For more information, see the xref:api-changelog.adoc[Visual Embed SDK changelog]. - ---- - -[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]. - ---- - -|=== - -== July 2026 - -**Release version**: ThoughtSpot Cloud 26.7.0.cl + -*Upgrade notes*: Includes breaking changes to SpotterCode + -*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.7.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. - -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] -==== Spotter embedding - -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]. - ---- - -[discrete] -==== Focused home page experience [earlyAccess eaBackground]#Early Access# - -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] -==== SpotterCode authentication and workflow execution [.version-badge.breaking]#Breaking# -SpotterCode now supports authenticated sessions with your ThoughtSpot instance. When connecting your MCP client to the SpotterCode endpoint, you are now prompted to log in using your organization's identity provider. After authentication, SpotterCode can make ThoughtSpot API calls on your behalf. - -For more information, see the documentation on xref:spottercode.adoc#_mcp_server_endpoints[SpotterCode MCP Server] and xref:spottercode-integration.adoc#_authenticate_spottercode[Authenticating SpotterCode]. - ---- - -[discrete] -==== SpotterCode Agent in Visual Embed Playground [earlyAccess eaBackground]#Early Access# - -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, provides a prompt interface for user queries, and generates embed code. It generates boilerplate code automatically and accelerates building code and iterating embed configurations. - -For more information, see xref:developer-playground.adoc#spottercode-panel[Using SpotterCode in the Playground]. - ---- - -[discrete] -==== Webhooks enhancements - -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. - ---- - - -[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:orgs.adoc#per-org-sso-isolation[SSO and Org isolation]. - ---- - -[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]. - ---- - -[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 - -**Release version**: ThoughtSpot Cloud 26.6.0.cl + -*Upgrade notes*: No breaking changes. + -*Recommended SDK versions*: Visual Embed SDK v1.49.0 and later - -[.cl-table, cols="2,4", frame=none, grid=none] -|=== -a| -[.cl-label] -*Version 26.6.0.cl* - -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]. - ---- - -[discrete] -==== Spotter AI and embedding enhancements [.version-badge.new]#New# - -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. -* 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-conversation-apis.adoc#_stop_an_in_progress_agent_response[stop and cancel a long-running Spotter response]. - ---- - -[discrete] -==== Developer page enhancements -The **Develop** page in the ThoughtSpot UI has been updated with the following enhancements: - -* 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 reload times, you can now enable the Liveboard cache option with a **Refresh** button that lets your users clear the cache and refresh visualization data when required. For more information, see xref:api-changelog.adoc#_liveboard_browser_cache_refresh[Liveboard browser cache refresh]. - ---- - -[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. - -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`. - -Excel exports for pivot tables:: -Pivot table visualizations can now be exported to Excel format. - -For more information, see xref:embed-pinboard.adoc#_liveboard_download_options[Liveboard download options]. - ---- - -[discrete] -==== Visualization edit interface within the Liveboard view - -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. - ---- - -[discrete] -==== KPI charts in embedded Liveboards - -Embedded Liveboards support advanced controls KPI chart customization. For more information, see link:https://docs.thoughtspot.com/cloud/latest/chart-kpi#advanced[KPI charts]. - ---- - -[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. - ---- - -[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. - -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. -==== - - ---- - -[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]. - ---- - -[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]. - -|=== - - -== April 2026 - -**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 - -[.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]. - ---- - - -[discrete] -==== Webhook integration -In this release version, the following enhancements are introduced in the webhook configuration and delivery status monitoring workflows: - -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]. - -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]. - ---- - - -[discrete] -==== Spotter embed enhancements -You can now customize the appearance and contents of the chat history sidebar panel in Spotter embedding. - -You can also customize the branding and logo in the Spotter chat interface. - -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]. - ---- - -[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`. - -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:report-apis-v2.adoc#_liveboard_report_api[Liveboard report API documentation]. - ---- - - -[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. - -For more information, see xref:full-app-customize.adoc#_customize_list_page_experience[List page customization]. - ---- - - -[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. - -[NOTE] -==== -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. -==== - -For more information, see xref:variables.adoc[Variables documentation]. - ---- - - -[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. - -For more information, see xref:metadata-parameterization.adoc[Metadata parameterization documentation]. - ---- - - -[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. - -For more information, see xref:collections.adoc[Collections]. - -[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]. - - -[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 - -**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 - -[.cl-table, cols="2,4", frame=none, grid=none] -|=== - -a| -[.cl-label] -*Version 26.3.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. - -For more information, see xref:spotter-nl-instructions.adoc#_allowing_access_to_spotter_data_model_instructions[Allowing access to Spotter data model instructions]. - ---- - -[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]. - ---- - -[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]. - ---- - -[discrete] -==== REST API v2 -For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - ---- - -|=== - -== 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. - -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]. - ---- - -[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]. - ---- - -[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. - -For more information, see xref:about-rest-apis.adoc#_rate_limits_for_api_requests[Rate limits for REST APIs]. - ---- - -[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: - -* Content Security Policy (CSP) -* Cross-origin Resource Sharing (CORS) -* Authentication attributes -* Access control settings - -For more information, see xref:security-settings.adoc[Security Settings]. - ---- - -[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]. - ---- - - -[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]. - ---- - -[discrete] -==== REST API v2 -For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. - ---- -|=== - - -== January 2026 - -**Release version**: ThoughtSpot Cloud 10.15.0.cl + -*Upgrade notes*: No breaking changes. + -*Recommended SDK versions*: Visual Embed SDK v1.44.0 and later - - -[.cl-table, cols="2,4", frame=none, grid=none] -|=== -a| -[.cl-label] -*Version 10.15.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 - -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. - -For more information, see xref:abac_rls-variables.adoc[ABAC via RLS with variables]. - ---- - -[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 data model instructions on a model to coach the Spotter system -* To fetch data model instructions configured on a model - -For more information, see xref:spotter-apis.adoc[Spotter APIs]. - ---- - -[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]. - ---- - -[discrete] -==== Icon customization enhancements - -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. - ---- - -[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]. - ---- - -[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]. - ---- - -[discrete] -==== REST API -For information about REST API v2 enhancements, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +For information about the new features and enhancements introduced in Visual Embed SDK version 1.51.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. |=== From bd6b44bd9b22778b8c82c1a2331d711d5ab88d10 Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:55:07 +0530 Subject: [PATCH 05/15] docs(26.10.0.cl): add SDK v1.53.0 changelog entry [SCAL-317811, SCAL-333470, SCAL-298005] --- modules/ROOT/pages/api-changelog.adoc | 121 +++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/api-changelog.adoc b/modules/ROOT/pages/api-changelog.adoc index dbee4d36f..094d4f0d3 100644 --- a/modules/ROOT/pages/api-changelog.adoc +++ b/modules/ROOT/pages/api-changelog.adoc @@ -8,7 +8,126 @@ 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.52.x, September 2026 + == Version 1.53.0, October 2026 + + [width="100%", cols="1,4"] + |==== + |[tag greenBackground]#NEW# + a| + [discrete] + ===== Spotter Analyst embed (`spotterAnalystConfig`) + + You can now embed a single, pinned Spotter Analyst using `spotterAnalystConfig.analystId` in `SpotterEmbed`. Setting this property locks the embed to one governed Analyst and prevents users from navigating to other Analysts or to the default Spotter. + + New and updated configuration properties: + + `SpotterAnalystConfig.analystId` (string):: + Pins the embed to the Analyst with this GUID. Available from cluster version 26.10.0.cl. + + `spotterChatPinConfig` (on `SpotterSidebarViewConfig`):: + Enables pinning and unpinning of conversations in the sidebar. Contains `enabled` (boolean, default `false`), `pinLabel` (string), and `unpinLabel` (string). Available from cluster version 26.10.0.cl. + + `isScopedLiveboardFilteringEnabled` (on `LiveboardViewConfig` and `AppViewConfig`):: + Enables group-level filter and parameter scoping on Liveboards, in addition to existing Liveboard-level and tab-level scoping. Available from cluster version 26.10.0.cl. + + `starterPrompts` (on `SpotterChatViewConfig`):: + Configures which starter prompt pills are shown above the Spotter chat input. Contains keys: `enable`, `quick`, `research`, `previewData`, and `liveboard`. Available from cluster version 26.10.0.cl. + + `openSpotterOnLiveboardByDefault` (on `SpotterChatViewConfig`):: + Opens the Spotter chat panel automatically when a Liveboard loads. Default: `true`. Supported on `LiveboardEmbed` and `AppEmbed`. Available from cluster version 26.10.0.cl. + + For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst]. + + |[tag greenBackground]#NEW# + a| + [discrete] + ===== New `Action` enum members + + The following `Action` enum members are added in this release: + + [cols="2,3"] + !=== + ! Action ! Description + + ! `Action.SpotterChatPin` + ! Controls the visibility and disabled state of the pin and unpin action in the Spotter conversation edit menu. + + ! `Action.SpotterAnalystList` + ! Controls the visibility and disabled state of the Show all Analysts row in the Analyst interface. + + ! `Action.SpotterDefaultAnalyst` + ! Controls the visibility and disabled state of the default Spotter analyst entry in the Analyst interface. + + ! `Action.SpotterOnLiveboard` + ! Controls the Spotter button in the Liveboard header. + + ! `Action.AllLiveboardFilters` + ! Shows, hides, or disables all filter surfaces on a Liveboard: filter chips, parameter chips, and cross-filter chips at the Liveboard, tab, and group levels. Parameter and cross-filter chips support hide only and cannot be disabled. + + ! `Action.EditInputTable` + ! Edits an input table used by an Answer directly from the Liveboard. + + ! `Action.QuickSearchPill` + ! Controls the Basic Search starter-prompt pill in the Spotter interface. + + ! `Action.DeepAnalysisPill` + ! Controls the Deep Analysis starter-prompt pill in the Spotter interface. + + ! `Action.DataLiteracyPill` + ! Controls the Data Literacy starter-prompt pill in the Spotter interface. + !=== + + |[tag greenBackground]#NEW# + a| + [discrete] + ===== New `EmbedEvent` members + + `EmbedEvent.SpotterConversationPinned`:: + Emitted when a user pins a Spotter conversation. Payload: `{ conversationId, pinnedAt }`. Requires `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true`. + + `EmbedEvent.SpotterConversationUnpinned`:: + Emitted when a user unpins a Spotter conversation. Payload: `{ conversationId, unpinnedAt }`. Requires `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true`. + + The following existing `EmbedEvent` members gained an optional `applicability` attribute for scoped filter and parameter operations: + + * `EmbedEvent.FilterChanged` + * `EmbedEvent.ParameterChanged` + + |[tag greenBackground]#NEW# + a| + [discrete] + ===== New `HostEvent` members + + `HostEvent.PinSpotterConversation`:: + Pins a saved Spotter conversation. Accepts `{ conversationId }`. Requires `enablePastConversationsSidebar: true` on the instance. + + `HostEvent.UnpinSpotterConversation`:: + Unpins a previously pinned Spotter conversation. Accepts `{ conversationId }`. Requires `enablePastConversationsSidebar: true` on the instance. + + `HostEvent.GetGroups`:: + Returns filter and parameter group details for the current Liveboard. Response includes `orderedGroupIds`, `numberOfGroups`, and `Groups`. + + `HostEvent.OpenParameter`:: + Opens the parameter panel for a specific parameter on the Liveboard. Accepts an optional `applicability` object to scope the action to a tab or group. + + The following existing `HostEvent` members gained an optional `applicability` attribute for scoping to a Liveboard tab or group: + + * `HostEvent.OpenFilter` + * `HostEvent.GetFilters` + * `HostEvent.UpdateFilters` + * `HostEvent.UpdateParameters` + * `HostEvent.GetParameters` + + |[tag yellowBackground]#DEPRECATED# + a| + [discrete] + ===== `HostEvent.UpdatePersonalizedView` deprecated + + `HostEvent.UpdatePersonalizedView` is deprecated in this release. Use `HostEvent.SelectPersonalizedView` instead. The replacement accepts an optional `viewName` to select a view by name, resets to the original view when the payload is empty, and reports an error when the named view is not found. + + |==== + + == Version 1.52.x, September 2026 [width="100%" cols="1,4"] |==== From 4e1b2ff33201f332f8951df58786134475a33336 Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:55:09 +0530 Subject: [PATCH 06/15] docs(26.10.0.cl): add SDK v1.53.0 changelog entry [SCAL-317811, SCAL-333470, SCAL-298005] From edc0da1e94280c2e579486ed85e7bc7c3bc75217 Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:55:59 +0530 Subject: [PATCH 07/15] docs(26.10.0.cl): add REST API v2.0 changelog entry [SCAL-317811, SCAL-319281, SCAL-333470] --- modules/ROOT/pages/rest-apiv2-changelog.adoc | 59 +++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/rest-apiv2-changelog.adoc b/modules/ROOT/pages/rest-apiv2-changelog.adoc index 7e201fe2f..f74abede8 100644 --- a/modules/ROOT/pages/rest-apiv2-changelog.adoc +++ b/modules/ROOT/pages/rest-apiv2-changelog.adoc @@ -8,7 +8,64 @@ 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.9.0.cl, September 2026 + == Version 26.10.0.cl, October 2026 + + === Spotter Analyst API + + Four new endpoints are available for managing Spotter Analysts programmatically. All endpoints are under `/api/rest/2.0/ai/agent/analysts/`. + + [cols="2,4"] + |=== + | Endpoint | Description + + | `POST /api/rest/2.0/ai/agent/analysts/create` + | Creates a Spotter Analyst with a name, description, data sources, and optional instructions, MCP connectors, and starter prompts. Requires `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER` privilege, plus view access to all referenced sources. Returns the created `Analyst` object including the server-assigned `id`. + + | `POST /api/rest/2.0/ai/agent/analysts/search` + | Returns Analysts visible to the caller. Operates in fetch mode (single Analyst by `analyst_identifier`) or list mode (paginated, ordered by most recently accessed). Supports filtering by ownership type: `ALL`, `CREATED_BY_ME`, or `SHARED_TO_ME`. Requires `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER`. + + | `POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/update` + | Full-replace update of a Spotter Analyst. Omitted optional fields are cleared. Requires ownership or `ADMINISTRATION`/`CAN_MANAGE_SPOTTER` privilege. When new sources are added, they are automatically shared with existing users of the Analyst. + + | `POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/delete` + | Permanently deletes a Spotter Analyst. This operation is irreversible. Requires ownership or `ADMINISTRATION`/`CAN_MANAGE_SPOTTER` privilege. + |=== + + For full parameter details, request and response schemas, and code examples, see xref:spotter-analyst-api.adoc[Spotter Analyst API]. + + === Feature Management API + + Three new endpoints are available for programmatic feature management. All endpoints are under `/api/rest/2.0/configurations/features/`. + + [cols="2,4"] + |=== + | Endpoint | Description + + | `POST /api/rest/2.0/configurations/features/search` + | Returns feature configurations grouped by feature group. Supports `CLUSTER` scope (cluster-admin view, returns `assigned_orgs` per feature) and `ORG` scope (Org-admin view, returns `element_value` per feature). The `category` parameter filters by `GENERAL_ACCESS` (default) or `EARLY_ACCESS`. Requires `ADMINISTRATION` or `ORG_ADMINISTRATION`. + + | `POST /api/rest/2.0/configurations/features/assignments/update` + | Updates Org assignments for a feature using `ADD`, `REMOVE`, or `REPLACE` operations. Send an empty `org_identifiers` array with `REPLACE` to remove all assignments. Requires cluster-admin `ADMINISTRATION` privilege. Org-scoped admins cannot call this endpoint. + + | `POST /api/rest/2.0/configurations/features/values/update` + | Sets feature value at `CLUSTER` or `ORG` scope. At `CLUSTER` scope, setting `reset_org_overrides: true` removes all per-Org value overrides cluster-wide. This operation is irreversible via the API. Requires `ADMINISTRATION`. + |=== + + For full parameter details, request and response schemas, and code examples, see xref:feature-management-api.adoc[Feature Management API]. + + === Update Conversation — `is_pinned` field added + + The `POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update` endpoint now accepts an `is_pinned` boolean field. + + * Set `is_pinned: true` to pin the conversation to the top of the conversation list. + * Set `is_pinned: false` to unpin a previously pinned conversation. + * The operation is idempotent: pinning an already-pinned conversation or unpinning an already-unpinned one succeeds with no side effects. + * Only conversations created with `enable_save_chat: true` can be pinned. + * Both `title` and `is_pinned` can be updated in a single request. + + NOTE: The `title` field has been available since version 26.7.0.cl. The `is_pinned` field is new in version 26.10.0.cl. + + == Version 26.9.0.cl, September 2026 === Answer Export API From 805eb3e7b6089f002bbed4c2a7a34bb6c2ee804e Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:56:01 +0530 Subject: [PATCH 08/15] docs(26.10.0.cl): add REST API v2.0 changelog entry [SCAL-317811, SCAL-319281, SCAL-333470] From 790df80e99242edef4c8ea9b2050d7d2ec15d4fe Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:57:08 +0530 Subject: [PATCH 09/15] docs(26.10.0.cl): add Spotter pin EmbedEvents and scoped filter events [SCAL-333470, SCAL-298005] --- modules/ROOT/pages/event-embedEvents.adoc | 71 +++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/modules/ROOT/pages/event-embedEvents.adoc b/modules/ROOT/pages/event-embedEvents.adoc index 6b7655f0f..ee04fa89a 100644 --- a/modules/ROOT/pages/event-embedEvents.adoc +++ b/modules/ROOT/pages/event-embedEvents.adoc @@ -295,3 +295,74 @@ For information about the supported event objects and examples, see xref:EmbedEv * See the xref:EmbedEvent.adoc[EmbedEvent] and xref:HostEvent.adoc[HostEvent] SDK documentation. * For information about triggering events on React components, see xref:react-components_lesson-04.adoc[Event listeners for React components]. + + [#pin-events] + === Spotter conversation pin events + + The following `EmbedEvent` members are available from ThoughtSpot Cloud 26.10.0.cl and Visual Embed SDK 1.53.0. Both events require `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true` in the embed configuration. + + [cols="1,1,3"] + |=== + | Event | Cluster version | Description + + | `EmbedEvent.SpotterConversationPinned` + | 26.10.0.cl + | Emitted when a user pins a Spotter conversation. Payload: `{ conversationId, pinnedAt }`. + + | `EmbedEvent.SpotterConversationUnpinned` + | 26.10.0.cl + | Emitted when a user unpins a Spotter conversation. Payload: `{ conversationId, unpinnedAt }`. + |=== + + .Listen for pin and unpin events + [source,javascript] + ---- + const embed = new SpotterEmbed(container, { + spotterSidebarConfig: { + enablePastConversationsSidebar: true, + spotterChatPinConfig: { enabled: true }, + }, + // ... + }); + + embed.on(EmbedEvent.SpotterConversationPinned, (event) => { + const { conversationId, pinnedAt } = event.data; + console.log(`Conversation ${conversationId} pinned at ${pinnedAt}`); + }); + + embed.on(EmbedEvent.SpotterConversationUnpinned, (event) => { + const { conversationId, unpinnedAt } = event.data; + console.log(`Conversation ${conversationId} unpinned at ${unpinnedAt}`); + }); + + embed.render(); + ---- + + [#applicability-scope] + === Scoped filter and parameter events + + The following `EmbedEvent` members gained an optional `applicability` attribute in SDK 1.53.0. This attribute scopes a filter or parameter change notification to a specific Liveboard tab or group. + + [cols="1,3"] + |=== + | Event | Change in SDK 1.53.0 + + | `EmbedEvent.FilterChanged` + | Payload gains an optional `applicability` object describing the scope of the changed filter. + + | `EmbedEvent.ParameterChanged` + | Payload gains an optional `applicability` object describing the scope of the changed parameter. + |=== + + The `applicability` object has the following shape: + + [source,json] + ---- + { + "level": "LIVEBOARD" | "TAB" | "GROUP", + "targetId": "{tab-or-group-id}" + } + ---- + + `targetId` is optional. Omit it when `level` is `LIVEBOARD`. + \ No newline at end of file From a9869821a47cef6a99c40dae9fc299c01aa0c094 Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:57:10 +0530 Subject: [PATCH 10/15] docs(26.10.0.cl): add Spotter pin HostEvents, GetGroups, OpenParameter, scoped filter events [SCAL-333470, SCAL-298005] --- modules/ROOT/pages/events-hostEvents.adoc | 94 +++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/modules/ROOT/pages/events-hostEvents.adoc b/modules/ROOT/pages/events-hostEvents.adoc index 3016a3500..d244c2cc5 100644 --- a/modules/ROOT/pages/events-hostEvents.adoc +++ b/modules/ROOT/pages/events-hostEvents.adoc @@ -357,3 +357,97 @@ When `AddFilter` is in `disabledActions`, `HostEvent.OpenAddFilterModal` is bloc * See xref:EmbedEvent.adoc[EmbedEvent] and xref:HostEvent.adoc[HostEvent] SDK documentation. * For information about triggering events on React components, see xref:react-components_lesson-04.adoc[Event listeners for React components]. + + [#spotter-pin-host-events] + === Spotter conversation pin and unpin + + The following `HostEvent` members are available from ThoughtSpot Cloud 26.10.0.cl and Visual Embed SDK 1.53.0. Both events require `enablePastConversationsSidebar: true` in the embed configuration. + + [cols="1,1,3"] + |=== + | Event | Cluster version | Description + + | `HostEvent.PinSpotterConversation` + | 26.10.0.cl + | Pins a saved Spotter conversation. Accepts `{ conversationId }`. + + | `HostEvent.UnpinSpotterConversation` + | 26.10.0.cl + | Unpins a previously pinned Spotter conversation. Accepts `{ conversationId }`. + |=== + + .Programmatically pin a conversation + [source,javascript] + ---- + embed.trigger(HostEvent.PinSpotterConversation, { + conversationId: '{conversation-id}', + }); + ---- + + [#liveboard-group-events] + === Liveboard group and parameter events + + The following `HostEvent` members are new in SDK 1.53.0 and support the scoped Liveboard filtering feature introduced in ThoughtSpot Cloud 26.10.0.cl. + + [cols="1,1,3"] + |=== + | Event | Cluster version | Description + + | `HostEvent.GetGroups` + | 26.10.0.cl + | Returns filter and parameter group details for the current Liveboard. Response includes `orderedGroupIds`, `numberOfGroups`, and `Groups`. Mirrors `HostEvent.GetTabs`. + + | `HostEvent.OpenParameter` + | 26.10.0.cl + | Opens the parameter panel for a specific parameter on the Liveboard. Accepts an optional `applicability` object to scope the action to a tab or group. Mirrors `HostEvent.OpenFilter`. + |=== + + [#applicability-host-events] + === Scoped filter and parameter host events + + The following existing `HostEvent` members gained an optional `applicability` attribute in SDK 1.53.0. This attribute scopes a filter or parameter operation to a specific Liveboard tab or group. + + [cols="1,3"] + |=== + | Event | Change in SDK 1.53.0 + + | `HostEvent.OpenFilter` + | Accepts an optional `applicability` parameter to scope which filter panel opens. + + | `HostEvent.GetFilters` + | Returned Liveboard filter objects now include an optional `applicability` field. + + | `HostEvent.UpdateFilters` + | Accepts an optional `applicability` value per filter to scope the update to a tab or group. + + | `HostEvent.UpdateParameters` + | Accepts an optional `applicability` value per parameter to scope the update to a tab or group. + + | `HostEvent.GetParameters` + | Returned parameter objects now include an optional `applicability` field. + |=== + + The `applicability` object has the following shape: + + [source,json] + ---- + { + "level": "LIVEBOARD" | "TAB" | "GROUP", + "targetId": "{tab-or-group-id}" + } + ---- + + `targetId` is optional. Omit it when `level` is `LIVEBOARD`. + + [#deprecated-host-events] + === Deprecated HostEvents + + [cols="1,1,3"] + |=== + | Event | Status | Details + + | `HostEvent.UpdatePersonalizedView` + | Deprecated in SDK 1.53.0 + | Use `HostEvent.SelectPersonalizedView` instead. The replacement accepts an optional `viewName` to select a view by name, resets to the original view when the payload is empty, and reports an error when the named view is not found. + |=== + \ No newline at end of file From c51df1fc1cbe16c8747c9469b3f01d8ea7e4e9fc Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:57:11 +0530 Subject: [PATCH 11/15] docs(26.10.0.cl): add Spotter pin EmbedEvents and scoped filter events [SCAL-333470, SCAL-298005] From d7ffb9b4a7f38e28816565b05fa763c797ce57fa Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:57:13 +0530 Subject: [PATCH 12/15] docs(26.10.0.cl): add Spotter pin HostEvents, GetGroups, OpenParameter, scoped filter events [SCAL-333470, SCAL-298005] From 0adf76e2180894791be7ce5422a5dcbd863ff98e Mon Sep 17 00:00:00 2001 From: ShashiSubramanya <76986173+ShashiSubramanya@users.noreply.github.com> Date: Tue, 15 Sep 2026 18:15:07 +0530 Subject: [PATCH 13/15] =?UTF-8?q?docs(26.10.0.cl):=20fix=20whats-new=20tru?= =?UTF-8?q?ncation=20=E2=80=94=20write=20full=20merged=20file=20with=20Oct?= =?UTF-8?q?ober=202026=20section=20prepended=20to=20complete=20main=20cont?= =?UTF-8?q?ent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restores all existing release sections (Sep 2026 through Jan 2026) that were lost in the previous write due to context window truncation. Prepends the October 2026 / 26.10.0.cl section covering: Spotter Analyst API, Embed Spotter Analyst, Spotter conversation pinning, Feature Management API, and Scoped Liveboard filtering. Refs: SCAL-333470, SCAL-317811, SCAL-319281, SCAL-298005, SCAL-323877 --- modules/ROOT/pages/whats-new.adoc | 262 ++++++++++++++++++++++++------ 1 file changed, 216 insertions(+), 46 deletions(-) diff --git a/modules/ROOT/pages/whats-new.adoc b/modules/ROOT/pages/whats-new.adoc index 0f911b881..e3ac4f212 100644 --- a/modules/ROOT/pages/whats-new.adoc +++ b/modules/ROOT/pages/whats-new.adoc @@ -39,46 +39,46 @@ a| [discrete] ==== Spotter Analyst API -Spotter Analysts are governed AI agents you can create, configure, and manage programmatically using four new REST API endpoints under `/api/rest/2.0/ai/agent/analysts/`. Each Analyst is scoped to specific data sources and can be configured with a name, description, optional instructions, MCP connectors, and up to 4 starter prompts. The API supports create, search, update, and delete operations. For more information, see xref:spotter-analyst-api.adoc[Spotter Analyst API]. +Spotter Analysts are governed AI agents you can create, configure, and manage via the REST API. Four new endpoints are available under `/api/rest/2.0/ai/agent/analysts/` to create, search, update, and delete Analysts programmatically. Each Analyst is configured with a name, description, one or more data sources, and optional instructions, MCP connectors, and starter prompts. For more information, see xref:spotter-analyst-api.adoc[Spotter Analyst API]. --- [discrete] ==== Embed Spotter Analyst -You can now embed a single, pinned Spotter Analyst in your application using the Visual Embed SDK. The `spotterAnalystConfig.analystId` property in `SpotterEmbed` locks the embed to one governed Analyst experience. Combined with the `hiddenActions` list, you can prevent users from switching to other Analysts or to the default Spotter. For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst]. +You can now embed a single, pinned Spotter Analyst in your application using the Visual Embed SDK. The `spotterAnalystConfig.analystId` property in `SpotterEmbed` locks the embed to one governed Analyst experience. Combined with the updated `hiddenActions` list, you can prevent users from switching to other Analysts or to the default Spotter. For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst]. --- [discrete] ==== Spotter conversation pinning -Users can now pin Spotter conversations so they appear at the top of the conversation list for quick access. In embedded deployments, pinning is disabled by default and must be enabled using `spotterChatPinConfig` in `spotterSidebarConfig`. The SDK emits `EmbedEvent.SpotterConversationPinned` and `EmbedEvent.SpotterConversationUnpinned` when pin state changes. Use `HostEvent.PinSpotterConversation` and `HostEvent.UnpinSpotterConversation` to trigger pin state from the host application. The `is_pinned` field is also available on the Update Conversation endpoint (`POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update`). For more information, see xref:embed-spotter-analyst.adoc#pinning-conversations[Pinning conversations] and xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +Users can now pin Spotter conversations so they appear at the top of the conversation list for quick access. Pinning is disabled by default in embedded deployments and must be explicitly enabled using `spotterChatPinConfig` in `spotterSidebarConfig`. The SDK emits `EmbedEvent.SpotterConversationPinned` and `EmbedEvent.SpotterConversationUnpinned` when pin state changes. Use `HostEvent.PinSpotterConversation` and `HostEvent.UnpinSpotterConversation` to trigger pin state from the host application. For REST API access, the `is_pinned` field is now available on the Update Conversation endpoint (`POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update`). For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst] and xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. --- [discrete] ==== Feature Management API -Three new REST API endpoints are available under `/api/rest/2.0/configurations/features/` for programmatic feature management. Cluster and Org admins can search feature configurations by scope, assign features to Orgs, and set feature values without using the Admin Portal 2.0 UI. For more information, see xref:feature-management-api.adoc[Feature Management API]. +Three new endpoints are available under `/api/rest/2.0/configurations/features/` for programmatic feature management. Cluster and Org admins can search feature configurations, assign features to Orgs, and set feature values without using the Admin Portal 2.0 UI. For more information, see xref:feature-management-api.adoc[Feature Management API]. --- [discrete] ==== Scoped Liveboard filtering -ThoughtSpot 26.10.0.cl introduces a three-tier filter hierarchy on Liveboards: Liveboard level, tab level, and group level. You can enable group-level filter scoping in embedded Liveboards using the `isScopedLiveboardFilteringEnabled` property. The `HostEvent.GetGroups` event returns group details for the Liveboard. The `applicability` attribute on filter and parameter events scopes updates to a specific tab or group. For more information, see xref:embed-events.adoc[Events and app interactions] and xref:liveboard-embed.adoc[Embed a Liveboard]. +ThoughtSpot 26.10.0.cl introduces a three-tier filter hierarchy on Liveboards: Liveboard level, tab level, and group level. You can enable group-level filter scoping in embedded Liveboards using the `isScopedLiveboardFilteringEnabled` property. The `HostEvent.GetGroups` event returns group details for the Liveboard, and the `applicability` attribute on `HostEvent.UpdateFilters` and `HostEvent.UpdateParameters` scopes filter updates to a specific tab or group. For more information, see xref:embed-events.adoc[Events and app interactions] and xref:liveboard-embed.adoc[Embed a Liveboard]. --- [discrete] ==== Visual Embed SDK -For information about new features and enhancements in Visual Embed SDK version 1.53.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +For information about the new features and enhancements introduced in Visual Embed SDK version 1.53.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- [discrete] -==== REST API v2.0 +==== REST API For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. |=== @@ -135,108 +135,278 @@ To improve the initial load performance of large Liveboards, lazy loading is now [discrete] ==== Custom app scheme allowlisting for mobile embeds -ThoughtSpot now supports adding custom app schemes such as `capacitor://localhost` and `ionic://localhost` to the CSP and CORS allowlist. This allows mobile applications built with hybrid frameworks such as Capacitor and Ionic to embed ThoughtSpot content. For more information, see xref:security-settings.adoc#custom-app-schemes[Security settings]. +ThoughtSpot now supports adding custom app schemes such as `capacitor://localhost` and `ionic://localhost` to the CSP and CORS allowlist. This allows mobile applications built with hybrid frameworks such as Capacitor and Ionic to embed ThoughtSpot content. For more information, see xref:security-settings.adoc[Security settings]. --- [discrete] -==== Upcoming changes to `EmbedEvent.Error` framework -In the upcoming ThoughtSpot Cloud 26.10.0.cl and Visual Embed SDK 1.53.0 versions, `EmbedEvent.Error` will include a `severity` field that categorizes errors into three levels, `SEV1`, `SEV2`, and `SEV3`. ThoughtSpot recommends reviewing your error handling logic to prepare for this change. For more information, see xref:embed-event-error-best-practices.adoc[Handling embed errors]. +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.52.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- +[discrete] +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +|=== + +== August 2026 + +**Release version**: ThoughtSpot Cloud 26.8.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.51.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.8.0.cl* + +a| [discrete] -==== Personalized Views TML portability +==== Spotter embed -The Personalized Views TML portability feature is now GA and enabled on all ThoughtSpot Embedded instances. For more information, see xref:tml-import.adoc#personalized-views-portability[Personalized Views portability]. +Spotter Analyst selection:: +The Spotter embed now supports displaying the Analyst selection panel, which allows users to switch between different Spotter Analysts directly from the embedded interface. Use `Action.SpotterAnalystSidebar` in `hiddenActions` to show or hide this panel. For more information, see xref:customize-spotter-embed.adoc[Customize Spotter embed]. --- +[discrete] +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.51.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. + +--- + +[discrete] +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +|=== + +== July 2026 + +**Release version**: ThoughtSpot Cloud 26.7.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.50.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.7.0.cl* + +a| + +[discrete] +==== Spotter conversation management APIs + +ThoughtSpot introduces Spotter conversation management APIs in this release. Using these REST APIs, developers can save and retrieve Spotter conversations programmatically. These APIs allow developers to integrate Spotter conversation history into host application workflows, enabling features like conversation bookmarking, session handoff, and custom conversation browsers. For more information, see xref:spotter-agent-api.adoc[Spotter APIs]. + +--- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.52.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +For information about the new features and enhancements introduced in Visual Embed SDK version 1.50.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- +[discrete] +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +|=== + +== June 2026 + +**Release version**: ThoughtSpot Cloud 26.6.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.49.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.6.0.cl* + +a| [discrete] -==== REST API v2 -This release introduces new API endpoints for sharing Spotter conversations, managing Snowflake Semantic integrations, and other enhancements. -For more information, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== Orion Custom Actions + +ThoughtSpot now supports custom actions in Orion embedded views. You can create and configure custom actions on Orion components using the same callback and URL-based action framework as ThoughtSpot embedded views. For more information, see xref:custom-actions.adoc[Custom actions]. --- -//// [discrete] -==== Answer Export API +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.49.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. + +--- -The following enhancements in the `POST /api/rest/2.0/report/answer` endpoint are now GA. +[discrete] +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. -* *Pinned Answer export* from a Liveboard, using the new `type` parameter. -* *Personalized View* support to export data from a specific Personalized View of a Liveboard. -* *Spotter Answer export* in `XLSX` and `PDF`, in addition to `CSV` and `PNG`. -* *Custom PNG output*, using `x_resolution`, `y_resolution`, and `scaling`. +|=== -For more information, see xref:report-apis-v2.adoc#_answer_report_api[Answer Report API]. +== May 2026 + +**Release version**: ThoughtSpot Cloud 26.5.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.48.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.5.0.cl* + +a| + +[discrete] +==== Custom CSS and layout overrides + +ThoughtSpot now supports additional CSS variables for customizing the Liveboard layout and visualization borders. For more information, see xref:css-customization.adoc[CSS customization]. + +--- + +[discrete] +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.48.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- -//// + +[discrete] +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. |=== -== August 2026 +== April 2026 -**Release version**: ThoughtSpot Cloud 26.8.0.cl + -*Upgrade notes*: ⚠️ Includes breaking changes and deprecations. Refer to feature details in this page and xref:deprecated-features.adoc[Deprecation announcements]. + -*Recommended SDK versions*: Visual Embed SDK v1.51.0 and later +**Release version**: ThoughtSpot Cloud 26.4.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.47.0 or later [.cl-table, cols="2,4", frame=none, grid=none] |=== a| [.cl-label] -*Version 26.8.0.cl* +*Version 26.4.0.cl* a| + [discrete] -==== Spotter embedding +==== Spotter embed + +Chat history sidebar:: +The Spotter embed now supports the chat history sidebar, which allows users to access and resume previous Spotter conversations from the embedded interface. Use `enablePastConversationsSidebar` in `spotterSidebarConfig` to enable this feature. For more information, see xref:customize-spotter-embed.adoc[Customize Spotter embed]. -Spotter Analysts [earlyAccess eaBackground]#Early Access#:: -Spotter now includes an *Analysts* panel in the sidebar that surfaces dedicated Spotter Analyst agents. Each Analyst is scoped to a specific data model and skill set, enabling your embedded users to start focused AI-driven conversations without manually selecting a data source. For more information, see xref:customize-spotter-analysts.adoc#_spotter_analysts[Customize Spotter Analysts]. +--- -Spotter onboarding starter prompts:: -Embedded Spotter interface supports onboarding starter prompts to guide first-time users. When enabled, Spotter presents suggested questions based on the connected data model. For more information, see xref:customize-spotter-chat-experience.adoc#_spotter_starter_prompts[Enable starter prompts in Spotter]. +[discrete] +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.47.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- [discrete] -==== Liveboard embedding enhancements -The following features, previously in Early Access, are now generally available and enabled by default on ThoughtSpot Embedded instances: +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +|=== + +== March 2026 -* Hide irrelevant filters (`hideIrrelevantChipsInLiveboardTabs`) + -xref:embed-pinboard.adoc#_customizing_filter_visibility[Hides filters] that are not relevant to the displayed visualization in a tab. -* Compact header (`isLiveboardHeaderSticky`) + -xref:embed-pinboard.adoc#_liveboard_header[Enables a sticky compact header] for Liveboards that persists as users scroll. +**Release version**: ThoughtSpot Cloud 26.3.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.46.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.3.0.cl* + +a| + +[discrete] +==== Spotter embed + +Spotter sidebar actions:: +The Spotter sidebar now exposes additional action controls: `spotterSidebarOpen`, `spotterSidebarClose`, `spotterNewConversation`, and `spotterSidebarSettings`. Use these in `hiddenActions` to control the sidebar shell. For more information, see xref:customize-spotter-embed.adoc[Customize Spotter embed]. + +--- -For more information, see xref:embed-pinboard.adoc[Embed a Liveboard]. +[discrete] +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.46.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- [discrete] -==== Custom styles for embedded ThoughtSpot -Custom styles and CSS classes are now supported for embedded ThoughtSpot application components. For more information, see xref:custom-styles.adoc[Custom styles]. +==== REST API +For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +|=== + +== February 2026 + +**Release version**: ThoughtSpot Cloud 26.2.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.45.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.2.0.cl* + +a| + +[discrete] +==== Visual Embed SDK +For information about the new features and enhancements introduced in Visual Embed SDK version 1.45.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- [discrete] -==== REST API v2.0 enhancements +==== REST API For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +|=== + +== January 2026 + +**Release version**: ThoughtSpot Cloud 26.1.0.cl + +*Upgrade notes*: No breaking changes in this release. + +*Recommended SDK versions*: Visual Embed SDK v1.44.0 or later + +[.cl-table, cols="2,4", frame=none, grid=none] +|=== +a| +[.cl-label] +*Version 26.1.0.cl* + +a| + +[discrete] +==== Mobile embed support + +ThoughtSpot now supports embedding ThoughtSpot components in mobile applications using the Visual Embed SDK. This feature is currently in beta and is available to select customers. The mobile embed support allows developers to render ThoughtSpot Liveboards and Answers natively in iOS and Android applications using WebView components. ThoughtSpot mobile embed is compatible with all ThoughtSpot Cloud release versions from 26.1.0.cl and SDK versions from v1.44.0. For a complete list of supported features and limitations, refer to the mobile embed documentation. Note that some features available in browser-based embeds (such as certain custom actions, full-application embed, and certain authentication flows) may not be available or may behave differently in a mobile embed (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]. + --- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.51.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +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]. + +--- + +[discrete] +==== REST API +For information about REST API v2 enhancements, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. |=== From 4595b14e251e5f2a8ce2e49d2d0953ee23cf94ce Mon Sep 17 00:00:00 2001 From: ShashiSubramanya Date: Tue, 15 Sep 2026 18:22:00 +0530 Subject: [PATCH 14/15] whats new edit --- modules/ROOT/pages/whats-new.adoc | 647 +++++++++++++++++++++++++++--- 1 file changed, 584 insertions(+), 63 deletions(-) diff --git a/modules/ROOT/pages/whats-new.adoc b/modules/ROOT/pages/whats-new.adoc index e3ac4f212..caf3a8f4d 100644 --- a/modules/ROOT/pages/whats-new.adoc +++ b/modules/ROOT/pages/whats-new.adoc @@ -22,6 +22,8 @@ This page lists new features, enhancements, and deprecated functionality introdu // *Status:* Current / Supported / Deprecated // *Affects:* Developers, Administrators, End Users // ============================================================ + + == October 2026 **Release version**: ThoughtSpot Cloud 26.10.0.cl + @@ -53,7 +55,7 @@ You can now embed a single, pinned Spotter Analyst in your application using the [discrete] ==== Spotter conversation pinning -Users can now pin Spotter conversations so they appear at the top of the conversation list for quick access. Pinning is disabled by default in embedded deployments and must be explicitly enabled using `spotterChatPinConfig` in `spotterSidebarConfig`. The SDK emits `EmbedEvent.SpotterConversationPinned` and `EmbedEvent.SpotterConversationUnpinned` when pin state changes. Use `HostEvent.PinSpotterConversation` and `HostEvent.UnpinSpotterConversation` to trigger pin state from the host application. For REST API access, the `is_pinned` field is now available on the Update Conversation endpoint (`POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update`). For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst] and xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +Users can now pin Spotter conversations so they appear at the top of the conversation list for quick access. Pinning is disabled by default in embedded deployments and must be explicitly enabled using `spotterChatPinConfig` in `spotterSidebarConfig`. The SDK emits `EmbedEvent.SpotterConversationPinned` and `EmbedEvent.SpotterConversationUnpinned` when pin state changes. Use `HostEvent.PinSpotterConversation` and `HostEvent.UnpinSpotterConversation` to trigger pin state from the host application. For REST API access, the `is_pinned` field is now available on the Update Conversation endpoint. For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst] and xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. --- @@ -83,6 +85,7 @@ For information about REST API v2.0 enhancements in this release, see xref:rest- |=== + == September 2026 **Release version**: ThoughtSpot Cloud 26.9.0.cl + @@ -135,27 +138,62 @@ To improve the initial load performance of large Liveboards, lazy loading is now [discrete] ==== Custom app scheme allowlisting for mobile embeds -ThoughtSpot now supports adding custom app schemes such as `capacitor://localhost` and `ionic://localhost` to the CSP and CORS allowlist. This allows mobile applications built with hybrid frameworks such as Capacitor and Ionic to embed ThoughtSpot content. For more information, see xref:security-settings.adoc[Security settings]. +ThoughtSpot now supports adding custom app schemes such as `capacitor://localhost` and `ionic://localhost` to the CSP and CORS allowlist. This allows mobile applications built with hybrid frameworks such as Capacitor and Ionic to embed ThoughtSpot content. For more information, see xref:security-settings.adoc#custom-app-schemes[Security settings]. + +--- + +[discrete] +==== Upcoming changes to `EmbedEvent.Error` framework +In the upcoming ThoughtSpot Cloud 26.10.0.cl and Visual Embed SDK 1.53.0 versions, `EmbedEvent.Error` will include a `severity` field that categorizes errors into three levels, `SEV1`, `SEV2`, and `SEV3`. ThoughtSpot recommends reviewing your error handling logic to prepare for this change. For more information, see xref:embed-event-error-best-practices.adoc[Handling embed errors]. + +--- + + +[discrete] +==== Personalized Views TML portability + +The Personalized Views TML portability feature is now GA and enabled on all ThoughtSpot Embedded instances. For more information, see xref:tml-import.adoc#personalized-views-portability[Personalized Views portability]. --- + [discrete] ==== Visual Embed SDK For information about the new features and enhancements introduced in Visual Embed SDK version 1.52.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. --- + [discrete] -==== REST API -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== REST API v2 +This release introduces new API endpoints for sharing Spotter conversations, managing Snowflake Semantic integrations, and other enhancements. +For more information, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +--- + +//// +[discrete] +==== Answer Export API + +The following enhancements in the `POST /api/rest/2.0/report/answer` endpoint are now GA. + +* *Pinned Answer export* from a Liveboard, using the new `type` parameter. +* *Personalized View* support to export data from a specific Personalized View of a Liveboard. +* *Spotter Answer export* in `XLSX` and `PDF`, in addition to `CSV` and `PNG`. +* *Custom PNG output*, using `x_resolution`, `y_resolution`, and `scaling`. + +For more information, see xref:report-apis-v2.adoc#_answer_report_api[Answer Report API]. + +--- +//// |=== == August 2026 **Release version**: ThoughtSpot Cloud 26.8.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.51.0 or later +*Upgrade notes*: ⚠️ Includes breaking changes and deprecations. Refer to feature details in this page and xref:deprecated-features.adoc[Deprecation announcements]. + +*Recommended SDK versions*: Visual Embed SDK v1.51.0 and later [.cl-table, cols="2,4", frame=none, grid=none] |=== @@ -164,32 +202,103 @@ a| *Version 26.8.0.cl* a| +[discrete] +==== Spotter embedding + +Spotter Analysts [earlyAccess eaBackground]#Early Access#:: +Spotter now includes an *Analysts* panel in the sidebar that surfaces dedicated Spotter Analyst agents. Each Analyst is scoped to a specific data model and skill set, enabling your embedded users to start focused AI-driven conversations without manually selecting a data source. For more information, see xref:customize-spotter-analysts.adoc#_spotter_analysts[Customize Spotter Analysts]. + +Spotter onboarding starter prompts:: +Embedded Spotter interface supports onboarding starter prompts to guide first-time users. When enabled, Spotter presents suggested questions based on the connected data model. For more information, see xref:customize-spotter-chat-experience.adoc#_spotter_starter_prompts[Enable starter prompts in Spotter]. + +--- [discrete] -==== Spotter embed +==== Liveboard embedding enhancements +The following features, previously in Early Access, are now generally available and enabled by default on ThoughtSpot Embedded instances: + +* Hide irrelevant filters (`hideIrrelevantChipsInLiveboardTabs`) + +xref:embed-pinboard.adoc#_customizing_filter_visibility[Hides filters] that are not relevant to the displayed visualization in a tab. +* Compact header (`isLiveboardCompactHeaderEnabled`) + +Enables in compact header in embedded Liveboards. For information about breaking changes and the affected elements, see xref:embed-pinboard.adoc#compact-header[compact Liveboard header]. +* Cover page filtering options (`coverAndFilterOptionInPDF`) + +Enables the *Include cover page* and *Include filter page(s)* checkboxes in the Liveboard download modal. +* Liveboard styling and grouping (isLiveboardMasterpiecesEnabled) + +Enables the xref:embed-pinboard.adoc#_liveboard_grouping_and_styling[Liveboard styling and grouping] feature. +* Filter interactivity (`isEnhancedFilterInteractivityEnabled`) + +Enables interactive filter chips that allow users to add, update, or remove filters in an embedded Liveboard. + +--- + +[discrete] +==== Navigation and homepage V1/V2 deprecated [.version-badge.deprecated]#Deprecated# +Starting from ThoughtSpot Cloud 26.8.0.cl, the classic V1 and V2 navigation and homepage experience modes are deprecated. All ThoughtSpot Embedded sessions now render in the V3 navigation experience by default. For more information, see xref:deprecated-features.adoc#v1-v2-exp-fullApp-embed[V1 and V2 deprecation]. + +--- -Spotter Analyst selection:: -The Spotter embed now supports displaying the Analyst selection panel, which allows users to switch between different Spotter Analysts directly from the embedded interface. Use `Action.SpotterAnalystSidebar` in `hiddenActions` to show or hide this panel. For more information, see xref:customize-spotter-embed.adoc[Customize Spotter embed]. +[discrete] +==== Wide logo dimension [.version-badge.breaking]#Breaking change# +Starting from ThoughtSpot Cloud 26.8.0.cl, the recommended dimensions for the wide logo displayed on the ThoughtSpot login page have changed from 330x100px to *250x50px (5:1 aspect ratio)*. Logos uploaded at the previous dimensions may appear distorted or incorrectly scaled on the login screen. If you previously uploaded a wide logo at 330x100px, re-upload it at 250x50px to ensure correct display. + +For more information, see xref:customize-style.adoc#logo-change[Customize the login page logo]. + +--- + + +[discrete] +==== Granular download privileges +The new granular download privileges that replace the single general download privilege for RBAC enabled clusters are now generally available. + +* *Can Download Visuals*: Allows downloading chart images and visual exports. +* *Can Download Detailed Data*: Allows downloading raw tabular data (CSV, XLSX). + +These privileges can be assigned independently per user or group. Update privilege assignments in your embedded application accordingly. + +--- + +[discrete] +==== Personalized Views portability [earlyAccess eaBackground]#Early Access# +ThoughtSpot improves the portability of Personalized Views across environments. Import operations use smart merge logic to avoid duplicating Personalized Views. +Two new fields have been added to the TML for Personalized Views: + +* A new `author` field is added to the Personalized View TML during export. This field is used to assign ownership during import. +* Personalized Views now support `obj_id` for stable cross-environment object identity. + +For more information, see xref:tml-import.adoc#personalized-views-portability[Personalized Views portability]. + +--- + +[discrete] +==== Discoverability checkbox deprecation [.version-badge.breaking]#Breaking change# +The *Make this Liveboard Discoverable* checkbox has been removed from the ThoughtSpot UI. Embedding applications that relied on discoverability for content visibility should review their sharing logic and update user-facing guidance for content access. For more information, see xref:deprecated-features.adoc#liveboardDiscoverable[Deprecation announcements]. + +--- + +[discrete] +==== SpotterCode widget for documentation assistance +This developer documentation site now includes a SpotterCode AI assistant panel that replaces the earlier *AskDocs* feature. When you open the assistant panel, it displays prebuilt starter prompts relevant to the page you are currently viewing and allows you to explore topics instantly. You can also type your own questions about embedding, REST APIs, SDK configuration, and developer guides. For more information, see xref:spottercode.adoc[SpotterCode documentation]. --- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.51.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +The Visual Embed SDK version 1.51.0 includes new features and enhancements for Spotter Analysts, starter prompts, and the `HostEvent.Navigate` object format. For more information, see the xref:api-changelog.adoc[Visual Embed SDK changelog]. --- [discrete] -==== REST API -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 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]. + +--- |=== == July 2026 **Release version**: ThoughtSpot Cloud 26.7.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.50.0 or later +*Upgrade notes*: Includes breaking changes to SpotterCode + +*Recommended SDK versions*: Visual Embed SDK v1.50.0 and later [.cl-table, cols="2,4", frame=none, grid=none] |=== @@ -198,31 +307,96 @@ a| *Version 26.7.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. + +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] +==== Spotter embedding + +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]. + +--- + +[discrete] +==== Focused home page experience [earlyAccess eaBackground]#Early Access# + +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] +==== SpotterCode authentication and workflow execution [.version-badge.breaking]#Breaking# +SpotterCode now supports authenticated sessions with your ThoughtSpot instance. When connecting your MCP client to the SpotterCode endpoint, you are now prompted to log in using your organization's identity provider. After authentication, SpotterCode can make ThoughtSpot API calls on your behalf. + +For more information, see the documentation on xref:spottercode.adoc#_mcp_server_endpoints[SpotterCode MCP Server] and xref:spottercode-integration.adoc#_authenticate_spottercode[Authenticating SpotterCode]. + +--- + +[discrete] +==== SpotterCode Agent in Visual Embed Playground [earlyAccess eaBackground]#Early Access# + +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, provides a prompt interface for user queries, and generates embed code. It generates boilerplate code automatically and accelerates building code and iterating embed configurations. + +For more information, see xref:developer-playground.adoc#spottercode-panel[Using SpotterCode in the Playground]. + +--- [discrete] -==== Spotter conversation management APIs +==== Webhooks enhancements + +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. + +--- + -ThoughtSpot introduces Spotter conversation management APIs in this release. Using these REST APIs, developers can save and retrieve Spotter conversations programmatically. These APIs allow developers to integrate Spotter conversation history into host application workflows, enabling features like conversation bookmarking, session handoff, and custom conversation browsers. For more information, see xref:spotter-agent-api.adoc[Spotter APIs]. +[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:orgs.adoc#per-org-sso-isolation[SSO and Org isolation]. --- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.50.0, see xref:api-changelog.adoc[Visual Embed SDK 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 -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 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]. + +--- |=== == June 2026 **Release version**: ThoughtSpot Cloud 26.6.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.49.0 or later +*Upgrade notes*: No breaking changes. + +*Recommended SDK versions*: Visual Embed SDK v1.49.0 and later [.cl-table, cols="2,4", frame=none, grid=none] |=== @@ -231,31 +405,70 @@ a| *Version 26.6.0.cl* 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]. + +--- + +[discrete] +==== Spotter AI and embedding enhancements [.version-badge.new]#New# + +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. +* 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-conversation-apis.adoc#_stop_an_in_progress_agent_response[stop and cancel a long-running Spotter response]. + +--- [discrete] -==== Orion Custom Actions +==== Developer page enhancements +The **Develop** page in the ThoughtSpot UI has been updated with the following enhancements: -ThoughtSpot now supports custom actions in Orion embedded views. You can create and configure custom actions on Orion components using the same callback and URL-based action framework as ThoughtSpot embedded views. For more information, see xref:custom-actions.adoc[Custom actions]. +* 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 reload times, you can now enable the Liveboard cache option with a **Refresh** button that lets your users clear the cache and refresh visualization data when required. For more information, see xref:api-changelog.adoc#_liveboard_browser_cache_refresh[Liveboard browser cache refresh]. --- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.49.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +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 -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== 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*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.48.0 or later +*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] |=== @@ -265,33 +478,82 @@ a| 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. + +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`. + +Excel exports for pivot tables:: +Pivot table visualizations can now be exported to Excel format. + +For more information, see xref:embed-pinboard.adoc#_liveboard_download_options[Liveboard download options]. + +--- + +[discrete] +==== Visualization edit interface within the Liveboard view + +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. + +--- + +[discrete] +==== KPI charts in embedded Liveboards + +Embedded Liveboards support advanced controls KPI chart customization. For more information, see link:https://docs.thoughtspot.com/cloud/latest/chart-kpi#advanced[KPI charts]. + +--- + +[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. + +--- + [discrete] -==== Custom CSS and layout overrides +==== 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. + +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. +==== -ThoughtSpot now supports additional CSS variables for customizing the Liveboard layout and visualization borders. For more information, see xref:css-customization.adoc[CSS customization]. --- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.48.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +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]. --- [discrete] -==== REST API -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== 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]. |=== + == April 2026 **Release version**: ThoughtSpot Cloud 26.4.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.47.0 or later +*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 [.cl-table, cols="2,4", frame=none, grid=none] |=== + a| [.cl-label] *Version 26.4.0.cl* @@ -299,64 +561,217 @@ a| a| [discrete] -==== Spotter embed +==== 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. -Chat history sidebar:: -The Spotter embed now supports the chat history sidebar, which allows users to access and resume previous Spotter conversations from the embedded interface. Use `enablePastConversationsSidebar` in `spotterSidebarConfig` to enable this feature. For more information, see xref:customize-spotter-embed.adoc[Customize Spotter embed]. +For more information, see xref:theme-builder.adoc[Theme builder]. --- + [discrete] -==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.47.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +==== Webhook integration +In this release version, the following enhancements are introduced in the webhook configuration and delivery status monitoring workflows: + +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]. + +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]. --- + [discrete] -==== REST API -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== Spotter embed enhancements +You can now customize the appearance and contents of the chat history sidebar panel in Spotter embedding. + +You can also customize the branding and logo in the Spotter chat interface. + +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]. + +--- + +[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`. + +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:report-apis-v2.adoc#_liveboard_report_api[Liveboard report API documentation]. + +--- + + +[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. + +For more information, see xref:full-app-customize.adoc#_customize_list_page_experience[List page customization]. + +--- + + +[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. + +[NOTE] +==== +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. +==== + +For more information, see xref:variables.adoc[Variables documentation]. + +--- + + +[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. + +For more information, see xref:metadata-parameterization.adoc[Metadata parameterization documentation]. + +--- + +[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. + +For more information, see xref:collections.adoc[Collections]. + +[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]. + + +[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 **Release version**: ThoughtSpot Cloud 26.3.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.46.0 or later +*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 [.cl-table, cols="2,4", frame=none, grid=none] |=== + a| [.cl-label] *Version 26.3.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] -==== Spotter embed +==== Host event enhancements for context-aware routing -Spotter sidebar actions:: -The Spotter sidebar now exposes additional action controls: `spotterSidebarOpen`, `spotterSidebarClose`, `spotterNewConversation`, and `spotterSidebarSettings`. Use these in `hiddenActions` to control the sidebar shell. For more information, see xref:customize-spotter-embed.adoc[Customize Spotter embed]. +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. + +For more information, see xref:spotter-nl-instructions.adoc#_allowing_access_to_spotter_data_model_instructions[Allowing access to Spotter data model instructions]. + +--- + +[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]. --- [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.46.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +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]. --- [discrete] -==== REST API -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== REST API v2 +For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. + +--- |=== == February 2026 - **Release version**: ThoughtSpot Cloud 26.2.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.45.0 or later +*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] |=== @@ -365,37 +780,143 @@ a| *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. + +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]. + +--- + +[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]. + +--- + +[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. + +For more information, see xref:about-rest-apis.adoc#_rate_limits_for_api_requests[Rate limits for REST APIs]. + +--- + +[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: + +* Content Security Policy (CSP) +* Cross-origin Resource Sharing (CORS) +* Authentication attributes +* Access control settings + +For more information, see xref:security-settings.adoc[Security Settings]. + +--- + +[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]. + +--- + [discrete] ==== Visual Embed SDK -For information about the new features and enhancements introduced in Visual Embed SDK version 1.45.0, see xref:api-changelog.adoc[Visual Embed SDK changelog]. +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]. --- [discrete] -==== REST API -For information about REST API v2.0 enhancements in this release, see xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +==== REST API v2 +For information about REST API v2 enhancements, see the xref:rest-apiv2-changelog.adoc[REST API v2.0 changelog]. +--- |=== + == January 2026 -**Release version**: ThoughtSpot Cloud 26.1.0.cl + -*Upgrade notes*: No breaking changes in this release. + -*Recommended SDK versions*: Visual Embed SDK v1.44.0 or later +**Release version**: ThoughtSpot Cloud 10.15.0.cl + +*Upgrade notes*: No breaking changes. + +*Recommended SDK versions*: Visual Embed SDK v1.44.0 and later + [.cl-table, cols="2,4", frame=none, grid=none] |=== a| [.cl-label] -*Version 26.1.0.cl* +*Version 10.15.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] -==== Mobile embed support +==== V3 navigation and home page experience -ThoughtSpot now supports embedding ThoughtSpot components in mobile applications using the Visual Embed SDK. This feature is currently in beta and is available to select customers. The mobile embed support allows developers to render ThoughtSpot Liveboards and Answers natively in iOS and Android applications using WebView components. ThoughtSpot mobile embed is compatible with all ThoughtSpot Cloud release versions from 26.1.0.cl and SDK versions from v1.44.0. For a complete list of supported features and limitations, refer to the mobile embed documentation. Note that some features available in browser-based embeds (such as certain custom actions, full-application embed, and certain authentication flows) may not be available or may behave differently in a mobile embed (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]. +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 + +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. + +For more information, see xref:abac_rls-variables.adoc[ABAC via RLS with variables]. + +--- + +[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 data model instructions on a model to coach the Spotter system +* To fetch data model instructions configured on a model + +For more information, see xref:spotter-apis.adoc[Spotter APIs]. + +--- + +[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]. + +--- + +[discrete] +==== Icon customization enhancements + +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. + +--- + +[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]. --- @@ -409,4 +930,4 @@ For information about the new features and enhancements introduced in Visual Emb ==== 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 From e02731f27d4fe833252302373b32934f413c9d7f Mon Sep 17 00:00:00 2001 From: ShashiSubramanya Date: Tue, 15 Sep 2026 19:53:23 +0530 Subject: [PATCH 15/15] indentation issue fix --- modules/ROOT/pages/api-changelog.adoc | 166 +++++++++---------- modules/ROOT/pages/rest-apiv2-changelog.adoc | 76 ++++----- 2 files changed, 121 insertions(+), 121 deletions(-) diff --git a/modules/ROOT/pages/api-changelog.adoc b/modules/ROOT/pages/api-changelog.adoc index 094d4f0d3..8461327d3 100644 --- a/modules/ROOT/pages/api-changelog.adoc +++ b/modules/ROOT/pages/api-changelog.adoc @@ -8,126 +8,126 @@ 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.53.0, October 2026 +== Version 1.53.0, October 2026 - [width="100%", cols="1,4"] - |==== - |[tag greenBackground]#NEW# - a| - [discrete] - ===== Spotter Analyst embed (`spotterAnalystConfig`) +[width="100%", cols="1,4"] +|==== +|[tag greenBackground]#NEW# +a| +[discrete] +===== Spotter Analyst embed (`spotterAnalystConfig`) - You can now embed a single, pinned Spotter Analyst using `spotterAnalystConfig.analystId` in `SpotterEmbed`. Setting this property locks the embed to one governed Analyst and prevents users from navigating to other Analysts or to the default Spotter. +You can now embed a single, pinned Spotter Analyst using `spotterAnalystConfig.analystId` in `SpotterEmbed`. Setting this property locks the embed to one governed Analyst and prevents users from navigating to other Analysts or to the default Spotter. - New and updated configuration properties: +New and updated configuration properties: - `SpotterAnalystConfig.analystId` (string):: - Pins the embed to the Analyst with this GUID. Available from cluster version 26.10.0.cl. +`SpotterAnalystConfig.analystId` (string):: +Pins the embed to the Analyst with this GUID. Available from cluster version 26.10.0.cl. - `spotterChatPinConfig` (on `SpotterSidebarViewConfig`):: - Enables pinning and unpinning of conversations in the sidebar. Contains `enabled` (boolean, default `false`), `pinLabel` (string), and `unpinLabel` (string). Available from cluster version 26.10.0.cl. +`spotterChatPinConfig` (on `SpotterSidebarViewConfig`):: +Enables pinning and unpinning of conversations in the sidebar. Contains `enabled` (boolean, default `false`), `pinLabel` (string), and `unpinLabel` (string). Available from cluster version 26.10.0.cl. - `isScopedLiveboardFilteringEnabled` (on `LiveboardViewConfig` and `AppViewConfig`):: - Enables group-level filter and parameter scoping on Liveboards, in addition to existing Liveboard-level and tab-level scoping. Available from cluster version 26.10.0.cl. +`isScopedLiveboardFilteringEnabled` (on `LiveboardViewConfig` and `AppViewConfig`):: +Enables group-level filter and parameter scoping on Liveboards, in addition to existing Liveboard-level and tab-level scoping. Available from cluster version 26.10.0.cl. - `starterPrompts` (on `SpotterChatViewConfig`):: - Configures which starter prompt pills are shown above the Spotter chat input. Contains keys: `enable`, `quick`, `research`, `previewData`, and `liveboard`. Available from cluster version 26.10.0.cl. +`starterPrompts` (on `SpotterChatViewConfig`):: +Configures which starter prompt pills are shown above the Spotter chat input. Contains keys: `enable`, `quick`, `research`, `previewData`, and `liveboard`. Available from cluster version 26.10.0.cl. - `openSpotterOnLiveboardByDefault` (on `SpotterChatViewConfig`):: - Opens the Spotter chat panel automatically when a Liveboard loads. Default: `true`. Supported on `LiveboardEmbed` and `AppEmbed`. Available from cluster version 26.10.0.cl. +`openSpotterOnLiveboardByDefault` (on `SpotterChatViewConfig`):: +Opens the Spotter chat panel automatically when a Liveboard loads. Default: `true`. Supported on `LiveboardEmbed` and `AppEmbed`. Available from cluster version 26.10.0.cl. - For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst]. +For more information, see xref:embed-spotter-analyst.adoc[Embed Spotter Analyst]. - |[tag greenBackground]#NEW# - a| - [discrete] - ===== New `Action` enum members +|[tag greenBackground]#NEW# +a| +[discrete] +===== New `Action` enum members - The following `Action` enum members are added in this release: +The following `Action` enum members are added in this release: - [cols="2,3"] - !=== - ! Action ! Description +[cols="2,3"] +!=== +! Action ! Description - ! `Action.SpotterChatPin` - ! Controls the visibility and disabled state of the pin and unpin action in the Spotter conversation edit menu. +! `Action.SpotterChatPin` +! Controls the visibility and disabled state of the pin and unpin action in the Spotter conversation edit menu. - ! `Action.SpotterAnalystList` - ! Controls the visibility and disabled state of the Show all Analysts row in the Analyst interface. +! `Action.SpotterAnalystList` +! Controls the visibility and disabled state of the Show all Analysts row in the Analyst interface. - ! `Action.SpotterDefaultAnalyst` - ! Controls the visibility and disabled state of the default Spotter analyst entry in the Analyst interface. +! `Action.SpotterDefaultAnalyst` +! Controls the visibility and disabled state of the default Spotter analyst entry in the Analyst interface. - ! `Action.SpotterOnLiveboard` - ! Controls the Spotter button in the Liveboard header. +! `Action.SpotterOnLiveboard` +! Controls the Spotter button in the Liveboard header. - ! `Action.AllLiveboardFilters` - ! Shows, hides, or disables all filter surfaces on a Liveboard: filter chips, parameter chips, and cross-filter chips at the Liveboard, tab, and group levels. Parameter and cross-filter chips support hide only and cannot be disabled. +! `Action.AllLiveboardFilters` +! Shows, hides, or disables all filter surfaces on a Liveboard: filter chips, parameter chips, and cross-filter chips at the Liveboard, tab, and group levels. Parameter and cross-filter chips support hide only and cannot be disabled. - ! `Action.EditInputTable` - ! Edits an input table used by an Answer directly from the Liveboard. +! `Action.EditInputTable` +! Edits an input table used by an Answer directly from the Liveboard. - ! `Action.QuickSearchPill` - ! Controls the Basic Search starter-prompt pill in the Spotter interface. +! `Action.QuickSearchPill` +! Controls the Basic Search starter-prompt pill in the Spotter interface. - ! `Action.DeepAnalysisPill` - ! Controls the Deep Analysis starter-prompt pill in the Spotter interface. +! `Action.DeepAnalysisPill` +! Controls the Deep Analysis starter-prompt pill in the Spotter interface. - ! `Action.DataLiteracyPill` - ! Controls the Data Literacy starter-prompt pill in the Spotter interface. - !=== +! `Action.DataLiteracyPill` +! Controls the Data Literacy starter-prompt pill in the Spotter interface. +!=== - |[tag greenBackground]#NEW# - a| - [discrete] - ===== New `EmbedEvent` members +|[tag greenBackground]#NEW# +a| +[discrete] +===== New `EmbedEvent` members - `EmbedEvent.SpotterConversationPinned`:: - Emitted when a user pins a Spotter conversation. Payload: `{ conversationId, pinnedAt }`. Requires `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true`. +`EmbedEvent.SpotterConversationPinned`:: +Emitted when a user pins a Spotter conversation. Payload: `{ conversationId, pinnedAt }`. Requires `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true`. - `EmbedEvent.SpotterConversationUnpinned`:: - Emitted when a user unpins a Spotter conversation. Payload: `{ conversationId, unpinnedAt }`. Requires `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true`. +`EmbedEvent.SpotterConversationUnpinned`:: +Emitted when a user unpins a Spotter conversation. Payload: `{ conversationId, unpinnedAt }`. Requires `spotterChatPinConfig.enabled: true` and `enablePastConversationsSidebar: true`. - The following existing `EmbedEvent` members gained an optional `applicability` attribute for scoped filter and parameter operations: +The following existing `EmbedEvent` members gained an optional `applicability` attribute for scoped filter and parameter operations: - * `EmbedEvent.FilterChanged` - * `EmbedEvent.ParameterChanged` +* `EmbedEvent.FilterChanged` +* `EmbedEvent.ParameterChanged` - |[tag greenBackground]#NEW# - a| - [discrete] - ===== New `HostEvent` members +|[tag greenBackground]#NEW# +a| +[discrete] +===== New `HostEvent` members - `HostEvent.PinSpotterConversation`:: - Pins a saved Spotter conversation. Accepts `{ conversationId }`. Requires `enablePastConversationsSidebar: true` on the instance. +`HostEvent.PinSpotterConversation`:: +Pins a saved Spotter conversation. Accepts `{ conversationId }`. Requires `enablePastConversationsSidebar: true` on the instance. - `HostEvent.UnpinSpotterConversation`:: - Unpins a previously pinned Spotter conversation. Accepts `{ conversationId }`. Requires `enablePastConversationsSidebar: true` on the instance. +`HostEvent.UnpinSpotterConversation`:: +Unpins a previously pinned Spotter conversation. Accepts `{ conversationId }`. Requires `enablePastConversationsSidebar: true` on the instance. - `HostEvent.GetGroups`:: - Returns filter and parameter group details for the current Liveboard. Response includes `orderedGroupIds`, `numberOfGroups`, and `Groups`. +`HostEvent.GetGroups`:: +Returns filter and parameter group details for the current Liveboard. Response includes `orderedGroupIds`, `numberOfGroups`, and `Groups`. - `HostEvent.OpenParameter`:: - Opens the parameter panel for a specific parameter on the Liveboard. Accepts an optional `applicability` object to scope the action to a tab or group. +`HostEvent.OpenParameter`:: +Opens the parameter panel for a specific parameter on the Liveboard. Accepts an optional `applicability` object to scope the action to a tab or group. - The following existing `HostEvent` members gained an optional `applicability` attribute for scoping to a Liveboard tab or group: +The following existing `HostEvent` members gained an optional `applicability` attribute for scoping to a Liveboard tab or group: - * `HostEvent.OpenFilter` - * `HostEvent.GetFilters` - * `HostEvent.UpdateFilters` - * `HostEvent.UpdateParameters` - * `HostEvent.GetParameters` +* `HostEvent.OpenFilter` +* `HostEvent.GetFilters` +* `HostEvent.UpdateFilters` +* `HostEvent.UpdateParameters` +* `HostEvent.GetParameters` - |[tag yellowBackground]#DEPRECATED# - a| - [discrete] - ===== `HostEvent.UpdatePersonalizedView` deprecated +|[tag yellowBackground]#DEPRECATED# +a| +[discrete] +===== `HostEvent.UpdatePersonalizedView` deprecated - `HostEvent.UpdatePersonalizedView` is deprecated in this release. Use `HostEvent.SelectPersonalizedView` instead. The replacement accepts an optional `viewName` to select a view by name, resets to the original view when the payload is empty, and reports an error when the named view is not found. +`HostEvent.UpdatePersonalizedView` is deprecated in this release. Use `HostEvent.SelectPersonalizedView` instead. The replacement accepts an optional `viewName` to select a view by name, resets to the original view when the payload is empty, and reports an error when the named view is not found. - |==== +|==== - == Version 1.52.x, September 2026 +== Version 1.52.x, September 2026 [width="100%" cols="1,4"] |==== diff --git a/modules/ROOT/pages/rest-apiv2-changelog.adoc b/modules/ROOT/pages/rest-apiv2-changelog.adoc index f74abede8..d4d4aa8f7 100644 --- a/modules/ROOT/pages/rest-apiv2-changelog.adoc +++ b/modules/ROOT/pages/rest-apiv2-changelog.adoc @@ -8,64 +8,64 @@ 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.10.0.cl, October 2026 +== Version 26.10.0.cl, October 2026 - === Spotter Analyst API +=== Spotter Analyst API - Four new endpoints are available for managing Spotter Analysts programmatically. All endpoints are under `/api/rest/2.0/ai/agent/analysts/`. +Four new endpoints are available for managing Spotter Analysts programmatically. All endpoints are under `/api/rest/2.0/ai/agent/analysts/`. - [cols="2,4"] - |=== - | Endpoint | Description +[cols="2,4"] +|=== +| Endpoint | Description - | `POST /api/rest/2.0/ai/agent/analysts/create` - | Creates a Spotter Analyst with a name, description, data sources, and optional instructions, MCP connectors, and starter prompts. Requires `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER` privilege, plus view access to all referenced sources. Returns the created `Analyst` object including the server-assigned `id`. +| `POST /api/rest/2.0/ai/agent/analysts/create` +| Creates a Spotter Analyst with a name, description, data sources, and optional instructions, MCP connectors, and starter prompts. Requires `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER` privilege, plus view access to all referenced sources. Returns the created `Analyst` object including the server-assigned `id`. - | `POST /api/rest/2.0/ai/agent/analysts/search` - | Returns Analysts visible to the caller. Operates in fetch mode (single Analyst by `analyst_identifier`) or list mode (paginated, ordered by most recently accessed). Supports filtering by ownership type: `ALL`, `CREATED_BY_ME`, or `SHARED_TO_ME`. Requires `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER`. +| `POST /api/rest/2.0/ai/agent/analysts/search` +| Returns Analysts visible to the caller. Operates in fetch mode (single Analyst by `analyst_identifier`) or list mode (paginated, ordered by most recently accessed). Supports filtering by ownership type: `ALL`, `CREATED_BY_ME`, or `SHARED_TO_ME`. Requires `ADMINISTRATION`, `CAN_MANAGE_SPOTTER`, or `CAN_USE_SPOTTER`. - | `POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/update` - | Full-replace update of a Spotter Analyst. Omitted optional fields are cleared. Requires ownership or `ADMINISTRATION`/`CAN_MANAGE_SPOTTER` privilege. When new sources are added, they are automatically shared with existing users of the Analyst. +| `POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/update` +| Full-replace update of a Spotter Analyst. Omitted optional fields are cleared. Requires ownership or `ADMINISTRATION`/`CAN_MANAGE_SPOTTER` privilege. When new sources are added, they are automatically shared with existing users of the Analyst. - | `POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/delete` - | Permanently deletes a Spotter Analyst. This operation is irreversible. Requires ownership or `ADMINISTRATION`/`CAN_MANAGE_SPOTTER` privilege. - |=== +| `POST /api/rest/2.0/ai/agent/analysts/{analyst_identifier}/delete` +| Permanently deletes a Spotter Analyst. This operation is irreversible. Requires ownership or `ADMINISTRATION`/`CAN_MANAGE_SPOTTER` privilege. +|=== - For full parameter details, request and response schemas, and code examples, see xref:spotter-analyst-api.adoc[Spotter Analyst API]. +For full parameter details, request and response schemas, and code examples, see xref:spotter-analyst-api.adoc[Spotter Analyst API]. - === Feature Management API +=== Feature Management API - Three new endpoints are available for programmatic feature management. All endpoints are under `/api/rest/2.0/configurations/features/`. +Three new endpoints are available for programmatic feature management. All endpoints are under `/api/rest/2.0/configurations/features/`. - [cols="2,4"] - |=== - | Endpoint | Description +[cols="2,4"] +|=== +| Endpoint | Description - | `POST /api/rest/2.0/configurations/features/search` - | Returns feature configurations grouped by feature group. Supports `CLUSTER` scope (cluster-admin view, returns `assigned_orgs` per feature) and `ORG` scope (Org-admin view, returns `element_value` per feature). The `category` parameter filters by `GENERAL_ACCESS` (default) or `EARLY_ACCESS`. Requires `ADMINISTRATION` or `ORG_ADMINISTRATION`. +| `POST /api/rest/2.0/configurations/features/search` +| Returns feature configurations grouped by feature group. Supports `CLUSTER` scope (cluster-admin view, returns `assigned_orgs` per feature) and `ORG` scope (Org-admin view, returns `element_value` per feature). The `category` parameter filters by `GENERAL_ACCESS` (default) or `EARLY_ACCESS`. Requires `ADMINISTRATION` or `ORG_ADMINISTRATION`. - | `POST /api/rest/2.0/configurations/features/assignments/update` - | Updates Org assignments for a feature using `ADD`, `REMOVE`, or `REPLACE` operations. Send an empty `org_identifiers` array with `REPLACE` to remove all assignments. Requires cluster-admin `ADMINISTRATION` privilege. Org-scoped admins cannot call this endpoint. +| `POST /api/rest/2.0/configurations/features/assignments/update` +| Updates Org assignments for a feature using `ADD`, `REMOVE`, or `REPLACE` operations. Send an empty `org_identifiers` array with `REPLACE` to remove all assignments. Requires cluster-admin `ADMINISTRATION` privilege. Org-scoped admins cannot call this endpoint. - | `POST /api/rest/2.0/configurations/features/values/update` - | Sets feature value at `CLUSTER` or `ORG` scope. At `CLUSTER` scope, setting `reset_org_overrides: true` removes all per-Org value overrides cluster-wide. This operation is irreversible via the API. Requires `ADMINISTRATION`. - |=== +| `POST /api/rest/2.0/configurations/features/values/update` +| Sets feature value at `CLUSTER` or `ORG` scope. At `CLUSTER` scope, setting `reset_org_overrides: true` removes all per-Org value overrides cluster-wide. This operation is irreversible via the API. Requires `ADMINISTRATION`. +|=== - For full parameter details, request and response schemas, and code examples, see xref:feature-management-api.adoc[Feature Management API]. +For full parameter details, request and response schemas, and code examples, see xref:feature-management-api.adoc[Feature Management API]. - === Update Conversation — `is_pinned` field added +=== Update Conversation — `is_pinned` field added - The `POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update` endpoint now accepts an `is_pinned` boolean field. +The `POST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update` endpoint now accepts an `is_pinned` boolean field. - * Set `is_pinned: true` to pin the conversation to the top of the conversation list. - * Set `is_pinned: false` to unpin a previously pinned conversation. - * The operation is idempotent: pinning an already-pinned conversation or unpinning an already-unpinned one succeeds with no side effects. - * Only conversations created with `enable_save_chat: true` can be pinned. - * Both `title` and `is_pinned` can be updated in a single request. +* Set `is_pinned: true` to pin the conversation to the top of the conversation list. +* Set `is_pinned: false` to unpin a previously pinned conversation. +* The operation is idempotent: pinning an already-pinned conversation or unpinning an already-unpinned one succeeds with no side effects. +* Only conversations created with `enable_save_chat: true` can be pinned. +* Both `title` and `is_pinned` can be updated in a single request. - NOTE: The `title` field has been available since version 26.7.0.cl. The `is_pinned` field is new in version 26.10.0.cl. +NOTE: The `title` field has been available since version 26.7.0.cl. The `is_pinned` field is new in version 26.10.0.cl. - == Version 26.9.0.cl, September 2026 +== Version 26.9.0.cl, September 2026 === Answer Export API