IPLM Web configuration

IPLM Web configuration settings are available in the /etc/mdx/piweb.conf file. 

Overview

IPLM Web configuration file is available at /etc/mdx/piweb.conf. The configuration variables for IPLM Web server are listed below.

IPLM Web configuration file settings

Setting Default Description

PIWEB_USER

root

The user that runs IPLM Web server process. Default value is 'root'. This user must have sufficient privileges to run IPLM Web service.

PIWEB_PORT

80

Port for running IPLM Web service. Default value is port 80. Change this if port 80 is not usable in your local environment.

PIWEB_LOG_LEVEL

warn

Log level for IPLM Web service. Default value is warn, additional option is error.

PIWEB_HOST 0.0.0.0

Set to the IP address or Hostname on which the IPLM Web server is running. This variable is used internally by the application. When IPLM Web is configured behind a proxy, the value should still be the IP address or Hostname on which the IPLM Web Server is running, not the proxy.

PIWEB_HELP_URI none

Set these values to remove the need for users to enter credentials when viewing Help topics.

Specify a URL segment that consists of:

  • IPLM’s Help system host name (i.e. help.perforce.com),

  • Prefix the user id and password assigned to you that enables access to IPLM Help.

Example:

PIWEB_HELP_URI=https://<userid:password@>help.perforce.com

Note:

Setting this does expose the userid/password to any IPLM user in your environment.

PIWEB_WE_EXTERNAL_LIBS_WHITELIST none

Defines a list of external javascript libraries allowed to be referenced to in the script tag, or a list of regular expressions that match the allowed URLs. The match must be exact or matching with the given regular expression.

It is recommended to add only references to the generic latest LTS of a library, rather than referencing a specific version.

Consult your security team for approval before implementing this configuration.

PIFORCE_URI none

Set to the machine name that the IPLM PiForce server is running on with the IPLM PiForce port, such as <piforceserver>:<piforceport>.

The IPLM PiForce port is set in piforce.yml under server: applicationConnectors: port:

# HTTP server
server:
    applicationConnectors:
        - type: http
          port: 8098
PIAPI_URI http://localhost:8080 Set to the IP address or hostname on which the IPLM Server is being run. This setting is used by IPLM Web application to interact with IPLM Server API. The value can be set to 'localhost' if PiServer and IPLM Web are running on the same server. If PiServer is operating on another server, the value should be set to a routable IP/FQDN of IPLM Server installation.
PIAPI_DOCS_URI http://localhost:8080/public-api-doc.html

URL for Pi API Docs.

The host portion should be set to a routable IP/FQDN for IPLM Server installation. The docs are available on port 8080 under URI /public-api-doc.html. The application includes a link to Public API documentation, which is provided by this setting. Setting has syntax: http://<ip_or_host>:8080/public-api-doc.html

PIAPI_TOKEN_EXPIRATION 30 Specify the number of days after which the user's authentication token to PiServer expires. The value can also be the string "SESSION" to indicate the token should expire when the browser is closed.
FOOTER <b>Perforce IPLM</b> <a href='https://help.perforce.com/methodics/' target='_blank'>Docs</a> HTML snippet for a custom footer. 
HEADER

none

This is an HTML snippet for a custom header link to local hosted documentation:

HEADER=<a href="#/home" target="_self" class="navbar-brand ml-4"><img title="Go to Home" src="/media/img/logo-helix-iplm-black.png" alt="Helix IPLM v2023.4"></a> <a href=https://www.perforce.com/products/methodics-iplm target="_blank">IPLM Documentation</a>

QUERY_BUILDER_FIELDS
'fqn',
'ip_created_date',
'ipv_created_date',
'ip_author',
'ipv_author',
'ip_description',
'ip_dm_type',
'ip_lines',
'ip_lib',
'ipv_alias',
'labels',
'proj_prop',

Specify list of searchable fields in Advanced search interface. Unspecified fields are hidden from selectable fields menu.

Possible values:

fqn,        
ip_created_date,        
ipv_created_date,        
ip_author,        
ipv_author,        
ip_description,        
ip_dm_type,        
ip_lines,        
ip_lib,        
ipv_alias,        
labels,        
proj_prop,
<custom property name>
QUERY_BUILDER_FIELDS_FEATURED none

Specify list of featured searchable fields in Advanced search interface. Featured fields are displayed more prominently above the Select fields menu. Possible values are same as QUERY_BUILDER_FIELDS

NODE_TLS_REJECT_UNAUTHORIZED none If the value of NODE_TLS_REJECT_UNAUTHORIZED is set to 0,
certificate validation is disabled for TLS connections.
NODE_EXTRA_CA_CERTS none The value of NODE_EXTRA_CA_CERTS should be set to the path to a file that contains trusted certificates in PEM format. When set, the well known "root" CAs (like VeriSign) will be extended with the extra certificates in file.
IP_CATALOG_SEARCH_ENGINE enhanced

enhanced or <blank>: The IP catalog search will use the global search engine. See more at IP catalog global search and syntax.

query: Use the legacy query search method. In query mode, you can also limit the columns that are searched by modifying IP_CATALOG_SEARCH_COLUMNS.

IP_CATALOG_SEARCH_COLUMNS if not set, search all displayed columns in the IP catalog

To use these settings, IP_CATALOG_SEARCH_ENGINE must be set to query. Specify the columns that should be searched by the search field available from the IP catalog. If not set (default) the currently displayed columns will be searched. If set, only the specified columns will be searched, whether they are currently displayed or hidden.

Limiting the columns that are searched can provide more consistent search results and search performance.

Built in fields can be specified, as well as defined property names.

example: IP_CATALOG_SEARCH_COLUMNS=name,library,dm_type,description, property1, property2

DEFAULT_IP_TAB

none

Specify a default view (tab) for IP page. Available options: appTabDetails, appTabHierarchyAndContents, appTabDashboard, appTabUsage, appTabPlanningBom, appTabParents, appTabLineGraph

DEFAULT_IPV_TAB none

The DEFAULT_IPV_TAB setting in the IPLM Web configuration file has been removed. Use the DEFAULT_IP_TAB setting when specifying a default view for the IP page.

ADDITIONAL_HEAD_HTML none

The ADDITIONAL_HEAD_HTML environment variable allows you to inject custom HTML code into the <head> section of your web application. This can be useful for including external stylesheets, meta tags, analytics scripts, or other resources that need to be loaded early in the page lifecycle.

example: ADDITIONAL_HEAD_HTML="<link rel='stylesheet' href='https://example.com/styles.css'>"

ADDITIONAL_BODY_HTML none

The ADDITIONAL_BODY_HTML environment variable allows you to inject custom HTML code at the end of the <body> section of your web application. This is typically used for including JavaScript files, analytics tracking scripts, or other elements that should load after the main content of the page.

example: ADDITIONAL_BODY_HTML="<script src='https://example.com/script.js'></script>"

DISABLE_COOKIE_SECURE false

By default, IPLM Web has enabled secure cookies in HTTP requests and responses so cookies are only transmitted over a secure HTTPS connection.

If DISABLE_COOKIE_SECURE is set to false and IPLM Web is running on http, login will fail. To communicate over an unencrypted channel, set DISABLE_COOKIE_SECURE to true.
SESSION_EXPIRATION_TIME 30 Set the session timeout in minutes. Default is 30 minutes. To disable session expiration, set the time to 0.
SSO_URL none

Set the URL of the authentication service that provides Single Sign-On (SSO) capability from IPLM Web.

This method is depreciated for IPLM Web 2026.1 and beyond. Follow instructions using the Public API to configure SSO.
ENABLE_IP_TITLE_DASHBOARD none

The ENABLE_IP_TITLE_DASHBOARD setting enables you to display or hide the IP page custom title.

Requirements:

  • Set this value to true

  • One or more widgets are attached to the IP and/or its IPVs with the widget's dashboard property set to ip-title

Check out Configure custom title for IP page for more information.

MCP_TOOL_TIMEOUT_MS 20000 Per-tool-call timeout in milliseconds.
MCP_MAX_TOOL_CALLS_PER_TURN 20 Maximum number of tool calls allowed in a single user turn.
MCP_REQUEST_TIMEOUT_MS 90000 Wall-clock timeout for a full request turn, in milliseconds.
MCP_MAX_HISTORY_MESSAGES 100 Maximum number of conversation history messages retained.
MCP_MAX_MESSAGE_LENGTH 4000 Maximum number of characters allowed per user message.
MCP_MAX_RETRIES 2 Number of retry attempts allowed per failed tool call.

AI Assistant configuration - LLM provider and MCP tool server configuration

Setting Default Description
ENABLE_AI_FEATURES false Set to 'true' to enable the AI assistant and MCP endpoints. When 'false' (default), the toolbar button opens a static help panel with documentation links instead.
MCP_URL   URL of the primary (IPLM) MCP tool server.
MCP_RAG_URL   URL of the RAG MCP tool server (optional second server). At least one of MCP_URL or MCP_RAG_URL must be set when AI is enabled; if one is unreachable the server starts in a degraded mode using whichever tools it can discover.
{PROVIDER}_LLM_MODELS   Comma-separated list of models for that provider. Only the first entry is used in this release. Providers are evaluated in order: ollama → anthropic → openai. The first fully-configured provider is selected.
OLLAMA_BASE_URL   Base URL of the Ollama server.
ANTHROPIC_BASE_URL   Anthropic API base URL.
OPENAI_BASE_URL   OpenAI API base URL.
OLLAMA_NUM_CTX 8192 Ollama only. Context window (num_ctx) the model loads with. Ollama's small default can be filled by the MCP system prompt alone, leaving no room for a reply. Raise if Ollama replies come back empty. Ignored by anthropic/openai. (default: 8192)

AI Assistant panel - runtime limits (optional)

Setting Default Description
MCP_TOOL_TIMEOUT_MS 20000

Per-tool-call timeout in milliseconds. Increase for slow IPLM deployments (large Neo4j datasets, geofenced sites) where complex queries legitimately exceed the default.

MCP_MAX_TOOL_CALLS_PER_TURN 20

Maximum tool calls the agent may issue in one user turn. Increase when compound queries need to fan out further.

MCP_REQUEST_TIMEOUT_MS 90000

Wall-clock cap in milliseconds for a full chat turn (LLM generation + every tool call combined). Must be >= MCP_TOOL_TIMEOUT_MS — a smaller value is a startup config error. For headroom, also keep it above MCP_TOOL_TIMEOUT_MS * (MCP_MAX_RETRIES + 1) so a turn is not cut off mid-retry (advisory, not enforced).

MCP_MAX_HISTORY_MESSAGES 100

Maximum conversation history messages retained per chat session. Lower this to reduce per-turn token cost on paid providers. (default: 100)

MCP_MAX_MESSAGE_LENGTH 4000

Maximum characters in a single user message (server-side guardrail).

MCP_MAX_RETRIES 2

Retry budget per failed tool call (additional attempts after the initial call).

IPLM Web log file

The IPLM Web log files are available under /var/run/piweb/logs/.