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 |
| 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:
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:
|
| QUERY_BUILDER_FIELDS |
|
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, |
| 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 |
|
| 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 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: |
| DEFAULT_IPV_TAB | none |
The |
| ADDITIONAL_HEAD_HTML | none |
The example: |
| 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: |
| 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 Requirements:
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/.