Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add color, icon and defaultVISTheme for workspace #36

Merged
merged 3 commits into from
Jul 5, 2023

Conversation

wanglam
Copy link
Collaborator

@wanglam wanglam commented Jul 4, 2023

Description

Add color, icon and defaultVISTheme for workspace

Issues Resolved

Screenshot

Testing the changes

Check List

  • All tests pass
    • yarn test:jest
    • yarn test:jest_integration
    • yarn test:ftr
  • New functionality includes testing.
  • New functionality has been documented.
  • Update CHANGELOG.md
  • Commits are signed per the DCO using --signoff

wanglam added 2 commits July 4, 2023 10:00
…bject

Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
@wanglam wanglam force-pushed the feat-update-workspace-create-ui branch from cc7cec8 to cc0be1a Compare July 4, 2023 02:30
@@ -76,6 +85,10 @@ export const WorkspaceForm = ({

const [name, setName] = useState(defaultValues?.name);
const [description, setDescription] = useState(defaultValues?.description);
const [color, setColor] = useState(defaultValues?.color);
const [icon, setIcon] = useState(defaultValues?.icon);
const [defaultVISTheme, setDefaultVISTheme] = useState(defaultValues?.defaultVISTheme);
Copy link
Collaborator

@SuZhou-Joe SuZhou-Joe Jul 4, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not know if it would be better to use an object state instead of multiple isolated states in this case.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now, we don't know too much relations between these three fields. The defaultVISTheme and icon will be little bit complex. The icon may need to support custom icon upload and defaultVISTheme may contains multiple colors. Not sure the final design for this part.

@wanglam wanglam marked this pull request as ready for review July 4, 2023 02:45
@codecov-commenter
Copy link

codecov-commenter commented Jul 4, 2023

Codecov Report

Merging #36 (4b2521b) into workspace (40ac0a2) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           workspace      #36   +/-   ##
==========================================
  Coverage      66.19%   66.19%           
==========================================
  Files           3240     3240           
  Lines          62403    62404    +1     
  Branches        9676     9676           
==========================================
+ Hits           41310    41311    +1     
  Misses         18742    18742           
  Partials        2351     2351           
Flag Coverage Δ
Windows 66.19% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
.../core/server/workspaces/saved_objects/workspace.ts 25.00% <ø> (ø)
src/core/server/workspaces/routes/index.ts 34.78% <100.00%> (+2.96%) ⬆️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

: handleFeatureCheckboxChange
}
label={`${
featureOrGroup.name === 'OpenSearch Plugins'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you help to revert this change? It's just a hack for demo, we don't need it now.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

Signed-off-by: Lin Wang <wonglam@amazon.com>
@wanglam wanglam merged commit 49f0bdf into ruanyl:workspace Jul 5, 2023
@wanglam wanglam deleted the feat-update-workspace-create-ui branch July 5, 2023 02:47
SuZhou-Joe pushed a commit that referenced this pull request Jul 19, 2023
* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Jul 20, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d2.

* Revert "feat: extract management code"

This reverts commit 526c28e.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Jul 21, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
ruanyl pushed a commit that referenced this pull request Aug 3, 2023
* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>
ruanyl added a commit that referenced this pull request Aug 3, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d2.

* Revert "feat: extract management code"

This reverts commit 526c28e.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
ruanyl added a commit that referenced this pull request Aug 3, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 24, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix missing mocks of workspacesSetup

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Integrate workspace service into saved object management (#31)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d23aeae8bb76ab35a897e4abef9cc9da860.

* Revert "feat: extract management code"

This reverts commit 526c28e01b2a6b80e4f8ee7170b740f5c452b97c.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Feature: hide workspace from saved objects management page. (#45)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Add copy saved objects among workspaces functionality (#53)

* Add copy saved objects among workspaces functionality

Signed-off-by: gaobinlong <gbinlong@amazon.com>

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

---------

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* add workspace saved objects client wrapper (#51)

* add workspace savedd objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add more methods to saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add findWithWorkspacePermissionControl in workspace saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: throw 451 instead of interval error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* chore: fix workspace client init method type error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: fix workspaces attribute type error in client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Refactor navigation links from left menu hard code to workspace plugin register (#55)

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Comment Alerts and Favorites in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Recover recently viewed items in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Move exit workspace from left menu to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace category info

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add FilteredNavLinks props to chrome service mock

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related constans from chrome

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from chrome and core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Shorten import path for workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add euiIconType for workspace left menu category

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement navigation for delete and exit workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Navigate external links through url change

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement filteredNavLinks and sort ChromeNavLinks in nav link service

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace list, see more, admin and overview into chromenavlinks

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Check workspace enabled for left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add home nav link to left menu when outside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix combinelatest import error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* variable rename

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move custom nav link to mock props

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link to core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method in workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update src/plugins/workspace/public/components/workspace_updater/workspace_updater.tsx

Co-authored-by: SuZhou-Joe <suzhou@amazon.com>

* revert some unncessary changes

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix navigation url bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link value setting from core to workspace plugin

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move filter nav link to a new function

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* process filter nav links when workspace is disabled

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>

* fix: osd bootstrap error (#57)

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix build plugins error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: filter out ADMIN application and add feature dependency logic (#49)

* feat: filter out ADMIN application and add feature dependency logic

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: separate feature utils function

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: rename isFeatureDependBySelectedFeatures, separate generateFeatureDependencyMap and add annotation

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: do not register app when feature flag is off (#56)

* feat: do not register app when feature flag is off

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: comply with the category name

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: opt according to PR

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize the comment

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Sort category and non-category nav link according to order in left menu (#60)

* change order for home

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Sort category and non-category navlink types in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change order for overview when inside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* assign sorted unknowns to another variable

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor function getMergedNavLinks in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix zero order bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Refactor: Assign default value for filtered nav links (#64)

* remove default filtered nav link value set

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* default value for nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor currentworkspace logic

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Permission control service for saved objects (#63)

* feat: move permission control to saved objects directory

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: use bulkGetObjects and fix unit test

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add http routes for validate & list

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: move permissionModes to common place

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: rename routes

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: make importing workspace-specific objects as copy

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make unit test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: revert the workspace change

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make import support multiple workspaces

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: change logic

Signed-off-by: SuZhou-Joe <suzhou@am…
SuZhou-Joe pushed a commit that referenced this pull request Aug 31, 2023
* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 31, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d2.

* Revert "feat: extract management code"

This reverts commit 526c28e.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 31, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 31, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix missing mocks of workspacesSetup

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Integrate workspace service into saved object management (#31)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d23aeae8bb76ab35a897e4abef9cc9da860.

* Revert "feat: extract management code"

This reverts commit 526c28e01b2a6b80e4f8ee7170b740f5c452b97c.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Feature: hide workspace from saved objects management page. (#45)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Add copy saved objects among workspaces functionality (#53)

* Add copy saved objects among workspaces functionality

Signed-off-by: gaobinlong <gbinlong@amazon.com>

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

---------

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* add workspace saved objects client wrapper (#51)

* add workspace savedd objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add more methods to saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add findWithWorkspacePermissionControl in workspace saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: throw 451 instead of interval error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* chore: fix workspace client init method type error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: fix workspaces attribute type error in client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Refactor navigation links from left menu hard code to workspace plugin register (#55)

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Comment Alerts and Favorites in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Recover recently viewed items in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Move exit workspace from left menu to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace category info

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add FilteredNavLinks props to chrome service mock

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related constans from chrome

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from chrome and core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Shorten import path for workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add euiIconType for workspace left menu category

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement navigation for delete and exit workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Navigate external links through url change

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement filteredNavLinks and sort ChromeNavLinks in nav link service

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace list, see more, admin and overview into chromenavlinks

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Check workspace enabled for left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add home nav link to left menu when outside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix combinelatest import error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* variable rename

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move custom nav link to mock props

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link to core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method in workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update src/plugins/workspace/public/components/workspace_updater/workspace_updater.tsx

Co-authored-by: SuZhou-Joe <suzhou@amazon.com>

* revert some unncessary changes

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix navigation url bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link value setting from core to workspace plugin

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move filter nav link to a new function

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* process filter nav links when workspace is disabled

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>

* fix: osd bootstrap error (#57)

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix build plugins error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: filter out ADMIN application and add feature dependency logic (#49)

* feat: filter out ADMIN application and add feature dependency logic

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: separate feature utils function

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: rename isFeatureDependBySelectedFeatures, separate generateFeatureDependencyMap and add annotation

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: do not register app when feature flag is off (#56)

* feat: do not register app when feature flag is off

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: comply with the category name

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: opt according to PR

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize the comment

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Sort category and non-category nav link according to order in left menu (#60)

* change order for home

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Sort category and non-category navlink types in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change order for overview when inside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* assign sorted unknowns to another variable

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor function getMergedNavLinks in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix zero order bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Refactor: Assign default value for filtered nav links (#64)

* remove default filtered nav link value set

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* default value for nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor currentworkspace logic

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Permission control service for saved objects (#63)

* feat: move permission control to saved objects directory

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: use bulkGetObjects and fix unit test

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add http routes for validate & list

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: move permissionModes to common place

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: rename routes

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: make importing workspace-specific objects as copy

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make unit test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: revert the workspace change

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make import support multiple workspaces

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: change logic

Signed-off-by: SuZhou-Joe <suzhou@am…
SuZhou-Joe pushed a commit that referenced this pull request Aug 31, 2023
* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 31, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d2.

* Revert "feat: extract management code"

This reverts commit 526c28e.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 31, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
SuZhou-Joe added a commit that referenced this pull request Aug 31, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix missing mocks of workspacesSetup

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Integrate workspace service into saved object management (#31)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d23aeae8bb76ab35a897e4abef9cc9da860.

* Revert "feat: extract management code"

This reverts commit 526c28e01b2a6b80e4f8ee7170b740f5c452b97c.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Feature: hide workspace from saved objects management page. (#45)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Add copy saved objects among workspaces functionality (#53)

* Add copy saved objects among workspaces functionality

Signed-off-by: gaobinlong <gbinlong@amazon.com>

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

---------

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* add workspace saved objects client wrapper (#51)

* add workspace savedd objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add more methods to saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add findWithWorkspacePermissionControl in workspace saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: throw 451 instead of interval error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* chore: fix workspace client init method type error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: fix workspaces attribute type error in client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Refactor navigation links from left menu hard code to workspace plugin register (#55)

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Comment Alerts and Favorites in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Recover recently viewed items in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Move exit workspace from left menu to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace category info

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add FilteredNavLinks props to chrome service mock

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related constans from chrome

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from chrome and core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Shorten import path for workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add euiIconType for workspace left menu category

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement navigation for delete and exit workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Navigate external links through url change

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement filteredNavLinks and sort ChromeNavLinks in nav link service

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace list, see more, admin and overview into chromenavlinks

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Check workspace enabled for left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add home nav link to left menu when outside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix combinelatest import error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* variable rename

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move custom nav link to mock props

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link to core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method in workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update src/plugins/workspace/public/components/workspace_updater/workspace_updater.tsx

Co-authored-by: SuZhou-Joe <suzhou@amazon.com>

* revert some unncessary changes

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix navigation url bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link value setting from core to workspace plugin

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move filter nav link to a new function

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* process filter nav links when workspace is disabled

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>

* fix: osd bootstrap error (#57)

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix build plugins error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: filter out ADMIN application and add feature dependency logic (#49)

* feat: filter out ADMIN application and add feature dependency logic

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: separate feature utils function

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: rename isFeatureDependBySelectedFeatures, separate generateFeatureDependencyMap and add annotation

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: do not register app when feature flag is off (#56)

* feat: do not register app when feature flag is off

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: comply with the category name

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: opt according to PR

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize the comment

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Sort category and non-category nav link according to order in left menu (#60)

* change order for home

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Sort category and non-category navlink types in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change order for overview when inside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* assign sorted unknowns to another variable

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor function getMergedNavLinks in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix zero order bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Refactor: Assign default value for filtered nav links (#64)

* remove default filtered nav link value set

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* default value for nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor currentworkspace logic

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Permission control service for saved objects (#63)

* feat: move permission control to saved objects directory

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: use bulkGetObjects and fix unit test

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add http routes for validate & list

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: move permissionModes to common place

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: rename routes

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: make importing workspace-specific objects as copy

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make unit test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: revert the workspace change

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make import support multiple workspaces

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: change logic

Signed-off-by: SuZhou-Joe <suzhou@am…
ruanyl pushed a commit that referenced this pull request Sep 15, 2023
* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>
ruanyl added a commit that referenced this pull request Sep 15, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d2.

* Revert "feat: extract management code"

This reverts commit 526c28e.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
ruanyl added a commit that referenced this pull request Sep 15, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list 

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
ruanyl added a commit that referenced this pull request Sep 15, 2023
* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix missing mocks of workspacesSetup

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Integrate workspace service into saved object management (#31)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with saved object management page

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Revert "feat: extract management code"

This reverts commit 9c765d23aeae8bb76ab35a897e4abef9cc9da860.

* Revert "feat: extract management code"

This reverts commit 526c28e01b2a6b80e4f8ee7170b740f5c452b97c.

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: remove useless import

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: refractor workspacesServiceMock

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make all test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Feature: hide workspace from saved objects management page. (#45)

* setup workspace plugin project skeleton

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* test: add unit tests

add license header

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* workspace template init commit

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template into hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* refacter workspace template hooks

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* update coverImage comments

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add interfaces for workspaces client

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client type interface

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: changes to client implement

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: implement more for workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add workspace creator page (#5)

* feat: add workspace creator page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: integrate with application workspace template

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add max-width and remove image wrapper if not exists

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update filter condition to align with collapsible nav

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add validation when load page (#8)

* fix: validation & query

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify file name to reduce confusion

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add landing logic to retrive workspace id

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add worklist observable

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make client more robust

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use Subject

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use BehaviorObject and optimize code (#14)

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: integrate with workspace create API (#13)

* feat: integrate with workspace create API

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: update to i18n text for toast

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Add currentWorkspace$ (#15)

* feat: add currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: add emit on currentWorkspace$

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* register plugin with workspace template (#16)

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* workspace dropdown list (#9)

Add workspace dropdown list

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>

* init workspace menu stage 1 (#12)

* feat: init workspace menu stage 1

Signed-off-by: tygao <tygao@amazon.com>

* fix: remove port diff

Signed-off-by: tygao <tygao@amazon.com>

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Fix template registration import error (#21)

* fix import error

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix osd bootstrap failure

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* Add workspace overview page (#19)

* feat: add workspace overview page

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: move paths to common constants

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace overview item by custom nav in start phase

Signed-off-by: Lin Wang <wonglam@amazon.com>

* refactor: change to currentWorkspace$ in workspace client

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: navigate to workspace create page after button clicked (#23)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* fix failed test snapshots (#22)

fix failed test snapshots

temporary fix: fetch functional test from main branch

fixed git error which cannot find ref due to feature branch `workspace`
not exists on repo opensearch-dashboards-functional-test

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* change to currentWorkspace, wrap title using i18n (#20)

* change to currentWorkspace, wrap title using i18n

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* change import

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* directly return [] if currentWorkspace is null

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

---------

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* add workspace switch (#17)

* feat: update workspace switch

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix switch error

Signed-off-by: tygao <tygao@amazon.com>

* fix: fix prettier after merge

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove extra code after merge

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Add update workspace page (#25)

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Delete Workspace (#24)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: redirect to overview page after workspace switch (#26)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* update menu filter logic (#28)

* feat: update menu logic

Signed-off-by: tygao <tygao@amazon.com>

* fix: use navLinks to filter

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: redirect to workspace overview page after created success (#29)

Signed-off-by: Lin Wang <wonglam@amazon.com>

* [Feature] Complied saved_objects create/find (#18)

* temp: save

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make create/find support workspaces

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: build error

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: enable workspaces on saved client server side

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some optimization

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: extract management code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: merge fix

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: reuse common function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code when create

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless test code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: redirect to workspace update page after workspace switch (#30)

* Move delete button to update page (#27)

* add delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* implement delete on workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix export on delete workspace modal

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add try catch to handle errors for workspace delete

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move visibility control to workspace overview page exlusively

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change workspace overview route to workspace update

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move delete button from workspace overview page to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* remove update button from workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* recover router to workspace overview page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation url for workspace overview button on left side panel

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: linting error

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* remove duplicate EuiPage (#34)

* remove duplicate EuiPage

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* fix: remove duplicate workspace template

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* remove clear button, add the width of create button (#33)

Signed-off-by: zhichao-aws <zhichaog@amazon.com>

* rename OpenSearch Plugins to OpenSearch Features

this is a temporary fix just for demo, should be reverted later

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* Add some logic check when overwrite a saved object (#32)

* feat: add some logic check when overwrite a saved object

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Add color, icon and defaultVISTheme for workspace (#36)

* feat: add color, icon and defaultVISTheme field for workspace saved object

Signed-off-by: Lin Wang <wonglam@amazon.com>

* add new fields to workspace form

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: remove feature or group name hack

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add workspace list (#39)

Signed-off-by: tygao <tygao@amazon.com>

* Feature/menu change (#37)

* feat: register library menus

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: some update

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: different left menu and exit workspace (#38)

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for collapsible nav: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add three props to mock props for header: exitWorkspace, getWorkspaceUrl, workspaceList$

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix bugs for function createWorkspaceNavLink

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused constants

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: make url stateful (#35)

* feat: make url stateful

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: remove useless change

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: optimize url listener

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: make formatUrlWithWorkspaceId extensible

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify to related components

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: modify the async format to be sync function

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* feat: use path to maintain workspace info

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* feat: optimize code (#40)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: bootstrap error (#43)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add workspace permission control interface (#41)

* feat: add workspace permission control interface

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add request parameter for workspace permission control

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* allow user to turn on/off workspace from advance settings (#46)

return 404 if accessing a workspace path when workspace is disabled

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Add workspace column into saved objects table (#44)

* Add workspace column into saved management page

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* savedObjectsManagement as optional dependency

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* i18n for column title

Signed-off-by: Hailong Cui <ihailong@amazon.com>

---------

Signed-off-by: Hailong Cui <ihailong@amazon.com>

* feat: make edit url clickable

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add ui capability path

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fet: remove useless jump code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: hide workspace from saved objects management page

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>

* Add copy saved objects among workspaces functionality (#53)

* Add copy saved objects among workspaces functionality

Signed-off-by: gaobinlong <gbinlong@amazon.com>

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* Fix bug

Signed-off-by: gaobinlong <gbinlong@amazon.com>

---------

Signed-off-by: gaobinlong <gbinlong@amazon.com>

* add workspace saved objects client wrapper (#51)

* add workspace savedd objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add more methods to saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: add findWithWorkspacePermissionControl in workspace saved objects client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: throw 451 instead of interval error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* chore: fix workspace client init method type error

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: fix workspaces attribute type error in client wrapper

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* Refactor navigation links from left menu hard code to workspace plugin register (#55)

* feature: add public/workspaces service

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>

* Exit workspace from left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Show exit workspace button with small window size

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently viewed and workspace overview on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add buttons for outside, inside workspace case

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement home button and workspace over view button on left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement workspace dropdown list in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add props on recently accessed and custom nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Reuse method getWorkspaceUrl

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove recently accessed and custom nav props in test

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Revert "Remove recently accessed and custom nav props in test"

This reverts commit 7895e5c5dcde9e134f26b2d6a3df54a2d62e9274.

* Wrap title with i18n

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add redirect for workspace app

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Enable users to go to workspace lists page via see more under workspaces in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix build error and part of test error (#42)

* fix: fix build error and some ut

Signed-off-by: tygao <tygao@amazon.com>

* chore: remove saved object client test diff

Signed-off-by: tygao <tygao@amazon.com>

---------

Signed-off-by: tygao <tygao@amazon.com>

* Comment Alerts and Favorites in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Recover recently viewed items in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Move exit workspace from left menu to update page

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace category info

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove unused import

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add FilteredNavLinks props to chrome service mock

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related constans from chrome

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from chrome and core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props from header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Shorten import path for workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add euiIconType for workspace left menu category

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Remove workspace related props for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement navigation for delete and exit workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Navigate external links through url change

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Implement filteredNavLinks and sort ChromeNavLinks in nav link service

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add workspace list, see more, admin and overview into chromenavlinks

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix: unit test failure (#50)

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Check workspace enabled for left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Add home nav link to left menu when outside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for header

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Fix unit test for collapsible nav

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix combinelatest import error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* update snapshot for unit tests

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* variable rename

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move custom nav link to mock props

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link to core

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method in workspace updater

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Update src/plugins/workspace/public/components/workspace_updater/workspace_updater.tsx

Co-authored-by: SuZhou-Joe <suzhou@amazon.com>

* revert some unncessary changes

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix navigation url bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move default filtered nav link value setting from core to workspace plugin

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* move filter nav link to a new function

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* process filter nav links when workspace is disabled

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change navigation method

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: SuZhoue-Joe <suzhou@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>

* fix: osd bootstrap error (#57)

* fix osd bootstrap error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix build plugins error

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* feat: filter out ADMIN application and add feature dependency logic (#49)

* feat: filter out ADMIN application and add feature dependency logic

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: separate feature utils function

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: rename isFeatureDependBySelectedFeatures, separate generateFeatureDependencyMap and add annotation

Signed-off-by: Lin Wang <wonglam@amazon.com>

---------

Signed-off-by: Lin Wang <wonglam@amazon.com>

* feat: do not register app when feature flag is off (#56)

* feat: do not register app when feature flag is off

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: comply with the category name

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: opt according to PR

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize the comment

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* Sort category and non-category nav link according to order in left menu (#60)

* change order for home

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Sort category and non-category navlink types in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change order for overview when inside workspace

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* assign sorted unknowns to another variable

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* change annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor function getMergedNavLinks in left menu

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* fix zero order bug

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* add annotation

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Refactor: Assign default value for filtered nav links (#64)

* remove default filtered nav link value set

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* default value for nav link

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* refactor currentworkspace logic

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

---------

Signed-off-by: yuye-aws <yuyezhu@amazon.com>

* Permission control service for saved objects (#63)

* feat: move permission control to saved objects directory

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: use bulkGetObjects and fix unit test

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: add http routes for validate & list

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: move permissionModes to common place

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: rename routes

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: some side effects

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: make importing workspace-specific objects as copy

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make unit test pass

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: revert the workspace change

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: make import support multiple workspaces

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: change logic

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: change logic

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: ci flow fail

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: copy to target workspace

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: revert changes

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: change public logic

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: update

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: revert some skipped test

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: type check

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: optimize logic

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* feat: update logic

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* temp: merge code

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: formatUrlWithWorkspaceId reference

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: remove useless export call

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

* fix: omitIds

Signed-off-by: SuZhou-Joe <suzhou@amazon.com>

---------

Signed-off-by: Yulong Ruan <ruanyl@amazon.com>
Signed-off-by: Hailong Cui <ihailong@amazon.com>
Signed-off-by: SuZhoue-Joe <suzhou@amazon.com>
Signed-off-by: Lin Wang <wonglam@amazon.com>
Signed-off-by: zhichao-aws <zhichaog@amazon.com>
Signed-off-by: suzhou <suzhou@amazon.com>
Signed-off-by: tygao <tygao@amazon.com>
Signed-off-by: gaobinlong <gbinlong@amazon.com>
Signed-off-by: yuye-aws <yuyezhu@amazon.com>
Signed-off-by: SuZhou-Joe <suzhou@amazon.com>
Co-authored-by: Yulong Ruan <ruanyl@amazon.com>
Co-authored-by: Hailong Cui <ihailong@amazon.com>
Co-authored-by: Lin Wang <wonglam@amazon.com>
Co-authored-by: zhichao-aws <zhichaog@amazon.com>
Co-authored-by: raintygao <tygao@amazon.com>
Co-authored-by: gaobinlong <gbl_long@163.com>
Co-authored-by: Yuye Zhu <yuyezhu@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants