MxScript
Accelerate your Maximo workflow with integrated tools for automation scripts, application design, environment management, and MAS administrative utilities.
Features
- Can upload / download / compare / delete scripts, application xmls, condition expressions, and system properties with the currently selected environment
- Multiple Environment Support
- Add / edit / delete environments using UI
- Can switch between environment using UI
- Provides a treeview for environments
- System Properties Manager (webview grid)
- Browse / search / filter / sort every system property in the active environment
- Inline edit values, with modified/new/deleted state tinting and a per-row dot
- Compare against another environment — pull individual values or copy all differences in one click
- Push selected or all changes back to the server with an optimistic refresh (no full refetch)
- Export to CSV / JSON / YAML
- Database Relations Manager (webview grid)
- Browse / add / edit / delete relations from
MXL_CFGDBREL (configurable per environment)
- Cross-environment compare with pull-from-compare, "differences only" filter, and a diff count
- Validation banner blocks pushes with missing identity fields or duplicate
parent::name keys
- Paste TSV/CSV to bulk-add rows; duplicate-row action with smart
_COPY naming
- Open the parent object directly in the Maximo Web UI
- MaxMessages Manager (webview grid)
- Browse, add, edit, delete, compare, and export Maximo messages
- Automatic MSGID generation with prefix/suffix lookups and editable overrides
- Display method lookup and button OPTIONS editing
- Automation Scripts Manager (webview grid)
- Browse every automation script in the environment, with its launch points, variables and source in one request
- Edit a script's launch points and variables in the expanded row — the changes ride along with the script's push
- The launch point's object, attribute, event and binding values come from Maximo lookups, so they are always the server's own values
- Ability to fetch logs from currently selected or any other Maximo Manage environment
- Can compare with currently selected or any other Maximo environment
- Adds buttons in status bar for quick switch, upload, download, compare and fetching logs
- MAS Supported
- Can refresh / reload Maximo caches
- MAS Tools API (maxinst) Supported
- Open in Maximo: Directly open scripts, applications, or conditions in the Maximo Web UI from VS Code (supports browser selection and persistence)
- Managers for Database Relations, MaxMessages, System Properties, and Automation Scripts (grid editing, cross-environment compare, push, export)
Supported Actions
- Download from Maximo (picker)
- Download Script(s) from Server
- Download Application(s) xml from Server
- Download Conditions(s) from Server
- Download System Properties from Server
- Download (Update) from Server
- Upload to Server (Not for application xml)
- Compare with Server
- Execute Script using Script Handler (Only scripts)
- Delete from Server (Not for application xml)
- Compare with Another Environment
- Fetch Logs from Server (only for Manage)
- Manage Environments (Add / Edit / Delete / Set Active / Import / Export)
- Cache Refresh / reload
- MAS Tools
- Open in Maximo
- Delete and Upload to Server (Only scripts)
- System Properties Manager
- Database Relations Manager
- Automation Scripts Manager
- MaxMessages Manager
Requirements
Configuration
Status bar shortcuts
Tree view actions
Actions
Download from Maximo
Activate
Use the command pallete to select this option
Functionality
This will show a list of available options to download. This is a high level menu and will present with all the other bulk download options

Back to Top
Download Script(s) from Server
Activate
Use the command pallete to select this option
Functionality
This will show a select value of the following
In multiple it will show a multi select menu to download scripts

Back to Top
Download Application xml(s) from Server
Activate
Use the command pallete to select this option
Functionality
This will show a select value of the following
In multiple it will show a multi select menu to download app xmls

Back to Top
Download Condition(s) from Server
Activate
Use the command pallete to select this option
Functionality
This will show a select value of the following
In multiple it will show a multi select menu to download SQL based conditions

Back to Top
Download (Update) from Server
Activate
Use the command palette and select this option or use the status bar button for it
Functionality
You must have a saved file open for this to work. This downloads the updated automation script or application XML from the server for the opened tab, depending on the file type.

Back to Top
Upload to Server
Activate
Use the command palette and select this option or use the status bar button for it
Functionality
You must have a saved file open for this to work. This uploads the automation script or condition expression from the opened tab to the server

Back to Top
Compare with Environment (Script / XML / Condition)
Activate
Use the command palette and select this option
Functionality
You must have a saved file open for this to work.
Compare with current Environment
Compares the opened automation script, application XML, condition, or system properties with the current environment.
For System Properties:
When comparing a .properties file, you can choose:
- Matching keys only: Only compares values for keys present in your local file.
- All server properties: Compares your local file against every property on the server (highlights added/missing properties).

Compare with other Environment
Compares the opened record with the selected environment. Supports the same context-aware modes for system properties.

Back to Top
Delete this file from Server
Activate
Use the command palette and select this option.
Functionality
This deletes the automation script or condition on the server

Back to Top
Delete and Upload to Server
Activate
Use the command palette or status bar button (if enabled in settings).
Functionality
Uploads the currently opened automation script (.py, .js, or .jy) to the active environment after immediately deleting it first.
Back to Top
Execute script using Script Handler
Activate
Use the command palette, click the "execute" (play) status bar button next to the active environment, or use the command "Execute script using Script Handler".
Functionality
Uploads the currently opened automation script (.py, .js, or .jy) to the active environment, immediately executes it, and deletes it from the server to keep your environment clean.
The body returned from the script execution is usually stored in responseBody implicit variable in Maximo automation scripts. The response body is then displayed in the selected display location.
Display Options:
By default, the result is displayed in a new focused tab (newTab). You can change this in settings (mxscript.execution.displayLocation) to:
- newTab (Default): Opens a focused tab in the active editor group.
- sideView: Opens a read-only tab beside the current editor (with syntax/severity highlighting).
- bottomPanel: Shows formatted and colorized output in the "MxScript Result" Output Channel.

You can read more about it below
https://ibm-maximo-dev.github.io/maximo-restapi-documentation/autoscript/autoscript
https://ibm-maximo-dev.github.io/maximo-autoscript-documentation/rest/scripthandler/
⚠️ Warning: You must confirm a security prompt explicitly warning you before this execution happens. This functionality mimics the standard Automation Script Handler REST API (GET method).
Back to Top
Fetch Logs from Server
Activate
Use the command palette or click the "Fetch Logs" status bar button next to the active environment name or click on "Fetch logs"" button in the maximo environments tree view
Functionality
Fetches Manage logs via the Maximo stream log end point. When complete, a dedicated editor tab opens (and is reused per environment) titled with the environment name so you can inspect the log output immediately

Back to Top
Open in Maximo
Activate
Use the command palette, click the "link-external" icon status bar button (you can enable it in settings), or click the "link-external" icon button in the Maximo Environments tree view.
Functionality
This feature allows you to quickly open the record you are currently working on directly in the Maximo Web UI.
- Context-Aware: If you have an automation script, application XML, or condition expression file open, it will attempt to navigate directly to that specific record. If no file is open, it falls back to opening the base Maximo URL.
- Browser Selection: The first time you use this for an environment, you will be prompted to select a browser (Chrome, Edge, Firefox, or System Default). You can choose to remember this preference for each environment. You can also change the browser in the extension settings.
Managing Environments in UI
You can add multiple environments and switch between them.
Under the explorer webview there is a section for Maximo Environments:
Using the buttons displayed over these environments you can activate, edit, delete, export and import them as well.

While adding / editing environment you can click on the Verify Settings button to check the authentication with the server.
There are two types of environments,
global (Global are always available in vscode)
workspace level are only available to the workspace it was created in)
They have their own icons.
Active Environment: Uses the $(radio-tower) icon.
Global Environment: Uses the $(globe) icon.
Workspace Environment: Uses the $(symbol-folder) icon

Back to Top
Cache Refresh
It can also refresh / reload the cache present in IBM Maximo. Sometimes needed after adding certain items in maximo. Maximo wont refresh the changes unless those caches are refreshed. e.g. INTOBJECT, MAXPROP etc
Upon triggering this option, you will be presented with a list of caches (might differ for 7.6 or MAS) to be refreshed. You can select them all, multiple, or a single one.

Back to Top
System Properties Manager
Activate
Run "View System Properties" from the command palette, the tree-view button on the active environment, or the status-bar shortcut.
Functionality
Opens a dedicated webview grid of every system property in the active environment with:
- Search, per-column filters and sort
- Inline value editing — modified rows tinted, with a per-row state dot and an unsaved-count badge in the tab
- Compare against any other configured environment — see the other env's value side-by-side, pull a single value, copy all differences, or filter to "differences only"
- Push selected or all changes back to the server; the grid syncs locally on success without a full refetch
- Export to CSV / JSON / YAML from the side panel
Back to Top
Database Relations Manager
Activate
Run "View Maximo Database Relations" from the command palette.
Functionality
Manages rows in the per-environment MXL_CFGDBREL object structure (configurable via mxscript.relation.objectStructure). The grid supports:
- Add / edit / delete relations with full state tracking (
new, modified, deleted)
- Cross-environment compare with diff count, pull-from-compare button per row, and "differences only" / "modified only" filters
- Inline cell validation + a top-of-grid validation banner that blocks pushes with empty identity fields or duplicate
parent::name keys
- Paste TSV / CSV to bulk-import rows, duplicate-row action with smart
_COPY suffixing
- Push confirmation when the payload includes deletes; optimistic local sync on success
- Open the parent object directly in the Maximo Web UI from the row actions
Back to Top
Automation Scripts Manager
Activate
Run "Automation Scripts Manager" from the command palette, or pick it from "Maximo: Download from Maximo".
Functionality
Manages automation scripts using the same per-environment Automation Scripts object structure that every other script operation (upload, download, delete, compare, execute) already uses — there is no separate setting. Point that structure at one that exposes the launch-point child objects and this manager gains its full feature set. The grid supports:
- All scripts in one request, with each script's launch points and source included, so expanding a row is instant
- Master–detail rows: expanding a script shows its launch points, variables (script-level and per-launch-point), and source
- Quick search covers the script body, so you can find a script by something it does (
mbo, service, a domain) rather than only by name
- Add / remove / edit launch points, and add / remove script and launch point variables, in the expanded row's Launch Points and Script Variables tabs
- Edit script variables straight from the expanded row: the Script Variables tab of a script's detail panel is an editor — add, edit and remove variables, with a live "added / changed / renamed / removed" summary
- There is no save button in the tab: editing a variable marks the script as modified in the grid, and the changes are sent by Push Changes or Push Selected — the same path every other edit takes. Discard changes throws the edits away locally, without writing anything
- Only the changed attributes are written. A variable with one edited field is merged with just that field, so a column you did not touch is never rewritten; a field you cleared is still sent empty, because a Maximo merge leaves an attribute it does not mention as it was
- A variable that has changes to push is marked in the table — green for one that is not on the server yet, the accent colour the grid uses for a changed script row for one whose fields moved — and the summary names the variables that moved, so the mark and the count always agree
- Variable Type, Binding Type and Literal Data Type are Maximo lookups — the values come from the server, so an admin extending the domain is picked up immediately — and they open in the same magnifier picker the rest of the grid uses. Every script gets them, including one that has not been pushed to Maximo yet: the values are the same for every script, so they are fetched in a "no record" context rather than in the context of one script
- Suppress Validation / Suppress Access Control / Suppress Action are checkboxes, and appear only when the server actually has those columns
- The editor follows Maximo's own rules: an
IN variable unchecks and locks the three Suppress flags, an ATTRIBUTE binding switches off the literal data type and the binding value, a LITERAL binding enables both, and a SYSPROP or MAXVAR binding offers its value from the system properties or the MAXVARs
- Changing the binding type drops the binding value and the literal data type, and choosing
LITERAL fills the literal data type with the domain's first value — Maximo's own editor behaves the same way
- A variable's name is read-only once it exists, the same rule Maximo enforces; only a new variable's name can be typed
- A saved variable's Binding Type is read-only too, again matching Maximo: the binding can only be chosen on a new variable, so changing it means removing the variable and adding it again
- Override is a checkbox, on by default for a new variable, and read-only once the variable is on the server
- The detail panel's tabs are Script, Script Variables and Launch Points
- Add / edit / delete script metadata with state tracking (
new, modified, deleted); a new script name is created on push, an existing one is updated
- Cross-environment compare with diff count, pull-from-compare per row, and "differences only" / "modified only" filters
- Paste TSV / CSV to bulk-import, duplicate-row with smart
_COPY suffixing, and export to CSV / JSON / YAML
- Open a script directly in the Maximo Web UI, and copy a script's source to the clipboard
Script source is read-only here — edit and push scripts from the editor as usual.
The details of one record
Run "View Details" from the command palette with a file open, or click the ⓘ icon in the status bar (hidden until you turn on mxscript.statusBar.showDetails).
- The file's name is the record's name —
MYSCRIPT.py is the script MYSCRIPT on the server
- The panel holds that one record, and its detail pane starts expanded — it is a panel of its own, named after the record and the environment (
MYSCRIPT — dev-9), so the Automation Scripts Manager keeps showing the whole list beside it
- Only that one record is asked of the server, so the details of one script do not cost the download of every script on it
- The command is not tied to one kind of record — an application xml, a condition and a system property each get their own details when their managers are ready. Automation scripts are the kind it can show today, and it says so rather than opening nothing
The launch point editor
The Launch Points tab of a script's detail panel is an editor, the same way the Script Variables tab is: it marks the script as modified in the grid, and the changes are sent by Push Changes or Push Selected — the same path every other edit takes. There is no save button in the tab.
- The launch point's type is yours to choose. Maximo's own scripts all give a script one type, but the server takes a launch point of any type, so the type is a picker: a new launch point starts with the script's type, and a script that ends up with two is pointed out rather than prevented
- Changing the type resets what does not belong to the new type — the object of one type is not valid for another, so a type change clears the fields the new type has no use for
- The object is a lookup of the server's own objects (
WORKORDER, ASSET, …) and the attribute is a lookup of the attributes of that object — an Attribute launch point's attribute belongs to the object, so it changes with it
- An Action launch point's object is yours to pick, and it may be empty. The action runs on a business object, and the server takes a launch point with no object at all — so the field carries a clear button, and a new Action launch point starts with an empty object
- The event is a lookup too, and the pills on the card say when the launch point fires — After Save, After Delete, and so on
- The launch point's variables are the script's own variables, bound to the launch point. The table has one button, New variable: the row joins the table as soon as it holds everything the server needs and you leave the field — there is no Add variable button to press
- The binding value can be picked from a list, and any value can still be typed in. The list follows the binding type: an
ATTRIBUTE binding is picked from the attributes of the object the launch point is on, a SYSPROP binding from the system properties, a MAXVAR binding from the MAXVARs, and a LITERAL binding is free text with no list at all
- The variables are marked the way the grid marks a row — green for one that is not on the launch point yet, the accent colour for one whose fields moved, red for one that is on its way out — and a removed one stays in the table, struck through, with a button to change one's mind
- A refresh throws the panel's own state away, so a variable that was being added does not stay on the screen marked as added
Launch point rules the editor enforces
Maximo has a few constraints that are easy to violate by accident, so they are checked before anything is written:
- Required fields depend on the type — an
OBJECT launch point needs an object, an ATTRIBUTE launch point needs an object and its target attribute, and an ACTION launch point needs neither: its object is optional, and Maximo creates its action, named after the launch point
- A launch point name is part of the primary key, so renaming one is a delete + add. The editor tells you when it has done that.
- A launch point's variables are Maximo's own — it builds them out of the script's variables when it writes the launch point, so they are shown and changed, not created by hand
- Launch point variables are a second, ordered call — they can only be attached after the launch point exists, so the two steps are not atomic.
- A variable bound by a launch point cannot be deleted; Maximo rejects it, and the editor says so rather than failing silently.
Object structure setup
The manager needs a structure whose base object is AUTOSCRIPT and which exposes SCRIPTLAUNCHPOINT as a child object, so launch points can be returned with the script list.
- Create the object structure as described in Configuring Object Structures (base object
AUTOSCRIPT).
- Add
SCRIPTLAUNCHPOINT as a child object, with AUTOSCRIPT as its parent.
- Register it in the OSLC Resources application with Consumed By set to OSLC, and set the default namespace for the child object.
- Set the environment's Automation Scripts object structure to this name.
A plain MXAPIAUTOSCRIPT structure still lists every script, but it does not register the launch-point child — the manager will refuse to open and point you back here, rather than showing a grid with no launch points.




Back to Top
MaxMessages Manager
Activate
Run "MaxMessages Manager" from the command palette or the active environment tree view.
Functionality
Manages rows in the configurable MXAPIMESSAGE object structure (mxscript.message.objectStructure). The grid supports:
- Add / edit / delete messages with required MSGGROUP, MSGKEY, MSGID, and Display Method validation
- Automatic MSGID generation from MSGID prefix, a four-digit seed, and MSGID suffix, with custom overrides
- Searchable prefix, suffix, and Display Method lookups; MSGID editing through the same picker
- OPTIONS editing as an integer in the table and as message-button checkboxes in row details; new rows default to
2
- Cross-environment compare, push selected or all changes, and export to CSV / JSON / YAML
Back to Top
Status bar shortcuts
When an active environment is set the status bar shows quick-action icons:

- Active Environment— It shows the maximo active environment you have selected
- Fetch Log — runs
mxscript.fetchLogs (fetches logs for active environment) — NOTE: Fetch Logs currently works only against Manage (Maximo Application Suite). It is not supported for classic Maximo 7.6 REST endpoints
- Select and download items from server — Shows the same download high level menu as Download from Server (opens a quick-pick to choose: scripts, application XML, or conditions)
- Upload — Uploads the currently opened file to current environment
- Download— Updates the currently open file from current environment
- Compare— Compares the currently open file with version at current environment
- Upload and Execute — Uploads, executes and deletes the currently open file at the current environment
- Open in Maximo — Opens the currently open record (script/app/condition) in the Maximo Web UI via your preferred browser
- Delete — Deletes the currently open file at the current environment
- Delete and Upload — Deletes and uploads the currently open script at the current environment
- View Details — Opens the details of the record the currently open file stands for, in that record's manager, with its detail pane expanded (hidden by default — turn it on with
mxscript.statusBar.showDetails)
- MAS Tools Menu — Opens the MAS Tools (MAS only) - Access Logs, Database tools, Pod Manager, Customizations etc. See API for administrative utilities
Back to Top
New in version 1.5+, MxScript includes a comprehensive suite of management tools specifically for Maximo Application Suite (MAS) environments. This is the MAS tools API (which usually operates on the maxinst pod).
Requirements
To use these features, you must configure the Tools Hostname in your environment settings. This is typically the maxinst pod route (e.g., https://maxinst.manage.mas-instance.com).
It will add a tools icon in the status bar
You can click this icon to show the Tools menu or use the command

Features
- View Tools Logs: Browse and view logs from the
maxinst tools pod.
- Upload Logs to S3: Trigger a log upload to the configured S3 bucket.
Certificates
- Add Trusted Certificate from Host: Download and add a trusted SSL certificate from a remote host (useful for fixing connectivity issues).
- Add Trusted Certificate from File: Add a trusted certificate from a local
.pem or .crt file.
Database
- Validate Database: Run the validation utility to check readiness for MAS upgrades.
- Configure Database: Run
configdb (requires Manage to be stopped).
- Reset Crypto: Reset
CRYPTO and CRYPTOX columns if they become corrupted or out of sync.
Diagnostics
- Generate ERD: Generate an Entity Relationship Diagram (ERD) for your Maximo database. You can download the result as a ZIP file.
- Integrity Checker:
- Generate Report: Run the integrity checker in report-only mode.
- Run Repair: Run the integrity checker in repair mode (Use with caution!).
Pod Manager
- Start All Pods: Start the Maximo Manage application server pods.
- Stop All Pods: Stop the Maximo Manage application server pods.
Build Status
- Check Status: View the current build and deployment status of the Maximo image.
Script Runner
- Run DBC Script: Execute a specific database configuration (DBC) script by name.
Back to Top
Tree view actions
Each environment in the "Maximo Environments" tree has inline buttons

Environment Management Actions
The buttons call the following commands:
- Activate (set as active) → Selects the environment as active
- Edit → Edits the environment
- Delete → Deletes that environment
You can add / refresh an environment or use the tree toolbar:
- Add → Adds a new environment
- Refresh → Refreshes an environment
- Export → Exports all configured environments to a JSON file
- Import → Imports environments from a previously exported JSON file
File and Script Operations on Tree Environments
The following actions are available from the Maximo tree environment nodes and allow you to perform file operations directly against a selected environment:
- Upload to Environment (
mxscript.uploadToEnvironment) - Upload the currently opened file directly to the selected tree environment.
- Download from Environment (
mxscript.downloadFromEnvironment) - Download/update the currently opened file directly from the selected tree environment.
- Open in Maximo → Opens the currently record or environment in Maximo Web UI
- Compare → Compares the currently opened file with this environment
- Fetch Logs → Fetches the log from this environment
Back to Top
API For Extension Developers
MxScript acts as an API Provider! Other VS Code extensions can securely obtain a pre-authenticated MaximoApiClient from MxScript without needing to handle user credentials directly.
Usage
- Add
"ahmednrana.mxscript" to extensionDependencies in your package.json.
- Activate and use the API:
import * as vscode from 'vscode';
export async function activate(context: vscode.ExtensionContext) {
const mxscriptExtension = vscode.extensions.getExtension('ahmednrana.mxscript');
if (mxscriptExtension) {
const mxscriptApi = await mxscriptExtension.activate();
// This will prompt the user with a Consent UI ("Allow" / "Deny")
const myExtensionId = 'my-publisher.my-extension-name';
const client = await mxscriptApi.getActiveEnvironmentClient(myExtensionId);
if (client) {
// Valid MaximoClient ready to use!
// await client.get('/oslc/os/mxscript');
}
}
}
Environment scope and storage
Global environments are stored in the extension globalState and are available across workspaces.
Workspace environments are stored in workspaceState and visible only in that workspace.
The active environment is per-workspace. When a workspace folder is open, the active environment ID is stored in workspaceState under mxscript.activeEnvironment. When no workspace is open, the active environment ID is read from globalState.
Any environment (global or workspace-scoped) can be activated in any workspace. Activating a scope:'global' env from inside a workspace stores the pointer in workspaceState — the workspace borrows the global env without mutating the global default.
Two VS Code windows opening different workspaces have independent active environments. Opening the same workspace in two windows shares the active env (since workspaceState is keyed by the workspace itself).
After upgrading, a workspace that already had a mxscript.serverSettings.hostname configured will automatically adopt the matching env as the active one (one-time soft migration). New workspaces show "No Environment" until you pick one.
Clearing a workspace selection leaves it with no active environment; workspace-scoped environments are hidden when no workspace is open.
Back to Top
Requirements
You should have access to an instance of IBM Maximo which supports the Nextgen rest api
Configuration
Configuring Object Structures
Automation Scripts
You must have rights to use an object structure having AUTOSCRIPT as its base object.
There is an object structure MXAPIAUTOSCRIPT created by default. You can use it
If your installation does not have this OS, follow these steps to create an object structure:
- Go to Object Structures
- Click on
New Object Structure
- Give it any name (e.g.
MXAPIAUTOSCRIPT). In Consumed by field enter INTEGRATION
- In the source object table click on New Row. Then in that new row select
AUTOSCRIPT in object field.
- Save
- Grant your user appropriate rights for this object structure
It should look like this:

Application XML
You must have rights to use an object structure having MAXPRESENTATION as its base object.
There is no built in object structure for it. You need to create it
If your installation does not have this OS, follow these steps to create an object structure:
- Go to Object Structures
- Click on
New Object Structure
- Give it any name (e.g.
MXAPPXML). In Consumed by field enter INTEGRATION
- In the source object table click on New Row. Then in that new row select
MAXPRESENTATION in object field.
- Save
- Grant your user appropriate rights for this object structure
It should look like this:

Condition Expression OS
Object Strcuture for condition Expression should be like below

Configuring Object Structure Security
If you get this error:
Error 400: BMXAA9301E - The user of the transaction is not authorized for Object Structure {1}. Configure authorization in the object structure application and grant necessary access to the user
You can either turn off authentication for OS Turn Off OS Authorization
or grant authorization for that specific OS Grant OS Authorization
Back to Top
Before using this extension you need to add a few settings
Adding settings in Settings UI
It's also possible to edit these settings in Setting UI. This only supports a single environment.

Adding the settings in json
You can also edit them in settings.json of your project.
This extension contributes the following settings:
| Property Name |
Type |
Default |
Description |
mxscript.serverSettings.hostname |
string |
|
Hostname / IP of Maximo server (e.g. 10.10.12.12 or www.xyz.com) |
mxscript.serverSettings.toolsHostname |
string |
|
Hostname for Tools API (maxinst). Only for MAS environments. |
mxscript.serverSettings.port |
number |
|
Maximo port |
mxscript.serverSettings.contextRoot |
string |
maximo |
URL path segment where the Maximo application is deployed (usually maximo) |
mxscript.authentication.username |
string |
maxadmin |
Username for Maximo Authentication |
mxscript.authentication.password |
string |
maxadmin |
Password for Maximo Authentication |
mxscript.authentication.apikey |
string |
|
API key Maximo Authentication |
mxscript.authentication.authenticationType |
string |
internal |
Type of Authentication (internal, ldap, apikey) |
mxscript.serverSettings.objectStructure |
string |
MXAPIAUTOSCRIPT |
Object Structure to be used for scripts uploading / downloading / deletion |
mxscript.appxml.objectStructure |
string |
MXL_APPS |
Object Structure to be used for App XML uploading / downloading |
mxscript.serverSettings.httpProtocol |
string |
http |
Http protocol (http or https) |
mxscript.scriptSettings.createPythonFileForJythonScripts |
boolean |
true |
Create Jython script in Maximo even if the file in editor is .py |
mxscript.scriptSettings.logLevel |
string |
|
The log level to set with scripts when creating / updating them (DEBUG, INFO, WARN, ERROR, FATAL) |
mxscript.scriptSettings.ignoresslerrors |
boolean |
false |
Ignore SSL errors |
mxscript.scriptSettings.sslcertificate |
string |
|
A custom certificate |
mxscript.appxml.formatOnDownloadAndCompare |
boolean |
true |
Whether to format XML on download and compare |
mxscript.statusBar.showFetchLogs |
boolean |
true |
Show the Fetch Logs icon in the status bar |
mxscript.statusBar.showDownloadFromMaximo |
boolean |
true |
Show the Download from Maximo icon in the status bar |
mxscript.statusBar.showUpload |
boolean |
true |
Show the Upload icon in the status bar |
mxscript.statusBar.showDownload |
boolean |
true |
Show the Download icon in the status bar |
mxscript.statusBar.showCompare |
boolean |
true |
Show the Compare icon in the status bar |
mxscript.statusBar.showUploadAndExecute |
boolean |
true |
Show the Upload and Execute icon in the status bar |
mxscript.statusBar.showDelete |
boolean |
false |
Show the Delete icon in the status bar |
mxscript.statusBar.showReupload |
boolean |
false |
Show the Delete and Upload icon in the status bar |
mxscript.statusBar.showToolsMenu |
boolean |
false |
Show the Tools Menu icon in the status bar |
mxscript.statusBar.showOpenInMaximo |
boolean |
false |
Show the Open in Maximo icon in the status bar |
mxscript.statusBar.showDetails |
boolean |
false |
Show the View Details icon in the status bar |
mxscript.statusBar.showManageEnvironments |
boolean |
true |
Show the Manage Environments icon in the status bar |
mxscript.execution.displayLocation |
string |
newTab |
Where to display execution results (newTab, sideView, bottomPanel) |
Troubleshooting and Known Issues
The active environment is per-workspace. Each VS Code window opened to a different workspace gets its own active env. If your workspace lacks a mxscript.serverSettings.hostname and has no active env, the extension will show a "No active Maximo environment" warning and redirect to Manage Environments — pick one to enable commands.
"No active Maximo environment" — Set an active environment in the Maximo Environments view or add one via the command palette.
Soft migration: a workspace that already had mxscript.serverSettings.hostname configured before this release will automatically adopt the matching env as the active one on first activation.
Hostname mismatch warning — Either update your workspace mxscript.serverSettings.hostname or set the correct active environment.
SSL errors — Toggle mxscript.scriptSettings.ignoresslerrors to ignore SSL validation (not recommended for production). It is better to add the SSL certificate in environment settings.
Fetch Logs not working — Fetch Logs uses Manage APIs and is not available for classic Maximo 7.6 endpoints. Make sure you're pointing to a Manage instance if you need log fetching
In previous version the OS for apps was a simple one which had only one object in it i.e. MAXPRESENTATION. Now it requires an OS with at least objects in it. MAXAPPS and MAXPRESENTATION. You might need to re create that
Double check the authentication type, user/pass or the api key provided
If you encounter any bug then please open an issue at github repository
Back to Top
Release Notes
1.9.0 (Pre-release)
- System Properties Management:
- New service for downloading, updating, and comparing Maximo system properties.
- Batch Fetching: High-performance retrieval of multiple property values in a single API call.
- Context-Aware Comparison: Choose between comparing "Matching keys only" or "All server properties".
- Improved Download Flow: Use native save dialogs to choose location and rename files before saving.
- Update Confirmation: Integrated update (push-to-server) with non-modal confirmation notifications.
- Improved Diff Engine: Strips comments and sorts keys for property comparisons to eliminate noise.
1.6.6
- Added syntax and severity colorization for execution results in both side view and bottom panel.
- Added new Display Location setting for execution results with three options:
newTab (default), sideView, and bottomPanel.
- Upgraded Output Channel to
LogOutputChannel for rich color support in the bottom panel.
1.6.4
- Added Open in Maximo functionality with status bar and tree view shortcuts
- Added dynamic browser detection and per-environment browser preference
- Improved script execution result handling and display
- Updated dependencies and minor fixes
1.6.0
- Added execute script functionality
- Added option to show / hide buttons in status bar using extension settings
- Added option to import and export Maximo environments
1.5.0
- Added MAXINST pod Tools API support
1.4.4
- Added option to refresh Maximo cache
1.4.0
- Added option to download / upload / compare the condition expressions (sql based only)
1.3.5
- Added compare with environment feature - click the compare button next to any environment in the tree view to compare your local script/XML with that environment
1.3.4
- Added a Fetch Logs command with a status bar shortcut that opens an environment-specific log viewer tab.
1.2.5
Added option to add a custom ssl certificate
1.1.8
Fixed a bug where updating an XML wont be reflected in Maximo UI
1.1.5
Added logging output channel
1.1.0
Fixed script creation error for non english languages
1.0.5
Fixed ssl ignore settings
1.0.1
Fixed app xml OS not being saved
1.0.0
Added support for managing application xml
0.9.2
Fixed OS not being read correctly
0.7.0
Added option to add multiple environments using UI
0.6.5
Added option to ignore SSL based errors
0.6.0
Added support for API key
0.5.0
Initial release added upload, download, download all and compare with server functions.
Feel free to reach me at linkedin or Maximomize or wordpress. I would love to meet fellow maximo consultants.
Contributing / Support
If you encounter any bugs, have feature requests, or want to contribute, please open an issue at our GitHub repository.
Note: This is work of a third party and not an IBM official project.