diff --git a/changelogs/fragments/7708.yml b/changelogs/fragments/7708.yml
new file mode 100644
index 000000000000..56ead27a3644
--- /dev/null
+++ b/changelogs/fragments/7708.yml
@@ -0,0 +1,2 @@
+feat:
+- Support workspace initial page ([#7708](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7708))
\ No newline at end of file
diff --git a/src/plugins/workspace/common/constants.ts b/src/plugins/workspace/common/constants.ts
index 5eae709784f3..c8582d2439de 100644
--- a/src/plugins/workspace/common/constants.ts
+++ b/src/plugins/workspace/common/constants.ts
@@ -10,6 +10,7 @@ export const WORKSPACE_FATAL_ERROR_APP_ID = 'workspace_fatal_error';
export const WORKSPACE_CREATE_APP_ID = 'workspace_create';
export const WORKSPACE_LIST_APP_ID = 'workspace_list';
export const WORKSPACE_DETAIL_APP_ID = 'workspace_detail';
+export const WORKSPACE_INITIAL_APP_ID = 'workspace_initial';
/**
* Since every workspace always have overview and update page, these features will be selected by default
* and can't be changed in the workspace form feature selector
diff --git a/src/plugins/workspace/public/application.tsx b/src/plugins/workspace/public/application.tsx
index 31965012d16c..cbc45c938586 100644
--- a/src/plugins/workspace/public/application.tsx
+++ b/src/plugins/workspace/public/application.tsx
@@ -5,7 +5,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
-import { HashRouter as Router, Route, Switch, Redirect } from 'react-router-dom';
+import { HashRouter as Router, Route, Switch } from 'react-router-dom';
import { AppMountParameters, ScopedHistory } from '../../../core/public';
import { OpenSearchDashboardsContextProvider } from '../../opensearch_dashboards_react/public';
import { WorkspaceFatalError } from './components/workspace_fatal_error';
@@ -15,7 +15,7 @@ import { Services } from './types';
import { WorkspaceCreatorProps } from './components/workspace_creator/workspace_creator';
import { WorkspaceDetailApp } from './components/workspace_detail_app';
import { WorkspaceDetailProps } from './components/workspace_detail/workspace_detail';
-import { DetailTab } from './components/workspace_form/constants';
+import { WorkspaceInitialApp } from './components/workspace_initial_app';
export const renderCreatorApp = (
{ element }: AppMountParameters,
@@ -87,3 +87,18 @@ export const renderDetailApp = (
ReactDOM.unmountComponentAtNode(element);
};
};
+
+export const renderInitialApp = ({}: AppMountParameters, services: Services) => {
+ const rootElement = document.getElementById('opensearch-dashboards-body');
+
+ ReactDOM.render(
+
+
+ ,
+ rootElement
+ );
+
+ return () => {
+ ReactDOM.unmountComponentAtNode(rootElement!);
+ };
+};
diff --git a/src/plugins/workspace/public/assets/background_dark.svg b/src/plugins/workspace/public/assets/background_dark.svg
new file mode 100644
index 000000000000..0e6de636d08d
--- /dev/null
+++ b/src/plugins/workspace/public/assets/background_dark.svg
@@ -0,0 +1,363 @@
+
diff --git a/src/plugins/workspace/public/assets/background_light.svg b/src/plugins/workspace/public/assets/background_light.svg
new file mode 100644
index 000000000000..7e33b6ceff7f
--- /dev/null
+++ b/src/plugins/workspace/public/assets/background_light.svg
@@ -0,0 +1,363 @@
+
diff --git a/src/plugins/workspace/public/components/workspace_initial/__snapshots__/workspace_initial.test.tsx.snap b/src/plugins/workspace/public/components/workspace_initial/__snapshots__/workspace_initial.test.tsx.snap
new file mode 100644
index 000000000000..2c2b25a1e116
--- /dev/null
+++ b/src/plugins/workspace/public/components/workspace_initial/__snapshots__/workspace_initial.test.tsx.snap
@@ -0,0 +1,1048 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`WorkspaceInitial render workspace initial page normally when theme is dark mode 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Getting started with OpenSearch
+
+
+
+
+ OpenSearch is a flexible, scalable, open-source way to build solutions for data-intensive search and analytics applications. Explore, enrich, and visualize your data, using developer-friendly tools and powerful integrations for machine learning, data processing, and more.
+
+
+ Organize projects by use case in a collaborative workspace.
+
+
+
+
+
+
+
+
+
+
+
+ Try OpenSearch
+
+
+
+ Explore sample data before adding your own.
+
+
+
+
+
+
+
+
+
+
+ Add your data
+
+
+
+ Start collecting and analyzing your data.
+
+
+
+
+
+
+
+
+
+
+ Discover insights
+
+
+
+ Explore data interactively to uncover insights.
+
+
+
+
+
+
+
+
+
+
+
+
+ And much more...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`WorkspaceInitial render workspace initial page normally when user is dashboard admin 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Getting started with OpenSearch
+
+
+
+
+ OpenSearch is a flexible, scalable, open-source way to build solutions for data-intensive search and analytics applications. Explore, enrich, and visualize your data, using developer-friendly tools and powerful integrations for machine learning, data processing, and more.
+
+
+ Organize projects by use case in a collaborative workspace.
+
+
+
+
+
+
+
+
+
+
+
+ Try OpenSearch
+
+
+
+ Explore sample data before adding your own.
+
+
+
+
+
+
+
+
+
+
+ Add your data
+
+
+
+ Start collecting and analyzing your data.
+
+
+
+
+
+
+
+
+
+
+ Discover insights
+
+
+
+ Explore data interactively to uncover insights.
+
+
+
+
+
+
+
+
+
+
+
+
+ And much more...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`WorkspaceInitial render workspace initial page normally when user is non dashboard admin 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Getting started with OpenSearch
+
+
+
+
+ OpenSearch is a flexible, scalable, open-source way to build solutions for data-intensive search and analytics applications. Explore, enrich, and visualize your data, using developer-friendly tools and powerful integrations for machine learning, data processing, and more.
+