Code Security

The code security panel in the admin console allows system administrators to better control the "code" or "code-like" elements that can be injected and run from the platform. While coding capabilities can be used to significantly amp-up the power of the platform, they also present more complex security scenarios. Adjusting the security settings for coding elements works in tandem with server-side and client-side security options.

Settings

Code Validation

The code validation option provides a mechanism to review submitted code elements added to the platform for security issues before it is saved and subsequently run.

  • The basic sanitize option validates HTML content by removing potentially unsafe HTML elements and attributes and comparing the sanitized result with the original content. If any changes are required to make the HTML safe, the validation fails. This covers Custom Workflows only.
  • There is an option to have the code reviewed by AI if an AI agent has been added to the platform. This is strongly recommended as it covers JavaScript and HTML for both Custom Visuals and Custom Workflows.

Dynamic Function Restrictions

There are numerous locations through the platform for users to write their own dynamic formulations and logic. This includes Formulas, Lists, KPIs, advanced Actions, and cross-modeling logic. The restriction mechanism allows administrators to limit the breadth of such formulations that can be added by users:

  • Whitelist: Only PQL expressions and a limited set of basic Java features are permitted. Any code outside the approved whitelist is rejected.
  • Blacklist: Most Java code is allowed, except for specific APIs and constructs that are considered potentially unsafe. Restricted code is blocked from execution.
  • Unlimited: No restrictions are applied. All Java code is permitted and can be executed without limitation.

Python Execution

The option to run Python scripts in a sandbox provides better security to ensure end users cannot gain unauthorized access to host systems.

This mechanism is currently only available in Linux deployments.

Data Flow Controls

The following items are available in Model master flow and data flows:

  • Master Flow Execution - Disables the ability to run command line processes from the master flow.
  • Scripting Tools - Disables the ability to run Python and R scripting.
  • Shared File Imports - Disables the option to use shared file locations as data sources.
  • URL File Imports - Disables the option to use URL file locations as data sources.

Note: Selecting these options hides the related functionality in Model. Items created before an option was disabled remain available, but running the associated flow generates errors.