diff --git a/.env.sample b/.env.sample index f21de7484..79dd000ed 100644 --- a/.env.sample +++ b/.env.sample @@ -3,3 +3,5 @@ GATSBY_ALGOLIA_SEARCH_KEY= ALGOLIA_ADMIN_KEY= GATSBY_CLOUDFLARE_URL= BUILD_ENV=LOCAL + + diff --git a/modules/ROOT/pages/api-user-management.adoc b/modules/ROOT/pages/api-user-management.adoc index 3c41e7065..d327af112 100644 --- a/modules/ROOT/pages/api-user-management.adoc +++ b/modules/ROOT/pages/api-user-management.adoc @@ -121,7 +121,6 @@ To create a user: * +++POST /api/rest/2.0/users/create+++ (Rest API v2) * xref:user-api.adoc#create-user[POST /tspublic/v1/user] (Rest API v1) - To update user details: * +++POST /api/rest/2.0/users/{user_identifier}/update+++ (Rest API v2) @@ -135,18 +134,20 @@ If you rename an SSO user through the REST API and that user then logs in throug * If Just-in-Time (JIT) provisioning is enabled, ThoughtSpot creates a new duplicate account. The duplicate account does not inherit the original user's content, groups, or permissions. * If JIT provisioning is disabled, the user cannot log in. +==== -To safely update the username of an SSO user: +To update the username of an SSO user: . Update the username in your IdP. . Before the user logs in again, update the username in ThoughtSpot to match the new value using the REST API or Admin UI. Both updates must be complete before the user's next SSO login. -The order of the two steps can be reversed — you may update ThoughtSpot first and the IdP second — provided the user does not log in during the interval between the two changes. +The order of the two steps can be reversed. You may update ThoughtSpot first and the IdP second, provided the user does not log in during the interval between the two changes. For SSO users, ThoughtSpot derives email address and display name directly from the IdP. Update these attributes in your IdP only. ThoughtSpot automatically reflects the new values when the user next logs in through SSO. Do not use the REST API or the Admin UI to update the email address or display name of an SSO user. +==== For users who authenticate directly with ThoughtSpot (not through an external IdP), you can update username, email address, and display name using the REST API or Admin UI. No IdP coordination is required for local users. diff --git a/modules/ROOT/pages/common/nav-embedding.adoc b/modules/ROOT/pages/common/nav-embedding.adoc index 347aa02bb..c65bdd872 100644 --- a/modules/ROOT/pages/common/nav-embedding.adoc +++ b/modules/ROOT/pages/common/nav-embedding.adoc @@ -124,6 +124,8 @@ Customize and integrate Embedding tutorials * link:{{navprefix}}/tutorials/tutorials-overview[Embedding tutorials] + +//// * link:{{navprefix}}/tutorials/tse-fundamentals/intro[Embedding Fundamentals] ** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-01[01 - Overview] ** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-02[02 - Set up for course] @@ -142,8 +144,16 @@ Embedding tutorials ** link:{{navprefix}}/tutorials/react-components/lesson-02[02 - ThoughtSpot component pages] ** link:{{navprefix}}/tutorials/react-components/lesson-03[03 - Menus and navigation elements] ** link:{{navprefix}}/tutorials/react-components/lesson-04[04 - Event handling] -* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your Chatbot] +//* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your Chatbot] + +* link:{{navprefix}}/tutorials/react-components/intro[Introduction] +** link:{{navprefix}}/tutorials/react-components/lesson-01[Initializing ThoughtSpot Embed SDK] +** link:{{navprefix}}/tutorials/react-components/lesson-02[ThoughtSpot component pages] +** link:{{navprefix}}/tutorials/react-components/lesson-03[Menus and other navigation elements] +** link:{{navprefix}}/tutorials/react-components/lesson-04[Event handling] +* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your chatbot] +//// [.sidebar-title] Reference guides and changelog diff --git a/modules/ROOT/pages/common/nav-release-notes.adoc b/modules/ROOT/pages/common/nav-release-notes.adoc new file mode 100644 index 000000000..061b9ec4d --- /dev/null +++ b/modules/ROOT/pages/common/nav-release-notes.adoc @@ -0,0 +1,17 @@ + +:page-pageid: nav-release-notes +:page-description: Release notes and changelogs + +[navSection] + +[.sidebar-title] +Release notes and changelogs + +* link:{{navprefix}}/whats-new[What's new] +* Changelog +** link:{{navprefix}}/embed-sdk-changelog[Visual Embed SDK changelog] +** link:{{navprefix}}/mobile-sdk-changelog[Mobile Embed SDK changelog] +** link:{{navprefix}}/rest-v2-changelog[REST API v2 changelog] +** link:{{navprefix}}/mcp-server-changelog[Spotter MCP Server changelog] +* link:{{navprefix}}/deprecated-features[Deprecation announcements] + diff --git a/modules/ROOT/pages/common/nav-rest-api.adoc b/modules/ROOT/pages/common/nav-rest-api.adoc index a0ebf26aa..88e4749eb 100644 --- a/modules/ROOT/pages/common/nav-rest-api.adoc +++ b/modules/ROOT/pages/common/nav-rest-api.adoc @@ -38,8 +38,6 @@ REST APIs ** link:{{navprefix}}/webhooks-rest-api[Webhook APIs] - - [.sidebar-title] REST API SDK @@ -50,14 +48,19 @@ REST API SDK * link:{{navprefix}}/rest-api-sdk-csharp[C# SDK] * link:{{navprefix}}/rest-apiv2-js[REST API v2.0 in JavaScript] + [.sidebar-title] REST API Tutorials * link:{{navprefix}}/tutorials/rest-api/intro[REST API Tutorials] + +//// * link:{{navprefix}}/tutorials/rest-api/lesson-01[01 - REST API overview] * link:{{navprefix}}/tutorials/rest-api/lesson-02[02 - Simple Python implementation] * link:{{navprefix}}/tutorials/rest-api/lesson-03[03 - Complex REST API workflows] +//// + [.sidebar-title] REST API v1 (DEPRECATED) diff --git a/modules/ROOT/pages/common/nav-tutorials.adoc b/modules/ROOT/pages/common/nav-tutorials.adoc new file mode 100644 index 000000000..5ebf5d5b7 --- /dev/null +++ b/modules/ROOT/pages/common/nav-tutorials.adoc @@ -0,0 +1,51 @@ + +:page-pageid: nav-tutorials +:page-description: Tutorials navigation + +[navSection] + +[.sidebar-title] +Embedding fundamentals + +* link:{{navprefix}}/tutorials/tse-fundamentals/intro[Introduction] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-01[Overview of ThoughtSpot Embedded] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-02[Setting up for the course] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-03[Security Setting] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-04[Start Coding] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-05[Embed Search] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-06[Embed Natural Language Search] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-07[Embed Liveboard] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-08[Embed Liveboard Visualization] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-09[Embed Application] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-10[Styling ThoughtSpot] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-11[Summary and Next Steps] + +[.sidebar-title] +UI elements and style customization + +* link:{{navprefix}}/tutorials/style-customization/intro[Introduction] +* link:{{navprefix}}/tutorials/style-customization/step-01[Getting started] +* link:{{navprefix}}/tutorials/style-customization/step-02[Large component elements] +* link:{{navprefix}}/tutorials/style-customization/step-03[CSS styles] +* link:{{navprefix}}/tutorials/style-customization/step-04[Text strings and icon replacement] +* link:{{navprefix}}/tutorials/style-customization/step-05[Menu items] +* link:{{navprefix}}/tutorials/style-customization/step-06[Conclusion] + +[.sidebar-title] +REST API tutorials + +** link:{{navprefix}}/tutorials/rest-api/intro[Introduction] +** link:{{navprefix}}/tutorials/rest-api/lesson-01[REST API overview] +** link:{{navprefix}}/tutorials/rest-api/lesson-02[Simple Python implementation] +** link:{{navprefix}}/tutorials/rest-api/lesson-03[Complex REST API workflows] +** link:{{navprefix}}/tutorials/rest-api/lesson-04[Browser JavaScript REST API implementation] + +[.sidebar-title] +React Components Tutorial + +* link:{{navprefix}}/tutorials/react-components/intro[Introduction] +* link:{{navprefix}}/tutorials/react-components/lesson-01[Initializing ThoughtSpot Embed SDK] +* link:{{navprefix}}/tutorials/react-components/lesson-02[ThoughtSpot component pages] +* link:{{navprefix}}/tutorials/react-components/lesson-03[Menus and other navigation elements] +* link:{{navprefix}}/tutorials/react-components/lesson-04[Event handling] +//* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your chatbot] diff --git a/modules/ROOT/pages/common/nav-walkthroughs.adoc b/modules/ROOT/pages/common/nav-walkthroughs.adoc new file mode 100644 index 000000000..53846edb8 --- /dev/null +++ b/modules/ROOT/pages/common/nav-walkthroughs.adoc @@ -0,0 +1,50 @@ + +:page-pageid: nav-walkthroughs +:page-description: Guided Walkthroughs navigation + +// +// HOW TO ADD A NEW WALKTHROUGH/TUTORIAL GROUP +// --------------------------------------------------------------------- +// Each tutorial below MUST be a two-level list: +// * Tutorial group name (no link — this line is just the heading) +// ** link:...[Step 1] +// ** link:...[Step 2] +// ... +// +// Do NOT flatten this to a single level (all "*", no "**"). The nesting +// is load-bearing, not cosmetic — the left nav (LeftSidebar/index.scss, +// ".tutorialsNavWrapper" rules) relies on exactly this two-level shape to: +// 1. Number each step with a circular badge (counter-reset/increment +// on the nested