When the ProcessMaker instance calls a ProcessMaker Script to run, the ProcessMaker Script Executor for that programming language creates a Docker container corresponding with that programming language, runs the Script, and then destroys the Docker container. This ensures that any malicious script that anyone in your organization might inadvertently introduce to ProcessMaker does not affect the ProcessMaker instance or its hosting environment: Docker containers cannot access them. Furthermore, Docker containers cannot listen for inbound connections; therefore, a Docker container cannot be accessed externally.
When the ProcessMaker Script Executor creates a Docker container to run a ProcessMaker Script, required libraries are already built in that Docker container. The ProcessMaker Script Executor for each supported programming language contains the ProcessMaker Software Development Kit (SDK) that supports extensibility to provide programmatic interaction with ProcessMaker.
ProcessMaker Script Executors not only manage Docker containers to run ProcessMaker Scripts. Savvy ProcessMaker Administrators may add Docker commands and customized code to new or default ProcessMaker Script Executors that adds custom packages that allow Scripts to call sanctioned third-party Application Program Interfaces (APIs) and SDKs. ProcessMaker designers who develop ProcessMaker Scripts may make calls and requests to those APIs and SDKs via customized Script Executors. Since the ProcessMaker Administrator must provide the Docker commands and configuration to a customized ProcessMaker Script Executor, that Administrator controls access to sanctioned APIs and SDKs to those ProcessMaker designers to ensure security in that ProcessMaker instance.
See an example in the following video how to use a ProcessMaker Script Executor that includes a Docker RUN command to package the Google Client class provided by Google into that Script Executor, thereby allowing ProcessMaker Scripts using that Script Executor to successfully call the Google API.
Intended audience: ProcessMaker Administrators, software developers, and coding engineers
Viewing time: 3 minutes; contains narration
ProcessMaker supports the following programming languages in the open-source edition:
ProcessMaker Enterprise edition supports the following additional programming languages:
C# (requires the C# package in your ProcessMaker instance)
Java (requires the Java package in your ProcessMaker instance)
Python (requires the Python package in your ProcessMaker instance)
R (requires the R package in your ProcessMaker instance)