SFDMU GUI Application.
👉 The Application GitHub repository can be found here: SFDMU GUI App Application Repository
Table of Contents
- Overview
- When is SFDMU GUI Application Useful?
- Supported OS
- Installation of the Release Version
- Installation of the Source Code
- Prerequisites
- Installation on Windows
- Step 1: Complete the following prerequisites:
- Step 2: Open the Command Prompt and install
node-gyp
globally: - Step 3: Clone the repository:
- Step 4: Navigate to the project directory:
- Step 5: Install project dependencies:
- Step 6: Optionally, build the project (omit if you have downloaded a pre-compiled version):
- Step 7: Run the application without debugging:
- Installation on macOS and Linux
- Upgrading
- Debugging
- Application Configuration
- Translation
- Theming
- Logging
- Backup
- Additional Notes
Overview ⇧
The SFDMU GUI Application assists in creating SFDMU plugin configuration file (export.json
) through its simple and intuitive UI.
When is SFDMU GUI Application Useful? ⇧
Beyond the basic setup, the export.json
file contains numerous advanced properties useful for creating and executing intricate migration jobs. Consequently, in some situations, the JSON file may become lengthy and challenging to manually edit using standard Notepad.
With this Desktop Application, there’s no need for Notepad and Console. All tasks are performed visually, significantly simplifying migration job management. Effortlessly add or remove organization connections, configure SObjects and fields, and run the Plugin directly from the application.
Supported OS ⇧
The Application is built using the ElectronJS framework.
- All major OS (Win, Mac OS, Linux) are supported.
- For Windows, it requires Windows 10 or later.
Installation of the Release Version ⇧
Installing and running the release version of the SFDMU GUI App is a straightforward process.
This guide provides a step-by-step explanation of how to download and install the SFDMU GUI App from GitHub, suitable for users with minimal technical skills.
General Information ⇧
The SFDMU GUI App releases are generated using Electron Forge, with different makers tailored for each operating system:
- For Windows, releases are created using Squirrel.Windows.
- For macOS, releases are packaged using Zip.
- For Linux, packages are available in deb and RPM formats.
- Only the x64 CPU architecture is supported.
Prerequisites ⇧
Before installing and using the SFDMU GUI App, ensure you have installed the SF CLI.
Installation of Latest Release ⇧
The latest release can be found in the release branch of the SFDMU GUI App GitHub repository.
You can find the MD5 hash sums in the respective .md5
files located in the same repository folder as the setup file.
Step 1. Download ⇧
Download the latest release of the SFDMU GUI App for your operating system:
- macOS: Access the
zip
installation file here: macOS x64 setup. - Linux (Debian-based systems): Access the
deb
installation file here: Debian x64 setup. - Linux (RPM-based systems): Access the
rpm
installation file here: RPM x64 setup. - Windows: Access the
zip
file containing the setup executable here: Windows x64 setup.
Step 2. Install ⇧
- Click on the file link provided for your operating system to navigate to the download page.
- Once on the page, use the download link located at the top right to download the file.
- Follow the steps specific to your operating system for installation the application as detailed in Step 4 below.
Installation of Specific Release ⇧
Step 1: Select the Release ⇧
- Go to the SFDMU GUI App Repository on GitHub and locate the
Releases
link in the sidebar. - Click on
Releases
to view all available versions of the SFDMU GUI App. The latest version always appears at the top of the list. - Select the release you want to install by clicking on the corresponding link to navigate to its page.
Step 2: Select the Release Tag ⇧
- On the release page, click on the version's tag (icon resembles a price tag) located at the top of the page. This action opens a page listing all files associated with that release.
Step 3: Download the Setup Files ⇧
In the code files view navigate to the specific subdirectories under dist/
and click Download File
for the setup file appropriate for your OS:
- macOS: Navigate to
dist/darwin/x64/
and download the file, e.g.,sfdmu-gui-app-darwin-x64-X.X.X.zip
. - Linux (Debian-based systems): Go to
dist/deb/x64/
and downloadsfdmu-gui-app_X.X.X_amd64.deb
. - Linux (RPM-based systems): Go to
dist/rpm/x64/
and downloadSFDMU-GUI-App-X.X.X-1.x86_64.rpm
. - Windows: Go to
dist/windows/x64/
and download the zip package, e.g.,sfdmu-gui-app-X.X.X Setup.zip
.
Step 4: Install the Application ⇧
- macOS:
- Open your
Downloads
folder and find the.zip
file. - Double-click to extract it, revealing the
sfdmu-gui-app.app
file. - Drag the application to your
Applications
folder.
- Linux (Debian-based systems):
- Open a terminal.
- Navigate to the
Downloads
directory:cd ~/Downloads
- Install the package:
sudo dpkg -i sfdmu-gui-app_X.X.X_amd64.deb
- Linux (RPM-based systems):
- Open a terminal.
- Navigate to the
Downloads
directory:cd ~/Downloads
- Install the package:
sudo rpm -i SFDMU-GUI-App-X.X.X-1.x86_64.rpm
- Windows:
- Navigate to the folder where the
.zip
file was downloaded. - Extract the contents.
- Run the file named
sfdmu-gui-app-X.X.X Setup.exe
. The installer shows a loader with "SFDMU GUI App installation is in progress...". - After installation, the app will automatically launch and create a new shortcut on your desktop and in the Start menu, typically under the folder "Salesforce.com, inc".
Running the Installed Application ⇧
macOS:
Open a Terminal window.
Execute the following command to run the application:
/Applications/sfdmu-gui-app.app/Contents/MacOS/sfdmu-gui-app
Linux: For both Debian and RPM-based systems, search for SFDMU GUI App in your application menu and launch it.
Windows: After installation, the app typically starts automatically. For subsequent launches, find the SFDMU GUI App shortcut on your desktop or search for it in the Start menu under "Salesforce.com, inc".
Uninstallation and Upgrades ⇧
Uninstalling the App ⇧
- macOS: Drag the app from the
Applications
folder to the Trash. - Linux (Debian-based): Use the command
sudo apt-get remove sfdmu-gui-app
. - Linux (RPM-based): Use the command
sudo rpm -e SFDMU-GUI-App
. - Windows: Go to
Control Panel
>Uninstall a program
. Locate the SFDMU GUI App, right-click on it, and then selectUninstall
.
Upgrading the App ⇧
When a new version is available, repeat the download and installation steps.
For Linux and Windows, the new installation will overwrite the previous version. For macOS, you may first need to delete the previous version from the Applications
folder before installing the new one.
Installation of the Source Code ⇧
This guide details how to install the application's source code on various operating systems.
It is intended for developers who wish to modify the original source code or prefer to run the application directly from the source, bypassing the release setup process.
Prerequisites ⇧
Ensure you have installed Node.Js, Git and SF CLI before using the source code of the SFDMU GUI App.
Installation on Windows ⇧
For Windows machines, installing Electron necessitates specific components like Python and Visual C++.
Step 1: Complete the following prerequisites: ⇧
Visual Studio Community: Install only the Visual C++ Desktop Development components from the free version of Visual Studio Community Edition, if not already installed. Visual Studio Community Edition
Alternatively, use npm to install
windows-build-tools
:npm install --global windows-build-tools
Python: Download and install the latest version of Python, ensuring
"Add Python to PATH"
is selected during the installation process. Download Python
Step 2: Open the Command Prompt and install node-gyp
globally:
⇧
npm install --global node-gyp
Step 3: Clone the repository: ⇧
git clone https://github.com/forcedotcom/SFDX-Data-Move-Utility-Desktop-App.git
Step 4: Navigate to the project directory: ⇧
cd SFDX-Data-Move-Utility-Desktop-App
Step 5: Install project dependencies: ⇧
npm install
Step 6: Optionally, build the project (omit if you have downloaded a pre-compiled version): ⇧
npm run build
Step 7: Run the application without debugging: ⇧
npm start
Notes:
Installation of the source code for Windows can be problematic due to version compatibility issues between VC++ build tools, Python, and Electron. If you encounter issues, please consult relevant forums for solutions.
Installation on macOS and Linux ⇧
Installation on macOS and Linux is straightforward and generally executes without issues.
Step 1. Clone the repository: ⇧
git clone https://github.com/forcedotcom/SFDX-Data-Move-Utility-Desktop-App.git
Step 2. Navigate to the project directory: ⇧
cd SFDX-Data-Move-Utility-Desktop-App
Step 3. Install project dependencies: ⇧
npm install
Step 4. Optionally, build the project (omit if you have downloaded a pre-compiled version): ⇧
npm run build
Step 5. Run the application: ⇧
npm start
Upgrading ⇧
Upgrading the application is streamlined once the initial installation is complete.
Step 1. Navigate to the project directory where the repository is cloned. ⇧
Step 2. Pull the latest changes: ⇧
git pull
Step 3. Install any updated project dependencies: ⇧
npm install
Step 4. Build the project: ⇧
npm run build
Step 5. Run the application: ⇧
npm start
Debugging ⇧
To debug the source code, it's necessary to have the entire source code cloned and installed locally.
Start the Debug Session ⇧
To start debugging the application, ensure the application's source code is installed as previously described, then execute the following command in a terminal window:
npm run debug
This command compiles the source code and initiates the debug session.
Notes:
- You can set breakpoints directly in the source code to debug the Electron host context.
- To debug the browser context code, use the client-side debugger available in the Developer Tools of the Chromium browser. These tools will be displayed alongside the main application view when the application is running in debug mode.
Application Configuration ⇧
The application uses the app-config.json
file, which is located in the standard User App Data folder based on the operating system (e.g., /home/<Username>/.config
, C:\Users\<Username>\AppData\Roaming
, /Users/<Username>/Library/Application Support
). This file is stored under the "sfdmu-gui-app" directory.
The app-config.json
file is automatically generated when the application is first launched on a device. After its creation, the file remains unchanged unless manually edited or modified through the application interface to meet specific requirements.Here's a polished version of your text:
Here's a polished version of your text:
Setting Up the Configuration ⇧
The application configuration can be easily modified through the application interface. Navigate to File -> Preferences in the main application menu to make changes.
Configuration File Description ⇧
The configuration file, app-config.json
, contains several settings to customize the behavior of an application. Changes to this file will take effect after the application is restarted.
Configuration File Properties ⇧
Below is the default app-config.json
file and detailed description of each property in the JSON configuration:
{
"dataRoot": "sfdmu-gui-app",
"appRoot": "",
"databaseFilename": "db.json",
"locales": [
"en", "he", "ru", "es", "fr", "de", "it", "ar"
],
"defaultLocale": "en",
"fallbackLocale": "en",
"backupOnApplicationStart": true,
"backupEveryNMinutes": 5,
"useSfCliCommands": true,
"theme": "cosmo"
}
dataRoot ⇧
Specifies the name of the folder intended to hold all application data such as the database file, configuration files, migration data, etc. Default value is "sfdmu-gui-app"
.
appRoot ⇧
Indicates the full path to the dataRoot
folder. If left blank, the application defaults to using the standard user Documents directory. Example paths are shown in the configuration for both specified and default settings.
databaseFilename ⇧
Defines the filename of the database file. This allows for the maintenance of multiple databases with different names within the same directory. The default filename is "db.json"
.
locales ⇧
Lists the available languages for the Application UI. Languages added here will be available from the next start of the application.
defaultLocale ⇧
Sets the default application locale upon the first start of the Application. Default is "en"
.
fallbackLocale ⇧
Specifies a fallback language to be used when certain texts are not translated in the current language. Default is "en"
.
backupOnApplicationStart ⇧
Enables automatic backup of the database file each time the Application starts. The backup is always created in the db_backup
folder relative to the dataRoot
.
backupEveryNMinutes ⇧
If greater than 0, this setting enables automatic backup of the database file at specified intervals, in minutes. A setting of 0
disables this feature. The backup files are named in the format: db-backup-yyyy-MM-dd-HH-mm-ss.json
.
useSfCliCommands ⇧
Allows the application to use the latest @salesforce/cli
commands instead of the deprecated sfdx-cli
commands for running Salesforce DX from the command line. This setting is particularly useful for users transitioning to new CLI tools.
theme ⇧
Specifies the name of the active UI theme. To view available themes, users can list the directories within the ./themes
folder. Default theme set is "cosmo"
.
Translation ⇧
The Application UI can easily be translated into any language.
Currently, the Application is shipped with translations in English, German, Spanish, French, Hebrew, Arabic, Russian, and Italian.
Translation is done in the standard i18n format using JSON files located in the ./i18n
directory.
To translate the Application:
- Add a new file named
[locale].json
to the./i18n
directory, for example, to translate to Japanese, add./i18n/ja.json
. - Translate all keys from the English version, which is the base language for the Application.
After the file is ready, add a new value to the array of locales
in app-config.json
file:
"locales": [
"en",
"he",
"ru",
"es",
"fr",
"de",
"it",
"ar",
"ja" // <- translated to Japanese
],
Notes:
You can add or change translation only for the Application running as a source code.
If you want to improve the existing translation or provide translation to other languages, please submit a PR. Your support is highly appreciated! :)
Theming ⇧
You can easily switch between UI themes, allowing you to customize the application's look and feel to your preference.
The application comes with 26 built-in themes.
To switch between themes, simply set the theme
property in the app-config.json
file to your desired UI theme or use the application interface to select the theme.
To find the available theme names, open the ./themes
folder (when running from the source code) or choose the preferred theme from the list in the application interface.
The theme will be applied after the next application restart.
Logging ⇧
- The application provides comprehensive logs for all events, actions, and issues.
- Logs are stored in the
log
subdirectory located at [appRoot]/[dataRoot]/logs. For example, based on the default configuration inapp-config.json
, the log files are located in the[Documents Folder]/sfdmu-gui-app/logs/
. - The format for log filenames is: yyyy-MM-dd-HH.log.
- Logs are automatically rotated and archived into zip files every two weeks to conserve disk space.
- The log file includes detailed information on all application events, which is essential for debugging. When reporting issues about the GUI App, please attach these logs as they help in identifying and resolving bugs. Before submitting, ensure that all sensitive information has been removed from the log files.
Backup ⇧
- The Application conducts automatic database file backups. Backups are performed silently in the background and are consistently stored in the
db_backup
folder relative to thedataRoot
folder. - Adjust
backupEveryNMinutes
inapp-config.json
to set the backup interval. A setting of 5 triggers backups every 5 minutes. - Backups are saved in the format
db-backup-yyyy-MM-dd-HH-mm-ss.json
. - Set
backupEveryNMinutes
to 0 to disable automatic backups. - Enable
backupOnApplicationStart
for backups at each application start.
Additional Notes ⇧
- The final selection of the data source and target, including the option to use CSV files as either, should not be made during the Connection step but rather during the Preview step. Simply click on the
"Command Line Setup"
tab on the Preview page and use the dropdown selectors to choose your desired data source and target.
Contrastingly, the Connection step allows you to select only Salesforce orgs, enabling you to set up theexport.json
configuration based on the metadata available in these organizations. - All query settings for the object, including
operation
(e.g., Insert, Update, Upsert, etc.) andexternalId
properties, can be configured under theQueries and Filters
tab when the object is selected during the Configuration step. - Since the release version of the SFDMU GUI App is stored in the Git repository using LFS, simply downloading the
.zip
ortar.gz
files attached to the release is insufficient.
Instead, you must download the appropriate setup file directly from the tagged codebase as described above.