feat(web_ide): Added new API for VS Code Settings
What does this MR do and why?
Added new API for VS Code Setting Sync. It conforms to the (undocumented) VSCode settings sync API so that settings can be synced across different VS Code IDE instances. We specifically need this for Web IDE so that we can persist WebIDE settings, key bindings, state and extensions. Today when you open the VS Code based WebIDE and you close the window you lose all the setting changes that you've made.
Many more details of the architecture are in the investigation issue here.
Screenshots or screen recordings
How to set up and validate locally
Note: This cannot be tested from the WebIDE within GitLab yet. This is because we haven't merged the OAuth changes and the Web IDE secrets provider need for this to work.
- Setup Web IDE with the settings sync branch - poc-settings-sync-web-ide.
- Make changes to the user settings, records should get created in the new object.
- When you open another session of the Web IDE the settings should get synced.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.