Toolbox Enterprise Preview.9 Help

Offline mode

Toolbox Enterprise comes with specific offline mode capabilities that allow you to run the server in a network-isolated environment.

Enable offline mode

In order to start using Toolbox Enterprise offline, there are a few essential steps to follow. First, you need to enable the offline mode functionality in your application.yaml.

Enable offline mode in application.yaml

  1. Set the value of the tbe.offline.enabled property to true:

    tbe: offline: enabled: true
  2. Set the value of the tbe.tbe-ij-plugin.tbe-plugin-repository-type property to TBE:

    tbe: tbe-ij-plugin: tbe-plugin-repository-type: TBE

Download Toolbox Enterprise CLI

Once you've made the required changes to your application.yaml, you can start the Toolbox Enterprise Server and download the Toolbox Enterprise command-line tool (CLI).

  1. In the Web UI, open the Configuration page and go to the Offline mode tab.

    The Offline mode tab
  2. Click Download tbe-cli to start the download. The Toolbox Enterprise CLI tool is packed to a zip archive.

  3. Unpack the tbe-cli-<version> zip file to a desired directory.

Download artifacts

Utilize Toolbox Enterprise CLI to request and download artifacts necessary for bootstrapping Toolbox Enterprise in offline mode. These artifacts, which are typically acquired by Toolbox Enterprise through external network requests, include tool feed metadata (encoded in a Toolbox App-specific format), as well as IDEs, tools (including Toolbox App), and the Toolbox Enterprise Plugin.

Toolbox Enterprise CLI commands

The Toolbox Enterprise CLI tool offers several CLI commands that enable you to acquire all the essential resources.

tbe-cli init

Toolbox Enterprise CLI provides support for the tbe-cli init command to download essential artifacts, generate the file and folder structure, and create mappings between the JetBrains resources and local object storage.

The downloaded artifacts are stored in the current directory under /tbe/offline/:

/tbe /offline /distributions /feeds /plugins offline.json

where:

  • /distributions contains the latest distribution of the Toolbox App for various operating systems (OS).

  • /feeds stores the encoded tool metadata for the Toolbox App.

  • /plugins includes versions of the Toolbox Enterprise Plugin compatible with the latest IDE versions, starting from 2021.2.

    To determine the plugin version and its compatible IDE, you can examine the names of ZIP files. For example, a file named 1.0.4917.5386-ij221.zip indicates that the Toolbox Enterprise Plugin's version is 1.0.4917.5386, and it is compatible with the IDE builds of version 2022.1 as indicated by ij221.

  • offline.json defines mappings of JetBrains resources and object storage paths.

tbe-cli tool list

The tbe-cli tool list command lists JetBrains products, along with their available versions that you can download.

When executing the command, you can apply filters to only list versions of a particular product. The filters follow an NPM-like syntax (for more details, see the NPM documentation.)

Examples:

  • List all available versions of all JetBrains products:

    ./tbe-cli tool list
  • List all build versions of IntelliJ IDEA Ultimate:

    ./tbe-cli tool list IDEA-U
  • List all RubyMine builds that are part of version 2023.1:

    ./tbe-cli tool list "RubyMine@231.*"

tbe-cli tool download

Use the tbe-cli tool download command to download the desired builds of JetBrains products locally.

To download particular builds or products, use filters when executing the command. For this command, Toolbox Enterprise CLI supports filtering by products and product versions. You can also download multiple products using the same command. The only exception is when you need to download both an EAP and stable version simultaneously.

Examples:

  • Download the latest build of IntelliJ IDEA Ultimate for all available OSs:

    ./tbe-cli tool download IDEA-U
  • Download all IntelliJ IDEA Ultimate builds for all available OSs:

    ./tbe-cli tool download IDEA-U --all-builds
  • Download all GoLand builds that are part of version 2023.1:

    ./tbe-cli tool download "GoLand@231.*" --all-builds
  • Download all Rider build versions earlier than 231.9*:

    ./tbe-cli tool download "Rider@<231.9"
  • Download IntelliJ IDEA Ultimate version 231.9161.38 and all build versions of PyCharm Professional later than 2022.3:

    ./tbe-cli tool download "IDEA-U@231.9161.38" "PyCharm-P@>223"

tbe-cli help

The tbe-cli help command provides you with an exhaustive list of commands available in Toolbox Enterprise CLI.

Example: Download artifacts

From this example, you will learn the sequence of commands that you need to execute to download all available builds of IntelliJ IDEA Ultimate 2023.1 and the latest available EAP build of WebStorm.

  1. Launch Toolbox Enterprise CLI in the terminal.

  2. Run initialization by executing:

    tbe-cli init
  3. Run the following command to download all IntelliJ IDEA Ultimate builds that came out as part of the 2023.1 release:

    ./tbe-cli tool download "IDEA-U@231.*" --all-builds
  4. Run the following command to download the latest available EAP build of WebStorm for all OSs:

    ./tbe-cli tool download WebStorm --eap

After executing these commands, you will have all the necessary artifacts downloaded and ready for transferring to your object storage.

Transfer artifacts to the object storage

In offline mode, Toolbox Enterprise uses mappings to identify the paths to products that you can later enable in profiles for particular users. After running the tbe-cli init command in Toolbox Enterprise CLI, the offline.json file appears in the /tbe/offline/ directory. This file contains mappings between JetBrains resources and their corresponding paths in the Toolbox Enterprise object storage. Once you download specific IDE builds locally, Toolbox Enterprise CLI automatically adds them to the mapping list.

To transfer the required artifacts, upload the /tbe/offline/ directory into your object storage. This enables Toolbox Enterprise to locate and provide access to the applications listed in the mapping file.

When you have transferred all the necessary artifacts to your object storage, it is necessary to restart the Toolbox Enterprise Server for the changes to take effect. After that, you can proceed with setting up profiles and uploading the necessary plugins.

Example: Use AWS CLI to transfer artifacts

By executing the commands from this example, you can quickly bootstrap Toolbox Enterprise in offline mode.

Before start, install and configure AWS CLI. You can use this tool to automate binary uploads to the S3-compatible bucket. Additionally, make sure to obtain an automation token to interact with the Toolbox Enterprise API via HTTP(s).

  1. Run initialization by executing:

    tbe-cli init
  2. Download the latest release builds of RubyMine and IntelliJ IDEA Ultimate:

    ./tbe-cli tool download RubyMine IDEA-U
  3. Transfer the downloaded binaries to the S3-bucket using AWS CLI:

    aws s3 sync ./tbe s3://<your-bucket> --endpoint-url http://<url-to-TBE>:9000
  4. Upload the latest binaries of the Toolbox Enterprise Plugin to the Toolbox Enterprise Server:

    for file in ./tbe/plugins/*; do curl -i \ -H 'Authorization: Automation <permanentToken>' \ -F file=@"$file" \ -F channel=Stable \ https://<your-server-url>/api/ij-plugins/upload done;
  5. Start your Toolbox Enterprise Server.

(Advanced) Store artifacts in CDN, Artifactory, Nexus

In case you use some internal binary provider as Artifactory or Nexus in your organization as an alternative to S3-compatible storage, you can configure Toolbox Enterprise to recognize the paths to JetBrains products in your internal binary repository. For this purpose, you'll need to reconfigure the offline.json file and update the list of mappings.

The default structure of the mappings in offline.json is as follows:

{ ... "mappings": [ { "from": "https://download.jetbrains.com/toolbox/feeds/v1/public-feed.feed.xz.signed", "to": "tbe-s3://feeds/public-feed.feed.xz.signed" } { "from": "https://download.jetbrains.com/~urlswitch/idea/ideaIU-2023.1.3-aarch64.dmg", "to": "tbe-s3://offline/distributions/IDEA-U/231.9161.38/mac/arm/ideaIU-2023.1.3-aarch64.dmg" } ... ] }

where:

  • from defines the URL of a JetBrains resource that is typically accessed online.

  • to defines the path to that specific resource in the object storage.

  • tbe-s3:// is a reference to the bucket in the S3-compatible storage used by Toolbox Enterprise.

Update mappings

  1. Upload the contents of the /tbe/offline/ directory to your storage.

  2. Open the offline.json file for editing and replace the default values of the to parameters with the paths to the correct location in your chosen repository. For example:

    { "from": "https://download.jetbrains.com/~urlswitch/idea/ideaIU-2023.1.3-aarch64.dmg", "to": "tbe-s3://offline/distributions/IDEA-U/231.9161.38/mac/arm/ideaIU-2023.1.3-aarch64.dmg" }
    { "from": "https://download.jetbrains.com/~urlswitch/idea/ideaIU-2023.1.3-aarch64.dmg", "to": "<YOUR_STORAGE>/offline/distributions/IDEA-U/231.9161.38/mac/arm/ideaIU-2023.1.3-aarch64.dmg" }
  3. Upload the updated version of offline.json to your storage.

  4. Restart the Toolbox Enterprise Server for the changes to take effect.

Last modified: 16 April 2024