[Discussion] Enable extension marketplace in VSCode Web IDE
Problem to solve
Let's implement an MVC for GitLab admin's to enable a VSCode Extension marketplace for the Web IDE experience.
Implementation Plan
PLEASE NOTE: This implementation plan is a bit dated and some things have changed. We will update this plan shortly once other blocking issues have closed.
Here's the iterative steps we are planning to implement:
-
[ ] FE: Introduce a client-sideI'm not sure this is needed anymore since we are going to be able to lean into VSCode's internal extension marketplace fairly well.web_ide_extension_marketplace_version
(initially0.0.1
) written to local storage. This version will be used to migrate client environments when an outdated version is detected. This version is updated at development-time. A version update means that we're introducing breaking changes with how the extension marketplace works. -
Database: -
user_preferences.use_web_ide_extension_marketplace
needed for flagging whether the user has opted-in to the extension marketplace (relevant issue). Add use_web_ide_extension_marketplace to user_pref (!139000 - merged)
-
-
Database/FE: Introduce instance-wide admin settings for: -
web_ide_extension_marketplace.enabled
- Determines whether or not the extension marketplace should be enabled -
web_ide_extension_marketplace.show_warning
- Determines whether or not we should show a third-party software warning to end-users of the Web IDE. -
web_ide_extension_marketplace.service_url
- Part of the vscodeProductConfiguration
which points to the marketplace API. See also the OpenVSX wiki. -
web_ide_extension_marketplace.item_url
- Part of the vscodeProductConfiguration
which points to the marketplace API. See also the OpenVSX wiki.
-
-
@gitlab/web-ide
: WhenextensionMarketplace
parameters are not given, show a default empty state prompting the user to contact their GitLab administrator. -
@gitlab/web-ide
: WhenextensionMarketplace
parameters are given and the user has never accepted the "Third-Party-Software" warning, show a "Third-Party-Software" warning whenever the extension marketplace tab is opened. -
@gitlab/web-ide
: WhenextensionMarketplace
parameters are given, load these for VSCode'sextensionGallery
https://gitlab.com/gitlab-org/gitlab-web-ide/-/blob/71a6aae737660566fe123e1f7976fb573fa2fa1a/packages/vscode-bootstrap/src/start.ts#L55.
PLEASE NOTE: All of this will be behind a web_ide_extension_marketplace
feature flag. We anticipate on enabling this flag by default on .com
before %16.10 closes.
Open questions
- We do some all-around aggressive local storage cleaning. Will extensions stay around after logging out?
- What about for different users on the same machine?
- What message do we want to display for the "Third-Party-Software" warning inside
vscode
? - Do we want to load the configured
extensionGallery
for the remote development version of the@gitlab/web-ide
? Or is this just a client-only Web IDE thing?
Details
The availability of Open VSX is still in question but we can adapt and configure the Web IDE to use a different directory if necessary.
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.