Skip to main content

Using Environment variables

adb and xcrun

nimbus-cli assumes that adb and xcrun are on the PATH. If they are not (or aren't spelled adb or adb.exe), then you can configure them via the ADB_PATH and XCRUN_PATH environment variables.

export ADB_PATH="/Applications/Android Studio.app/platform-tools/bin/adb"
export XCRUN_PATH="$HOME/Library/CustomXcode/bin/xcrun"

Experimenter URLs

Experimenter URLs are used for accessing experiments via the /api/v6 endpoints. They're hardcoded into nimbus-cli for both stage and production versions. However, just occassionally you may want to change these URLs.

e.g. for a local development version of experimenter with localhost:

export NIMBUS_API_URL=https://localhost:8080
export NIMBUS_API_STAGE_URL=https://localhost:3030

Remote Settings URLs

URLs for Remote Settings are also hardcoded into nimbus-cli for both the stage and release versions. Like Experimenter, you may occassionally want to change these URLs.

e.g.

export NIMBUS_URL=https://no-cdn.remote-settings.mozilla.com
export NIMBUS_STAGE_URL=https://no-cdn.stage-remote-settings.mozilla.com

This has been helpful in the past when trying to debug a problem with CDN, or Remote Settings has moved.

Note: while the Remote Settings represents what the live apps see, there is approximately 1 hour latency between changing an experiment on Experimenter and it being synced to Remote Settings.

Manifest Cache Directory

The manifest downloading happens on each invocation of the enroll, validate and test-feature commands.

You can speed this up by setting directory as the cache for downloading the manifests:

export NIMBUS_MANIFEST_CACHE=./caches/fml

However, it should be noted that for some files (especially downloading from main), they change even though the URL remains the same.

For this, you should consider putting into your .profile file something like

export NIMBUS_MANIFEST_CACHE=$HOME/.local/state/fml/$(date -Idate)

so as to only use the cache for one day.

Suppressing update checking

The nimbus-cli periodically checks for a new version. This can be disabled by setting the following environment variable.

export NIMBUS_CLI_SUPPRESS_UPDATE_CHECK="true"

The server host and port

By default, the server that is started with nimbus-cli start-server uses the machine's network interface to derive the external IP address.

Communicating with the server is done by other instances of nimbus-cli by posting to the /post endpoint. The port and host can be configured with the following environment variables.

export NIMBUS_CLI_SERVER_HOST=0.0.0.0
export NIMBUS_CLI_SERVER_PORT=9090