Installing CodeScan Self-Hosted

CodeScan On-Premises Implementation

What's New:

CodeScan Self-Hosted version 24.0.1 (now compatible with SonarQube™ version 10.2 or earlier) is the latest CodeScan release. We strongly recommend all CodeScan users upgrade to this iteration.

Download

Release Note


Overview

This section describes installing the CodeScan self-hosted server, allowing you to experience a fully functional evaluation version of enterprise CodeScan on your server.

Prerequisite

Step 1: Request a CodeScan License Key

Note: If you already have a License Key or Subscription Code, proceed to step 2.

AutoRABIT Access/License Key: Before downloading the necessary files, email AutoRABIT’s support team at support@codescan.io to request a CodeScan License Key.

Provide the following information in the email: • Client Name (first and last – typically the admin) • Client Company • Email • Duration of License (e.g., varies, 30 days)

Step 2: Download and Install SonarQube™ & CodeScan Zip Files

SonarQube™ Download

You must have a SonarQube™ server currently running in your environment. If not, please visit SonarQube.org to download the latest Community version.

Note: This link will take you to the SonarQube™ 9.9 LTS download. SonarQube™ 10.0 is now supported as well.

CodeScan Zip File Download

  1. Download the latest compatible CodeScan version (currently 24.0.1) from here.

Note: Keep in mind you need to download a version compatible with your SonarJS plugin version. Refer to the requirements section for more information.

  1. You will need to enter your License Key (to be provided by our Support Team) or a Subscription Code. For more information on Subscription Codes, click here.

  1. Accept our Terms of Service and click on the Request Download button.

  2. Extract the ZIP file. It contains the SonarQube™ plugin and an ant-based tool enabling you to run an analysis.

Plugin Installation

Step 1: Download CodeScan file

  1. Delete any existing Salesforce plugins from your installation.

  2. Ensure your SonarJS plugin is compatible with the current CodeScan for Lightning version. Currently the supported release requires version 6.2+ of the SonarJS plugin. Click here to see alternatives.

Step 2: CodeScan JAR file

  1. Copy CodeScan downloads JAR files, sonar-salesforce-plugin-XXX.jar and sonar-codescanlang-plugin-XXX.jar into your SonarQube™ installation at /extensions/plugins/.

  2. Place JAR files into your SonarQube™ file installation at /extensions/plugins/.

  3. Keep the SonarQube™ file open for the next steps.

Step 3: Start Web Server

  1. Lastly, you need to RUNsonar to execute the script to start the server. In your SonarQube™ installation file, open, '/bin' folder, choose server type, and select ‘StartSonar’. Once rendering is finished, the plugin installation is complete.

Standard SonarQube™ Setup

Step 2. Once you've gained access, go to Administrator > Configuration > General Settings.

  1. Select the CodeScan tab.

  2. Click Save.

  3. You have successfully completed the CodeScan on-premise integration. See the instructions below on how to integrate this to ARM.

CodeScan On-Premises + ARM Integration

Overview

This guide will show you how to integrate the CodeScan self-hosted instance to ARM.

CodeScan On-Premises ARM Integration

Step 1: Generate a SonarQube™ Token

  1. Log in to your SonarQube™ instance.

  2. Go to User > My Account > Security. Your existing tokens are listed here, each with a Revoke button.

  3. The form at the bottom of the page allows you to generate new tokens. Once you click the Generate button, you will see the token value. Be sure to copy it immediately; once you dismiss the notification, you will not be able to retrieve it.

  4. This token is used when storing your credentials, such as your username and password, with AutoRABIT.

Step 2: Store Your SonarQube™ Credentials in ARM

This initial step is when your SonarQube™ credentials, such as your username and password, are stored in AutoRABIT.

  1. Log in to your AutoRABIT account.

  2. Hover your mouse over the Admin module and click on the Credentials tab.

  3. Next, click on Create Credential from the right navigation bar.

  4. On the next pop-up screen, enter the Credential Name.

  5. Choose the Credential Type as Username with Password.

  6. Choose your Credential Scope: Global: Credentials accessible within the team. Private: Credentials for private use.

  7. Enter your SonarQube™ account username. For password, use the copied token mentioned in Step 1.

  8. Verify you are using your SonarQube™ username instead of the email address you use to log in to SonarQube™.

  1. Click Save.

Setting up Your Quality Profiles

  1. In the SonarQube™ self-hosted instance, click on the Quality Profiles menu.

  2. Make sure you have selected the Salesforce Lightning profile as the default for both the JavaScript and Visualforce and Lightning languages. This can be done with the settings cog to the right of the profile name.

Running a Scan

There are a few ways to run your scan. The first is using our SFDX plugin (this requires that the Salesforce CLI and the SFDX CodeScan Plugin be installed).

  1. Generate a token from the My Account > Security menu in SonarQube™.

  2. Open the command prompt and navigate to:

    /runner/my-project
  3. Run the following command:

    sfdx codescan:run --token <token> --projectkey my-project-key --organization default-organization --server https://your.server.url

The Organization Key above will work for the Community edition of SonarQube™ but may need to be edited depending on your setup using a paid edition.

You can also use Ant (this requires Ant version 1.9+).

Note: You will need to edit antbuild.properties if your SonarQube™ installation is different than usual, or if you have a proxy. You can also edit /runner/antbuild.xml to customize your workflows.

Running SFDX plugin behind a proxy

To run the SFDX plugin behind a proxy, you will need to pass all the related information in the parameters of the analysis command.

Example:

sfdx codescan:run --server {instanceurl} --token {TKN} --projectkey {PRJ} --organization {ORG} -J-Dhttp.proxyHost=## -J-Dhttp.proxyPort=## -J-Dhttp.proxyUser=## -J-Dhttp.proxyPassword=## -J-Dhttps.proxyHost=## -J-Dhttps.proxyPort=## -J-Dhttps.proxyUser=## -J-Dhttps.proxyPassword=##

where,

SonarQube™ ant plugin

For more instructions on setting up the SonarQube™ ant plugin, see https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-ant/. You should verify that the ant script's steps are appropriate for your requirements.

  1. Create a copy of the sonar-project-template folder in the runner directory of this folder and put it in the same project. Call it /runner/my-project. Add the following to the sonar-project.properties file in the my-project folder.

  2. Set sonar.login= to a token available from the My Account > Security menu in SonarQube™.

  3. Set sonar.projectKey=myproject

  4. Set sonar.projectName=My Project

  5. Set salesforce.username, salesforce.password and salesforce.url to your Salesforce username/password. Your Salesforce token must also be appended to the end of your salesforce.password parameter. For example: salesforce.password=passwordtoken.

    Setting your Salesforce username, password, and URL is unnecessary if you want to analyze static content. Please use a system administrator user profile for this otherwise you may experience strange errors when downloading the code or executing tests.

  6. Open a command prompt and navigate into /runner/my-project

  7. Run the following command:

    ant -f ../antbuild.xml analyse

Note: If the Anyone group is not granted Execute Analysis permission, or if the SonarQube™ instance is secured (sonar.forceAuthentication property is set to true), a user whose credentials have Execute Analysis permission has to be provided through the sonar.login and sonar.password properties.

Proxies

  • If your network has a proxy, you must pass some more parameters to avoid license errors.

  • A guide for this is available HERE.

Having trouble?

  • Read the tutorials

  • Check the troubleshooting section

  • Contact Support


Last updated