JFrog Visual Studio Code Extension
Table of Contents
About this Extension
The cost of remediating a vulnerability is akin to the cost of fixing a bug. The earlier you remediate a vulnerability in the release cycle, the lower the cost. JFrog Xray is instrumental in flagging components when vulnerabilities are discovered in production systems at runtime, or even sooner, during the development.
The JFrog VS Code Extension adds JFrog Xray scanning of project dependencies to your VS Code IDE. It allows developers to view panels displaying vulnerability information about the components and their dependencies directly in their VS Code IDE. With this information, a developer can make an informed decision on whether to use a component or not before it gets entrenched into the organization’s product. The following project types are supported.
Free Go Modules Security Scanning and Metadata from GoCenter
Viewing Project Dependencies Information
View the dependencies used by the project in a tree, where the direct dependencies are at the top.
The JFrog extension automatically triggers a scan of the project's dependencies whenever a change is detected after building the code. To invoke a scan manually, click on the Refresh button or click on Start Xray Scan from within the editor.
View the security information for a depedency by hovering over it in the editor. You can also navigate from the depedency declaration directly into the tree view. This allows you to see transitive (indirect) depedencies.
Search for a dependency in the tree:
View the issues associated with direct and transitive (indirect) dependencies.
To filter the dependencies viewed, click on the Filter button.
Navigate from the tree view to a depedency's declaration in the editor.
Configuring JFrog Xray
Connect to JFrog Xray by clicking on the green Connect button:
The extension also support connecting to JFrog Xray using environment variables.
Note: For security reasons, it is recommended to unset the environment variables after launching VS Code.
If your JFrog Xray instance is behind an HTTP/S proxy, follow these steps to configure the proxy server:
If your proxy server requires credentials, follow these steps:
Exclude Paths from Scan
By default, paths containing the words
To open the extension settings, use the following VS Code menu command:
Free Security Scanning and Metadata from GoCenter
Go Modules in GoCenter are scanned by Xray. You can read more about it in this blog. The JFrog VS Code Extension pulls this security information from GoCenter and displays it inside the IDE. It also displays, for each module, the description summary, license and the number of stars.
For each module there's a direct link to the GoCenter UI, with more information, like the actual CVEs, as well as other projects which use this module.
Enhanced Capabilities with JFrog Xray
By connecting VS Code to JFrog Xray the security information is pulled directly from JFrog Xray. This means that more security information becomes available to the developers inside VS Code. This includes the list of security issues, including the module versions with the fixes. All the module metadata provided by GoCenter is still available when connecting to JFrog Xray.
Behind the Scenes
The JFrog VS Code Extension scans all of the project depedencies, both direct and indirect (transitive), even if they are not declared in the project's go.mod. It builds the Go dependencies tree by running
Excluding transitive dependency in pom.xml
To exclude a transitive dependency from your project, click on the "Exclude dependency" button in the dependencies tree.
Behind the Scenes
The JFrog VS Code Extension builds the Maven dependencies tree by running
Behind the scenes, the extension builds the npm dependencies tree by running
To have your project dependencies scanned by JFrog Xray, make sure the npm CLI is installed on your local machine and that it is in your system PATH.
In addition, the project dependencies must be installed using
Behind the scenes, the extension builds the Pypi dependencies tree by running
For .NET projects which use NuGet packages as depedencies, the extension displays the NuGet depedencies tree, together with the information for each depedency.
View the extension log:
The extension is licensed under Apache License 2.0.
Building and Testing the Sources
To build the extension sources, please follow these steps:
After the build finishes, you'll find the vsix file in the jfrog-vscode-extension directory. The vsix file can be loaded into VS-Code
To run the tests:
We welcome community contribution through pull requests.