Here is a new extension for IdentityIQ to be used within your favorite IDE (VSCode, Cursor, etc.).
This extension relies on the same principles as for the ISC Extension:
- Supports several tenants
- Allows to read/write directly in IdentityIQ
This extension relies on a plugin that you need to deploy in IdentityIQ (see vscode-plugin-*-bin.zip).
The extension is available in VSCode marketplace or OpenVSX.
This extension already supports lots of features:
Environments
- Multiple environments (dev, test, prod…) organized in folders (drag & drop), listed in a dedicated IdentityIQ view.
- Add an environment with a guided wizard: display name, base URL, login, password. The configuration is validated with an API call (including plugin API version vs extension version).
- Passwords are stored securely in the VS Code Secret Storage — never on disk.
- Active environment shown in the status bar; switch it from the status bar, the command palette (with a None option) or the tree view.
- Connection test with optional SSL verification (
iiq.connection.rejectUnauthorized) for self-signed certificates.
Browse & edit objects
- Tree view of objects per environment: Applications, Bundles, Forms, Identities, ObjectConfigs, QuickLinks, Rules, Tasks, Workflows.
- Paginated lists (
iiq.pagination.pageSize, default 200) with Load more…, sorted by name or by last modification date (global setting + per-node override). - Objects open in a virtual file system (
iiq://.../<Env>/<Type>/<name>.xml— the environment display name is part of the path). Saving the editor saves the object back to IdentityIQ. - Get object…: generic access to every object type supported by IdentityIQ (~130 types, mirror of
ClassLists.MajorClasses— Configuration, Custom, WorkflowCase, TaskResult…), beyond the types shown in the tree.
Export / import
- Export objects…: pick an environment, one or several object types, then the objects; export to one file per object or to a single
<sailpoint>file. - Export object… (object leaf context menu): tenant and object are taken from the selection; opens a save dialog with cleaned XML.
- Copy name (object leaf context menu): copies the object name to the clipboard, one name per line for a multiple selection.
- Open in IdentityIQ… (object leaf context menu): opens the object in the IdentityIQ desktop UI in the system browser, for types that have a direct page (Applications, Roles, Identities, Tasks, Workflows, Workgroups).
- Exported XML is cleaned for source control (configurable): internal ids, created/modified timestamps, reference ids,
significantModified… removed, CDATA preserved. - Import file(s)… from the editor (Ctrl+Alt+S), from an environment’s context menu in the tree view (file picker), or from the file explorer (multi-selection, folders imported recursively), with a success/error report.
- Log4j2 configuration: listed under each environment; click to edit it through the same virtual file system as objects (
iiq://…/config/log4j2.properties). Save writes the file on the server and reconfigures logging immediately — unlike Configure logging…, the change survives a restart. A configuration Log4j2 rejects is rolled back server-side. Download / Upload commands copy it to or from a local file (upload also reconfigures). - Refresh file from IdentityIQ…: re-fetch the object of the current XML file.
- Compare with IdentityIQ…: diff the current XML file with its version in an environment.
Run rules & tasks
- Run rule… from the tree view (play button on a Rule), from a Rule XML file or from the command palette, with optional JSON arguments; the result and execution time are shown in the IdentityIQ output channel.
- Run task… from the tree view (play button on a Task) or from the command palette: a progress notification stays visible while the task runs, the outcome (success or failure) is reported, and the final TaskResult opens as a read-only XML preview.
BeanShell language assistance
- Completion, hover and signature help inside the
<Source>sections of Rules and workflow<Script>s — in objects opened from an environment (iiq://) and in local XML files (SSB projects). - Member completion after
variable.with lightweight type inference: declared types,newconstructions, casts, call chains (context.getObjectByName(...).), inherited members included. - Predefined rule variables:
contextandlogeverywhere, plus the arguments of the rule type (identity,application,account…). The<Signature>of the rule wins when present; workflow scripts getworkflow,wfcontext… - Import completion (
import sailpoint.) walking the package tree, and class-name completion with automatic insertion of the missingimport. - Java metadata is read locally from the jars configured in
iiq.beanshell.classpath(point it at theWEB-INF/libfolder of an IdentityIQ installation — exact for your version, patches, connectors and custom jars). Core JDK classes (java.lang,java.util…) are bundled. - No BeanShell code is sent anywhere; jars are indexed lazily and read entry-by-entry (no memory blow-up on a full
WEB-INF/lib).
Tail server logs
- Tail server logs… from an environment’s context menu or the command palette: the server log files (the targets of its file-backed Log4j2 appenders —
sailpoint.log, etc.) stream into a colorized output channel,tail -fstyle, no SSH needed. A single log file is tailed directly; the first chunk shows the recent history. A status bar indicator shows the active tails; Stop tailing server logs… ends them.
This extension is not developed, funded or endorsed by SailPoint.
If you have any issue or any enhancement request
Issues · yannick-beot-sp/vscode-sailpoint-identityiq · GitHub

