Limit installation of extensions in the Web IDE to those defined in a data file
Problem to solve
The Web IDE will be able to install extensions and the VS Code foundation has everything set up to search and install them from a directory. The default directory, however, is a closed-source platform and the open-source alternative may not offer the desired extensions. But it's a hassle to install extensions manually and individually.
Proposal
Populate the extension marketplace in the Web IDE from a data file stored in the project root.
This extends the flexible configuration described in create-stage#13140 (moved) and essentially lets the project maintainer build a curated list of extensions that can be installed in the Web IDE.
When selecting the marketplace source, now we can see a complete list of options:
- Open VSX
- Custom marketplace (URL)
- Data-driven list
- Only manually (no marketplace)
Developers would upload a .yaml file that provides the extension name, SHA, and other necessary information to populate the marketplace. We'll need to adapt the fork of VS Code to interpret this data file.
Questions
- Is this a project-level setting or something we should store at the user level?
- If this is saved at a project or group level, what's the experience like if I have an extension installed on one project but it's not "allowed" on another? Does this conflict with local browser storage?