Salesforce DX

Salesforce DX fully manages the movement of metadata between the local filesystem and scratch organizations. As a result, the features described here do not apply to the Salesforce DX development model. Instead they apply to development against Development Edition and Sandbox organizations. Illuminated Cloud does, however, convey Salesforce DX's collision detection information to the end user, prompting for whether the push or pull operation should be repeated with the force flag enabled.

Flexible metadata subscription

Illuminated Cloud provides multiple options for selecting the metadata that should be deployed and retrieved for each module including all metadata in the organization or selected package, the metadata defined in a provided package.xml file, or a user-specified subset of the metadata in the organization.

Metadata content selection

NOTE: The All/Package option should only be used when full organization retrieval is required. It should not be used for ongoing development purposes. Instead a discrete metadata Package.xml or Selected subscription should be created and maintained.

Powerful tools for metadata deployment, retrieval, and removal

Illuminated Cloud can react to local filesystem operations such as save, rename, move, and delete and automatically update the organization accordingly. However, it also includes powerful and flexible tools for reconciling and managing your metadata in bulk.

Illuminated Cloud's bulk deployment, retrieval, and removal dialog allows the user to see which metadata is only available locally, in the organization, or in both, and which metadata is and is not part of the current metadata subscription. Convenient filters are provided for standard behaviors, but the user is also welcome to create a completely custom metadata selection.

Powerful filtering capabilities for metadata deployment, retrieval, and removal

Metadata retrieval and reconciliation

Illuminated Cloud simplifies the process of merging and reconciling metadata in the local filesystem with metadata in the organization. When retrieving metadata from the organization, three options are available:
  • Retrieve Metadata - Allows the user to select the exact subset of metadata which will be retrieved from the organization into the local project, directly replacing any existing version of the same metadata.
    • Use this operation when you want to retrieve new metadata from the server and aren't concerned with potential conflicts.
  • Retrieve Metadata for Merge - Like Retrieve Metadata, but the retrieved files are placed in a temporary directory and a comparison tool is opened to allow the user to review and merge changes into the local project.
    • Use this operation when you want to retrieve new metadata from the server and/or are concerned about potential conflicts.
  • Refresh Metadata - Updates the local project metadata with the latest version of the same metadata from the organization. Note that this option cannot be used to retrieve metadata which does not already exist locally, but it can be considerably faster than a Retrieve Metadata operation because it avoids the need to enumerate all organization metadata.
    • Use this operation when you want the latest version of the metadata you already have locally and aren't concerned about potential conflicts.
As described, the Retrieve Metadata for Merge operation shows a comparison tool for reconciling and merging the retrieved metadata and the local project metadata. By default IntelliJ IDEA or WebStorm's comparison tools are used. However, it is also possible to configure an external comparison tool such as Beyond Compare or Araxis Merge for the comparison.

Retrieved metadata comparison

Substitution rules

Illuminated Cloud can apply user-defined substitution rules during metadata deployment and retrieval to accommodate for differences between production and development environments or individual developer organizations.

For example, the following deployment and retrieval substitution rules comment out @Deprecated annotations in all Apex classes on deployment and restore them on retrieval:

Deployment and retrieval substitution rules

Efficient and flexible deployment options

Illuminated Cloud supports multiple options for deployment of metadata into the organization:
  • Deploy-on-Save - Illuminated Cloud automatically deploys the current file when it is saved to the local filesystem.
    • Note that for this option to work reliably, you must enable Override Save All action option. Otherwise the IDE will ignore saves when the IDE buffer contents and the filesystem contents are identical.
  • Force Save - If Override Save All action is disabled, the Force Save action allows you to force deployment of the current file on-demand. If the Override Save All action is enabled this action should not be needed.
  • Deploy Modified Metadata - Illuminated Cloud compares local last modified timestamps with those from the organization to determine which metadata is out-of-date, either modified or created since the last successful deployment operation, and deploys only that subset of metadata.
    • Note that this option is not available when Shared Logins conflict detection is enabled because the same timestamp comparisons are used for that type of conflict detection.
  • Deploy All Metadata - Illuminated Cloud deploys all selected metadata to the organization even if it has not been modified since the last successful deployment.
By default Illuminated Cloud attempts to use the most efficient API for deployment based on the included metadata. The Tooling API is used in the following situations:
  • The payload includes only Apex classes and triggers and/or Visualforce pages and components.
  • The payload includes exactly one static resource.
  • The payload includes exactly one Lightning bundle file, e.g., the markup file or the JavaScript controller/helper/renderer or the CSS, etc.
Otherwise the Metadata API is used. This behavior can be configured by the user based on preferences or to circumvent divergent behavior between these two APIs.

Validation and deployment settings

Conflict detection

Conflict detection can be optionally enabled for connections to organizations in which multiple users are collaborating on the same metadata. Two options are available for how conflicts are detected based on the way that users log into the shared organization:
  • Dedicated Logins - Appropriate when each user has distinct login credentials in the shared organization. A conflict is detected when a metadata file was last modified in the organization by a different user than the one configured for the deployment connection since Illuminated Cloud's last successful deployment or retrieval of that metadata file.
  • Shared Logins - Appropriate when users use the same login credentials in the shared organization. A conflict is detected when a metadata file was last modified more in the organization more recently than Illuminated Cloud's last successful deployment or retrieval of that metadata file.
Conflict detection configuration

When conflicts are detected, the user can decide which action should be taken:
  • Overwrite - The server version of the conflicting metadata is overwritten by the local version.
  • Retrieve for Merge - The server version of the conflicting metadata is retrieved and displayed in the comparison tool for merging with the local version. The next deployment of the conflicting metadata will succeed without conflicts.
  • Cancel - No changes are made. The next deployment of the conflicting metadata will result in the same conflict.
Deployment collision detection

Integrated metadata management status and error reporting

Errors reported by the metadata deployment, retrieval, or removal operation are added to the Illuminated Cloud Problems view and linked to the offending files for quick resolution.

Deployment errors

Full operation status is available in the IDE's Messages view.

Metadata deployment, retrieval, and removal status in the Messages view