Build solutions in ELMA365 / CI/CD utility for low-code solutions

CI/CD utility for low-code solutions

elma365pm is a command line utility that allows you to work with configuration objects and modules in ELMA365. It can be used to export and unpack a solution, a workspace, or a module from ELMA365 to the file tree and to pack and import them to ELMA365.

This utility is used to apply the principles of the DevOps culture to the development of low-code solutions and perform all stages of the Continuous integration / Continuous delivery pipeline.

Download utility

Use these links to download the latest version of the utility compatible with our public cloud and the latest version of ELMA365 On-Premises:

Utility’s features

To access help, run the following command after downloading the file:

elma365pm --help

The following features are currently available:

elma365pm unpack

Unpack an .e365 export package to the file tree.

elma365pm pack

Pack a directory to an .e365 package.

elma365pm export solution

Export a solution from ELMA365 to a directory in the file tree.

elma365pm export namespace

Export a workspace from ELMA365 to a directory in the file tree.

elma365pm export module

Export a module from ELMA365 to a directory in the file tree.

elma365pm import

Import objects to ELMA365.

elma365pm export configuration

Export an ELMA365 configuration into a file system directory. The command works in ELMA365 On‑Premises 2022.11 and above.

To get detailed instructions on each command, run the following:

elma365pm <command> --help

For example, you can export a solution from ELMA365 to a folder on the hard drive by running the following command:

elma365pm export solution --token=TOKEN --host=https://dev-elma365.myorg --out=my_solution --code=my_solution_code

Please note that if the exported solution has connections to components of another solution, the export function should use the parameter --allow-deps with the value true:

elma365pm export solution --token= TOKEN --host= https://dev-elma365.myorg --out= my_solution --code= my_solution_code --allow-deps=true 

If you do not use the parameter --allow-deps or set to to false, the solutions with the associated components will not be exported.

To pack a solution from the hard drive and import it back to ELMA365:

elma365pm import --token=TOKEN --host=https://dev-elma365.myorg --src=my_solution --version-up

TOKEN here is a web token created for a user with administrator permissions.

File structure of a solution

When you unpack a solution as a group of files using the export command, you will see the following structure in the target folder (in this example, the Memos solution is used):

File structure

The top level consists of service folders, as the system architecture is microservice-based. Each service folder usually has the manifest.json file and two folders, entities and resources. The root also stores the package.json file that includes the main data of the exported solution or workspace.

Generally, there are three types of files in the structure:

  1. Configuration files are .json files or files with no extension (that are actually also .json files). These files include information about apps’ fields and settings, as well as processes, widgets, and modules.
  2. Script files are .ts files that contain the code of scripts from processes, widgets, and modules.

Script files are unpacked only for easy viewing and code review. The content of these files is not included into the package when the solution is imported.

Note that starting from version 2022.11 you can edit unpacked script files and use autocomplete files to make working in code editors more convenient.

  1. Other resource and localization files are usually stored in the resources folder. Solution package localization is going to be considerably reworked, so now localization files are used only once during the import of a package. You can make changes directly to these files. They will be used to form a new package that can be imported with the utility.

 

Found a typo? Highlight the text, press ctrl + enter and notify us