Extensions for Microsoft Visual Studio Code - Open Source
-
The embedded instance of the Open VSX registry that runs in the
plugin-registrypod of Che to support air-gapped, offline, and proxy-restricted environments. The embedded Open VSX registry contains only a subset of the extensions published on open-vsx.org. This subset is customizable. -
The public open-vsx.org registry that is accessed over the internet.
-
A standalone Open VSX registry instance that is deployed on a network accessible from Che workspace pods.
The default is the Open VSX registry at https://open-vsx.org.
Selecting an Open VSX registry instance
The default is the Open VSX registry at https://open-vsx.org.
If the default Open VSX registry instance is not what you need, you can select one of the following instances:
-
The embedded instance of the Open VSX registry that runs in the
plugin-registrypod of Che to support air-gapped, offline, and proxy-restricted environments. The embedded Open VSX registry contains only a subset of the extensions published on open-vsx.org. This subset is customizable. -
A standalone Open VSX registry instance that is deployed on a network accessible from Che workspace pods.
-
Edit the
openVSXURLvalue in theCheClustercustom resource:spec: components: pluginRegistry: openVSXURL: "<url_of_an_open_vsx_registry_instance>" (1)1 For example: openVSXURL: "https://open-vsx.org".To ensure the stability and performance of the community-supported Open VSX Registry, API usage is organized into defined tiers. The Eclipse Foundation implements these limits to protect infrastructure from high-frequency automated traffic and to provide consistent service quality for all users. For more information, see Rate Limits and Usage Tiers and the open-vsx.org wiki.
-
Using https://open-vsx.org is not recommended in an air-gapped environment, isolated from the internet. In order to reduce the risk of malware infections and unauthorized access to your code use the embedded or self-hosted Open VSX registry with a curated set of extensions.
-
To select the embedded Open VSX registry instance in the
plugin-registrypod, useopenVSXURL: ''. You can customize the list of included extensions. -
You can also point
openVSXURLat the URL of a standalone Open VSX registry instance if its URL is accessible from within your organization’s cluster and not blocked by a proxy.
-
Adding or removing extensions in the embedded Open VSX registry instance
|
You can manage Visual Studio Code extensions by setting up an internal, on-premises Open VSX Registry. This approach provides full control over the extension lifecycle, enables offline use, and improves compliance. The embedded plugin registry is deprecated; the Open VSX Registry is its successor. See Running the Open VSX Registry on premises for detailed setup instructions. |
You can add or remove extensions in the embedded Open VSX registry instance. This results in a custom build of the Open VSX registry that can be used in your organization’s workspaces.
| To get the latest security fixes after a Che update, rebuild your container based on the latest tag or SHA. |
-
Get the publisher and extension name of each chosen extension:
-
Find the extension on the Open VSX registry website and copy the URL of the extension’s listing page and extension’s version.
-
Extract the <publisher> and <extension> name from the copied URL:
https://open-vsx.org/extension/<publisher>/<name>
If the extension is only available from Microsoft Visual Studio Marketplace, but not Open VSX, you can ask the extension publisher to also publish it on open-vsx.org according to these instructions, potentially using this GitHub action.
If the extension publisher is unavailable or unwilling to publish the extension to open-vsx.org, and if there is no Open VSX equivalent of the extension, consider reporting an issue to the Open VSX team.
-
-
Build the custom plugin registry image and update CheCluster custom resource:
-
During the build process, each extension will be verified for compatibility with the version of Visual Studio Code used in Che.
-
Using Che instance:
For IBM Power (
ppc64le) and IBM Z (s390x), the custom plugin registry is expected to be built locally on the corresponding architecture.-
Log in to your Che instance as an administrator.
-
Start a workspace using the plugin registry repository.
-
Open a terminal and check out the Git tag that corresponds to your Che version (for example,
7.87.0):git checkout $PRODUCT_VERSION -
Open the
che-plugin-registry/openvsx-sync.jsonfile and add or remove extensions. -
Execute
1. Build and Publish a Custom Plugin Registrytask in the workspace (Terminal → Run Task… → devfile → 1. Build and Publish a Custom Plugin Registry). -
Execute
2. Configure Che to use the Custom Plugin Registrytask in the workspace (Terminal → Run Task… → devfile → 2. Configure Che to use the Custom Plugin Registry).
-
-
Using Linux operating system:
-
Podman and NodeJS version 18.20.3 or higher should be installed in the system.
-
Download or fork and clone the plugin registry repository.
-
For each extension that you need to add or remove, edit the
openvsx-sync.jsonfile:-
To add extensions, add the publisher, name and extension version to the
openvsx-sync.jsonfile. -
To remove extensions, remove the publisher, name and extension version from the
openvsx-sync.jsonfile. -
Use the following JSON syntax:
{ "id": "<publisher>.<name>", "version": "<extension_version>" }-
If you have a closed-source extension or an extension developed only for internal use in your organization, you can add the extension directly from a
.vsixfile by using a URL accessible to your custom plugin registry container:{ "id": "<publisher>.<name>", "download": "<url_to_download_vsix_file>", "version": "<extension_version>" } -
Read the Terms of Use for the Microsoft Visual Studio Marketplace before using its resources.
-
-
-
Build the plugin registry container image and publish it to a container registry such as quay.io:
-
$ ./build.sh -o <username> -r quay.io -t custom
-
$ docker push quay.io/<username/plugin_registry:custom>
-
-
Edit the
CheClustercustom resource in your organization’s cluster to point to the image (for example, on quay.io) and save the changes:spec: components: pluginRegistry: deployment: containers: - image: quay.io/<username/plugin_registry:custom> openVSXURL: ''
-
-
-
Check that the
plugin-registrypod has restarted and is running. -
Restart the workspace and check the available extensions in the Extensions view of the workspace IDE.