Less Commonly Used Commands
These commands are not frequently used in a production environment. However, it is helpful to understand and be able to use them when the need arises.

The DTD command writes the IdentityIQ DTD (Document Type Definition) to the specified file.
Syntax |
dtd filename |
Examples |
> dtd c:\DTD\IdentityIQ.dtd |
Result |
Writes the IdentityIQ DTD to the file c:\DTD\IdentityIQ.dtd |

The classes command lists all classes accessible from the console. These are frequently used as parameters to other commands so this list can be helpful in entering correct arguments on those commands.
Syntax |
classes |
Examples |
> classes |
Result |
Lists class names for all classes accessible to the console |

The count command returns a count of the objects of the specified class.
Syntax |
count classname |
Examples |
> count identity |
Result |
Displays the count of Identity objects in the system |

The importManagedAttributes command is used to set managed attribute values, including localized descriptions, through a CSV file import. This can be used to update existing managedAttributes or to create new ones.
The filename can be specified with an absolute path or can be specified relative to the current working directory. These are the specific requirements for the import file contents:
- The first line in the file must be a comment line (starting with #) that contains the column names for the data records. Column names must be specified in a comma-separated format. All column names must match managedAttribute standard or extended attributes or specify a locale/supported language.
- Subsequent comment lines can be used to specify default values for attributes that are not contained in the data records. For example, if the whole file relates to a single application, the application name could be set as a default through a single comment line.
- Blank lines are permitted in the file, and are ignored, but cannot precede the first comment line.
- The data records must consist of comma-separated data values.
Only types Entitlement and Permission are valid. Group managedAttributes are stored in IdentityIQ as a subcategory of Entitlement type managedAttributes.
- Required attributes are type, application, attribute, and value. If type is not specified in the file, type Entitlement is assumed. The others three properties must be specified in the file. Type, application, and attribute can be specified through the data columns or with a single default value in extra comment lines. The value attribute must be in the data columns and cannot have a default value.
- The data values in the columns named to match supported languages should contain the description to use for that locale.
Example File Contents:
# value, displayName, en_US, owner
# owner=Jeff.Wilson
# application=AD
# attribute=MemberOf
# type=Entitlement
# "CN=administrators,CN=Roles,DC=iiq,DC=com", Admins, "Administrators group",
# "CN=VPN,CN=Roles,DC=iiq,DC=com", VPN, "Remote Workers", Bob.Smith
The test option causes the command to parse and validate the file without saving changes to the database.
Syntax |
importManagedAttributes filename [test] |
Examples |
> importManagedAttributes “c:\data\managedattributes.csv” |
Result |
Imports managed attribute data from the file c:\data\managedattrbutes.csv, updating existing attributes or creating new ones from the data |

The exportManagedAttributes command exports either object properties or descriptions for managedAttributes to a CSV file. This is used to make mass changes to the managed attributes definitions or for collecting all the managed attributes in one file to review as a group.
Syntax |
exportManagedAttributes filename [application] [language] |
Examples |
> exportManagedAttributes “c:\data\AdamManAttrDesc.csv” ADAM en_US |
Result |
Exports the managed attribute description on ADAM application to the file c:\data\AdamManAttrDesc.csv. |
Application and language are both optional arguments and can be specified in either order. At most one application and one language can be specified at a time. If no application name is specified, managed attributes for all applications are exported. If a language is specified, only the core identifying properties of the managed attributes (type, application, attribute, value) and the descriptions for the specified locale are exported. If a language is not specified, all other object properties except descriptions are exported.
The file format generated by this command can be used in the importManagedAttribute command, so this command can be used to write values to a file for editing and reimporting. When an application name is specified on the export command, the application is not shown in the data rows but is specified as a default in the file header comments, as described and illustrated in the command details.

The run command starts execution of a task that requires and accepts no arguments. Three optional parameters can be specified for this command: trace, profile, and sync.
- Trace — writes to the console (stdout) a trace of what happens as the task is run, depending on how the task's tracing code is written.
- Profile —displays the timing of certain phases of the task, the details displayed depend on the task's profile code.
- Sync — runs the task in synchronous execution mode, as opposed to scheduling it to run in background. If sync is specified, the control returns to the console only after the task has completed and any error messages are written to the console. If sync is not specified, the task is launched in the background and the results of the task are viewable in the taskResults object and are accessible from the console or from the user interface under Setup -> Tasks -> Task Results.
Syntax |
run taskname [trace] [profile] [sync] |
Examples |
> run “Refresh Risk Scores” |
Result |
Runs the Refresh Risk Scores task in background |

The runTaskWithArguments command starts execution of a task that requires arguments. These tasks are always run in synchronous execution mode. This can only be used for tasks that accept arguments of simple data types; specifying an object as an argument is not possible here.
Syntax |
runTaskWithArguments taskname [arg1=val1,arg2=val2,…] |
Examples |
> runTaskWithArguments “Identity Refresh” refreshLinks=True,promoteAttributes=False |
Result |
Runs the Identity Refresh task, refreshing Links for the Identities |

The restart command restarts execution of a task that failed.
Syntax |
restart taskResultName |
Examples |
> run “Refresh Risk Scores” |
Result |
Restarts the Refresh Risk Scores task in background if possible |

The refreshFactories command can be specified with no arguments to refresh all group factories or with a specific GroupFactory name. Refreshing the group factory means identifying the group values that define each of the groups (or GroupDefinition objects). It does not refresh the list of Identities that make up each group or the statistics gathered for each group - just the list of groups themselves.
Syntax |
refreshFactories [<factorname or ID>] |
Examples |
> refreshFactories |
Result |
Refreshes the GroupDefinition list associated with each GroupFactory in the system |

The refreshGroups command refreshes the group indexes for all groups or for the specified group named as a command argument. The group indexes are collections of statistics for identities that are part of the group. The statistics include number of members, number of certifications due for certification owners in the group, number of certifications owned and completed on time by members of the group, and risk score information for members of the group. RefreshGroups only applies to GroupDefinitions that are indexed (attribute indexed=”True”).
Syntax |
refreshGroups [groupname or ID] |
Examples |
> refreshGroups |
Result |
Refreshes index information for all indexed groups |

The showGroup command shows the membership (Identities) of the group named as an argument to the command.
Syntax |
showGroup <groupname or ID> |
Examples |
> showGroup Finance |
Result |
Lists all Identities who are members of the Finance group. |

The workflow command launches the workflow specified as a command parameter. Input variables must be entered in a variable file to get passed to the workflow. A variable file is specified as an XML Map. The file name is then also passed as a parameter to the command. When the workflow is successfully launched, the XML for the workflowCase is printed to the console (stdout).
Syntax |
workflow <workflowname or ID> [varfile] |
Examples |
> workflow “LCM Provisioning” c:\data\provFile.xml |
Result |
Runs the LCM Provisioning workflow, passing its input variables through the file c:\data\provFile.xml |
The varfile should contain an attributes map like the example shown below. This example map passes an identity name and a provisioning plan object to the workflow.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Attributes PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Attributes>
<Map>
<entry key="identityName" value="Adam.Kennedy"/>
<entry key="plan">
<value>
<ProvisioningPlan>
<AccountRequest application="IIQ" nativeIdentity="Adam.Kennedy" op="Modify">
<AttributeRequest name="assignedRoles" op="Add" value="PRISM User">
<Attributes>
<Map>
<entry key="comments" value="req A"/>
</Map>
</Attributes>
</AttributeRequest>
</AccountRequest>
<AccountRequest application="IIQ" nativeIdentity="ABC_12345" op="Modify">
<AttributeRequest name="assignedRoles" op="Add" value="Test Role B2">
<Attributes>
<Map>
<entry key="comments" value="req B"/>
</Map>
</Attributes>
</AttributeRequest>
</AccountRequest>
</ProvisioningPlan>
</value>
</entry>
</Map>
</Attributes>

The validate command can validate a workflow or a rule. Input variables must be entered in the variable file to be passed to a workflow or rule. The variable file is specified as an XML map and the file name is passed as a parameter to the command. Validation errors are printed to the console (stdout).
Syntax |
validate <rule or workflow name or ID> [varfile] |
Examples |
> validate “LCM Provisioning” c:\data\provFile.xml |
Result |
Validates the LCM Provisioning workflow, passes the input variables through c:\data\provFile.xml, and displays any validation errors |
See Workflow for an example of the varfile format.

The wftest command is used to one or more workflows. The WorkflowTestSuite can be the name of a WorkflowTestSuite object or a file containing one.
Syntax |
wftest WorkFlowTestSuite name | filename |
Examples |
> wftest c:\test\workflowTest.xml name | c:\test\workflowTestOut.xml |
Result |
Tests the workflows and sends the outcome to the workflowTestOut file. |

The sql command executes a SQL statement. It can execute SQL specified inline with the command or it can read the SQL from a file. Only one SQL statement can be executed at a time. The output can be printed to the console (stdout) or redirected to a file. Select, update, and delete SQL statements can be executed. Update and delete actions cannot be undone.
Syntax |
sql sqlStatement | -f inputFileName |
Examples |
> sql “select * from sptr_identity” > c:\data\Identities.dat > sql -f c:\sql\SelectIdentities.sql |
Result |
The first example executes the specified select statement and writes the results to c:\data\Identities.dat. The second example reads the SQL from c:\sql\SelectIdentities.sql, prints the SQL to the console (stdout), and displays the query results to the console (stdout). |

The provision command processes the specified provisioning plan for the specified identity but does not save the information. This is used to test a connector or to test a provisioning plan. Errors are reported to the console. If the provisioning action would succeed, nothing is reported to the console.
Syntax |
Provision <identityname or ID> provisioningPlanFfilename |
Examples |
> provision Adam.Kennedy c:\data\provFile.xml |
Result |
Tests the provisioning plan contained in c:\data\provFile.xml against Identity Adam.Kennedy and reports any exceptions to the console |
The provisioning plan file should contain a provisioning plan in XML format. For example:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ProvisioningPlan PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ProvisioningPlan>
<AccountRequest application="IIQ" nativeIdentity="ABC_12345" op="Modify">
<AttributeRequest name="assignedRoles" op="Add" value="Test Role B1">
<Attributes>
<Map>
<entry key="comments" value="req A"/>
</Map>
</Attributes>
</AttributeRequest>
</AccountRequest>
<AccountRequest application="IIQ" nativeIdentity="ABC_12345" op="Modify">
<AttributeRequest name="assignedRoles" op="Add" value="Test Role B2">
<Attributes>
<Map>
<entry key="comments" value="req B"/>
</Map>
</Attributes>
</AttributeRequest>
</AccountRequest>
</ProvisioningPlan>

The lock command obtains a persistence lock on an object. The object's class and ID or name must be specified. By default, the lock is issued to the username Console, but a different username can be specified in the command's lockName parameter. The lock automatically expires after 5 minutes.
Syntax |
lock classname <objectID or name> [lockName] |
Examples |
> lock identity John.Smith |
Result |
Obtains a persistence lock for Console on the identity record for John.Smith |
Identity objects are the only objects that can be locked. Attempts to specify a different object type in this command results in a syntax error exception.

The unlock command releases the lock on an object. The object's class and ID or name must be specified. If the object is not locked, the message “Object is not locked” is displayed. If it is locked, the lock is released and the message “Lock has been broken” is displayed.
Syntax |
unlock classname <objectID or name> |
Examples |
> unlock identity John.Smith |
Result |
Breaks the lock on the identity record for John.Smith |

The showLock command lists the lock owner, locked date/time, and lock expiration date/time for a locked object. The object's class and ID or name must be specified to view its lock information. The message Object is not locked is displayed if the object is not currently locked. If the lock has expired, the lock information is shown but is prefaced with the message Lock has expired.
Syntax |
showLock classname <objectID or name> |
Examples |
> showLock identity John.Smith |
Result |
Displays lock information (owner, date/time, expiration date/time) on the identity record for John.Smith or displays Object is not locked |

The oconfig command list all extended attributes defined for each class that supports extended attributes. The list indicates the extended attribute numbers and corresponding attribute names on each class. Identity extended attributes which link to other Identities are stored separately in extended identity attribute fields, so those are listed in a separate Extended Identity Attributes sub-list under the Identity ObjectConfig. The objectConfig detail displays No attributes defined if no extended attributes are defined for a given class. An Object not found message is displayed if no objectConfig exists for the class.
Syntax |
oconfig |
Examples |
> oconfig |
Result |
Displays each objectConfig and its extended attributes, numbered according to the extended attribute number that corresponds to each |

The textsearch command enables command-line execution of full text searches as they are done through the LCM full text search. The class name must be either ManagedAttribute or Bundle, since those are the only indexed classes. This command searches for the specified string in the fullTextIndex created for the specified class and returns a map representation of the objects in which the string is found. If a filter attribute and value are specified, the search is further constrained to entries that correspond to that attribute name-value pair. The filter is always treated as an equals operation. The filterName must be an attribute that is indexed in the FullTextIndex object for the specified class.
Syntax |
|
Examples |
> textsearch Bundle manager type business |
Result |
Returns a map of data values for each Bundle (role) of type=business that contains the string manager in any analyzed field. Analyzed fields in the Bundle FullTextIndex marked as analyzed=true. |