[Investigate] Persisting Web IDE user settings and extensions
Description
Related to [Discussion] Enable extension marketplace in VS... (#355092 - closed).
In this thread, we found that all client-side data is destroyed when the user signs out. How can we persist the user's VSCode settings"?
Maybe we can make a POC out of this issue?
Goals
There are several related topics that could be resolved here, likely in an iterative manner. The goal of this spike is to determine which of these items can be solved with which iterative approach. Our user experience priorities are:
- Isolate local storage from the main GitLab application to provide flexibility and security. Possibly also provide a "cleaner" path to using local storage to search across an entire project.
- Preserve user settings (like word wrap, keyboard language, font size) across sessions
- Preserve installed extensions across sessions (install Prettier and it remains installed after logging out/back in)
- Preserve user settings and installed extensions across browsers
- Provide a secure extension host that plays well with the VS Code sandbox
- Synchronize settings and extensions with a remote development workspace
Possible options
- Figure out how to use GitLab for VSCode Settings Sync (a native VSCode feature). Here's another related issue.
- Use a custom approach to persisting user settings on the BE.
Questions
- What is the max amount of storage we can house per-user for this? What happens if the user exceeds this?
Edited by Eric Schurter