diff --git a/packages/insomnia/src/common/documentation.ts b/packages/insomnia/src/common/documentation.ts index 8e10592389..d63c6a8eb6 100644 --- a/packages/insomnia/src/common/documentation.ts +++ b/packages/insomnia/src/common/documentation.ts @@ -19,6 +19,7 @@ export const docsMcpAuthentication = newInsomniaDocs('/mcp-clients-in-insomnia/# export const docsPricingLearnMoreLink = newInsomniaDocs( '/storage/#what-are-the-user-and-git-sync-limits-for-the-essentials-plan', ); +export const docsPreRequestAndAfterResponseScripts = newInsomniaDocs('/scripts'); export const docsGitAccessToken = { github: 'https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token', diff --git a/packages/insomnia/src/entry.client.tsx b/packages/insomnia/src/entry.client.tsx index 6951ac0334..6c24e22bc1 100644 --- a/packages/insomnia/src/entry.client.tsx +++ b/packages/insomnia/src/entry.client.tsx @@ -72,7 +72,7 @@ try { // we need to inject state into localStorage const skipOnboarding = getSkipOnboarding(); if (skipOnboarding) { - window.localStorage.setItem('hasSeenOnboardingV13', skipOnboarding.toString()); + window.localStorage.setItem('hasSeenOnboardingV13.3', skipOnboarding.toString()); window.localStorage.setItem('hasUserLoggedInBefore', skipOnboarding.toString()); } } catch (e) { diff --git a/packages/insomnia/src/routes/onboarding.$.tsx b/packages/insomnia/src/routes/onboarding.$.tsx index e501744be4..9862bc32fd 100644 --- a/packages/insomnia/src/routes/onboarding.$.tsx +++ b/packages/insomnia/src/routes/onboarding.$.tsx @@ -1,56 +1,45 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Link, Route, Routes, useLocation } from 'react-router'; +import { docsPreRequestAndAfterResponseScripts } from '~/common/documentation'; import { InsomniaLogo } from '~/ui/components/insomnia-icon'; -import { KongLogo } from '~/ui/components/kong-logo'; import { TrailLinesContainer } from '~/ui/components/trail-lines-container'; -import custom_linting from '~/ui/images/onboarding/custom_linting.png'; -import first_request from '~/ui/images/onboarding/first_request.png'; -import konnect_integration from '~/ui/images/onboarding/konnect_integration.png'; -import sidebar_navigation from '~/ui/images/onboarding/sidebar_navigation.png'; +import new_api_collection from '~/ui/images/onboarding/new_api_collection.png'; +import scripts_for_unit_test from '~/ui/images/onboarding/scripts_for_unit_test.png'; const features = [ { - id: 'navigation_ux', - icon: , - label: 'Updated sidebar navigation', - title: 'Introducing a simpler way to navigate', - description: 'The new sidebar experience makes it easier than ever to get to the resources you are working with.', - image: sidebar_navigation, + id: 'combine_collections_and_documents', + icon: , + label: 'New API Collection to combine Documents and Collections', + title: 'New API Collection to combine documents and collections', + description: + 'For simplicity, we’ve combined documents and collections into API Collections. No functionality has changed - just the UI. You can now access your OpenAPI Specs right from the main API Collection screen.', + image: new_api_collection, }, { - id: 'konnect_integration', - icon: , - label: 'Konnect Integration', - title: 'Auto-sync your gateway service routes from Konnect', - description: - 'Get right into testing your gateway configuration in Insomnia with the new Konnect platform integration.', - image: konnect_integration, - }, - { - id: 'first_request_ux', - icon: , - label: 'New Create Request Experience', - title: 'Need to send a new request? No problem!', - description: - 'The new project home page provides you with a quick way to configure and send a new request -- all while saving it automatically for when you need it later.', - image: first_request, - }, - { - id: 'custom_linting', - icon: , - label: 'Custom Spec Linting', - title: 'Upload custom spec linting rules', - description: - 'Now you can user your own spectral linting rules to help you edit API design files in Insomnia with confidence.', - image: custom_linting, + id: 'disable_legacy_unit_tests_by_default', + icon: , + label: 'Document Unit Tests Disabled By Default', + title: 'Legacy documents unit tests functionality is no longer available by default', + description: ( + <> + Best practice for both new and existing users continues to be testing via{' '} + + pre request and post-response scripts + + . There is a new user setting to enable/disable it. Existing Unit Test users are not affected and we continue to + support this functionality. + + ), + image: scripts_for_unit_test, }, ] satisfies { id: string; icon: React.ReactNode; label: string; title: string; - description: string; + description: React.ReactNode; image: string; }[]; @@ -136,15 +125,15 @@ const Component = () => { return (
-
+
-

🚀 Welcome to Insomnia 13!

+

🚀 Welcome to Insomnia 13.3!

- A faster, more connected API workflow with unified navigation, Konnect gateway sync, and custom API - governance support. + API Collections now combine Documents and Collections, with OpenAPI Specs accessible directly, while + legacy Unit Tests are hidden by default.

diff --git a/packages/insomnia/src/ui/images/onboarding/custom_linting.png b/packages/insomnia/src/ui/images/onboarding/custom_linting.png deleted file mode 100644 index 588740c862..0000000000 Binary files a/packages/insomnia/src/ui/images/onboarding/custom_linting.png and /dev/null differ diff --git a/packages/insomnia/src/ui/images/onboarding/first_request.png b/packages/insomnia/src/ui/images/onboarding/first_request.png deleted file mode 100644 index 634e70cbd8..0000000000 Binary files a/packages/insomnia/src/ui/images/onboarding/first_request.png and /dev/null differ diff --git a/packages/insomnia/src/ui/images/onboarding/konnect_integration.png b/packages/insomnia/src/ui/images/onboarding/konnect_integration.png deleted file mode 100644 index ba6f6486ac..0000000000 Binary files a/packages/insomnia/src/ui/images/onboarding/konnect_integration.png and /dev/null differ diff --git a/packages/insomnia/src/ui/images/onboarding/new_api_collection.png b/packages/insomnia/src/ui/images/onboarding/new_api_collection.png new file mode 100644 index 0000000000..7db2580729 Binary files /dev/null and b/packages/insomnia/src/ui/images/onboarding/new_api_collection.png differ diff --git a/packages/insomnia/src/ui/images/onboarding/scripts_for_unit_test.png b/packages/insomnia/src/ui/images/onboarding/scripts_for_unit_test.png new file mode 100644 index 0000000000..6f268e3953 Binary files /dev/null and b/packages/insomnia/src/ui/images/onboarding/scripts_for_unit_test.png differ diff --git a/packages/insomnia/src/ui/images/onboarding/sidebar_navigation.png b/packages/insomnia/src/ui/images/onboarding/sidebar_navigation.png deleted file mode 100644 index b939fdb1f6..0000000000 Binary files a/packages/insomnia/src/ui/images/onboarding/sidebar_navigation.png and /dev/null differ diff --git a/packages/insomnia/src/ui/utils/router.ts b/packages/insomnia/src/ui/utils/router.ts index 6143279a48..f2076d79cb 100644 --- a/packages/insomnia/src/ui/utils/router.ts +++ b/packages/insomnia/src/ui/utils/router.ts @@ -107,9 +107,9 @@ export const getInitialEntry = async () => { } } - const hasSeenOnboardingV13 = Boolean(window.localStorage.getItem('hasSeenOnboardingV13')); + const hasSeenOnboardingV13_3 = Boolean(window.localStorage.getItem('hasSeenOnboardingV13.3')); - if (!hasSeenOnboardingV13) { + if (!hasSeenOnboardingV13_3) { return href('/onboarding/*', { '*': '', }); @@ -119,9 +119,7 @@ export const getInitialEntry = async () => { const user = await services.userSession.get(); if (user.id) { - const organizations = JSON.parse( - localStorage.getItem(`${user.accountId}:spaces`) || '[]', - ) as Organization[]; + const organizations = JSON.parse(localStorage.getItem(`${user.accountId}:spaces`) || '[]') as Organization[]; // If no organizations are in local storage, go fetch from org index loader if (organizations.length === 0) { return href('/organization');