EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory...

199
EMC ® InfoArchive Version 4.1 Command Line Tool Guide EMC Corporation Corporate Headquarters Hopkinton, MA 01748-9103 1-508-435-1000 www.EMC.com

Transcript of EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory...

Page 1: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

EMC® InfoArchiveVersion 4.1

Command Line Tool Guide

EMC CorporationCorporate Headquarters

Hopkinton, MA 01748-91031-508-435-1000www.EMC.com

Page 2: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Legal Notice

Copyright © 2016 EMC Corporation. All Rights Reserved.

EMC believes the information in this publication is accurate as of its publication date. The information is subject to changewithout notice.

THE INFORMATION IN THIS PUBLICATION IS PROVIDED “AS IS.” EMC CORPORATIONMAKES NO REPRESENTATIONSOR WARRANTIES OF ANY KINDWITH RESPECT TO THE INFORMATION IN THIS PUBLICATION, AND SPECIFICALLYDISCLAIMS IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Use, copying, and distribution of any EMC software described in this publication requires an applicable software license.

For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com. Adobe and Adobe PDFLibrary are trademarks or registered trademarks of Adobe Systems Inc. in the U.S. and other countries. All other trademarksused herein are the property of their respective owners.

Documentation Feedback

Your opinion matters. We want to hear from you regarding our product documentation. If you have feedbackabout how we can make our documentation better or easier to use, please send us your feedback directly [email protected]

Page 3: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Table of Contents

Revision History ................................................................................................................... 7

Chapter 1 Overview ...................................................................................................... 9Starting IAShell ................................................................................................. 9Connecting to the InfoArchive Server by HTTPS.................................................. 9Creating Certificates and Trust Establishment ................................................ 10One-Way TLS ........................................................................................... 10Two-Way TLS........................................................................................... 10

Connecting to InfoArchive ................................................................................ 11IAShell Startup Scripts ...................................................................................... 12Pre-defined Users and Authorization ................................................................. 12Type Aliases..................................................................................................... 13Admin CLI Authentication via Real External LDAP Server.................................. 13Using the Post-Recovery Command to List Orphaned Objects ............................ 15Receiving Legacy Files ...................................................................................... 15General Tips for IAShell.................................................................................... 17Troubleshooting ............................................................................................... 17

Chapter 2 Configuration .............................................................................................. 19IAShell Command Specifications ....................................................................... 19Using the apply-hold Command........................................................................ 34Verifying the Hold Set has been Created ........................................................ 37

Using the configure Command .......................................................................... 38Format of a Data File for the Configure Command.............................................. 42Issues in the Update/Create Sections of Data Files........................................... 43Appending and Replacing Elements in Collections ........................................ 44Setting InfoArchive Clients for HTTPS Communication .................................. 46SSL1 System Properties ............................................................................. 46SSL2 System Properties ............................................................................. 47InfoArchive JDBC Connection Setup.......................................................... 47IAShell..................................................................................................... 48

Content Uploading ....................................................................................... 48InfoArchive Server and Gateway/InfoArchive Web ApplicationCommunication Setup .................................................................................. 48Self-Signed Certificates-Based Setup .......................................................... 50

Configuring a Sample Application ..................................................................... 56Creating an IAShell Start-Up Script.................................................................... 56Performing a Byte Count on Application Data .................................................... 57Usage Examples ........................................................................................... 57

Setting Up CMD to Display National Characters ................................................ 58Configuring xDB Ingestion Mode ...................................................................... 59

3

Page 4: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Table of Contents

Working with the application.yml File ............................................................... 59Security Profile ............................................................................................. 59logging.level ................................................................................................ 60infoarchive Section ....................................................................................... 61managedItemData Section............................................................................. 61defaultNames Section ................................................................................... 62Storage Paths and OAIS Sections ................................................................... 62job Section.................................................................................................... 62roles Section ................................................................................................. 63Example....................................................................................................... 63Updating the Working Directory ................................................................... 65Creating a File System Root....................................................................... 65

Chapter 3 Configuring a SIP Application ..................................................................... 67Listing AIPs ..................................................................................................... 67Ingesting a SIP.................................................................................................. 68Building a SIP ZIP ............................................................................................ 69Configuring a SIP Application with One Holding ............................................... 69Search.......................................................................................................... 75PDI.INDEX.CREATOR.................................................................................. 80PDI.AIU.CNT............................................................................................... 82PDI.AIU.ID .................................................................................................. 82PDI.PKEYS................................................................................................... 83RI.INIT ........................................................................................................ 84XDB.PDI.CI.ID ............................................................................................. 85

Configuration Objects ...................................................................................... 85AIP.............................................................................................................. 87AIC ........................................................................................................... 102Application ................................................................................................ 104Confirmation.............................................................................................. 105Creating a Confirmation with an ANT Script............................................ 106

Content...................................................................................................... 107Delivery Channel........................................................................................ 109File System Folder ..................................................................................... 111File System Root ........................................................................................ 111Holding ..................................................................................................... 112Ingest ........................................................................................................ 121Ingest Node (ia_cfg_ingest_node) ................................................................ 125PDI (ia_cfg_pdi) ......................................................................................... 126PdiSchema (ia_cfg_schema)......................................................................... 129Query (eas_cfg_query) ................................................................................ 131Query Quota (ia_cfg_query_quota) .............................................................. 136Receiver Node (ia_cfg_receive_node) ........................................................... 137Search........................................................................................................ 139SearchComposition..................................................................................... 141Creating a searchComposition with an ANT Script ................................... 142

XForm ....................................................................................................... 142Creating an XForm from an ANT Script ................................................... 143

ResultMaster .............................................................................................. 145Creating a ResultMaster with an ANT Script ............................................ 148

ResultConfigurationHelper ......................................................................... 152Space ......................................................................................................... 155Space Root Folder ...................................................................................... 155SpaceRootXdbLibrary ................................................................................. 156Space Root xDB Library .............................................................................. 156FileSystemRoot........................................................................................... 157FileSystemFolder ........................................................................................ 157

4

Page 5: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Table of Contents

Store .......................................................................................................... 158Tenant ....................................................................................................... 159Transformation........................................................................................... 160XdbDatabase .............................................................................................. 161XdbFederation............................................................................................ 161xDB Library .............................................................................................. 162Creating an xDB Library with an ANT Script............................................ 164

XdbLibraryPolicy ....................................................................................... 165Content...................................................................................................... 166SIP Generator ............................................................................................. 168Building and Installing ........................................................................... 168Scenario – Creating a SIP Using Data from MySql..................................... 169

Space Limitation for a SIP File Name ............................................................... 170Unitary Archiving and Aggregation ................................................................ 171Receiving and Ingesting a SIP in One Request .............................................. 172Configuring the Ingestion Process to Store Multiple AIPs in theSame xDB Library....................................................................................... 173Executing the Close Job to Close the xDB Library and Perform aBackup ...................................................................................................... 174Configuring the Ingestion Process to Allow Aggregation .............................. 174Reception............................................................................................... 175

InfoArchive Components Debug Level Configuration ....................................... 175For Windows ............................................................................................. 175For Linux ................................................................................................... 176Enabling Debug Log Level ......................................................................... 176

Chapter 4 Configuring a Table Application ................................................................ 177Using the Upload Command ........................................................................... 178Usage Examples ......................................................................................... 179Using the Upload Schema Command........................................................... 180Usage Examples ..................................................................................... 180

run-chain-of-custody .................................................................................. 180

Chapter 5 Search Composition .................................................................................. 183Searching Table Data ...................................................................................... 183Using a Common Custom Library in an XQuery for Table-basedSearches..................................................................................................... 183

Automatic Search Installation for Application with ANT................................... 183Application Searches Structure .................................................................... 184Searches Folder .......................................................................................... 184Search Properties File.............................................................................. 185Search Composition................................................................................ 185Search Installation .................................................................................. 185Creating a Search Form ........................................................................... 186

Configuring the Number of Items Listed in the Search Results........................... 187Configuring the Time Limit for a Background Search........................................ 188

Chapter 6 Compliance ............................................................................................... 189Using Audits for Compliance .......................................................................... 189Metadata Fields .......................................................................................... 189Audit Event Type ................................................................................... 190Application-Specific Audits..................................................................... 190Metadata Fields .................................................................................. 191Searching for Audits ........................................................................... 191Audit Entries...................................................................................... 191

5

Page 6: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Table of Contents

SIP-Based Applications and Retention Class..................................................... 196Checking an AIP Object’s State ........................................................................ 197Configuring a Custom Retention Policy............................................................ 197Setting a Default Retention Policy .................................................................... 198Invalidating an AIP ........................................................................................ 198Removing a Retention Policy and Deleting an AIP ............................................ 199

6

Page 7: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Revision History

Revision Date Description

September 2016 Initial publication.

7

Page 8: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Revision History

8

Page 9: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Chapter 1Overview

InfoArchive includes a tool called the InfoArchive Command Line Interface (CLI), which can beaccessed from the Tools folder. The CLI, also called IAShell, is typically used by administrators anddevelopers. The tool can be found in the InfoArchive installation folder by this relative path:

• For Windows: tools > iashell.bat

• For Linux: tools > iashell

IAShell will mainly be used by InfoArchive Administrators. For more information, see the User Rolessection in the InfoArchive Configuration and Administration User Guide.

The tool is also used in InfoArchive scripts within sample applications.

Starting IAShellTo start IAShell, invoke it from the command line, as illustrated below:

[/ia40] % tools/iashellInfoArchive 4.1.0 command line client (c) 1999-2016 EMC CorporationType 'help' for a list of commands and options, type 'exit' to leave the shell.ia-shell>

Connecting to the InfoArchive Server by HTTPSBefore connecting to your InfoArchive server instance, which is running in HTTPS mode, performthe following two commands, which specify the correct places for your client-side Transport LayerSecurity (TLS) certificates:

ssl-keystore --file "<your_folder>/keystore.p12>" --password --password abcdefg --type PKCS12

ssl-trust-store --file "<your_folder>/truststore.jks" --password abcdefg --type JKS

9

Page 10: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

Creating Certificates and Trust Establishment

The following sections provide examples of how to implement one-way and two-way TLS.

One-Way TLS

When implementing one-way TLS, the server authenticates itself to clients.

To create self signed server certificate:

keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias IA_SERVER_CERT -dname"CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US" -keypass abcdefg-storetype PKCS12 -keystore serverCertStore.p12 -storepass abcdefg

To display server certificates in a keystore:

keytool -list -v -keystore serverCertStore.p12 -storepass abcdefg -storetype PKCS12

To create a public server certificate for other applications:keytool -export -noprompt -rfc -alias IA_SERVER_CERT -fileserver_public_cert.cert -keystore serverCertStore.p12 -storepass abcdefg -storetype PKCS12

To import a certificate into a client keystore:keytool -import -noprompt -trustcacerts -alias server_public_cert-file server_public_cert.cert -keystore client_truststore.jks -storepass abcdefg

Add the following properties to the server’s application.yml file:

server:ssl:key-store: "serverCertStore.p12"key-store-password: abcdefgkey-password: abcdefgkey-store-type: PKCS12key-alias: ia_server_cert

Two-Way TLS

When implementing two-way TLS, the server and client authenticate themselves to each other.

To create a self-signed client certificate:

keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias IA_CLIENT_CERT-keypass abcdefg -storetype PKCS12 -keystore clientCertStore.p12 -storepass abcdefg

To display client certificates in a keystore:

keytool -list -v -keystore clientCertStore.p12 -storepass abcdefg -storetype PKCS12

To create a public client certificate for other applications:

keytool -export -noprompt -rfc -alias IA_CLIENT_CERT -file client_public_cert.cert-keystore clientCertStore.p12 -storepass abcdefg -storetype PKCS12

10

Page 11: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

To import a certificate into a server keystore:

keytool -import -noprompt -trustcacerts -alias client_public_cert -fileclient_public_cert.cert -keystore server_truststore.jks -storepass abcdefg

Add the following properties to the server’s application.yml file:

server:ssl:key-store: "serverCertStore.p12"key-store-password: abcdefgkey-password: abcdefgkey-store-type: PKCS12key-alias: ia_server_certtrust-store: "server_truststore.jks"trust-store-password: abcdefgtrust-store-type: JKSclient-auth: need

Connecting to InfoArchiveUnless you connect to a running InfoArchive instance, there are not a lot of actions you can performin IAShell. For instance, if you try listing the available tenants with the select command, thefollowing error message is issued:

ia-shell>select tenantCommand failed java.lang.IllegalArgumentException: Unknown type alias: tenantia-shell>

The list command typically displays the available types you can work with but, since you have notconnected to a running InfoArchive instance, the list command returns nothing:ia-shell>listia-shell>

To connect to a running InfoArchive instance, you need to know:

1. The endpoint of the InfoArchive REST services, for example:

http://localhost:8080/services

2. The endpoint of the gateway, for example:http://localhost:8080

3. The username of the user you are connecting as (i.e., [email protected].

4. The password of the username. For example, if the password for [email protected] is’password’:

ia-shell>connect http://localhost:8080/services --user [email protected] --pswpassword --gateway http://localhost:8080Connected to 'http://localhost:8080/services'ia-shell>

11

Page 12: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

To learn more about the connect command and the available parameters, type help connect .

IAShell Startup ScriptsIAShell will run any scripts placed in $HOME/.ia-shell at startup. For instance, the connectcommand in a startup script will avoid having to constantly reconnect to the system.

For Windows,

1. Create a file called startup.txt in $HOME/.ia-shell.

2. In startup.sh , add the following command:

connect http://localhost:8080/services --user [email protected] --psw password--gateway http://localhost:8080

3. Quit IAShell by executing the exit command.

ia-shell>exit[/ia40]%

4. Start IAShell again. You are now automatically connected to the running InfoArchive instance.One method to determine whether you are connected or not is by listing the available types.

Pre-defined Users and AuthorizationInfoArchive includes pre-defined users, such as Adam, the Administrator. For more information, seethe Inline Users section in the InfoArchive Web Application User Guide.

These inline users have non-expiring authorization tokens and should only be used for demonstrationpurposes only.

You can, however, use such a token to skip user- and password-based authentication to switch to asimplified approach. Use the set-header command before running the connect command:

set-header --name Authorization --value “<SOME_TOKEN_VALUE>"

This eliminates the necessity of having a running InfoArchive server when, for example,demonstrating the application to the users. The tokens are long, however. It is recommended thatconnection-related commands are placed in a script.

IAShell supports the ‘.rc’-like type of initialization by reading-in all files found in the $HOME >.ia-shell > directory, including any start-up scripts. IAShell then executes these commands uponstart-up, which makes it easy to pre-configure certain settings (i.e., use the connect and usecommands for certain applications and tenants, etc.).

For example, use the connect and use commands for certain applications and tenants:

12

Page 13: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

connect http://localhost:8080/servicesuse --tenant test2 --application firstApp

To create this file on Windows, navigate to your home directory C:\Users\<accountName> andenter the mkdir command:

mkdir .ia-shell

Windows does allow you to create a directory with this name via the InfoArchive web application.

Type AliasesA type alias is a symbolic representation of a resource on an InfoArchive server that can be usedby an Administrator.

Aliases can be discovered after the customer specifies a parent object. After the connection isestablished by using the connect command, there are at least two main type aliases: federation andtenant. Other aliases (i.e., application-aware) are discovered after specifying a specific application(by the use command). Some aliases will not be available for certain users because of the securityrules governing user roles and groups.

InfoArchive includes support for searching/filtering for the configuration objects by SpringExpression Language (SpEL) expressions.

The only exception for the AIP type alias is that it does not support SpEL in the select command.Customers should instead use the filter option. AIP filtering parameters include:

• holdingName

• phaseCode

• returnCode

• receiveStartDateFrom

• receiveStartDateTo

Customers should use the ISO DateTime Format (yyyy-MM-dd’T’HH:mm:ss.SSSZ, i.e.,’2000-10-31 01:30:00.000-05:00’) when specifying values for the receiveStartDateFrom andreceiveStartDateTo parameters.

Admin CLI Authentication via Real ExternalLDAP ServerThe following steps outline the process to configure the Admin CLI to work with an externalLightweight Directory Access Protocol (LDAP) server.

1. Download the latest InfoArchive distribution.

2. Open the infoarchive > config > webapp > application.properties file.

13

Page 14: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

3. Find the “spring.profiles.active=infoarchive.gateway.profile.AUTHENTICATION_IN_MEMORY” string.

4. Set the string to “spring.profiles.active=infoarchive.gateway.profile.AUTHENTICATION_IN_MEMORY,infoarchive.gateway.profile.AUTHENTICATION_ACTIVE_DIRECTORY”(or spring.profiles.active=infoarchive.gateway.profile.AUTHENTICATION_IN_MEMORY,infoarchive.gateway.profile.AUTHENTICATION_EXTERNAL_LDAP if you useexternal LDAP).

5. Configure application-infoarchive.gateway.profile.AUTHENTICATION_ACTIVE_DIRECTORY.properties file with active directory connection settings.

6. Configure the Active Directory in application-infoarchive.gateway.profile.AUTHENTICATION_ACTIVE_DIRECTORY.properties file (or application-infoarchive.gateway.profile.AUTHENTICATION_EXTERNAL_LDAP.properties if you use External LDAP).Example for Active DirectoryAUTHENTICATION_ACTIVE_DIRECTORY.managerDn=cn\=Administrator,cn\=users,dc\=iigads,dc\=comAUTHENTICATION_ACTIVE_DIRECTORY.managerPassword=Password@123AUTHENTICATION_ACTIVE_DIRECTORY.userDnPatterns=cn={0},ou\=Users,ou\=infoarchive,dc\=iigads,-dc\=comAUTHENTICATION_ACTIVE_DIRECTORY.userSearchFilter=sAMAccountName\={0}AUTHENTICATION_ACTIVE_DIRECTORY.userSearchBase=ou\=Users,ou\=infoarchive,dc\=iigads,dc\=comAUTHENTICATION_ACTIVE_DIRECTORY.groupSearchFilter=(member\={0})AUTHENTICATION_ACTIVE_DIRECTORY.groupSearchBase=ou\=Groups,ou\=infoarchive,dc\=iigads,dc\=comAUTHENTICATION_ACTIVE_DIRECTORY.url=ldap://10.31.70.140:389/

Example for External LDAPAUTHENTICATION_EXTERNAL_LDAP.userDnPatterns=uid={0},ou\=peopleAUTHENTICATION_EXTERNAL_LDAP.userSearchFilter=uid={0}AUTHENTICATION_EXTERNAL_LDAP.userSearchBase=ou\=peopleAUTHENTICATION_EXTERNAL_LDAP.groupSearchFilter=(member\={0})AUTHENTICATION_EXTERNAL_LDAP.groupSearchBase=ou\=groupsAUTHENTICATION_EXTERNAL_LDAP.url=ldap://localhost:8080/dc\=infoarchive,dc\=emc,dc\=com

7. Install InfoArchive.

8. Start xDB and server.

9. Start the web application and login as an Administrator ([email protected]/password).

10. Navigate to Administration > Groups.

11. Configure the group-role mapping for Active Directory groups.

12. Set spring.profiles.active=infoarchive.gateway.profile.AUTHENTICATION_ACTIVE_DIRECTORY in application.properties file (or spring.profiles.active= infoarchive.gateway.profile.AUTHENTICATION_EXTERNAL_LDAP if you use external LDAP).

13. Restart the InfoArchive web application.

14. Navigate to the Tools folder and start iashell.

15. Connect to server using ActiveDirectory creditinals:connect http://localhost:8080/services --gateway http://localhost:8080 --user adam --pswUGFzc3dvcmRAMTIz.

14

Page 15: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

Using the Post-Recovery Command to ListOrphaned ObjectsIn the event a customer must perform recovery tasks, an Administrator can use the following CLIcommand to list objects that were orphaned.

The URL can be resolved starting from http://localhost:8080/services using thehttp://identifiers.emc.com/recovery/orphaned-objects relation.

Receiving Legacy FilesInfoArchive allows a customer to ingest SIP data that contains sip.xml with a legacy (3.X) schema.

To receive a legacy file, use the following to change the reception format:eas_sip_zip

The reception node of the holding, must provide the legacy sip extractor named’LegacyZipSipExtractor’:

15

Page 16: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

The accepted format for ingestion must be modified to support the legacy format. Add the followingto the holding.xml file:

16

Page 17: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

Using the Admin CLI, change the format in the build.xml file:

General Tips for IAShell• Use auto-completing for commands, command parameters and type aliases that you have alreadydiscovered (use the TAB key).

• To browse the commands history, use the ­ and ¯ keys. The history only records commandsthat were successfully completed.

• You can pre-configure IAShell by creating the start-up scripts.

TroubleshootingWhen the InfoArchive web server is used in conjunction with more than one IA server and xDBserver to run a multi-user search test, the results are not being returned in a sufficient amount of time.However, the log displays all the searches executed in a very short time.

Workaround: The application.yml file should be updated with the following values:

maxTotalConnections: 200maxPerRouteConnections: 20

Once the values have been updated, there are no issues with a one InfoArchive web application, twoInfoArchive server deployment. If there are more InfoArchive servers with one InfoArchive webapplication server, however, the values should be increased.

17

Page 18: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Overview

18

Page 19: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Chapter 2Configuration

IAShell Command SpecificationsEach command that interacts with the back-end can take some relations to the account (the IAShellcontext).

Note: All the commands and their respective options are case sensitive.

Command Arguments and Options

actions-update Options:

• --name/role <name> updates actions for specified role name

• --actions <set of actions> a set of comma-separated actions

• --from <file path> file path to a file with set of actions

Available only after the roles-view command has performed.

actions-view Options:

• --name or --role<name> view actions by specified role name

• --output <path to a file> the path to dump the output to

Available only after the roles-view command has performed.

apply-hold Options:

• --id or --last <id> of a hold object or <index> of such id in the latestselect result set performed

• --from <value> path to a file with data (in XML format)

Applies a hold on an object.

The data file has an XML format and can have a lot of elements,as required by the REST API. Optionally, you can also specify aholdSetDescription to describe why the items in the list wereput under hold.

Example of such a file:

<?xml version="1.0"?>

<data>

<itemsToProtect>

21492d36-d563-4987-9893-bc8c35008f15

19

Page 20: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

</itemsToProtect>

<itemsToProtect/>

<holdSetName>MyHoldSet</holdSetName>

<type>AIP</type>

<application>#{application}</application>

</data>

The following is an example where more than one item is protected:

<?xml version="1.0"?>

<data>

<itemsToProtect>e0ae4248-6c30-4a59-8303-95b84dc28ff8<

/itemsToProtect>

<itemsToProtect>ee4d9bee-b4b3-430a-bf1b-4359d74d828e<

/itemsToProtect>

<itemsToProtect/>

<holdSetName>My HoldSet 2</holdSetName>

<type>AIP</type>

<application>#{application}</application>

</data>

Example of the command:

apply-hold --id 1 --from xml/apply-hold-example.xml

The command provides the application information and does notneed to pass the parameters. The application field can be omitted inthe data file, as the proper value can be retrieved from the context(current application value).

apply-retention Options:

• --id or --last <id> of a retention-policy object or <index> of such idin the latest select result set performed

• --from <value> path to a file with data (in XML format)

Applies a retention policy to an object.

The data file has an XML format and can have a lot of elements, asrequired by the REST API. With the exception of the root element, allthe elements inside a file will be transformed to JSON format. The roottag must be named ’data’ and will be not transformed to JSON. Theroot tag must be named ’data’ and will be not transformed to JSON.

Example of such a file:

<data>

<itemsToProtect>

<itemToProtect>80368fd6-ca94-431f-9098-538240d554d2<

/itemToProtect>

</itemsToProtect>

<itemsToProtect/>

<retainedSetName>MySecondRetainedSet2</retainedSetName>

20

Page 21: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options<baseDate>2014-07-14</baseDate>

<ageIndividually>false</ageIndividually>

<application>http://localhost:8080/configuration

/applications/5104face-c332-4136-972d-1cae80f570a5<

/application>

</data>

Example of the command:

apply-retention --id 1 --from xml/apply-retention

-example.xml

The command provides the application information and does notneed to pass the parameters. The application field can be omitted inthe data file, as the proper value can be retrieved from the context(current application value).

audit-disable Options:

• --id or --last <id> of an audit event type object or <index> of suchid in the latest select result set performed.

There are three type aliases related to this command:

• audit-event-type (system wide),

• tenant-audit-event-type (related to a tenant specified in the usecommand), and

• app-audit-event-type (related to an application specified in the usecommand).

Example:

audit-disable --id 1

audit-enable Options:

• --id or --last <id> of an audit event type object or <index> of suchid in the latest select result set performed.

There are three type aliases related to this command:

• audit-event-type (system wide),

• tenant-audit-event-type (related to a tenant specified in the usecommand), and

• app-audit-event-type (related to an application specified in the usecommand)

Example:

select --t audit-event-type audit-enable --id 1

21

Page 22: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

close-library Options:

• --id or --last <id> of a xdb-library object or <index> of such id in thelatest select result set performed

• --rel <name of relation> specify a relation to a xdb-library whichis taken from the context

Either ID or relation should be provided for this command. Thecommand send a request to close the library. Actual closing will beperformed when the close job runs next time.

configure Argument: <type alias>

Options:

• --t or --type <type alias> it’s required only if a data file (see nextoption) doesn’t specify it

• --from <file path> file path to a configuration object data inXML-based format

• --var-set <context variable name> set a context variable with givenname to the self link value of the latest object configured

Create/update a configuration object with specified type. Because theconfiguration data contains a lot of properties, it is easy to specify allof the data in a file. For more information, see Format of the DataFile for the Configure Command.

Examples:

configure holding --from phonecalls.xml

configure holding --from phonecalls.xml --var-set

myObjectSelf

connect Argument: Set base URI for REST API of the back-end part

Options:

• --user <value> a user name needed to be connected to REST API

• --psw <value> a password needed to be connected to REST API

• --gateway <value> a gateway server URI that used for OAuth2authentication

Examples:

connect http://localhost:8080/services

connect http://localhost:8080/services --user

[email protected] --psw password

connect http://localhost:8080/services --gateway

22

Page 23: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Optionshttp://localhost:8080 --user [email protected] --psw

password

content-upload Argument: <type alias>

Options:

• --t or --type <type alias>

• --id or --last (some id) or <index> in the latest search result setshown

• --storeName <value> name of a store to handle the content

• --storeId <value> ID value of a store to handle the content

• --format <value> format of the content

• --from <value> path to a file with content

Examples:

content-upload query --id "b65a6e15-351a-4046-a786

-aadd10a02221" --storeName myFileStore --format xml

--from "/tmp/content/query.xml"

data-delete Options:

• --id or --last <id> of an application object or <index> of such id inthe latest select result set performed.

If an application contains data, this command deletes the data.Example:

data-delete --id 1

db-index-job Options:

• --id or --last <id> of a database object or <index> of such id inthe latest select result set performed. If this is specified the nameoptions will be ignored

• --name <value> name of a database object. If this is not specified,the database name from the use command will be used

• --job <value> name of the indexing job

• --run if this option is specified it means that the job will be started,it this is omitted the status will be shown

The list of the indexing job: Can be started: index-build, index-rebuild,index-remove, index-merge :

Can be queried for status: index-status, index-merge-status

23

Page 24: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

Examples:

db-index-job --job index-status --name Tickets-sql-db

db-index-job --job index-status --id 1 db-index-job

--job index-build --id 1 --run

delete Argument: <type alias>

Options:

• --t or --type <type alias>

• --id or --last (some id) or <index> in the latest search result setshown

Examples:

delete aip --id "3232-23232-32223"

delete --id 2

delete --last 1

disconnect No arguments and options

Clears all the context data, including type aliases and does logout, ifany.

enumerate Options:

• --id or --last <id> of an ingest-node object or <index> of such id inthe latest select result set shown

• --cutoff <value> period in days.

• --minusRunning indicates the max parameter should be decreasedfor the AIPs are ingesting currently.

• --max <value> maximum number of AIPs returned.

• --list if it’s specified, output AIP ID values to a list(comma-separated)

Enumerates list of AIPs are ready to be ingested for certain ingest-nodeobject. Produces the Id indexes (if some results are found) to be storedin the context.

24

Page 25: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

file-upload Options:

• --from <value> path to a file

• --rel <name of relation> specify a relation which is taken from thecontext

This is generic uploading command. Could be used in cases when auploading relation is known. The relation specified will be used forthe uploading the file.

groups-view View the groups

import-search Options:

• --from <value> path(s) to one or more search files delimited by ’;’ or’:’ (the system-dependent path-separator character)

• --overwrite <value>, specifies if to update search if it exists beforeinstallation. Possible values: "true" or "false". If there is noparameter, then standard import is performed

The command allows to import the search from ZIP file (search formatexported from the InfoArchive web application) to the application.For example:

import-search --from C:/Tools/applications/PhoneCalls

/DateInterval.zip --overwrite true

--overwrite parameter for "import-search" command

• If there is no parameter, then standard import is performed

• if there is an --overwrite true parameter and, if the searchexists, then the existing search is updated.

• if there is an --overwrite false parameter and, if the searchexists, then the existing search is not updated.

ingest Options:

• --id or <id> of an AIP object or <index> of such id in the latestenumerate result set shown

• --all-ids specifies to apply the ingest for all the IDs in the context(in the latest select command)

Ingests an AIP object. The object must be ready for the ingestion.

25

Page 26: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

invalidate Options

• --id or --last <id> of an AIP object

• --category <value> specifies category, if it is needed

• --description <value> specifies description, if it is needed

Invalidates an AIP object.

job Options

• --id or --last <id> of an job-definition object or <index> of such id inthe latest select result set performed

• --activate

• --inactivate

Does some configuration tasks for a job-definition object (i.e.,activate/inactivate):

job --id 1 --activate

job --id 1 --inactivate

list-aliases No arguments

Shows a list of configuration type aliases that are available on aconcrete, connected application.

The list of aliases depends on the context you set If you set yourcontext to use:

--tenant INFOARCHIVE -application MyApplication

, you will not have access to the resources available on the tenant level.

next No arguments and options

Goes to the next page after the select command. This command couldbe available if there is more than one page in the select result set. Also,it is available only if previous command was one of select/next/prev.

prev No arguments and options

Goes to the previous page after the select command. This commandcould be available if there is more than one page in the select resultset. Also, it is available only if previous command was one ofselect/next/prev.

26

Page 27: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

receive Options:

• --format <value> format of the SIP

• --from <value> path(s) to one or more SIP files delimited by ’;’ or ’:’(the system-dependent path-separator character)

• --list if it’s specified output AIP ID values to a list (comma-separated)

Receives (upload) a SIP package or packages to the server.

reject Options:

• --id or --last <id> of an AIP object

• --category <value> specifies category, if it is needed.

• --description <value> specifies description, if it is needed.

Rejects an AIP object.

relations No arguments and options

Shows all the relations are available in the context.

remove-hold Options:

• --id or --last <id> of a policy object or <index> of such id in the latestselect result set performed

• --externalId <id> of an object for which the removing will beperformed

Removes a hold from an object:

1 --externalId e21fab5c-e82a-4215-8f5a-bd0169a552d7

remove-retention Options:

• --id or --last <id> of a retention-policy object or <index> of such idin the latest select result set performed

• --externalId <id> of an object for which the removing will beperformed

Removes a retention policy from an object:

remove-retention --id 1 --externalId e21fab5c-e82a-4215

-8f5a-bd0169a552d7

27

Page 28: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

roles-update Options:

• --name or --group <name> updates roles for specified group name

• --roles <set of roles> a set of comma-separated roles

Only available after the groups-view command has been performed.

roles-view Options:

• --name or --group <name> view roles by specified group name

Only available after the groups-view command has been performed.

run-job Options:

• --id or --last <id> of a job-definition object or <index> of such id inthe latest select result set performed

• --from <value> path to a file with data (in XML format)

• --data <value> JSON-like formatted data, use this instead ofspecifying a file in XML format

Run a job by its job-definition. JSON formatted data should be insideof double quotes. Examples:

The XML format of a data file is exactly the same as used inapply-retention (hold) commands.

run-job --id 1 --from job-run.xml

run-job --id 1 --data "{'now': 'true'}"

run-job --id 1

select Argument: <type alias>

Options:

• --t or --type <type alias>

• --where <an expression> this defines an expression tofilter the data. This should be a SpEL expression (SpEL(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html) expressions.). Cannot be usedfor type aliases that do not support SpEL (at the moment: AIP).According to SpEL documentation, case insensitivity is permittedfor the first letter of property names.

• --filter <value> Filter parameters, should be defined as a simplifiedJSON fragment

• --property <name of the property> returns value of the specifiedproperty

28

Page 29: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

• --rel <name of relation> specify a relation that is taken from thecontext

• --var-set <context variable name> set a context variable with givenname to the output of the command. Should be used within theproperty option together

• --output <path to a file> the path to dump the output to

• --names if it is specified, all the names of all the properties availablewill be shown. It’s worth when interacting with some types whichmight not have ID and name properties.

• --attributes <list of additional attribute names to be shown> acomma delimited list of additionalattributes (for those which areshown by default)

Searches and outputs the objects are found. It shows values only forattributes name and id (if the option property is not specified). It ispossible to define additional attributes to be shown (the attributesoption). If none of them is found, it shows value of the first attributefound. Produces the ID indexes (if some results are found) to bestored in the context. Indexes are 1 based. Such context is widely usedin other CLI commands. Also, these indexes are treated as contextvariables named like ID_<index>.

select holding

select holding --where "?[name=='PurchaseOrder']"

select holding --where "?[name=='PurchaseOrder']"

--property id

select ingest-node --rel ingest-nodes

select holding --where "?[name=='PurchaseOrder']"

--property id --set-name holdingId

select aip --filter "{'PurchaseOrder'}" select aip

--attributes xdbMode

set-alias-properties Argument: <type alias>

Options:

• --t or --type <type alias>

• --properties <set of property names> set of properties to be shownby default in the view command for the type alias specified

Examples:

set-alias-properties aip --properties "id, name,

stateCode, phase, dss.holdingName"

29

Page 30: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

set-header Argument: Set an HTTP header for connection requests

Options:

• --name <value> name of a attribute

• --value <value> valueof a attribute

Add an attribute and its value to HTTP headers. The headers will besent to the server in next commands performed (during the currentsession and until the disconnect command is performed).

set-header --name X-header --value

YWRhbUBpYWN1c3RvbWVyLmNvbTpwYXNzd29yZA==

set-type-alias Options:

• --name <type alias>

• --rel <name of relation> specify a relation which is taken from thecontext

Allows customer to set a custom type alias to access for some resourcedefined by a relation in the context:

To register a type, you need to know if the type is defined on the:

• system,

• tenant, or .

• application

Use a REST client to discover where the various objects are stored.

In the following example, conditions are defined on the tenant so thecontext is being set to the tenant:

use --tenant INFOARCHIVE

set-type-alias --name condition --rel conditions

The challenge with registering system types, however, is once thecontext is set using the use command, there is no way to clear outthat tenant context.

The work-around is to register the system types beforehand. For anynew types that were not registered for 4.1 , add the start-up file.

1. After entering the connect command, register the system types.

2. Enter the use command to set the context to your tenant(INFOARCHIVE):

use --tenant INFOARCHIVE

30

Page 31: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

3. Register any additional tenant types.

4. Enter the use command to set the context to your application:

use --tenant INFOARCHIVE --application

<MyApplication>

5. Register any additional application types.

If you are using multiple applications, enter the use command to setthe context back to tenant:

--tenant INFOARCHIVE'

Replace <MyApplication> with the application you want to use.Otherwise, you will have to keep registering the types each time youstart a new IAShell session.

ssl-keystore Options:

• --file <file path> Set the keystore file path to use for SSL

• --type <type> Set the keystore type to use for SSL

• --password <value> Set the keystore password to use for SSL

Example:

ssl-keystore --file "/myfolder/client/clientCertStore

.p12" --password abcdefg --type PKCS12

ssl-reset Resets the SSL configuration back to the system default

ssl-trust-store Options:

• --file <file path> Set the truststore file path to use for SSL

• --type <type> Set the truststore type to use for SSL

• --password <value> Set the truststore password to use for SSL

Example:

ssl-trust-store --file "/myfolder/client/client

_truststore.jks" --password abcdefg --type JKS

31

Page 32: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

update Argument: <type alias>

Options:

• --t or --type <type alias>

• --id or --last (some id) or <index> in the latest search result setshown

• --properties <value> (names and values to be changed)

Change the object specified by an option and properties (names andvalues). Examples:

update holding --id "222323-3533-22" --properties

"{'name': 'MyFavorite', 'priority': 1}"

update --last 1 --properties "{'name': 'MyFavorite2',

'priority': 2}"

use Options:

• --federation <a federation name> discovers related aliases(xdb-database)

• --space <a space name> discovers related aliases ()

• --space-root-library <a space-root-library name> discovers relatedaliases (xdb-library)

• --tenant <a tenant name> discovers related aliases (tenant-aware)

• --application <an application name> discovers related aliases(application-aware)

• --space-root-folder <a space-root-folder ID value> discovers relatedaliases (file-system-folder)

• --database <a database name> discovers related aliases (schema)

• --search-composition <a search-composition object name> discoversrelated aliases (x-form and x-query)

• --schema <an SQL schema object name> discovers related aliases(table)

• ecs-end-point <an ECS endpoint name> discovers related aliases(ecs-credentials)

Uses configuration object names to establish relations and discoverchildren type aliases.

var-clear Clears all the variables in the context

32

Page 33: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

var-get Options:

• --name <name of the variable>

• --value <some value> should contain a SpEL expression :#{<expression>}

Shows a variable by name or by value within a SpEL expression. Forexample:

var-get --name application

var-get --value #{tenant}

var-list Shows all the variables in the context

var-set Options:

• --name <name of the variable>

• --value <some value>

Sets a user-defined context variable:

var-set --name myVar --value someValue

After the setting, the customer can address the variable by SpEL:#{myVar}

There are variables set by the CLI after the connect command. Also,each relation in the context is treated as a variable.

view Argument: <type alias>

Options:

• --t or --type <type alias>

• --id or --last (some id) or <index> in the latest search result setshown, default value is 0

• --properties <set of property names to be shown> comma delimited

• --show-all if it presents all the properties will be shown

• --xml to show a dump of all properties in XML format (suitable forcopy/past for the configure command)

• --relations to show only relations for the object (HAL relations)

• --rel <name of relation> specify a relation which is taken from thecontext. Cannot be used with the id option at the same time.

• --output <path to a file> the path to dump the output to

33

Page 34: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Command Arguments and Options

Shows predefined set of properties of an object. The set could bepredefined by using the set-alias-properties command. Examples:

view aip --id "3232-23232-32223" view --id 2

view --show-all --last 1

view --last 1 --properties "id, name, productionDate,

state"

view --show-all --id 1 --xml

view --id 1 --relations

view --t store --rel xdb-store

Using the apply-hold CommandThe following example illustrates the process of using the apply-hold command on files in thePhoneCalls application.

1. Connect as a Retention Manager.

Note: Administrators do not see the hold alias.

2. Enter the use command:

use --tenant INFOARCHIVE

3. Enter the select hold command:

sample response:ia-shell>select hold=======================================================name id-------------------------------------------------------1 PhoneCalls-hold a77bbaa6-a698-4b2f-b41f-dae7a248be292 Audit-hold c00e1ad7-5135-4c00-9c33-56d8b61b3188-------------------------------------------------------

4. Enter the use command:

use --application PhoneCalls

5. Enter the select command to determine which AIPs are to be protected:

ia-shell/hold>select aip================================================================name id----------------------------------------------------------------1 PhoneCalls-CC-1000000-1 cdba6e7c-47e9-4c7d-a8b1-460259fb751b2 PhoneCalls-CC-1000001-1 c39cdf7f-fe89-4408-ad0e-dbcdb9d85b3f3 PhoneCalls-CC-1000003-1 e0ae4248-6c30-4a59-8303-95b84dc28ff84 PhoneCalls-CC-1000004-1 ee4d9bee-b4b3-430a-bf1b-4359d74d828e

34

Page 35: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

5 PhoneCalls-CC-1000005-1 716cd062-e4fa-447c-9a93-0432eedbf3b86 PhoneCalls-CC-1000006-1 cb93b390-be63-4ad1-8545-8c61d07592297 PhoneCalls-CC-1000007-1 d798bb94-614e-4a89-9705-5e940ef7077c8 PhoneCalls-CC-1000008-1 681c35e5-f727-467e-99a4-f0b57f70ca419 PhoneCalls-CC-1000009-1 edca4585-7522-41b9-8727-5084915cbcf610 PhoneCalls-CC-1000010-1 a4453216-3050-4127-afd2-2ae0b687be59----------------------------------------------------------------Elements count: 10. Page 1 of 1

6. In a text editor, create an XML file called applyHold.xml and store it in the tools directory. Ifprotecting one AIP, put the id in the itemsToProtect. Be sure to enter the correct id, as the systemdoes not return an error if the AIP does not exist.

<?xml version="1.0"?><data><itemsToProtect>cdba6e7c-47e9-4c7d-a8b1-460259fb751b</itemsToProtect><itemsToProtect/><holdSetName>MyHoldSet</holdSetName><type>AIP</type><application>#{application}</application></data>

7. Enter the select command to reset the context back to the hold:

select hold

8. Enter the apply-hold command:

apply-hold --id 1 --from applyHold.xml

Tip: If the following error message is received, hold sets cannot be shared:

Command failed org.springframework.web.client.HttpClientErrorException: 409 errors:ProcessingException Hold set already in useuse a new name

9. Enter the select command to confirm the hold was applied:

select aipia-shell/aip>view --id 1 --show-all=================================================================createdBy [email protected] 2016-09-07T14:15:03.046-04:00lastModifiedBy [email protected] 2016-09-07T14:15:21.580-04:00version 13name PhoneCalls-CC-1000000-1aipId cdba6e7c-47e9-4c7d-a8b1-460259fb751bdss.id 1000000dss.holdingName PhoneCallsdss.pdiSchema urn:eas-samples:en:xsd:phonecalls.1.0dss.productionDate 2001-12-01T00:00+01:00dss.baseRetentionDate 2001-12-01T00:00+01:00dss.producer CCdss.entity Platform

35

Page 36: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

dss.priority 0dss.application UAsipProductionDate 2001-12-01T00:00+01:00sipSeqno 1sipIsLast truesipAiuCount 3sipPageCount 0pkeys.dateTime01 2001-11-02T21:06:39.104+01:00pkeys.dateTime02 2001-11-26T10:17:18.104+01:00ingestDeadlineDate 2016-09-07T15:55:02.386-04:00pdiFileSize 2347pdiValuesCharCount 519ciCount 3ciSize 123369ciFormat ci_containerriRecordSize 354stateCode COMphaseCode COMxdbMode PRIVATExdbPdiSchema urn:eas-samples:en:xsd:phonecalls.1.0partOfAggregate falseaggregateCiSeqno 0aggregateAiuSeqno 0pdiConfigName PhoneCalls-pdipriority 1receiveStartDate 2016-09-07T14:15:02.386-04:00receiverNodeName receiver_node_01sipFileFormat sip_zip_cryptosipFileSize 123186sipFileHash df249d716be4da2edacd772c2189d6a1698d5996ingestWaitStartDate 2016-09-07T14:15:02.701-04:00ingestStartDate 2016-09-07T14:15:20.903-04:00ingestNodeName ingest_node_01ingestConfigName PhoneCalls-ingestcommitWaitStartDate 2016-09-07T14:15:21.490-04:00commitSync truecommitDate 2016-09-07T14:15:21.542-04:00pdiCryptoConfigName PhoneCalls-pdi-cryptopdiCryptoIv aYr9dyRE7G6GvAYxCinhAA==pdiCryptoKeyId PDI_d7cdb1c0-1452-48ff-bf70-c497ca36a9d0cryptoEncoding base64pdiCryptoHashSalt 6QFmeyTbpThp405S80jGPQ==ciCryptoKeyId CI_d7cdb1c0-1452-48ff-bf70-c497ca36a9d0ciCryptoIv I97eUkyJza0eaNCsNhZV3Q==sipCryptoKeyId SIP_d7cdb1c0-1452-48ff-bf70-c497ca36a9d0sipCryptoIv sB46HP9sictm6/wXRHHRKg==returnCode OKprojectedDispositionDate 2002-02-28T00:00+01:00underHold trueunderRetention truepermission.groups []state CompletedxdbLibraryName a3ba6eab-35ef-4bce-a0c0-cc10ce522e35openAggregate falseaggregate falsexdbLibraryIndexSize 53248phase CompletedvalidAggregate falsepdiCryptoObjectName PhoneCalls-crypto-objectciCryptoObjectName PhoneCalls-crypto-objectsipCryptoObjectName PhoneCalls-crypto-objectxdbLibrarySize 253952xdbLibraryDetached falseid cdba6e7c-47e9-4c7d-a8b1-460259fb751b-----------------------------------------------------------------

36

Page 37: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Verifying the Hold Set has been Created

The following example illustrates how to verify that the hold set has been successfully created foritems stored in the PhoneCalls application:

1. Enter the use command to set the context to the application:

use --tenant INFOARCHIVE --application PhoneCalls

2. Enter the set-type-alias command to set the alias for the holds sets:

ia-shell>set-type-alias --name hold-set --rel hold-setsNew alias type was addedia-shell>

3. Use the select command to list the hold sets:

ia-shell>select hold-set==================================================name id--------------------------------------------------1 MyHoldSet a3f2b0ae-a00c-427c-b6b8-4c522e7419142 My HoldSet cb876e04-3326-4ec6-bd41-2616cdb568f8--------------------------------------------------

4. Use the view command to display the properties of the hold set:

ia-shell/hold-set>view --id 2 --show-all=================================================================createdBy [email protected] 2016-09-08T09:51:40.708-04:00lastModifiedBy [email protected] 2016-09-08T09:51:40.794-04:00version 2tenantId 5061ae2d-adac-405b-b06e-36207e02b7edfilterName d7cdb1c0-1452-48ff-bf70-c497ca36a9d0partitionkeys ["cdba6e7c-47e9-4c7d-a8b1-460259fb751b"]name My HoldSetdescription nulltype AIPexternalReference nullexternalReferenceContext nullholdName PhoneCalls-holdholdTypeName LEGALholdReviewDate nullcount 1supplementalData nullid cb876e04-3326-4ec6-bd41-2616cdb568f8-----------------------------------------------------------------

37

Page 38: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Using the configure CommandThis section contains examples illustrating how to use the configure command.

The configure command has a required argument: path to a file of the data. Format of the datafiles is XML-based and quite complicated. For more information, see Format of a Data File for theConfigure Command.

Examples of the select command:

ia-shell>select aip --where "?[dss.holdingName=='PhoneCalls']"================================================================# name id----------------------------------------------------------------1 PhoneCalls-CC-1000000-1 dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f362 PhoneCalls-CC-1000001-1 77babb39-b0fd-4ba9-8bf5-732331dba6813 PhoneCalls-CC-1000003-1 5cc46f91-cf3f-4af4-995b-aa7f56f6f0184 PhoneCalls-CC-1000004-1 0bffe02d-c8c8-4ad3-b5c0-037e8a9bf50b5 PhoneCalls-CC-1000005-1 642342a4-9377-49b2-ac8e-10bee3e1af506 PhoneCalls-CC-1000006-1 d8bdd8e9-a8e4-4ba5-bff6-4b06a4e0690a7 PhoneCalls-CC-1000007-1 4a35f487-b627-462c-a2ed-ad662ef2e27b8 PhoneCalls-CC-1000008-1 a2b29279-482c-4d8b-9b5a-54b00910f53d9 PhoneCalls-CC-1000009-1 632ca99f-2862-4eaa-86be-e2b0fb42996710 PhoneCalls-CC-1000010-1 88a5cdc9-3390-4e17-8917-5a66f39ff1a9----------------------------------------------------------------Elements count: 10. Page 1 of 1

Examples of the view command:

ia-shell>view --show-all --last 1==============================================================createdBy [email protected] 2016-04-27T18:35:44.927+03:00lastModifiedBy [email protected] 2016-04-27T18:35:44.927+03:00name PhoneCalls-CC-1000000-1aipId dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36dss.id 1000000dss.holdingName PhoneCallsdss.pdiSchema urn:eas-samples:en:xsd:phonecalls.1.0dss.productionDate 2001-12-01T00:00+01:00dss.baseRetentionDate 2001-12-01T00:00+01:00dss.producer CCdss.entity 1dss.priority 0dss.application 1sipProductionDate 2001-12-01T00:00+01:00sipSeqno 1sipIsLast truesipAiuCount 3sipPageCount 0ingestDeadlineDate 2016-04-27T20:15:44.210+03:00stateCode WINGphaseCode WINGpriority 1receiveStartDate 2016-04-27T18:35:44.210+03:00receiverNodeName receiver_node_01sipFileFormat sip_zipsipFileSize 123162ingestWaitStartDate 2016-04-27T18:35:44.272+03:00

38

Page 39: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

commitSync truereturnCode OKunderHold falseunderRetention falsepermission.groups []state Waiting ingestionphase Waiting Ingestionid dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36--------------------------------------------------------------ia-shell>view --last 1=======================================name PhoneCalls-CC-1000000-1dss.holdingName PhoneCallssipSeqno 1sipAiuCount 3underHold falseunderRetention falsestate Waiting ingestion---------------------------------------ia-shell>view --last 1 --xml<object><receiverNodeName>receiver_node_01</receiverNodeName><commitSync>true</commitSync><dss><productionDate>2001-12-01T00:00+01:00</productionDate><application>1</application><holdingName>PhoneCalls</holdingName><baseRetentionDate>2001-12-01T00:00+01:00</baseRetentionDate><producer>CC</producer><id>1000000</id><pdiSchema>urn:eas-samples:en:xsd:phonecalls.1.0</pdiSchema><priority>0</priority><entity>1</entity>

</dss><ingestWaitStartDate>2016-04-27T18:35:44.272+03:00</ingestWaitStartDate><sipIsLast>true</sipIsLast><ingestDeadlineDate>2016-04-27T20:15:44.210+03:00</ingestDeadlineDate><aipId>dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36</aipId><sipAiuCount>3</sipAiuCount><underHold>false</underHold><returnCode>OK</returnCode><sipSeqno>1</sipSeqno><sipPageCount>0</sipPageCount><underRetention>false</underRetention><sipFileSize>123162</sipFileSize><phaseCode>WING</phaseCode><state>Waiting ingestion</state><phase>Waiting Ingestion</phase><lastModifiedDate>2016-04-27T18:35:44.927+03:00</lastModifiedDate><lastModifiedBy>[email protected]</lastModifiedBy><permission/><priority>1</priority><receiveStartDate>2016-04-27T18:35:44.210+03:00</receiveStartDate><createdDate>2016-04-27T18:35:44.927+03:00</createdDate><createdBy>[email protected]</createdBy><name>PhoneCalls-CC-1000000-1</name><stateCode>WING</stateCode><sipProductionDate>2001-12-01T00:00+01:00</sipProductionDate>

</object>

Example of the view command which shows certain properties:ia-shell>view --last 1 --properties "name, dss.productionDate, priority, sipFileFormat"==========================================

39

Page 40: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

name PhoneCalls-CC-1000000-1dss.productionDate 2001-12-01T00:00+01:00priority 1sipFileFormat sip_zip------------------------------------------

Example of the view command which shows relations:ia-shell>view --id 1 --relations==========================================================================================self http://localhost:8080/systemdata/aips/dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36delete http://localhost:8080/systemdata/aips/dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36application http://localhost:8080/systemdata/applications/0bc3f378-3194-48e1-b608-309805cbd0e9contents http://localhost:8080/systemdata/aips/dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36/contentsingest http://localhost:8080/systemdata/aips/dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36/ingestinvalid http://localhost:8080/systemdata/aips/dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36/invalid954a2b3240c9groups http://localhost:8080/systemdata/aips/dc24b5c8-8d48-45e2-8cf2-5ed7c0da2f36/groups------------------------------------------------------------------------------------------

Example of the select command which uses the --rel option:ia-shell>select --t ingest-node --rel ingest-nodes====================================================name id----------------------------------------------------ingest_node_01 055e5df4-d455-4ef8-8d2f-4ccb24519447----------------------------------------------------Elements count: 1. Page 1 of 1

Example of the receive command:ia-shell>receive --format sip_zip --from sip/ia_sip_01.zipOKia-shell>select aip --where "?[state == 'waiting ingestion']"================================================================name id----------------------------------------------------------------PhoneCalls-CC-2011020113-1 e01a70b6-7cdb-498e-b96e-7fafbff72e52----------------------------------------------------------------Elements count: 1. Page 1 of 1

Example of the enumerate command:ia-shell>select --t ingest-node====================================================name id----------------------------------------------------ingest_node_01 447f9660-3f59-4d8e-8859-a71446e36d6e----------------------------------------------------Elements count: 1. Page 1 of 1ia-shell>enumerate --id 1================================================================name id----------------------------------------------------------------PhoneCalls-CC-2011020113-1 e8d77e07-2b76-470c-8296-7c28e020406d

Example of the ingest command:

ia-shell>enumerate --id 1================================================================

40

Page 41: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

name id----------------------------------------------------------------PhoneCalls-CC-2011020113-1 e8d77e07-2b76-470c-8296-7c28e020406dia-shell>ingest --id 1

Example of the apply-retention command:ia-shell>select --t retention-policy===============================================name id-----------------------------------------------policy_01 cb88c557-7720-401a-ad43-ac4b8f171838-----------------------------------------------Elements count: 1. Page 1 of 1ia-shell>apply-retention --id 1 --from xml/app-ret.xml

Content of the app-ret.xml file:<?xml version="1.0"?><data>

<itemsToProtect><itemToProtect>14261127-3f82-4d8f-a603-41a1f43dc889</itemToProtect>

</itemsToProtect><itemsToProtect/><retainedSetName>MySecondRetainedSet2</retainedSetName><baseDate>2014-07-14</baseDate><ageIndividually>false</ageIndividually><application>#{application}</application>

</data>

The required link to the application is defined by context variable named application.

Example of the remove-retention command:ia-shell>remove-retention --id 1 --externalId 14261127-3f82-4d8f-a603-41a1f43dc889

Example of the run-job command which runs an instant job by it job-definition object:ia-shell>select --t job-definition=======================================================================# name id-----------------------------------------------------------------------1 Commit 4d0a9f41-dbf8-40dd-bcea-7194798d5d462 Confirmation 59256c0a-6641-41fa-938a-71d27197673e3 Clean aa7dde74-1cde-4ed6-8092-3d56a8b506b84 Invalidation d4aa57e9-5f6c-44fd-ae0d-6bbd70c824825 GeneratePurgeCandidateList c4c72287-8003-45ae-b268-1734945928996 DisposePurgeCandidateList 11945a91-fce1-4152-b84e-50aa74725ad77 TableApplyRetention c33c29ce-8e25-4a04-aa83-f5652f6b17618 RefreshMetrics 5394a528-5eb8-4c7a-80dc-0ab6690041159 Requalification c70dac2b-7c75-483c-8272-b030a761fad610 BuildIndex 5945a066-077f-4715-92aa-34535741a24711 Apply AIU Retention Policy 6c350f8f-13c6-410d-a9e7-21a045d5d68b12 Trigger Event Policy ef70d7dc-275e-48ed-a7e8-179461ad0ee613 Clean up Purge Candidate Lists 5fe6bebe-fa0e-43cf-85b3-ad44a442e37c14 Archive Audits 6febbd6f-ec3d-4fea-a840-9b019ad35c2d-----------------------------------------------------------------------Elements count: 14. Page 1 of 1ia-shell>run-job --id 5--data "{'now': true}"

It runs the fifth job in the list of the select command results.

Examples of the groups-view, roles-view and actions-view commands:ia-shell>groups-viewADMINISTRATORGROUP_RETENTION_MANAGER

41

Page 42: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

GROUP_END_USERGROUP_DEVELOPERGROUP_IT_OWNERGROUP_BUSINESS_OWNERia-shell>roles-view GROUP_IT_OWNERIT_OWNERia-shell>actions-view IT_OWNERCREATE_AUDITEXECUTE_BACKGROUND_SEARCH...VIEW_XFORMVIEW_XFORMSia-shell>actions-view IT_OWNER --output it_act.txt

Examples of the roles-update and actions-update commands:ia-shell>roles-update GROUP_IT_OWNER --roles "IT_OWNER, END_USER"IT_OWNEREND_USERia-shell>actions-update END_USER --actions VIEW_XFORM,VIEW_XFORMSVIEW_XFORMVIEW_XFORMSia-shell>actions-update IT_OWNER --from it_act.txt

Example of enabling SSL (TLS) support in the tool (ssl-keystore and ssl-trust-store commands).Pre-condition: There should be two stores within the client-side certificates (two-way TLS support):ia-shell>ssl-keystore --file "/tmp/apollo_cert/client/clientCertStore.p12"--password abcdefg --type PKCS12OKia-shell>ssl-trust-store --file "/tmp/apollo_cert/client/client_truststore.jks"--password abcdefg --type JKS

Format of a Data File for the ConfigureCommandThe data file is an XML-based format and not under any kind on XSD schema. This is a flexibleapproach when a user might not know a set of attributes, the data model or its relation to theimplementation details of each configuration object type.

The root element is named configuration. There can be several child nodes named object, and eachnode must contain the attribute named typeAlias.

There is no possibility to specify a tenant and an application. The connect command is aimed tospecify all of the information required to connect to some resources, including tenant, application,user/password, etc.

Each object node might have three parts: create, update and content. Either the create tag or the objecttag must have the checkExistSpEL attribute within an expression to:

• Check if such an object already exists in the repository; or

• Retrieve the object.

InfoArchive supports different sets of attributes for the create, as well as the update part, becausethere might be attributes that must be filled only when an object is being created.

Example of the file for a holding object:

42

Page 43: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

<?xml version="1.0"?><configuration>

<object typeAlias="holding" checkExistSpEL="?[name == 'PhoneCalls']"var-set="myContexVariable">

<create><name>PhoneCalls</name>

</create><update>

<priority>1</priority><subPriorities>

<deadLine>100</deadLine><priority>0</priority>

</subPriorities><subPriorities>

<deadLine>200</deadLine><priority>1</priority>

</subPriorities><logStoreEnabled>true</logStoreEnabled><xdbMode>PRIVATE</xdbMode><ciHashValidationEnabled>true</ciHashValidationEnabled><pdiXmlHashValidationEnabled>true</pdiXmlHashValidationEnabled><pdiXmlHashEnforced>false</pdiXmlHashEnforced><syncCommitEnabled>true</syncCommitEnabled><keepSipAfterCommitEnabled>false</keepSipAfterCommitEnabled><retentionClasses>

<name>ret_89</name><policies>PhoneCalls-policy</policies><policies/>

</retentionClasses><retentionClasses/><defaultRetentionClass>ret_89</defaultRetentionClass>

</update></object>...<object ...></object>

</configuration>

Other nodes placed under the create/update nodes are attributes of an object.

This approach is flexible and allows the customer to define inner objects or even collections of innerobjects without having any concrete XSD schema.

Note: Use the attribute var-set to define a context variable that will be set and equal to theself-relation (self-link) value of the object created or updated. After the setting, refer to it by SpEL:#{myContexVariable}.

Issues in the Update/Create Sections of Data Files

A collection with one element is treated by special way. It’ is required to detect that this is acollection, not a single attribute:...

<update><ingestionNodeNames>

first</ingestionNodeNames><ingestionNodeNames/>

</update>

43

Page 44: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

...

This approach should be used when the user needs to empty a collection:...

<update><subPriorities>null</subPriorities><subPriorities/>

</update>...

Appending and Replacing Elements in Collections

InfoArchive includes N-level (in-depth) persistence object sub-types (collections). One of thesub-types can include another collection. The CLI tool supports appending and replacing attributesin the collections on any level of sub-types.

The following is an example of the data file within a collection in XML format, a format that theconfigure command can consume:<configuration>

<object typeAlias="holding"><create checkExistSpEL="...">

...</create><update>

<ingestionNodeNames>firstNode</ingestionNodeNames><ingestionNodeNames>secondNode</ingestionNodeNames><ingestionNodeNames>thirdNode</ingestionNodeNames>

<ingestionProcessorConfigs><inputSipFormat>7z</inputSipFormat><ingestionProcessorName>eas_ingest_sip_7z-ci</ingestionProcessorName>

</ingestionProcessorConfigs><ingestionProcessorConfigs>

<inputSipFormat>zip</inputSipFormat><ingestionProcessorName>eas_ingest_sip_zip-ci</ingestionProcessorName>

</ingestionProcessorConfigs>

<subPriorities><deadLine>100</deadLine><priority>0</priority>

</subPriorities><subPriorities>

<deadLine>200</deadLine><priority>1</priority>

</subPriorities></update>

</object></configuration>

The following example illustrates the scenario in which there are collections inside of other collections(the subPriorites has secondLevelCollection):<configuration>

<object typeAlias="holding"><create checkExistSpEL="...">

...</create><update>

<ingestionNodeNames>firstNode</ingestionNodeNames>

44

Page 45: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

<ingestionNodeNames>secondNode</ingestionNodeNames><ingestionNodeNames>thirdNode</ingestionNodeNames>

<ingestionProcessorConfigs><inputSipFormat>7z</inputSipFormat><ingestionProcessorName>eas_ingest_sip_7z-ci</ingestionProcessorName>

</ingestionProcessorConfigs><ingestionProcessorConfigs>

<inputSipFormat>zip</inputSipFormat><ingestionProcessorName>eas_ingest_sip_zip-ci</ingestionProcessorName>

</ingestionProcessorConfigs>

<subPriorities><deadLine>111</deadLine><priority>1</priority><secondLevelCollection>first</secondLevelCollection><secondLevelCollection>second</secondLevelCollection>

</subPriorities><subPriorities>

<deadLine>222</deadLine><priority>2</priority><secondLevelCollection>third</secondLevelCollection><secondLevelCollection>fourth</secondLevelCollection>

</subPriorities></update>

</object></configuration>

The following example illustrates the scenario in which the user has to append an element at the firstposition to the secondLevelCollection in the second element of the subPriority collection:...

<update><subPriorities index="1">

<secondLevelCollection index="0" append="true">the very first</secondLevelCollection>

</subPriorities></update>

...

Replace/append in the test collection example...

<update><test replace="0">

<field1>1</field1><field1>2</field1><ingestionNodeNames>ReplacedThirdNode</ingestionNodeNames>

</test><test index="1">

<field1>3</field1><field1>4</field1><ingestionNodeNames index="0" append="true">veryFirstNode</ingestionNodeNames><ingestionNodeNames append="true">fourthNode</ingestionNodeNames>

</test><test append="true">

<ingestionNodeNames>AddedNode</ingestionNodeNames></test>

</update>...

45

Page 46: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

The above example changes the following:

1. Replaces element ’0’ in the collection.

2. Updates the second element in the collection to the field1 collection (with replacing any oldvalues).Append the ’veryFirstNode’ value to the collection named ingestionNodeNamesto the first position. Add one more value (’fourthNode’) to the end of the collectioningestionNodeNames.

3. Adds one element to the end of the collection test.

Update a certain element in the collection...

<update><test index="1">

<field1>3</field1><field1>4</field1>

</test></update>

...

Update entire collection...

<update><test>

<field1>3</field1><field1>4</field1>

</test><test/>

</update>...

Note: If a user updates a collection and needs to use the only element, use the empty second element,as the JSON-Java library cannot detect that this a collection, not a single attribute.

Setting InfoArchive Clients for HTTPS Communication

The Java Secure Socket Extension (JSSE) system properties must be set to enable usage of custom keyand trust stores by an InfoArchive Java Database Connectivity (JDBC) driver host application.

An InfoArchive JDBC driver ’ssl’ property must be set to ’true’ to enable https communication.

SSL1 System Properties

-Djavax.net.ssl.trustStoreType=jks-Djavax.net.ssl.trustStore="E:\\info-archive\\certificates\\client\\client_truststore.jks"-Djavax.net.ssl.trustStorePassword=abcdefg

46

Page 47: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

SSL2 System Properties

-Djavax.net.ssl.trustStoreType=jks-Djavax.net.ssl.trustStore="E:\\info-archive\\certificates\\client\\client_truststore.jks"-Djavax.net.ssl.trustStorePassword=abcdefg-Djavax.net.ssl.keyStoreType=pkcs12-Djavax.net.ssl.keyStore="E:\\info-archive\\certificates\\client\\clientCertStore.p12"-Djavax.net.ssl.keyStorePassword=abcdefg

InfoArchive JDBC Connection Setup

The Java Database Connectivity (JDBC) driver authentication is done using a user name andpassword.

1. Specify the following properties:

user=user-namepassword=user-passwordclientId=infoarchive.jdbcclientSecret=infoarchive.jdbc-client-secret (it is configured in theInfoArchive web application)

2. Using JDBC API, specify the following properties:

com.emc.ia.sql2xquery.jdbc.JdbcDriver:final JdbcDriver jdbcDriver = new JdbcDriver();DriverManager.registerDriver(jdbcDriver);final Properties info = new Properties();info.setProperty("user", "user-name");info.setProperty("password", "user-password");info.setProperty("clientId", "infoarchive.jdbc");info.setProperty("clientSecret", "secret");final Connection connection = DriverManager.getConnection(connectionString, info);

3. Using SQuirreL SQL Client: Modify the selected alias | Properties | Driver properties.

4. Appending to a connection string:

jdbc:ia://localhost:8080/restapi?tenant=INFOARCHIVE&application=Tickets&database=Tickets-sql-db&[email protected]&password=password&clienId=infoarchive.jdbc&clientSecret=secret

The authEndpoint property points to an authentication end-point host[:port]/path/to/authentication/endpoint.

For example, in the case of the JDBC connection string:

jdbc:ia:////hostname:8080/infoarchive-webapp/restapi?tenant=INFOARCHIVE&application=Baseball&database=Baseball-sql-db'authEndpoint'=localhost:8080/infoarchive-webapp/oauth/token.

47

Page 48: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

IAShell

The following example illustrates the process of enabling SSL (TLS) support in the tool (ssl-keystoreand ssl-trust-store commands). Pre-condition: you should have two stores in the client-sidecertificates (two-way TLS support):ssl-keystore --file "/tmp/apollo_cert/client/clientCertStore.p12" --password abcdefg--type PKCS12ssl-trust-store --file "/tmp/apollo_cert/client/client_truststore.jks" --password abcdefg--type JKS

Disabling:ssl-reset

Content Uploading

A data file can have one or more content sections:...

<object ...><create>...</create><update/>

...</update><content storeName="filestore_01" format="xml" file="/content/query.xml"/><content storeName="filestore_01" format="text" file="/content/query.txt"/>

</object>...

The configure command handles the content section after performing the update section.

InfoArchive Server and Gateway/InfoArchive WebApplication Communication Setup

This section describes how to set up the InfoArchive server and Gateway/InfoArchive webapplicationfor HTTP communication:

Browser <-------- HTTPS --------> Gateway IAWA <-------- HTTPS --------> IAS

First, generate or obtain certificates from some CA Root. Once you have the certificates, complete thefollowing procedure:

1. Import the InfoArchive server certificate into the key store.

2. Adjust the INSTALL_INFOARCHIVE_DIR\config\server\application-ssl.yml file to pointto the key store and specify the key store* passwords.

3. Run the InfoArchive server:

48

Page 49: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

> bin\infoarchive-server-ssl.bat

4. Import the InfoArchive server certificate into the Gateway/InfoArchive server key store.

5. Export the InfoArchive server and Gateway/InfoArchive web application public certificate intothe Gateway/InfoArchive web application truststore.

6. Adjust the INSTALL_INFOARCHIVE_DIR\config\webapp\application.yml file:

spring:application:name: infoarchive.gateway

profiles:active: infoarchive.profile.HTTPS,infoarchive.gateway.profile.AUTHENTICATION_IN_MEMORY

cloud:config:enabled: false

infoarchive:gateway:host: localhostport: 8080contextPath: /token:secret: secret

server:host: ${infoarchive.gateway.host}port: ${infoarchive.gateway.port}contextPath: ${infoarchive.gateway.contextPath}

zuul:routes:restapi:path: /restapi/**sensitiveHeaders: ""url: http://localhost:8080/

addProxyHeaders: truehost:socket-timeout-millis: 60000

---spring:profiles: "infoarchive.profile.HTTPS"

server:ssl:key-store: "location of gatewayKeyStore.jks"key-store-password: abcdefg (this is a sample)key-password: abcdefg (this is a sample)keyStoreType: JKS

zuul:routes:restapi:path: /restapi/**sensitiveHeaders: ""url: "https://localhost:8080/"

7. Add the following two command lines parameters to the INSTALL_INFOARCHIVE_DIR\bin\infoarchive-webapp.bat:

49

Page 50: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

-Djavax.net.ssl.trustStore=<gateway truststore location goes here>-Djavax.net.ssl.trustStorePassword=<truststore password goes here>

For example:

::@rem Execute infoarchive-webappcd "%APP_HOME%""%JAVA_EXE%" -Djavax.net.ssl.trustStore=<gateway truststore location goeshere> -Djavax.net.ssl.trustStorePassword=<truststore password goes here>%DEFAULT_JVM_OPTS% %JAVA_OPTS% %INFOARCHIVE_WEBAPP_OPTS% -jar "%CLASSPATH%"%CMD_LINE_ARGS%:

You can add the additional system property -Djavax.net.debug=ssl:handshake to debugSSL.

8. Run Gateway/InfoArchive web application:

> bin\infoarchive-webapp.bat

Self-Signed Certificates-Based Setup

In the following scenario, the distribution has been extracted into:

c:\ia40\infoarchive

The InfoArchive server and the Gateway/InfoArchive web application are running on the samemachine, which means that the localhost works everywhere. You will have to use the IP addressesif the InfoArchive server and the Gateway/InfoArchive web application are running on differentmachines.

The InfoArchive server and Gatway/InfoArchive web application must both run in HTTPS mode.You cannot run one in HTTP and the other in HTTPS mode.

1. Create the following directories:

> cd c:\ia40\infoarchive> mkdir config\server\https> mkdir config\webapp\https

2. Create a self-signed InfoArchive server certificate:

> cd c:\ia40\infoarchive\config\server\https

> keytool -genkey -noprompt -trustcacerts -keyalg RSA -aliasIA_SERVER_CERT -dname "CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino,S=California, C=US" -keypass abcdefg -storetype PKCS12 -keystore serverCertStore.p12-storepass abcdefg

The generated file is named serverCertStore.p12.

50

Page 51: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

3. List the self-singed InfoArchive server certificate:

> cd c:\ia40\infoarchive\config\server\https

> keytool -list -v -keystore serverCertStore.p12 -storepass abcdefg-storetype PKCS12

4. Create the keystore for infoArchive server:

> cd c:\ia40\infoarchive\config\server\https

> keytool -importkeystore -deststorepass abcdefg -destkeypass abcdefg-destkeystore serverKeyStore.jks -srckeystore serverCertStore.p12-srcstoretype PKCS12 -srcstorepass abcdefg -alias IA_SERVER_CERT

5. Export the InfoArchive server certificate:

> cd c:\ia40\infoarchive\config\server\https

> keytool -export -noprompt -rfc -alias IA_SERVER_CERT -file server_public_cert.cert-keystore serverKeyStore.jks -storepass abcdefg -storetype JKS

The generated file is named server_public_cert.cert.

6. Import the InfoArchive server certificate into Gateway/infoArchive web application:

> copy c:\ia40\infoarchive\config\server\https\server_public_cert.certc:\ia40\infoarchive\config\webapp\https

> cd c:\ia40\infoarchive\config\webapp\https

> keytool -import -noprompt -trustcacerts -alias IA_SERVER_CERT -fileserver_public_cert.cert -keystore gatewayTrustStore.jks -storepass abcdefg

The generated file is named gatewayTrustStore.jks.

7. List the imported InfoArchive server certificate:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -list -v -keystore gatewayTrustStore.jksKeystore type: JKSKeystore provider: SUN

Your keystore contains 1 entries

Alias name: server_public_certCreation date: Jun 10, 2016Entry type: trustedCertEntry

Owner: CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, ST=California,C=US

51

Page 52: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Issuer: CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, ST=California, C=USSerial number: 357866c0Valid from: Fri Jun 10 08:32:40 PDT 2016 until: Thu Sep 08 08:32:40 PDT 2016Certificate fingerprints:

MD5: F1:05:E4:6A:F4:7C:C4:A7:8A:0E:B6:DE:A9:16:DF:AASHA1: CC:65:A3:74:85:C0:97:DA:95:AE:13:1F:CA:75:16:CA:66:F2:17:87SHA256: 22:86:56:6B:16:A1:D5:C1:66:CE:2B:A7:F5:CA:EC:74:45:C5:A5:3E:00:DD:F1:28:8F:F3:F8:7D:2B:00:25:A4Signature algorithm name: SHA256withRSAVersion: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [KeyIdentifier [0000: 5D 34 8D B8 34 CF 0B A0 64 05 20 93 E4 BA 92 28 ]4..4...d. ....(0010: CD EB 20 64 .. d]]

**************************************************************************************

8. Create the self-signed Gateway/InfoArchive web application certificate:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias IA_GATEWAY_CERT -dname"CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US" -keypassabcdefg -storetype PKCS12 -keystore gatewayCertStore.p12 -storepass abcdefg

The generated file is gatewayCertStore.p12.

9. List the self-singed Gateway/InfoArchive web application certificate:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -list -v -keystore gatewayCertStore.p12 -storepass abcdefg -storetypePKCS12

10. Create the keystore for Gateway/InfoArchive web application:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -importkeystore -deststorepass abcdefg -destkeypass abcdefg-destkeystore gatewayKeyStore.jks -srckeystore gatewayCertStore.p12-srcstoretype PKCS12 -srcstorepass abcdefg -alias IA_GATEWAY_CERT

11. Export the Gateway/InfoArchive web application certificate:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -export -noprompt -rfc -alias IA_GATEWAY_CERT -file gateway_public_cert.cert-keystore gatewayKeyStore.jks -storepass abcdefg -storetype JKS

The generated file is named gateway_public_cert.cert.

52

Page 53: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

12. Import the Gateway/InfoArchive web application certificate into Gateway/InfoArchive webapplication. This step is required because Gateway is its own client for getting the group to rolemapping from the InfoArchive server via the REST API from the backend:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -import -noprompt -trustcacerts -alias gateway_public_cert-file gateway_public_cert.cert -keystore gatewayTrustStore.jks -storepass abcdefg

The generated file is named gatewayTrustStore.jks.

13. List the imported Gateway/InfoArchive web application certificate:

> cd c:\ia40\infoarchive\config\webapp\https> keytool -list -v -keystore gatewayTrustStore.jksKeystore type: JKSKeystore provider: SUN

Your keystore contains 2 entries

Alias name: gateway_public_certCreation date: Jun 10, 2016Entry type: trustedCertEntry

Owner: CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, ST=California, C=USIssuer: CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, ST=California, C=USSerial number: 78b0bb1bValid from: Fri Jun 10 08:41:09 PDT 2016 until: Thu Sep 08 08:41:09 PDT 2016Certificate fingerprints:

MD5: 21:21:12:82:77:83:06:B9:EC:87:93:D3:07:FD:50:22SHA1: 56:1C:F2:D2:17:75:9A:4F:FB:F3:D9:C3:89:64:7D:29:52:4E:DC:1BSHA256: 92:3D:F3:E3:83:98:61:6D:34:02:66:6E:2D:07:60:F6:E9:DD:3D:BA:AD:AC:31:1C:91:39:76:85:9A:9F:C0:FDSignature algorithm name: SHA256withRSAVersion: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [KeyIdentifier [0000: 3C 90 5E 2D CF 7E 2A 49 AB 20 DC E1 E5 2A 1E 71 <.^-..*I. ...*.q0010: 4A 2A 83 A1 J*..]]

**************************************************************************************

Alias name: server_public_certCreation date: Jun 10, 2016Entry type: trustedCertEntry

Owner: CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, ST=California, C=USIssuer: CN=localhost, OU=JavaSoft, O=Sun, L=Cupertino, ST=California, C=USSerial number: 357866c0Valid from: Fri Jun 10 08:32:40 PDT 2016 until: Thu Sep 08 08:32:40 PDT 2016Certificate fingerprints:

MD5: F1:05:E4:6A:F4:7C:C4:A7:8A:0E:B6:DE:A9:16:DF:AASHA1: CC:65:A3:74:85:C0:97:DA:95:AE:13:1F:CA:75:16:CA:66:F2:17:87SHA256: 22:86:56:6B:16:A1:D5:C1:66:CE:2B:A7:F5:CA:EC:74:45:C5:A5:3E:00:DD:F1:28:8F:F3:F8:7D:2B:00:25:A4

53

Page 54: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Signature algorithm name: SHA256withRSAVersion: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [KeyIdentifier [0000: 5D 34 8D B8 34 CF 0B A0 64 05 20 93 E4 BA 92 28 ]4..4...d. ....(0010: CD EB 20 64 .. d]]

**************************************************************************************

14. Import the Gateway/InfoArchive web application certificate into the InfoArchive server:

> copy c:\ia40\infoarchive\config\webapp\https\gateway_public_cert.certc:\ia40\infoarchive\config\server\https> cd c:\ia40\infoarchive\config\server\https> keytool -import -noprompt -trustcacerts -alias IA_GATEWAY_CERT -filegateway_public_cert.cert -keystore serverTrustStore.jks -storepass abcdefg

The generated file is named serverTrustStore.jks.

15. Configure the InfoArchive server for HTTPS mode. Edit the C:\ia4.0\infoarchive\config\server\application-ssl.yml file and set its content to:

server:ssl:key-store: "file:config/server/https/serverKeyStore.jks"key-store-password: abcdefgkey-password: abcdefgkeyStoreType: JKSkeyAlias: ia_server_certtrust-store: "file:config/server/https/serverTrustStore.jks"trust-store-password: abcdefgtrust-store-type: JKSclient-auth: want

Note: client-auth: want is critical client-auth: need to mask the set inside the jar file.

16. Run the InfoArchive server in HTTPS mode:

> cd c:\ia40\infoarchive> .\bin\infoarchive-server-ssl.bat

17. Configure Gateway/InfoArchive web application for HTTPS mode:

spring:application:name: infoarchive.gateway

profiles:active: infoarchive.profile.HTTPS,infoarchive.gateway.profile.AUTHENTICATION_IN_MEMORY

cloud:config:enabled: false

54

Page 55: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

infoarchive:gateway:host: localhostport: 8080contextPath: /token:secret: secret

server:host: ${infoarchive.gateway.host}port: ${infoarchive.gateway.port}contextPath: ${infoarchive.gateway.contextPath}

zuul:routes:restapi:path: /restapi/**sensitiveHeaders: ""url: http://localhost:8080/

addProxyHeaders: truehost:socket-timeout-millis: 60000

---spring:profiles: "infoarchive.profile.HTTPS"

server:ssl:key-store: "file:config/webapp/https/gatewayKeyStore.jks"key-store-password: abcdefgkey-password: abcdefgkeyStoreType: JKStrust-store: "file:config/webapp/https/gatewayTrustStore.jks"trust-store-password: abcdefgtrust-store-type: JKS

zuul:routes:restapi:path: /restapi/**sensitiveHeaders: ""url: "https://localhost:8080/"

18. Add the system properties to the bin\infoarchive-webapp.bat file:

:@rem Execute infoarchive-webappcd "%APP_HOME%""%JAVA_EXE%" -Djavax.net.ssl.trustStore=%APP_HOME%\config\webapp\https\gatewayKeyStore.jks -Djavax.net.ssl.trustStorePassword=abcdefg%DEFAULT_JVM_OPTS% %JAVA_OPTS% %INFOARCHIVE_WEBAPP_OPTS% -jar"%CLASSPATH%" %CMD_LINE_ARGS%:

19. Run Gateway/InfoArchive web application in HTTPS mode:

> cd c:\ia40\infoarchive> bin\infoarchive-webapp.bat

55

Page 56: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Configuring a Sample ApplicationThe following example illustrates how to configure the PhoneCalls sample application from thedistribution package:

1. In the Tools > application> PhoneCalls folder of the InfoArchive 4.1 home location, run the antinstall receive ingest command from the terminal to configure the application andingest all of the SIPs.

2. Use IAShell to connect to the InfoArchive server.

3. Enter the use command (parameter values are always case-sensitive):

use --tenant INFOARCHIVE --application PhoneCalls

Creating an IAShell Start-Up ScriptCreating a start-up script will help avoid repetitive steps while starting IAShell:

1. Create a folder named .ia-shell in the home folder.

2. If using Windows, you cannot complete the following step via Windows Explorer. Complete thefollowing steps using the Windows command line tool:

a. In the home folder you created, press Shift + right mouse button and select Opencommand window here.

b. Enter the following mkdir command in the command window:

mkdir .ia-shell

3. In the folder created, create and save a text files. Use any file name.

4. In the file:

a. Store the commands used to connect to the InfoArchive server.

b. Add any other commands used to pre-configure IAShell.The following is a sample start-up script:

set-alias-properties aip --properties “id, name, dss.holdingName, sipSeqno,sipAiuCount, state, underHold, underRetention"set-alias-properties application --properties “name, type, archiveType,structuredDataStorageAllocationStrategy"set-alias-properties holding --properties “name, lastModifiedDate, deleteOnError,keepSipAfterIngest, xdbMode, priority, defaultRetentionClass"connect http://localhost:8765/services--user [email protected] --psw password--gateway http://localhost:8080use --tenant INFOARCHIVE --federation mainFederationuse --application PhoneCalls

56

Page 57: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Note:• Place each command in a single line without line breaks.

• use /* and */ as begin and end characters for block comments.

• Be sure to ensure that the script works:

1. Use the exit command to exit it out of IAShell.

2. Run IAShell again. Verify that you are connected properly after start-up.

Performing a Byte Count on Application DataInfoArchive includes a standalone Java tool to calculate file size and character count for tables, XMLfiles or SIP.zip files in an application. The tool automatically chooses a unit (bytes, KB, MB, etc.) inwhich the smallest file has a value greater than 1. All files have the same unit for easy comparison.Formatting data in a file is not included in the final calculation.

Access the tool in the tools\metrics.bat directory.

The following parameters are required to perform a byte count:

Parameter Description

Use either -xml or -sip The -xml parameter is used to calculate the byte size of either anXML file or table.

The -sip parameter is used to calculate the byte size of a SIP.zipfile.

You must enter one of the above parameters.

<location> You must specify a directory or file that the byte count isperformed on.

-csv <csv-location> While it is not mandatory, you can generate a report that containsthe information returned in a byte count. The report is in .CSVformat. The -csv allows you to specify the name of the report.

Usage Examples

To perform a byte count on a table named BASEBALL-MASTER-01.xml that is stored in the Baseballapplication, the following command is used:

C:|projects\IA\infoarchive>tools\metrics.bat -xml applications/Baseball/tables/BASEBALL-MASTER-01.xml

When performing a byte count using the -xml parameter, the following information is returned:

57

Page 58: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Column Description

File size Indicates the compiled data size of the table or XML file.

Data size Indicates the character count of the table or XML file.

To perform a byte count on all of the tables stored in the Baseball application, the following commandis used:

C:|projects\IA\infoarchive>tools\metrics.bat -xml applications/Baseball/tables

To perform a byte count on all of the tables stored in the Baseball application and generate a reportcalled baseball.csv, the following command is used:

C:|projects\IA\infoarchive>tools\metrics.bat -xml applications/Baseball/tables -csv baseball.csv

To perform a byte count on the SIP.zip files stored in the Trades application, the following commandis used:

C:|projects\IA\infoarchive>tools\metrics.bat -sip applications/Trades/sips

When performing a byte count using the -sip parameter, the following information is returned:

Column Description

File size Indicates the size of the eas.pdi.xml file.

Data size Indicates the character count of the eas.pdi.xml file.

Content size Indicates the byte count of any additional files (i.e., images)stored in the SIP.zip file.

Sip size Indicates the compiled data size of the SIP.zip file.

Setting Up CMD to Display National CharactersIn case a customer uses national symbols in SIP file names, the user should take care about how thenames are displayed in Command Line (Windows) or Terminal (Linux).

CLI and ANT work fine with any national symbols in a file name, but the command line can displaythem with errors or unrecognized symbols. The following example illustrates how to avoid suchconfusion.

If you want to display Russian symbols in the Windows CommandLine (cmd), the following shouldbe executed:

"chcp 1251"

The following settings are then set on Windows:

"Control Panel -> All Control Panel Items –> Region and Language - > Administrative

58

Page 59: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

tab - > Language for non-Unicode Programs" - "Russian (Russia)"

If you want to display Chinese symbols in the Windows Command Line (cmd), the followingshould be executed:

"chcp 936"

The following settings are then set on Windows:

"Control Panel -> All Control Panel Items –> Region and Language - > Administrativetab - > Language for non-Unicode Programs" - "Chinese (Simplified, RPC)"

For other localization, use the appropriate command line encoding and appropriate windowslocalization settings.

To use national symbols in the name of an application, holding, etc., the properties file for the ANTscript should be encoded with ISO 8859-1. For more information, refer to the Java properties encoding.

Configuring xDB Ingestion ModeWhen creating a holding, you can define the xDB ingestion mode. See the PhoneCallssample application ANT script, build.properties file. The xdbMode property in thebuild.properties file allows you to configure the xDB ingestion mode. The following values areacceptable: PRIVATE, POOLED, AGGREGATE.

Another way to set up the property value during ingestion is to execute an ANT command withan additional command-line parameter. The following example uses the ANT command in thePhoneCalls application:

Tools/application/PhoneCalls> ant -DxdbMode=AGGREGATE

Working with the application.yml FileThis section explains what you can and cannot update in the application.yml file.

The InfoArchive server has its own application.yml file and InfoArchive web application has itsown application.yml file. The application.yml file for the server is stored in the followingdirectory: <install_directory>\infoarchive\config\server folder. Further instructions about theindividual settings can be found in the server’s application.yml file, as well as the example below.

Security Profile

The data for the security profile can be updated.

spring:application:

59

Page 60: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

name: infoarchive.iasprofiles:include: infoarchive.ias.profile.JWT# include: infoarchive.ias.profile.HTTP_BASIC# include: infoarchive.ias.profile.NO_AUTHENTICATION

logging.level

The data for the logging.level can be updated.

logging.level.: 'WARN'

The server should typically be running in WARN level, as that limits the amount of informationlogged in the system (saves disk space, helps performance, etc.). If there are issues in the system, thelogging level should be raised (i.e., to DEBUG level). The InfoArchive server needs to be restartedfor this change to take effect.

60

Page 61: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

infoarchive Section

The data for the infoarchive section can be updated.

The value of infoarchive.gateway.token.secret should be exactly the same as it is set in the InfoArchiveweb application application.yml file. Both the InfoArchive server and the InfoArchive webapplication client need to have this value synchronized to the same value to ensure that JWT tokenscan be decrypted correctly.

The collections section controls the defaultPage. When displaying collections through pagination, youtypically start with first page, which is called the ’defaultPage’. Collections are zero-indexed, meaningthat the first page is at index ’0’. If, for some reason, you want to always start at the second page, setthe defaultPage to ’1’ and so on. For most environments, however. this value should be set to ’0’.

Collections are paginated. The value for defaultPageSize controls the size of the page. The followingexample indicates pages of 10 items (each). You can adjust this value, as needed.

Note: Modifying the defaultPageSize value impacts the real estate of the pages in the InfoArchiveweb application. This should be properly tuned to ensure all clients can handle a given page size.

The search.defaultTimeOutMs indicates the amount of time a synchronous search is allowed to runbefore the server will interrupt it and return an error. The value is in milliseconds (MS). In thefollowing example, the value of ’8000’ indicates a default time out of eight seconds. If the search doesnot complete, it will be interrupted in eight seconds and the server will return an error. To handlethis, the user should try re-running the search in asynchronous mode as a background search.

infoarchive:gateway:token:secret: secret

rest:collections:defaultPage: 0defaultPageSize: 10

search:defaultTimeOutMs: 8000

managedItemData Section

The data for the managedItemData section can be updated.

managedItemData:xdb:dataNode:storeStackTraceInLock: falsename: mainFederationbootstrap: xhive://localhost:8080superuser:password: test

database:name: managedItemDatabaseadmin:password: secret

61

Page 62: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

If upgrading to a new version of InfoArchive, change the bootstrap to a different port, and it isrecommended to change the name from mainFederation to retentionFederation.

defaultNames Section

The defaultNames value is for future use and should not be modified.

tenant:defaultNames:- INFOARCHIVE

Storage Paths and OAIS Sections

It is recommended that you do not change the storage paths or the OAIS sections.

storage:fileSystemRoots:-name: defaultFileSystemRootdescription: Default FileSystemRootpath: data/root

#locations on the IA Server's local file systemlocalStorage:tempFolder: data/temp

oais:defaultReceiverNode: receiver_node_01defaultIngestNode: ingest_node_01

job Section

Do not change the data in the job section. In particular, any change made to the readOnly flag forjobs will cause the jobs to malfunction.

job:definitions:

-name: CommithandlerName: CommitJobdescription: Commits packages in waiting commitreadOnly: falseapplicationScoped: falsetenantScoped: falsemaxAttempts: 1expirationInterval: 60000rescheduleInterval: 60000

62

Page 63: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

roles Section

Use caution when changing data in the authorization section. You may want to clear out the usersection for the production system, as the section includes the “canned” users.

Do not, however, change the data in the roles section.

authorization:users:- [email protected],password,GROUP_ADMINISTRATOR- [email protected],password,GROUP_BUSINESS_OWNER- [email protected],password,GROUP_DEVELOPER- [email protected],password,GROUP_END_USER- [email protected],password,GROUP_IT_OWNER- [email protected],password,GROUP_RETENTION_MANAGER- [email protected],password,GROUP_ADMINISTRATOR;GROUP_BUSINESS_OWNER;GROUP_DEVELOPER;GROUP_END_USER;GROUP_IT_OWNER;GROUP_RETENTION_MANAGER

groups:GROUP_ADMINISTRATOR:- ADMINISTRATORGROUP_BUSINESS_OWNER:- BUSINESS_OWNERGROUP_DEVELOPER:- DEVELOPERGROUP_END_USER:- END_USERGROUP_IT_OWNER:- IT_OWNERGROUP_RETENTION_MANAGER:- RETENTION_MANAGER

roles:ADMINISTRATOR:- VIEW_TENANT- CREATE_TENANT- DELETE_TENANT- VIEW_FEDERATIONS

Example

The following is an example of an application.yml for an InfoArchive web application client. Itindicates the values that can be changed.

spring:application:name: infoarchive.gateway

profiles:active: infoarchive.gateway.profile.AUTHENTICATION_IN_MEMORY

cloud:config:enabled: false

infoarchive:gateway:host: localhostport: 8080contextPath: /

63

Page 64: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

token:secret: secret

webapp:customization:location: "file:config/webapp/customization/"

server:host: ${infoarchive.gateway.host}port: ${infoarchive.gateway.port}contextPath: ${infoarchive.gateway.contextPath}

zuul:routes:restapi:path: /restapi/**sensitiveHeaders: ""url: http://localhost:8080/

addProxyHeaders: truehost:socket-timeout-millis: 60000maxTotalConnections: 200maxPerRouteConnections: 20

SimpleHostRoutingFilter:route:disable: true

logging.level.: 'WARN'

---spring:profiles: "infoarchive.profile.HTTPS"

server:ssl:key-store: "file:config/webapp/gatewayKeyStore.jks"key-store-password: abcdefgkey-password: abcdefgkeyStoreType: JKStrust-store: "file:config/webapp/gatewayTrustStore.jks"trust-store-password: abcdefgtrust-store-type: JKS

infoarchive:gateway:client:ssl:trust-store: "config/webapp/gatewayTrustStore.jks"trust-store-password: "abcdefg"trust-store-type: JKS

zuul:routes:restapi:path: /restapi/**sensitiveHeaders: ""url: "https://localhost:8080/"

64

Page 65: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

Updating the Working Directory

Define the properties of the working directory in the localStorage entry of the application.ymlfile. Using the application.yml file not only allows you to easily set a different working directory,but also simplifies application configuration.

1. Before updating the working directory, stop all services.

2. Access the application.yml file in the infoarchive > config > server folder.The following information is displayed:

#locations on the LA Server's local file systemlocalStorage:..tempFolder: data/temp

3. Update the working directory, as desired and save your changes.

4. Restart the services.

Creating a File System Root

The InfoArchive server does not create a default file system root if nothing is configured. Theapplication.yml file, however, allows for a "fileSystemRoot" entry to be used by the InfoArchiveserver. The specified path has to pre-exist on the file system. InfoArchive server will not create it.

65

Page 66: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuration

66

Page 67: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Chapter 3Configuring a SIP Application

Listing AIPsIt is often convenient to use IAShell to check the status of AIPs.

The following procedure illustrates how a user would check the status of ingested AIPs in anapplication called Certificates. Because several tenants and applications might already exist, youmust first instruct IAShell which tenant and application you are interested in before you are ableto list the AIPs.

1. In IAShell, list the available tenants using the select command:

ia-shell>select tenant=================================================name id-------------------------------------------------INFOARCHIVE f36e88da-82c4-495a-bb48-563e5d90b681-------------------------------------------------Elements count: 1. Page 1 of 1ia-shell>

2. Take note of the name of the tenant.

3. Enter the use command to specify the tenant from the previous step.

Note: The use command can also specify an application, database, etc:

ia-shell>use --tenant INFOARCHIVEOKia-shell>

4. Enter the list command. A lot more types are available but not the AIP type.

5. Use the select command to list the available applications:ia-shell>select application

The previously installed Certificates application is displayed.

6. Enter the use command to instruct IAShell to use the Certificates application.

7. Enter the list command. The AIP type is now displayed.

Tip: If you will often be working with the same application, add these use commands to yourstartup script.

8. List the AIPs using the select command. Three columns are displayed (#, Name and ID).

9. Enter the view command to view the details of the first AIP:

67

Page 68: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

ia-shell>view --id 1==========================================name Certificates-CertApp-2012-03-05_001-1id a1844ef3-2141-4347-96ee-a579352b3d65------------------------------------------

By default, not a lot of details are displayed. To see more information, you can either

a. Instruct the view command to display the properties you want to see:

ia-shell>view --id 1 --properties "id,name,state"===========================================name Certificates-CertApp-2012-03-05_001-1state Completedid a1844ef3-2141-4347-96ee-a579352b3d65-------------------------------------------ia-shell>

b. Or use the set-alias-properties command to set the list of default properties:

ia-shell> set-alias-properties aip --properties “id, name, state"OKia-shell>view --id 1===========================================name Certificates-CertApp-2012-03-05_001-1state Completedid a1844ef3-2141-4347-96ee-a579352b3d65-------------------------------------------ia-shell>

Tip: As with the connect and use commands, it is beneficial to add sensible defaults to yourstartup script.

Ingesting a SIPThe following procedure illustrates how a Developer can ingest a SIP.

1. Connect to the IAShell. For this example, the Developer’s username is [email protected] her password is ’password’. The application the SIP is being ingested into is Certificates:

ia-shell>connect http://localhost:8080/services --user [email protected] --pswpassword --gateway http://localhost:8080Connected to 'http://localhost:8080/services'ia-shell>use --tenant INFOARCHIVE --application CertificatesOKia-shell>

2. Enter the use command to specify the tenant and application.

3. Execute the receive command on the SIP. For this example, the SIP is located in the${IA_HOME}/tools/applications/Certificates/sips folder.

ia-shell>receive --format sip_zip --from

68

Page 69: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

tools/applications/Certificates/sips/cert_2012-03-05_001_1AIU.zipOKia-shell>

4. List the available AIPs entering the select command. The new AIP is displayed:ia-shell>select aip=============================================================================# name id-----------------------------------------------------------------------------1 Certificates-CertApp-2012-03-05_001-1 a1844ef3-2141-4347-96ee-a579352b3d652 Certificates-CertApp-2012-11-30_001-1 beccf795-1067-41d3-a023-71d45f7a8ea73 Certificates-CertApp-2012-03-05_001-1 350fa571-5aaf-490f-8e68-5a0a29ef7dff-----------------------------------------------------------------------------Elements count: 3. Page 1 of 1

5. View the id and state property of the third AIP entering the view command. The state is "Waitingingestion":

-----------------------------------------------------------------------------Elements count: 3. Page 1 of 1ia-shell>view --id 3 --properties "name,id,state"===========================================name Certificates-CertApp-2012-03-05_001-1state Waiting ingestionid 350fa571-5aaf-490f-8e68-5a0a29ef7dff-------------------------------------------

6. Enter the ingest command to ingest the AIP:

ia-shell>ingest --id 3OK

7. Enter the view command again to verify that the state is now Completed.

Building a SIP ZIPThe SIP ZIP is the container that is submitted to InfoArchive for archiving. The SIP ZIP is a ZIPfile that contains:

• At least one descriptor eas_sip.xml (SIP); and

• One XML file that contains the records eas_pdi.xml (PDI).

If the metadata is associated to some content (CI), the content must be put in the SIP ZIP containerat the root level.

Configuring a SIP Application with One HoldingThis section illustrates how to configure a new SIP application with one holding. By the end of thesection, you will be able to ingest data, perform a search and retrieve a content from the InfoArchiveweb application.

69

Page 70: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Before you begin, you need to:

• Retrieve and to install the latest InfoArchive build.

• Know what you want to archive and to have defined and generated an XML schema.

• Know what you want to search

The following example procedure uses a fictitious holding named Tweets, which contains tweetsfrom Twitter. Each tweet contains some metadata (text, screen name, date, etc.) and can be associatedwith 0 to n entities (URL, photo, hashtag, etc.).

The following is the PDI used in the scenario:

<tweets xmlns="urn:x-emc:ia:demo:schema:tweets:1.0"><tweet>

<id>731398089370669056</id><text>RT @EMCbigdata: Recorded live at #EMCWORLD: a #BigData podcast

with our partner @Splunk via #EMCElect https://t.co/FIl4e4mmgFhttps://t.co/…</text>

<createdAt>2016-05-14T10:17:47+02:00</createdAt><retweet>true</retweet><retweetCount>7</retweetCount><user>

<id>729669013593333760</id><name>Ruth Lutterloch</name><location>London, England</location><screenName>RuthLutterloch</screenName>

</user><mediaEntity>

<id>730819244519264256</id><url>http://pbs.twimg.com/media/CiRkOxiXEAAAuEh.jpg</url><type>photo</type><start>126</start><end>140</end>

</mediaEntity><urlEntity>

<text>https://t.co/FIl4e4mmgF</text><start>102</start><end>125</end><url>https://t.co/FIl4e4mmgF</url><expandedUrl>http://emc.im/6012Boc5k</expandedUrl><displayUrl>http://emc.im/6012Boc5k</displayUrl>

</urlEntity><hashtagEntity>

<text>EMCWORLD</text><start>33</start><end>42</end>

</hashtagEntity><hashtagEntity>

<text>BigData</text><start>46</start><end>54</end>

</hashtagEntity><hashtagEntity>

<text>EMCElect</text><start>92</start><end>101</end>

</hashtagEntity></tweet>

</tweets>

The following is the PDI schema used in the scenario:

70

Page 71: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:x-emc:ia:demo:schema:tweets:1.0"xmlns:ns1="urn:x-emc:ia:demo:schema:tweets:1.0"><xs:element name="tweets"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" ref="ns1:tweet"/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name="tweet"><xs:complexType><xs:sequence><xs:element ref="ns1:id"/><xs:element ref="ns1:text"/><xs:element ref="ns1:createdAt"/><xs:element ref="ns1:retweet"/><xs:element ref="ns1:retweetCount"/><xs:element ref="ns1:user"/><xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:mediaEntity"/><xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:urlEntity"/><xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:hashtagEntity"/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name="createdAt" type="xs:dateTime"/><xs:element name="retweet" type="xs:boolean"/><xs:element name="retweetCount" type="xs:integer"/><xs:element name="user"><xs:complexType><xs:sequence><xs:element ref="ns1:id"/><xs:element ref="ns1:name"/><xs:element ref="ns1:location"/><xs:element ref="ns1:screenName"/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name="name" type="xs:string"/><xs:element name="location" type="xs:string"/><xs:element name="screenName" type="xs:NCName"/><xs:element name="mediaEntity"><xs:complexType><xs:sequence><xs:element ref="ns1:id"/><xs:element ref="ns1:url"/><xs:element ref="ns1:type"/><xs:element ref="ns1:start"/><xs:element ref="ns1:end"/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name="type" type="xs:NCName"/><xs:element name="urlEntity"><xs:complexType><xs:sequence><xs:element ref="ns1:text"/><xs:element ref="ns1:start"/><xs:element ref="ns1:end"/><xs:element ref="ns1:url"/><xs:element ref="ns1:expandedUrl"/><xs:element ref="ns1:displayUrl"/>

</xs:sequence></xs:complexType>

71

Page 72: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

</xs:element><xs:element name="expandedUrl" type="xs:anyURI"/><xs:element name="displayUrl" type="xs:anyURI"/><xs:element name="hashtagEntity"><xs:complexType><xs:sequence><xs:element ref="ns1:text"/><xs:element ref="ns1:start"/><xs:element ref="ns1:end"/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name="id" type="xs:integer"/><xs:element name="text" type="xs:string"/><xs:element name="url" type="xs:anyURI"/><xs:element name="start" type="xs:integer"/><xs:element name="end" type="xs:integer"/>

</xs:schema>

1. Prepare your environment by completing the following:

a. Unzip the PhoneCalls template into the $IA_HOME/tools/applications directory.

b. Rename the folder to ${holding}

c. In the build.properties file, update the application, holding, pdiSchema, category anddescription with your own values:

# -------------------------------------------------------------------# -- EMC InfoArchive - PhoneCalls installation properties# -- Copyright (c) 2012-2015 EMC Corporation. All Rights Reserved.# -------------------------------------------------------------------services=http://localhost:8080/services

xdbFederation=mainFederationxdbDatabase=AIP-xdb

tenant=INFOARCHIVEapplication=Twittercategory=Social Mediadescription=Some tweets history

holding=TweetspdiSchema=urn:x-emc:ia:demo:schema:tweets:1.0

storeName=filestore_01

# Change xDB mode to PRIVATE or AGGREGATExdbMode=PRIVATE

# Change the store name to switch to ECS / CAS or File Store# Go to portal.ecstestdrive.com to obtain a free account accessstoreName=file_store_01

# File StorefolderStoreName=file_store_01

# ECS StoreecsStoreName=ecs_store_01ecsCredentialName=ecsAccessKey=ecsSecretKey=ecsEndPointName=testEndPoint

72

Page 73: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

ecsUrl=ecsBucketName=PhoneCalls

# CAS StorecasStoreName=cas_store_01casConnexionString=cas.ecstestdrive.com?casPeaContent1casPeaContent1=<pea version="1.0.0"> ... </pea>

# -------------------------------------------------------------------# -- Other parameters, only change if needed.# -------------------------------------------------------------------federationPassword=testxdbPassword=secretfederationBootstrap=xhive://127.0.0.1:2910

receiverNodeName=receiver_node_01ingestNodeName=ingest_node_01

# Location of the InfoArchive tools directoryiaToolsHome=../..

## Authentication.## Specify only the token when using the JWT authentication type.# Specify only username and password when using the HTTP_BASICauthentication type.# Specify gateway when using gateway server for authentication## Token of superuser Suetoken=eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjM2MTExMzM0MzQsInVzZXJfbmFtZSI6InN1ZUBpYWN1c3RvbWVyLmNvbSIsImF1dGhvcml0aWVzIjpbIkdST1VQX0FETUlOSVNUUkFUT1IiLCJHUk9VUF9SRVRFTlRJT05fTUFOQUdFUiIsIkdST1VQX0JVU0lORVNTX09XTkVSIiwiR1JPVVBfRU5EX1VTRVIiLCJHUk9VUF9ERVZFTE9QRVIiLCJHUk9VUF9JVF9PV05FUiIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIlJPTEVfUkVURU5USU9OX01BTkFHRVIiLCJST0xFX0JVU0lORVNTX09XTkVSIiwiUk9MRV9FTkRfVVNFUiIsIlJPTEVfREVWRUxPUEVSIiwiUk9MRV9JVF9PV05FUiJdLCJqdGkiOiJiMDM5YWNmOC01MzE1LTRlNzktOTU3My04ZjU5NTdiYmU1YmYiLCJjbGllbnRfaWQiOiJpbmZvYXJjaGl2ZS5pYXdhIiwic2NvcGUiOlsiYWRtaW5pc3RyYXRpb24iLCJjb21wbGlhbmNlIiwic2VhcmNoIl19.boOdzl4sotMRDraX3WSDw1F7mmyLRx3kPOK5tFCHJUE#gateway = http://localhost:8080#username = [email protected]#password = password

2. Replace the $IA_HOME/tools/applications/${holding}/resources/content/pdi-schema.xsdwith the new XSD file.

3. Edit the $IA_HOME/tools/applications/${holding}/resources/content/pdi.xml file to configurethe ingestion.This XML file contains the configuration that will be used during the ingestion process. In thisfile, you can:• Configure the xDB indexes to put on the PDI XML file;

• Extract the partition keys;

• Count the number of AIUs in the PDI; and

• Define where to find the CI.

4. Create some indexes at the xDB level to improve the search and ingestion performance.

73

Page 74: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

5. Edit the $IA_HOME/tools/applications/${holding}/resources/250-transformation.xml file toconfigure the transformation.This object describes how you want to transform the PDI XML when you want to generate ananalytic rendition and/or a disposition export.In the following example of the 250-transformation.xml file, we indicate the XQueryto execute to generate the format rendition.csv.gzip when we request the result schema :urn:x-emc:ia:schema:pdi:export:

<!-- Create an xQuery transformation object if any --><echo>Configuring transformation object with name '${holding}-transformation-csv'</echo><ia-task self="transformationSelf">

<object typeAlias="transformation"checkExistSpEL="?[name=='${holding}-transformation-csv']">

<create><name>${holding}-transformation-csv</name>

</create><update>

<inputSchema>${pdiSchema}</inputSchema><inputSchema/><resultSchema>urn:x-emc:ia:schema:pdi:export</resultSchema><format>rendition.csv.gzip</format><type>XQUERY</type><xquery>

<![CDATA[declare namespace n = "${pdiSchema}";

declare function local:replace($i as xs:string?) {if ($i) then '"' || replace($i,'"','""') || '"' else '""'

};

declare function local:add-row($input) {string-join($input,',') || '

'};

((: Header :)local:add-row((

'createdAt','userName','userScreenName','text','hashtags'

)),(: Rows :)for $call in /n:tweets/n:tweetreturn

local:add-row((local:replace($call/n:createdAt),local:replace($call/n:userName),local:replace($call/n:userScreenName),local:replace($call/n:text),local:replace(string-join($call/n:hashtagEntity/n:text,','))))

)]]>

</xquery></update>

</object></ia-task>

74

Page 75: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Before disposing the AIP, it is possible to export the metadata with a background export function.This option is available if one transformation object with the "urn:x-emc:ia:schema:pdi:export" resultschema is found.

To generate an analytic rendition during the ingestion, add the following configuration into thePDI and to specify the desired result schema:

<data><id>pdi.transformer</id><result.schema>urn:x-emc:ia:schema:pdi:export</result.schema>

</data>

If you do not need these features, remove the PDI configuration part and comment the250-transformation.xml script.

Search

Edit the $IA_HOME/tools/applications/${holding}/resources/220-query.xml file to configurethe query

This object contains the mapping between the search critieria and the xDB PDI XML file. Enumerateall operands and indicate the criterion name, the path, the type and whether it is indexed or not. Theallowed types are : STRING, INTEGER, LONG, DOUBLE, DATE, DATETIME, ID and CID.

To list the operands, specify the entityPath. This path corresponds to the AIU level. All others pathsare defined from this level.

<!-- Create first Query object if any--><echo>Configuring query object with name '${holding}-query'</echo><ia-task self="querySelf">

<object typeAlias="query" checkExistSpEL="?[name=='${holding}-query']"><create>

<name>${holding}-query</name></create><update>

<resultSchema>${pdiSchema}</resultSchema><resultRootElement>result</resultRootElement><quota>${qqSelf}</quota><quotaAsync>${qqSelf}</quotaAsync><aics>${aicSelf}</aics><aics/><order>${orderSelf}</order><namespaces>

<uri>${pdiSchema}</uri><prefix>n</prefix>

</namespaces><namespaces/><xdbPdiConfigs>

<schema>${pdiSchema}</schema><entityPath>/n:tweets/n:tweet</entityPath><operands>

<name>createdAt</name><path>n:createdAt</path><type>DATETIME</type><index>true</index>

</operands>

75

Page 76: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<operands><name>userName</name><path>n:user/n:name</path><type>STRING</type><index>true</index>

</operands><operands>

<name>userScreenName</name><path>n:user/n:screenName</path><type>STRING</type><index>true</index>

</operands><operands>

<name>hashtag</name><path>n:hashtagEntity/n:text</path><type>STRING</type><index>true</index>

</operands><operands>

<name>text</name><path>n:text</path><type>STRING</type><index>true</index>

</operands><operands>

<name>retweetCount</name><path>n:retweetCount</path><type>INTEGER</type><index>true</index>

</operands></xdbPdiConfigs><xdbPdiConfigs/>

</update></object>

</ia-task>

For the AIC, edit the $IA_HOME/tools/applications/${holding}/resources/190-aic.xml file toconfigure the query

This object exposes the list of allowed search criteria. For each criterion, specify the type and if thecriterion is a partition key with the name of the attributes to use on the AIP.

• The allowed types are : STRING, INTEGER, LONG, DOUBLE, DATE, DATETIME, ID and CID.The type is used to validate the submitted values.

• If you have defined a minimum/maximum partition key, populate the following fields:pKeyMinAttr / pKeyMaxAttr.

• If you have defined a single or multi-values partition key, populate the following field:pKeyValuesAttr.

<!-- Create an AIC object if any--><echo>Configuring aic object with name '${holding}-aic'</echo><ia-task self="aicSelf">

<object typeAlias="aic" checkExistSpEL="?[name=='${holding}-aic']"><create>

<name>${holding}-aic</name></create><update>

<holdings>${holdingSelf}</holdings><holdings/><criterias>

<name>createdAt</name>

76

Page 77: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<label>Created at</label><type>DATETIME</type><pKeyMinAttr>pkeys.dateTime01</pKeyMinAttr><pKeyMaxAttr>pkeys.dateTime02</pKeyMaxAttr>

</criterias><criterias>

<name>userName</name><label>User name</label><type>STRING</type>

</criterias><criterias>

<name>userScreenName</name><label>User screenName</label><type>STRING</type>

</criterias><criterias>

<name>hashtag</name><label>Hashtag</label><type>STRING</type>

</criterias><criterias>

<name>text</name><label>Text</label><type>STRING</type>

</criterias><criterias>

<name>retweetCount</name><label>Retweet count</label><type>INTEGER</type>

</criterias></update>

</object></ia-task>

It is not necessary to list the ID criterion, as this criterion is automatically added at the run-time.

For the Result Configuration Helper, edit the $IA_HOME/tools/applications/${holding}/resources/content/result-configuration-helper.xml file. This file is attached as a content with theSDX object ResultConfigurationHelper.

This XML describes the XML returned by the query. This description will be used during thecomposition to help the Developer to select the column to display into the result page.

Add the namespaces prefix at the root level.

For each column you want to expose, add an <element/> node. The element needs to contain a name,a label, a type and a path. The allowed types are : STRING, INTEGER, LONG, DOUBLE, DATE,DATETIME, ID and CID. You can write the XPath you want. It can be useful to perform some valuemassage (string-join, duration computation, etc.).

For repeating elements, enclose with a <group/> node. The group needs to contain a name, a labeland a path.

Note: Do not forget to include the CID to have the ability to download CIs.

<?xml version="1.0" encoding="UTF-8"?><resultConfigurationHelper xmlns:n="urn:x-emc:ia:demo:schema:tweets:1.0" xmlns:ia="urn:x-emc:ia:schema:pdi"><element><name>id</name><label>ID</label><type>LONG</type><path>n:id</path>

77

Page 78: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

</element><element><name>text</name><label>Text</label><type>STRING</type><path>n:text</path>

</element><element><name>createdAt</name><label>Created at</label><type>DATETIME</type><path>n:createdAt</path>

</element><element><name>retweet</name><label>Retweet</label><type>STRING</type><path>n:retweet</path>

</element><element><name>retweetCount</name><label>Retweet count</label><type>INTEGER</type><path>n:retweetCount</path>

</element><element><name>userId</name><label>User ID</label><type>LONG</type><path>n:user/n:id</path>

</element><element><name>userName</name><label>User name</label><type>STRING</type><path>n:user/n:name</path>

</element><element><name>userLocation</name><label>Location</label><type>STRING</type><path>n:user/n:location</path>

</element><element><name>userScreenName</name><label>Screen name</label><type>STRING</type><path>n:user/n:screenName</path>

</element><element><name>Media1</name><label>Media 1</label><type>CID</type><path>n:mediaEntity[1]/n:id/@ia:cid</path>

</element><group><name>MediaEntities</name><label>Medias</label><path>n:mediaEntity</path><element><name>cid</name><label>CID</label><type>CID</type><path>n:id/@ia:cid</path>

</element>

78

Page 79: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<element><name>mediaId</name><label>ID</label><type>LONG</type><path>n:id</path>

</element><element><name>mediaUrl</name><label>URL</label><type>STRING</type><path>n:url</path>

</element><element><name>mediaType</name><label>Type</label><type>STRING</type><path>n:type</path>

</element><element><name>mediaStart</name><label>Start</label><type>INTEGER</type><path>n:start</path>

</element><element><name>mediaEnd</name><label>End</label><type>INTEGER</type><path>n:end</path>

</element></group><group><name>urlEntities</name><label>URLs</label><path>n:urlEntity</path><element><name>urlText</name><label>Text</label><type>STRING</type><path>n:url</path>

</element><element><name>urlUrl</name><label>URL</label><type>STRING</type><path>n:url</path>

</element><element><name>urlStart</name><label>Start</label><type>INTEGER</type><path>n:start</path>

</element><element><name>urlEnd</name><label>End</label><type>INTEGER</type><path>n:end</path>

</element><element><name>expandedUrl</name><label>Expanded url</label><type>STRING</type><path>n:expandedUrl</path>

</element>

79

Page 80: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<element><name>displayUrl</name><label>Display url</label><type>STRING</type><path>n:displayUrl</path>

</element></group><group><name>hashtagEntities</name><label>Hashtags</label><path>n:hashtagEntity</path><element><name>hashtagText</name><label>Text</label><type>STRING</type><path>n:url</path>

</element><element><name>hashtagStart</name><label>Start</label><type>INTEGER</type><path>n:start</path>

</element><element><name>hashtagEnd</name><label>End</label><type>INTEGER</type><path>n:end</path>

</element></group>

</resultConfigurationHelper>

PDI.INDEX.CREATOR

Create an xDB index on each search criterion. In the majority of use cases, the path value index isthe best candidate. A full-text index can be defined if you want to use a contains operator and/orcase insensitive search.Is “contains operator” correct?

The full-text index is less efficient than a path value index.

The AIU path is followed by the element path you want to search with the type (STRING, INTEGER,LONG, DOUBLE, DATE, DATE_TIME). Do not forget to include the between bracket. For example:

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet[{urn:x-emc:ia:demo:schema:tweets:1.0}createdAt<DATE_TIME>]

The folloiwng is an example of the pdi.index.creator file:

<data><id>pdi.index.creator</id><key.document.name>xdb.pdi.name</key.document.name><indexes>

<path.value.index><name>createdAt</name><path>

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet[{urn:x-emc:ia:demo:schema:tweets:1.0}createdAt<DATE_TIME>]

80

Page 81: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

</path><compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>false</build.without.logging>

</path.value.index><path.value.index>

<name>userName</name><path>

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet[{urn:x-emc:ia:demo:schema:tweets:1.0}user/{urn:x-emc:ia:demo:schema:tweets:1.0}name<STRING>]

</path><compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>false</build.without.logging>

</path.value.index><path.value.index>

<name>userScreenName</name><path>

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet[{urn:x-emc:ia:demo:schema:tweets:1.0}user/{urn:x-emc:ia:demo:schema:tweets:1.0}screenName<STRING>]

</path><compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>false</build.without.logging>

</path.value.index><path.value.index>

<name>hashtag</name><path>

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet[{urn:x-emc:ia:demo:schema:tweets:1.0}hashtagEntity/{urn:x-emc:ia:demo:schema:tweets:1.0}text<STRING>]

</path><compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>false</build.without.logging>

</path.value.index><path.value.index>

<name>retweetCount</name><path>

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet[{urn:x-emc:ia:demo:schema:tweets:1.0}retweetCount<INTEGER>]

</path><compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>false</build.without.logging>

</path.value.index><full.text.index>

<name>text-fulltext</name><compressed>false</compressed><concurrent>false</concurrent><optimize.leading.wildcard.search>true</optimize.leading.

wildcard.search><index.all.text>true</index.all.text><include.attributes>false</include.attributes><support.phrases>false</support.phrases><support.scoring>false</support.scoring><convert.terms.to.lowercase>true</convert.terms.to.lowercase>

81

Page 82: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<filter.english.stop.words>false</filter.english.stop.words><support.start.end.token.flags>false</support.start.end.token.

flags><element.uri>urn:x-emc:ia:demo:schema:tweets:1.0</element.uri><element.name>text</element.name><attribute.uri/><attribute.name/>

</full.text.index></indexes>

</data>

Note: It is recommended that you do not create indexes with the option build.without.loggingvalue set to true.

PDI.AIU.CNT

To ensure that the SIP contains the number of AIUs defined in the SIP descriptor, it is necessary tocount the AIUs into the PDI XML. To accomplish this, an XQuery is executed. Based on the AIU path,it is easy to count the AIUs. Do not forget to indicate the namespace declaration and prefix.

The following is an example of the pdi.aiu.cnt file:

<data><id>pdi.aiu.cnt</id><select.query>

<![CDATA[declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";count(/n:tweets/n:tweet)]]>

</select.query></data>

This query is valid but it does not use indexes, which could be an issue with large PDI XML. Touse an index, include an indexed element into the XQuery. The element must be present for eachAIU, choose the element carefully.

The following is an example of an optimized pdi.aiu.cnt file:

<data><id>pdi.aiu.cnt</id><select.query>

<![CDATA[declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";count(/n:tweets/n:tweet[n:createdAt])]]>

</select.query></data>

PDI.AIU.ID

To identify each AIU, it is necessary to generate an ID for each. To do that, an XQuery is executed toreturn all of the AIU nodes. Based on this list, an attribute ID will be added with the corresponding

82

Page 83: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

AIU ID value. The AIU ID is composed by the AIP ID and the position into the list with this format.For example:

${AIP_ID}:aiu:${position}

The following is an example of the pdi.aiu.id file:

<data><id>pdi.aiu.id</id><select.query>

<![CDATA[declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";for $aiu in /n:tweets/n:tweetreturn $aiu]]>

</select.query></data>

PDI.PKEYS

To improve the search performance and reduce the search scope, define one or more partition keys.When a search criterion is linked to a partition key, perform the query only on AIPs that referencethe partition key value.

Each partition key value must be assigned to an AIP attribute. Out of the box, the AIP offers somefree slots. You need to take into account the type (STRING, INTEGER, DOUBLE, DATETIME,LIST<STRING>).

There are three different types of partition keys:

STRING INTEGER LONG DOUBLE DATE-TIME

LIST<STRING>

attribute string0x integer0x long0x double0x dateTime0x values0x

Min / Max Yes Yes Yes Yes Yes No

One value Yes Yes Yes Yes Yes No

Value list No No No No No Yes

The common configuration is to calculate the minimum/maximum for a dateTime. In the followingexample from the pdi.pkeys file, it is the createdAt value. We will set the minimum value todateTime01 and the maximum value to dateTime02:

<data><id>pdi.pkeys</id><pkey attr="dateTime01">

declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";min(/n:tweets/n:tweet/xs:dateTime(n:createdAt))

</pkey><pkey attr="dateTime02">

declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";max(/n:tweets/n:tweet/xs:dateTime(n:createdAt))

</pkey>

83

Page 84: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

</data>

To use the xDB indexes and improve the performance with large PDI XML files, you can write adifferent XQuery. It is important to know how xDB indexes are sorted. In the following example, ifyou pick-up the first value of the index, you have the minimum value:

<data><id>pdi.pkeys</id><pkey attr="dateTime01">declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";(for $aiu in /n:tweets/n:tweet[n:createdAt]order by $aiu/n:createdAt ascendingreturn $aiu/n:createdAt/xs:dateTime(.))[1]

</pkey><pkey attr="dateTime02">declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";(for $aiu in /n:tweets/n:tweet[n:createdAt]order by $aiu/n:createdAt descendingreturn $aiu/n:createdAt/xs:dateTime(.))[1]

</pkey></data>

RI.INIT

The RI.INIT XQuery allows you to enumerate the unstructured content included into the SIP. Theapproach is to retrieve all file names into the PDI XML file and to return a list of <content/> elements.For each content, specify the mime type. This mime type will be returned during the content retrieval.The mime type can be static or retrieved one by one from the PDI XML.

If one content is linked to more than one AIU, use the distinct-values function to avoid archivinga copy of the same content.

For the Tweets holding, the file name corresponds to the ID value of the mediaEntity:/n:tweets/n:tweet/n:mediaEntity/n:id

The following is an example of the ri.init file:

<data><id>ri.init</id><select.query>

<![CDATA[declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";for $ci in distinct-values(/n:tweets/n:tweet/n:mediaEntity/n:id)order by $cireturn <content type="application/octet-stream">{ $ci }</content>]]>

</select.query></data>

84

Page 85: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

XDB.PDI.CI.ID

To facilitate the content retrieval, enrich the PDI XML with the Content ID (CID). To do that, oneXQuery is used to return the nodes where we want to add the CID value. In return, each node mustbe followed by a string value corresponding to the CID. To support all xDB modes, compute the CIDwith the help of two external variables ID and SEQNO_START.

<data><id>xdb.pdi.ci.id</id><select.query>

<![CDATA[declare variable $id as xs:string external;declare variable $seqno_start as xs:long external;declare namespace n = "urn:x-emc:ia:demo:schema:tweets:1.0";declare namespace ri = "urn:x-emc:ia:schema:ri";let $pdi_uri := root(.)let $ri_uri := replace(document-uri($pdi_uri), '\.pdi$', '.ri')for $ri in doc($ri_uri)/ri:ris/ri:ri[@key]for $n in /n:tweets/n:tweet/n:mediaEntity/n:id[. = $ri/@key]return ($n,concat($id,":ci:", sum(($ri/@seqno,$seqno_start))))

]]></select.query>

</data>

If the SIP contains a lot of unstructured content, it is possible to improve the performance by creatingan index on the element containing the file name.

<path.value.index><name>filename</name><path>

/{urn:x-emc:ia:demo:schema:tweets:1.0}tweets/{urn:x-emc:ia:demo:schema:tweets:1.0}tweet/{urn:x-emc:ia:demo:schema:tweets:1.0}mediaEntity/{urn:x-emc:ia:demo:schema:tweets:1.0}id<STRING>

</path><compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>false</build.without.logging>

</path.value.index>

Configuration Objects

Name Description

AIP An AIP is a OAIS definition standing for Archival InformationPackage. This object represent the archive created after the reception.

Holding A holding is a logical destination archive where to ingest and storedata, usually of the same type that share common characteristics.

Confirmation This object defines the confirmation messages to generate in reactionto an AIP event.

85

Page 86: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Name Description

Delivery Channel This object defines a destination where to write the confirmationmessage.

Ingest This object contains the list of processor to execute during theingestion.

Order This object is used for background searches

Order Item This object is used for background searches

PDI This object contains the configuration to apply during the ingestion.

PDI Schema This object contains the XML Schema to use to validate a PDI XMLfile during the ingestion

Transformation This object defines the XQuery/XSLT to use to perform atransformation.

Ingest Node This object defines parameters for the ingestion and the enumerationprocesses.

Receiver Node This object defines parameters for the reception process.

Xdb Library Policy This object defines the rules how to manage the xDB libraries.

Search

Search Search object for either a table search or a sip search.

SearchComposition Manage the search components (xform, result master, search) andthe search execution.

XForm The search form.

ResultMaster This object describes the search result page for the UI.

Result Configuration Helper This object describes the result output to help the searchcomposition.

AIC An AIC organizes a set of AIPs, which can support flexible andefficient data access.

Query This object defines every option needed to build a query to retrieveAIU.

Query Quota This object defines the search quota to apply during the search.

86

Page 87: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Name Description

Core

Tenant

Application

Space

Storage

Space Root xDB Library

xDB Library

xDB Database

xDB Federation

Space Root Folder

File System Root

File System Folder

Store

Content

AIP

An AIP is a OAIS definition that stands for Archival Information Package. This object representthe archive.

The following table provides OAIS definitions used in the description of an AIP. An ArchiveInformation Unit (AIU) is a variant of a SIP, AIP or DIP.

Content Information (CI) is a set of information that is

• The original target of preservation; or

• That includes part or all of that information.

A CI is an Information Object composed of its Content Data Object and its RepresentationInformation. To resume it is the unstructured information.

Reference Information (RI) identifies and, if necessary, describes one or more mechanisms used toprovide assigned identifiers for the CI. It also provides those identifiers that allow outside systemsto refer to this particular CI.

A Data Submission Session (DSS) is a delivery of media or a single telecommunications sessionthat provides data to a consumer. The DSS format/content is based on a data model negotiatedbetween OAIS and the consumer in the request agreement. In SIP archiving, the DSS is similarof the notion of collection.

Field Description

Summary

87

Page 88: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

id Type: UUID

Mandatory: Yes

Identifier of the AIP. This attributes allows thecustomer to:

• Optimize searches, since a unique index on thisproperty is created at the RDBMS level.

• Ensure this identifier does not vary, even if theDocumentum object identifier changes.

name Type: String

Label: Name

The name is composed with dss.HoldingName+ dssProducer + dssId + sipSeqno (i.e.,PhoneCalls-CC-1000000-1).

’dss’ stands for Data Submission Session, which is adelivered set of media or a single telecommunicationssession that provides data to an OAIS. The DataSubmission Session format/content is based on a datamodel negotiated between the OAIS and the producerin the Submission Agreement. This data modelidentifies the logical constructs used by the producerand how they are represented on each media deliveryor in the telecommunication session.

application Type: Application

Label: Application name

The application corresponding to the AIP

aipId Type: String

Label: AIP ID

Ensures this identifier does not vary, even if the objectidentifier changes.

sipAiuCount Type: Long

Label: AIU count

Number of AIUs contained in the AIP.

88

Page 89: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

ciCount Type: Long

Label: CI count of unstructured content files

Number of content files referenced in the metadataof the AIP.

pdiFileSize Type: Long

Label: PDI file size

Size in bytes of the uncompressed PDI XML filereceived in the SIP.

pdiValuesCharCount Type: Long

Label: PDI character count

Cumulated number of characters contained in theelement and attribute values of the PDI XML filereceived in the SIP.

ciSize Type: Long

Label: CI size (the cumulated size of the unstructuredcontent files)

Cummulative CI size.

ciFormat Type: String

Label: CI format

Name of the format that is used to store the CI of theAIP (i.e., "ci_container").

riRecordSize Type: Long

Label: RI record size

phaseCode Type: ENUM

Label: Phase

The labels for each status include:

• NONE = None

• REC = Reception

• WING = Waiting Ingestion

• ING = Ingest

• WCOM = Waiting Commit

89

Page 90: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

• COM = Completed

• PUR = Purge

• REJ = Reject

• INV = Invalid

• AGGR = Aggregate

stateCode Type: ENUM

Label: State

The current state of the AIP. States are sub-elementsof the phase. For example, an AIP in the invalidationphase (INV) can be in the following states:INV_WPROC (Waiting for processing), INV_WDEL(Waiting deletion), or INV_DONE (Invalidation done).

The labels for each status include:

• NONE = None

• REC_VAL = Validation

• REC_HOLD_BIND = Holding binding

• REC_RET = Retention

• REC_IMP = Import

• REC_REJ = Rejection

• WING = Waiting ingestion

• ING_INIT = Initialization

• ING_SIP_DWN = Sip downloader

• ING_SIP_EXT = Sip extractor

• ING_PDI_HASH_FILE = Pdi hash validation

• ING_PDI_UNZIP = Decompress metadata

• ING_PDI_HASH = Validate hash metadata

• ING_PDI_IMPORT = Import metadata

• ING_PDI_QUERY = Query metadata

• ING_PDI_IDX = Create metadata index

90

Page 91: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

• ING_RI_INIT = RI creation

• ING_CI_UNZIP = Decompress content

• ING_CI_HASH = Validate content hash

• ING_CI_ZIP = Compress content

• ING_CI_AGGREGATE = CI aggregator

• ING_IMPORT = Import

• ING_LIBRARY_CREATOR = Create xdb library

• ING_SIP_XDB_IMPORT = Import sip xml to xdb

• ING_INDEXER_CREATOR = Create index in xdb

• ING_CONTENTS_UPLOADER = Contentsuploader

• ING_AIUID = Add AIU ids

• ING_PDI_AIU_COUNT = PDI AIU count

• ING_PART_KEYS = Populate values of partitionkeys

• ING_XDB_BACKUP = Xdb backup

• ING_PDI_TRANSFORMER = Pdi Transformer

• WCOM = Waiting commit

• COM = Completed

• INV_WPROC = Waiting for processing

• INV_WDEL = Waiting deletion

• INV_DONE = Invalidation done

• REJ_WPROC = Waiting for processing

• REJ_WDEL = Waiting deletion

• REJ_DONE = Rejection done

• PUR_WCONF = Waiting confirmation

• PUR_WDEL = Waiting deletion

• PUR_WPROC = Waiting processing

91

Page 92: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

• AGGR_OPEN = Open aggregate

partOfAggregate Type: boolean

Label: AIP part of an aggregate

Indicator to set if the AIP is a part of an aggregate.Only set to ’true’ for the ’child’ AIP (the temporaryAIP that will disappear later).

aggregateCiSeqno Type: int

Label: AIP aggregate CI seqno

Internal property temporarily used for the AIPsinvolved in an aggregation.• For children, it holds the number of the firstCiSeqno. This property allows to serve contentretrieval requests on the contents of the AIPs whilethe aggregate is open.

• For the aggregate. it holds the last current CiSeqno.

aggregateAiuSeqno Type: int

Label: AIP aggregate AIU seqno

Internal property temporarily used for the AIPsinvolved in an aggregation.• For children, it holds the number of the first AiuSeqno.

• For the aggregate, it holds the last current AiuSeqno.

returnCode Type: ENUM

Label: Return code

The status of the SIP. Possible values are OK orERROR. If the AIP is in ERROR state, the error mustbe diagnosed to further process the AIP.

returnMsg Type: String

Label: Return message

SIP

92

Page 93: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

dss.holdingName Type: String

Label: Holding name

Name of the archive holding in which the AIPs arestored.

dss.id Type: String

Label: DSS ID

ID of the DSS.

pdiSchema Type: String

Label: PDI Schema

XMLschema applied for the metadata description ofthe archived elements.

dss.productionDate Type: OffsetDateTime

Label: DSS production date

Production date of the DSS.

dss.baseRetentionDate Type: OffsetDateTime

Label: Base retention date

Base date used to calculate the retention.

dss.producer Type: String

Label: Producer

Name of the application producing the DSS.

dss.entity Type: String

Label: Entity

Name of the business entity. Data in the AIP belongsto a business entity.

dss.priority Type: Integer

Label: Priority

Ingestion priority.

dss.application Type: String

Label: Application

Data producing application.

93

Page 94: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

dss.retentionClass Type: String

Label: Retention class (also see defaultRetentionClass)

Logical name of the retention class to apply forretention.

sipProductionDate Type: OffsetDateTime

Label: SIP production date

SIP production date.

sipSeqNo Type: Integer

Label: Sequence number in the DSS

DSS SIP sequence number. A DSS is somehow acollection of SIP, each of the SIPs of the same collectionmust have a sequence number.

sipIsLast Type: Boolean

Label: Last SIP of the DSS

Last archiving unit of the collection.

sipAiuCount Type: Long

Label: AIU count

Number of AIUs in the SIP.

sipPageCount Type: Long

Label: Page count

Number of pages of the contents, associated to theelements to archive in the archive unit.

sipPdiHashAlgorithm Type: String

Label: PDI hash algorithm: MD2, MD5, SHA1,SHA256, SHA384, SHA512

Name of the algorithm use to hash the pdi file of thearchive unit (i.e., SHA-1).

sipPdiHashEncoding Type: String

Label: PDI hash encoding

Encoding supported: ’base64’ or ’hex’ (hexadecimal)

Metadata hash encoding. (i.e., base64).

94

Page 95: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

sipPdiHash Type: String

Label: PDI hash

Metadata hash value

sipFileFormat Type: String

Label: SIP file format

SIP file format received.

sipFileSize Type: Long

Label: SIP file size

SIP file size received.

sipFileHash Type: String

Label: SIP file hash

Hash value of the SIP file received during receptionphase.

xDB

xdbMode Type: ENUM

Label: xDB mode

xDB library storage mode. For each AIP, a detachablexDB library is created to store it. The following xDBmodes are available:• PRIVATE

• POOLED

• AGGREGATE

xdbPdiSchema Type: String

Label: xDB PDI schema

XML schema used to validate metadata stored in xDB.In general cases, this schema is the same schema forthe reception, but there are some exceptions:

• If the PDI schema of the reception does not allowgood performance for a search, it is possible toadd a transformation step and store it in xDB withanother schema.

95

Page 96: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

xdbLibrary Type: xDBLibrary

The reference to the xDB library where is stored theAIP.

xdbLibraryName Type: String

Label: xDB library name

Name of the library where the AIP is stored.

xdbLibrarySize Type: Long

Label: xDB library size

The size of the xDB library.

xdbLibraryDetached Type: boolean

Label: Offline

True if the library is detachable, False if the library isnot detachable.

Tracking

receiveStartDate Type: OffsetDateTime

Label: Reception start date

ingestWaitStartDate Type: OffsetDateTime

Label: Waiting ingestion start date

Occurs at the end of the reception.

ingestStartDate Type: OffsetDateTime

Label: Ingestion start date

commitWaitStartDate Type: OffsetDateTime

Label: Waiting commit start date

Occurs at the end of the ingestion.

commitDate Type: OffsetDateTime

Label: Commit date

When the AIP is committed.

purgeDate Type: OffsetDateTime

Label: Disposition date

Purged date.

96

Page 97: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

invalidDate Type: OffsetDateTime

Label: Invalidation date

Date when the AIP has been marked to be invalidated.

rejectDate Type: OffsetDateTime

Label: Rejection date

Date when the AIP has been marked to be rejected.

pdiConfigName Type: String

Label: PDI configuration name

The name of the PDI configuration objectcorresponding to this AIP. The corresponding objectis of type PDI. Its content is an XML file that containsinformation for ingesting AIP.

priority Type: Integer

Label: Holding Priority

Priority of the holding.

receiverNodeName Type: String

Label: Receiver node name

Name of the receiverNode used during reception.

ingestNodeName Type: String

Label: Ingest node name

Name of the ingestNode used during ingestion.

ingestConfigName Type: String

Label: Ingest configuration name

Name of the ingestion configuration used foringestion.

commitSync Type: boolean

Label: Commit during the ingestion

Indicates if this AIP can be synchronously committed(i.e., synchronous commit activated in the holding+ the SIP corresponds to a standalone DSS - seqno=1and is_last=true).

97

Page 98: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

invalidCategory Type: String

Label: Invalidation category

The category set during the invalidation.

invalidDescription Type: String

Label: Invalidation description

The description set during the invalidation.

invalidUserName Type: String

Label: Invalidation user name

The name of the user that invalidated the AIP.

rejectCategory Type: String

Label: Rejection category

The category set during the rejection.

rejectDescription Type: String

Label: Rejection description

The description set during the rejection.

rejectUserName Type: String

Label: Rejection user name

The name of the user that rejected the AIP.

Confirmations

confirmation.receiveDate Type: OffsetDateTime

Label: Reception confirmation date

Receive confirmation date. If this field is set, it meansthe confirmation has been done for the reception ofthis AIP.

confirmation.commitDate Type: OffsetDateTime

Label: Commit confirmation date

Commit confirmation date. If this field is set, it meansthe confirmation has been done for the commit of thisAIP.

98

Page 99: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

confirmation.purgeDate Type: OffsetDateTime

Label: Disposition confirmation date

Purge confirmation date. If this field is set, it meansthe confirmation has been done for the purge of thisAIP

confirmation.rejectDate Type: OffsetDateTime

Label: Rejection confirmation date

Reject confirmation date. If this field is set, it meansthe confirmation has been done for the rejection ofthis AIP.

confirmation.invalidDate Type: OffsetDateTime

Label: Invalidation confirmation date

Invalidation confirmation date. If this field is set,it means the confirmation has been done for theinvalidation of this AIP.

Permission

Permission Type: Permission

Label: Group names

Partition Keys

pkeys.dateTime01 Type: OffsetDateTime

Label: Date time 01

pkeys.dateTime02 Type: OffsetDateTime

Label: Date time 02

pkeys.dateTime03 Type: OffsetDateTime

Label: Date time 03

pkeys.dateTime04 Type: OffsetDateTime

Label: Date time 04

pkeys.dateTime05 Type: OffsetDateTime

Label: Date time 05

pkeys.dateTime06 Type: OffsetDateTime

Label: Date time 06

pkeys.string01 Type: String

Label: String 01

99

Page 100: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

pkeys.string02 Type: String

Label: String 02

pkeys.string03 Type: String

Label: String 03

pkeys.string04 Type: String

Label: String 04

pkeys.integer01 Type: Integer

Label: Integer 01

pkeys.integer02 Type: Integer

Label: Integer 02

pkeys.integer03 Type: Integer

Label: Integer 03

pkeys.integer04 Type: Integer

Label: Integer 04

pkeys.long01 Type: Long

Label: Long 01

pkeys.long02 Type: Long

Label: Long 02

pkeys.long03 Type: Long

Label: Long 03

pkeys.long04 Type: Long

Label: Long 04

pkeys.double01 Type: Double

Label: Double 01

pkeys.double02 Type: Double

Label: Double 02

pkeys.double03 Type: Double

Label: Double 03

pkeys.double04 Type: Double

Label: Double 04

100

Page 101: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

pkeys.values01 Type: List<String>

Label: Values 01

pkeys.values02 Type: List<String>

Label: Values 02

pkeys.values03 Type: List<String>

Label: Values 03

pkeys.values04 Type: List<String>

Label: Values 04

Summary SIP xDB Tracking Confirmation Groups

name dss.hold-ingName

xdbMode receive-StartDate

confirmation.receiveDate

groups

application dss.id xdbPdi-Schema

ingestWait-StartDate

confirmation-.commitDate

aipId dss.pdiSchema

xdbLibrary-Name

ingestStart-Date

confirmation.purgeDate

sipAiuCount dss.produc-tionDate

xdbLib-rarySize

commit-WaitStart-Date

confirmation.rejectDate

ciCount dss.base-Retention-Date

xdbLibrary-Detached

commit-Date

confirmation.invalidDate

pdiFileSize dss.producer purgeDate

pdiValues-CharCount

dss.entity invalidDate

ciSize dss.priority rejectDate

phaseCode dss.application

pdiConfig-Name

stateCode dss.retention-Class

priority

returnCode sip-Production-Date

receiver-NodeName

returnMsg sipSeqNo ingest-Node-Name

sipIsLast ingest-ConfigName

101

Page 102: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Summary SIP xDB Tracking Confirmation Groups

sipAiuCount commitSync

sipPage-Count

invalid-Category

sipPdi-Hash-Algorithm

invalid-Description

sipPdi-Hash-Encoding

invalid-UserName

sipPdiHash reject-Category

sipFile-Format

reject-Description

sipFileSize rejectUser-Name

sipFileHash

AIC

An Archive Information Collection (AIC) organizes a set of AIPs, which can support flexible andefficient data access.

AIPs are aggregated into the AIC using specified criteria (through a Criteria list) determined by thearchivist. Generally AICs are based on the AIPs of interest having common themes or origins, and acommon set of properties. For example, an archive for digital movies may have AICs based on thesubject area of the movie, such as action, science fiction or horror. In addition, the archive may haveAICs based on other factors, such as director or lead actor. It is common that one AIC corresponds toone holding, but several holdings are possible. At a minimum, InfoArchive can be viewed has havingat least one AIC which contains all the AIPs archived in the application.

CRUD operations can be performed on this object like other configuration objects. The alias typeis ’aic’.

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Collection name

102

Page 103: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

application Type: Application

Mandatory: Yes

Label: Application

holdings Type: List<Holding>

Mandatory: No

Label: Holdings

criterias Type: List<Criteria>

Mandatory: No

Label: Criteria

name Type: String

Mandatory: No

Label: Criteria name

Valid criteria on the collection (internal name).

label Type: String

Mandatory: No

Label: Criteria label

Valid criteria on the collection (dispay name).

type Type: String

Mandatory: No

Label: Criteria type

Possible values: STRING, DATE, DATETIME,INTEGER, LONG, DOUBLE, HASHED, ID,CID.

pKeyMinAttr Type: String

Mandatory: No

Label: Minimum value attribute for the criteria

Name of the minimum value attribute (to setwith pKeyMaxAttr) for the partition key. Usedby the search to retrieve AIPs.

pKeyMaxAttr Type: String

Mandatory: No

criteria

103

Page 104: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

Label: Maximum value attribute for the criteria

Name of the maximum value attribute (to setwith pKeyMinAttr) for the partition key. Usedby the search to retrieve AIPs

pKeyValuesAttr Type: String

Mandatory: No

Label: Value attribute for the criteria

HeathCare use case. Name of the attribute thatcontains a list of values for the partition key.Used by the search to retrieve AIPs.

Application

Field Description

id Type: UUID

Mandatory: Yes

Label: ID

name Type: String

Mandatory: Yes

Label: Name

structuredDataStorageAllocationStrategy Type: String

Mandatory: Yes

contentStorageAllocationStrategy Type: String

Mandatory: Yes

tenant Type: Tenant

Mandatory: Yes

Label: Tenant

type Type: Enum

Mandatory: Yes

Label: Type

APP_DECOMM or ACTIVE_ARCHIVING

104

Page 105: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

archiveType Type: Enum

Mandatory: Yes

Label: Archive Type

SIP or Table

description Type: String

Mandatory: Yes

Label: Description

category Type: String

Mandatory: Yes

Label: Category

Confirmation

A confirmation is a message generated in reaction to an AIP event.

Once a SIP has been received and ingested, a confirmation message is automatically generated andpassed back to the source application to confirm that the data has been archived. The message is usedto trigger the deletion of the data from the source application. If, however, there are errors in the SIP,a rejection or an invalidation message is generated.

The following event types can trigger the generation of a confirmation:

Type Description Scope

receipt The SIP has been received. SIP xml

storage The AIP ingestion has been ingestedand commited.

SIP xml and PDI xml

purge The AIP has been disposed. SIP xml and PDI xml

reject The AIP has been rejected. SIP xml or none

invalid The AIP has been invalidated. SIP xml or none

Field Description

id Type: UUID

Label: ID

105

Page 106: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

name Type: String

Label: name

Name of the confirmation

application Type: Application

Label: Application

Application of this confirmation

types Type: List<String>

Label: Confirmation type

Possible values: receipt, storage, purge, reject, invalid

holdings Type: List<Holding>

Label: Holdings

List of the holdings on which the confirmation can be applied to.

sipQuery Type: String

Label: SIP query

Local mode (will run the query on the sip.xml file attached).

pdiQuery Type: String

Label: PDI query

xDB mode (will run the query on the pdi file in xDB).

deliveryChannel Type: DeliveryChannel

Label: Delivery channel

The delivery channel to use for this confirmation.

deliveryChannelParameters Type: Map<String,String>

Label: Delivery channel parameters

The list of additional parameters to pass to the delivery channel (key,value). For example, ’%conf_type%’.

Creating a Confirmation with an ANT Script

240-confirmation.xml

<!-- Create a Confirmation object if any --><echo>Configuring confirmation object with name '${holding}-confirmation'</echo>

106

Page 107: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<ia-task self="confirmationSelf"><object typeAlias="confirmation" checkExistSpEL="?

....[name=='${holding}-confirmation']"><create>

<name>${holding}-confirmation</name></create><update>

<deliveryChannel>${deliveryChannelSelf}</deliveryChannel><holdings>${holdingSelf}</holdings><holdings/><types>RECEIPT</types><types>INVALID</types><types>REJECT</types><types>STORAGE</types><types>PURGE</types><deliveryChannelParameters>

<ia_conf_type>%ia_conf_type%</ia_conf_type><aip_id>%ia_conf_aip_id%</aip_id><ia_conf_datetime>%ia_conf_datetime%</ia_conf_datetime>

</deliveryChannelParameters></update>

</object></ia-task>

Content

SDX Partition feature is used with this object. The partition key is the Application UUID.

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

parentId Type: UUID

Mandatory: Yes

Label: Parent ID

parentType Type: String

Mandatory: No

Label: Parent Type

application Type: Application

Mandatory: Yes

Label: Application

Needed for SDX partition

107

Page 108: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

store Type: Store

Mandatory: Yes

Label: Store

format Type: String

Mandatory: Yes

Label: Format

modifier Type: String

Mandatory: No

Label: Modifier

path Type: List<String>

Mandatory: No

Label: Path / External ID

size Type: Long

Mandatory: Yes

Label: Size

checksum Type: String

Mandatory: Yes

Label: Checksum

createdDate Type: OffsetDateTime

Mandatory: Yes

lastModifiedDate Type: OffsetDateTime

Mandatory: Yes

version Type: Integer

Mandatory: Yes

orphan Type: Boolean

Mandatory: Yes

Set to true to flag this content as ready to be deleted (useful whendeleting the parent object)

108

Page 109: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

blob Type: String (Base64)

Mandatory: No

options Type: List<ENUM>

Mandatory: No

Label: Options

Delivery Channel

The delivery channel service allows the customer to write content to a destination defined by aconfiguration object. The destination can be xDB, a filesystem or another system with a customimplementation. The delivery channel will be used by the confirmation job and the backgroundsearch job.

Field Description

id Type: UUID

Label: ID

application Type: Application

Label: Application

Application to which it depends.

name Type: String

Label: Name

The name of the delivery channel.

parameters Type: Map<String,String>

Label: Parameters

Default parameters to use. Only fixed parameters can be used(i.e., do not specify dynamic values as %aip_id%).

store Type: Store

Label: Store

The store to use as root. If the store is a xdbstore, the deliverychannel will be an xDB one. If the store is a filestore, then thedelivery channel will be a file one. If another kind of store isspecified, an exception will be raised.

109

Page 110: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

fileName Type: String

Label: File/document name

The value can contain variables such as ’%key1%’ defined inthe parameters map. Random UUID, by default.

subPath Type: String

Label: File/XdbLibrary sub-path

Relative path from the FileSystemFolder/XdbLibrary parentdefined at the Store level (cannot start with / or contain ./, ../ or//). The value can contain variables such as ’%key1%’ definedin the parameters map. Empty by default.

prefix Type: String

Label: File name prefix

The value can contain variables such as ’%key1%’ defined inthe parameters map. Empty by default.

suffix Type: String

Label: File name suffix

The value can contain variables such as ’%key1%’ defined inthe parameters map. Empty by default.

overwrite Type: boolean

Label: Overwrite

Remove the file if it already exists. False by default.

compress Type: boolean

Label: Compress

Compress the file and add the zip extension. False by default.

metadata Type: Map<String, String>

Label: Metadata

xDB metadata added on the document. The value can containvariables such as ’%key1%’ defined in the parameters map.Empty by default.

CRUD operations can be performed on this object like other configuration objects. The alias typeis ’delivery-channel’.

110

Page 111: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

File System Folder

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Folder name

subPath Type: String

Mandatory: Yes

Label: Folder sub-path

parentSpaceRootFolder Type: SpaceRootFolder

Mandatory: Yes

Label: Parent space root folder

parentFileSystemFolder Type: FileSystemFolder

Mandatory: Yes

Label: Parent file system folder

File System Root

The InfoArchive server does not create a default file system root if nothing is configured. Theapplication.yml file, however, allows for a "fileSystemRoot" entry to be used by the InfoArchiveserver. The specified path has to pre-exist on the file system. InfoArchive server will not create it.

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

111

Page 112: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

path Type: String

Mandatory: Yes

Label: Path

default Type: Boolean

Mandatory: No

Label: Default

Allows the customer to define a defaultFileSystemRoot, which helps to define a workingdirectory, for example.

Holding

A holding is a logical destination archive where to ingest and store data, usually of the same typethat share common characteristics. For example, you can create a holding to archive data fromthe same source application (such as ERP data), or of the same format (such audio recordings), orbelonging to the same business entity.

An InfoArchive instance can contain multiple archive holdings.

You can create multiple archive holdings for a single data type for applying different access rightsand target storage areas to meet the requirements from different data owners.

Considering that the definition of the archive holdings is highly structured, it must be carefullydesigned according to:

• The expected content types to be archived

• The data segregation constraints for isolating the data owned by different business entitiesin distinct archive holdings

Most InfoArchive system configurations are performed at the holding level. Holding configurationencompasses many aspects of data archiving such as storage areas, retention policy, ingestionsequence, AIP mode, and xDB mode. The settings defined at the archive holding level are usedthroughout the whole lifecycle of the data archived in the holding.

Note: For best performance, leave working folders, such as the Tomcat temp folder, the ingest folder,and the receiver folder on the local disk. Performance and scalability issues might be encountered ifthese folders reside on network storage.

112

Page 113: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

id Type: UUID

Mandatory: Yes

Tab: Summary

Label: Identifier

name Type: String

Mandatory: Yes

Tab: Summary

Label: Holding name

application Type: Application

Mandatory: Yes

Tab: Summary

Label: Application

format Type: String

Mandatory: Yes

Tab: Summary

Label: Ingest config by SIP format

sips sip

ingest Type: Ingest

Mandatory: Yes

Tab: Summary

Label: Ingest config by SIP format

Add ingestName (transient field).

schema Type: String

Mandatory: Yes

Tab: Summary

Label: PDI config by PDI Schema

pdis pdi

id Type: PDI

Mandatory: Yes

Tab: Summary

Label: PDI config by PDI Schema

113

Page 114: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

sipStore Type: Store

Mandatory: Yes

Tab: Storage

Label: Reception store

Name of the repository storage area for theSIP format.

keepSipAfterCommitEnabled Type: Boolean

Mandatory: Yes

Default: False

Tab: Storage

Label: Keep SIP file after commit

keepSipOnRejinvEnabled Type: Boolean

Mandatory: Yes

Default: False

Tab: Storage

Label: Keep SIP file on reject or invalidation

ingestNodes Type: Set<IngestNode>

Mandatory: Yes

Tab: Summary

Label: Ingest nodes

priority Type: Integer

Mandatory: Yes

Tab: Summary

Label: Priority

114

Page 115: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

dss Type: Integer

Mandatory: Yes

Tab: Summary

Label: Deadline by Sub-priority

subPriorities subPriority

deadline Type: Period

Mandatory: Yes

Tab: Summary

Label: Deadline by Sub-priority

logsStoreEnabled Type: Boolean

Mandatory: Yes

Default: True

Tab: Storage

Label: Logs store enabled

logsStore Type: Store

Mandatory: Yes

Tab: Storage

Label: Logs store

Name of the repository storage area for logfiles.

pdiXmlHashEnforced Type: Boolean

Mandatory: Yes

Default: False

Tab: Summary

Label: Enforce hash validation on PDI XML

pdiXmlHashValidationEnabled Type: Boolean

Mandatory: Yes

Default: True

Tab: Summary

Label: Validate PDI XML hash

115

Page 116: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

keepPdiXmlAfterIngestEnabled Type: Boolean

Mandatory: Yes

Default: True

Tab: Storage

Label: Keep PDI XML after commit

xmlStore Type: Store

Mandatory: Yes

Tab: Storage

Label: XML store

Name of the repository storage area for xmlfiles (SIP XML, PDI XML)

keepXmlOnRejinvEnabled Type: Boolean

Mandatory: Yes

Default: False

Tab: Storage

Label: Keep XML file on reject or invalidation

ciHashValidationEnabled Type: Boolean

Mandatory: Yes

Default: True

Tab: Summary

Label: Validate content hash

ciStore Type: Store

Mandatory: Yes

Tab: Storage

Label: Content store

Name of the repository storage area forcontent (CI Container and RI XML).

116

Page 117: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

keepCiOnRejinvEnabled Type: Boolean

Mandatory: Yes

Default: False

Tab: Storage

Label: Keep contents on reject or invalidation

defaultRetentionClass Type: String

Mandatory: No

Tab: Retention

Label: Default retention class

This case-sensitive setting is considered ifthe SIP does not mention a retention class toapply. The value assigned to this propertymust match a retention class defined in theeas_retention_class property.

It is recommended that, upon ingestion, toeither:

• Run the TableApplyRetention job to applya retention policy to individual tables; or

• Apply a retention policy to the entireapplication via the Application >Application Info tab.

Applying a retention policy to individualtables means that the customer needs to becareful that, if the tables have dependencies,the retention policy is configured properly.For instance, in the BaseBall application,it is advised that the customer should notapply a shorter retention policy to the mastertable than the other tables, as this can causedangling references.

117

Page 118: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

name Type: String

Mandatory: Yes

Tab: Retention

Label: Retention class

policies Type: List<String>

Mandatory: Yes

Tab: Retention

Label: Retention Policy

retention-Classes

retentionClass

holds Type: List<String>

Mandatory: Yes

Tab: Retention

Label: Legal Hold

reception Type: Permission

Mandatory: Yes

Tab: Permission

Label: Reception

ingestion Type: Permission

Mandatory: Yes

Tab: Permission

Label: Ingestion

waitingCommit Type: Permission

Mandatory: Yes

Tab: Permission

Label: Waiting Commit

completed Type: Permission

Mandatory: Yes

Tab: Permission

Label: Completed

permissionSet

Permissions list for all AIPstates (REC, INJ, WCOM, COM,REJ, INV, PUR). If no groupis defined, display no groupassigned.

118

Page 119: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

purge Type: Permission

Mandatory: Yes

Tab: Permission

Label: Purge

reject Type: Permission

Mandatory: Yes

Tab: Permission

Label: Reject

invalid Type: Permission

Mandatory: Yes

Tab: Permission

Label: Invalid

syncCommitEnabled Type: Boolean

Mandatory: Yes

Default: True

Tab: Summary

Label: Commit immediately the AIP after theingestion

Activates the commit at the end ofthe ingestion when the AIP is astandalone DSS (i.e., eas_sip_seqno=1and eas_sip_is_last=true).

mode Type: Enum

Mandatory: Yes

Tab: xDB

Label: Xdb mode

Possible values include:• PRIVATE

• POOLED

• AGGREGATE

xdb

119

Page 120: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

libraryParent Type: XdbLibrary

Mandatory: Yes

Tab: xDB

Label: Xdb Library Parent

xDB library configuration to be used:

• For mode 1, library in which the metadatamust be directly imported.

• For mode 2, library in which the sub-librarymust be created This property is not usedwhen applying mode 3 because the parentlibrary to use is defined at the library poollevel.

libraryPolicy Type: XdbLibraryPolicy

Mandatory: No

The xDB library pool configuration object touse during ingestion.

store Type: Store

Mandatory: Yes

Tab: Storage

Label: xDB library store

When ingestion mode 2 is applied, nameof the repository storage area where theimported sub-library must be assigned

LibraryPolicy Type: XdbLibraryPolicy

Label: Xdb library policy

Description: The xdb library poolconfiguration object to use during Ingestion.

120

Page 121: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

pushRetentionOnRejInvEnabled Type: Boolean

Mandatory: Yes

Tab: Retention

Label: Push the retention on reject orinvalidation

Activation of the assignation of the retentiondate on contents of the AIP imported inthe repository when the AIP is rejected orinvalidated.

renditionStore Type: Store

Mandatory: No

Tab: Storage

Label: Rendition store

Store to use to save extra renditions (Analyticrendition, purge list export, etc.).

Ingest

This object describe the configuration of an injection process :

• The sequence of tasks to execute injection.

• The Java class to enable for each task.

• The optional parameters of each task

Field Description

id Type: UUID

Mandatory: Yes

name Type: String

Mandatory: Yes

Label: Name

121

Page 122: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

application Type: Application

Mandatory: Yes

Label: Application

contents Type: Set<Content>

Mandatory: Yes

Label: Content

XML Content<processors>

<processor><name>download of SIP content from content server</name><class>com.emc.documentum.eas.ingestor.transform.processor.downloader.

SIPContentDownloader</class></processor><processor>

<class>com.emc.documentum.eas.ingestor.transform.processor.policy.PolicyPromoter</class>

</processor><processor>

<name>promoter to uncompressed data state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.PolicyPromoter

</class></processor><processor>

<id>sip.extractor</id><name>extract SIP content</name><class>com.emc.documentum.eas.ingestor.transform.processor.extractor.

SIPExtractor</class><data>

<!-- the name of the entry in the ZIP file that matches the PDI file --><pdi.name>eas_pdi.xml</pdi.name>

</data></processor><processor>

<name>promoter to the hash control state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.

PolicyPromoter</class></processor><processor>

<name>PDI hash validation</name><class>com.emc.documentum.eas.ingestor.transform.processor.hash.

PDIHashValidatorProcessor</class></processor><processor>

<id>pdi.validation</id><name>XSD validation of metadata</name><class>com.emc.documentum.eas.ingestor.transform.processor.validator.

PDISchemaValidator</class><data>

<are.whiteSpaces.ignored>false</are.whiteSpaces.ignored></data>

</processor><processor>

<class>com.emc.documentum.eas.ingestor.transform.processor.policy.PolicyPromoter</class>

</processor>

122

Page 123: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<processor><data/>

</processor><processor>

<name>promoter to the metadata import state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.

PolicyPromoter</class></processor><processor>

<name>xdb cache library creation</name><class>com.emc.documentum.eas.ingestor.transform.processor.library.

LibraryCreator</class></processor><processor>

<id>set.schema</id><name>set the new schema name</name><class>com.emc.documentum.eas.ingestor.transform.processor.utils.

SetSchemaNameProcessor</class><data/>

</processor><processor>

<name>SIP import into xdb cache</name><class>com.emc.documentum.eas.ingestor.transform.processor.importer.

SIPImporter</class></processor><processor>

<id>pdi.xdb.importer</id><name>PDI import into xdb cache</name><class>com.emc.documentum.eas.ingestor.transform.processor.importer.

PDIImporter</class><data>

<pdi.env.name>pdi.file.xml</pdi.env.name></data>

</processor><processor>

<name>PDI compression</name><class>com.emc.documentum.eas.ingestor.transform.processor.compress.

PDICompressor</class></processor><processor>

<data><file.env.name>pdi.file.xml</file.env.name>

</data></processor><processor>

<name>promoter to the metadata request state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.

PolicyPromoter</class></processor><processor>

<id>pdi.index.creator</id><name>Create Indexes on PDI</name><class>com.emc.documentum.eas.ingestor.transform.processor.index.IndexesCreator

</class><data>

<key.document.name>xdb.pdi.name</key.document.name><indexes/>

</data></processor><processor>

<id>pdi.aiu.id</id><name>Add AIU IDs in PDI</name><class>com.emc.documentum.eas.ingestor.transform.processor.importer.

PDIAiuIdProcessor</class><data>

123

Page 124: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

/node()/node()</data>

</processor><processor>

<id>pdi.aiu.cnt</id><name>Count AIU in PDI</name><class>com.emc.documentum.eas.ingestor.transform.processor.importer.

PDIAiuCntProcessor</class><data>

count(/node()/node())</data>

</processor><processor>

<id>pdi.aiu.index</id><name>Create AIU Indexes on PDI</name><class>com.emc.documentum.eas.ingestor.transform.processor.index.

IndexesCreator</class><data>

<key.document.name>xdb.pdi.name</key.document.name><indexes>

<value.index><name>pdi.aiu.id</name><compressed>false</compressed><unique.keys>true</unique.keys><concurrent>false</concurrent><value.index.type>STRING</value.index.type><element.uri/><element.name/><attribute.uri>urn:x-emc:eas:schema:pdi</attribute.uri><attribute.name>id</attribute.name>

</value.index></indexes>

</data></processor><processor>

<id>minmax</id><name>min-max computing</name><class>com.emc.documentum.eas.ingestor.transform.processor.importer.

PartitionValuesProcessor</class><data/>

</processor><processor>

<name>promoter to the metadata index creation state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.PolicyPromoter

</class></processor><processor>

<name>promoter to the content import state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.PolicyPromoter

</class></processor><processor>

<name>PDI content recorder</name><class>com.emc.documentum.eas.ingestor.transform.processor.content.

PDIContentRecorder</class></processor><processor>

<name>Contents uploader</name><class>com.emc.documentum.eas.ingestor.transform.processor.uploader.

ContentsUploader</class></processor><processor>

<name>xDB segment files importer</name><class>com.emc.documentum.eas.ingestor.transform.processor.library.

LibraryImporter</class>

124

Page 125: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

</processor><processor>

<name>promoter to the content commit-wait state</name><class>com.emc.documentum.eas.ingestor.transform.processor.policy.

PolicyPromoter</class></processor><processor>

<name>Synchronous commit</name><class>com.emc.documentum.eas.ingestor.transform.processor.

commit.CommitProcessor</class></processor>

</processors>

Ingest Node (ia_cfg_ingest_node)

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Name

Name of reception node.

application Type: Application

Mandatory: Yes

Label: Application

logLevel Type: ENUM

Mandatory: Yes

Label: Log level

Possible values for logLevel:

• TRACE

• DEBUG

• INFO

• WARN

• ERROR

• ALL

125

Page 126: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

• OFF

workingDirectory FileSystemFolder

Mandatory: Yes

Label: Working directory

enumerationCutoffDays Type: Integer

Mandatory: Yes

Label: Enumeration Cutoff Days

enumerationMaxResultCount Type: Integer

Mandatory: Yes

Label: Enumeration Max Result Count

enumerationMinusRunning Type: Boolean

Mandatory: Yes

Default: False

Label: Enumeration Minus Running

PDI (ia_cfg_pdi)

The Preservation Description Information (PDI) file in a SIP stores structured data to archive.

Unlike the SIP descriptor (eas_sip.xml), there is no pre-defined schema for the PDI file. You candefine your own schema using an XML editor for the type of data to archive based on your businessrequirements (the PDI file name must be eas_pdi.xml though). Any schema can be used as long asyou import it into InfoArchive and perform some additional configurations.

A file name can be stored as a value of one or several XML elements and/or attributes, and the samefile name can be referenced multiple times within an eas_pdi.xml file.

Field Description

id Type: UUID

Mandatory: Yes

126

Page 127: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

name Type: String

Mandatory: Yes

Label: Name

application Type: Application

Mandatory: Yes

Label: Application

XML Content

<datas><data>

<id>pdi.index.creator</id><parameter>

<key.document.name>xdb.pdi.name</key.document.name><indexes>

<path.value.index><name>CustomerID</name><path>/{urn:eas-samples:en:xsd:phonecalls.1.0}Calls/

{urn:eas-samples:en:xsd:phonecalls.1.0}Call[{urn:eas-samples:en:xsd:phonecalls.1.0}CustomerID&lt;LONG>]</path>

<compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>true</build.without.logging>

</path.value.index><path.value.index>

<name>CallStartDate</name><path>/{urn:eas-samples:en:xsd:phonecalls.1.0}Calls/{urn:eas-

samples:en:xsd:phonecalls.1.0}Call[{urn:eas-samples:en:xsd:phonecalls.1.0}CallStartDate&lt;DATE_TIME>]</path>

<compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>true</build.without.logging>

</path.value.index><path.value.index>

<name>CustomerLastName</name><path>/{urn:eas-samples:en:xsd:phonecalls.1.0}Calls/{urn:eas-

samples:en:xsd:phonecalls.1.0}Call[{urn:eas-samples:en:xsd:phonecalls.1.0}CustomerLastName&lt;STRING>]</path>

<compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>true</build.without.logging>

</path.value.index><path.value.index>

<name>CustomerFirstName</name><path>/{urn:eas-samples:en:xsd:phonecalls.1.0}Calls/

{urn:eas-samples:en:xsd:phonecalls.1.0}Call[{urn:eas-samples:en:xsd:phonecalls.1.0}CustomerFirstName&lt;STRING>]</path>

<compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>true</build.without.logging>

</path.value.index><path.value.index>

127

Page 128: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<name>RepresentativeID</name><path>/{urn:eas-samples:en:xsd:phonecalls.1.0}Calls/{urn:eas-

samples:en:xsd:phonecalls.1.0}Call[{urn:eas-samples:en:xsd:phonecalls.1.0}RepresentativeID&lt;LONG>]</path>

<compressed>false</compressed><unique.keys>false</unique.keys><concurrent>false</concurrent><build.without.logging>true</build.without.logging>

</path.value.index></indexes>

</parameter></data><data>

<id>pdi.aiu.id</id><parameter>

<![CDATA[declare namespace n = "urn:eas-samples:en:xsd:phonecalls.1.0";for $call in /n:Calls/n:Callreturn ($call, $call/n:CustomerID/text())]]>

</parameter></data><data>

<id>pdi.aiu.cnt</id><parameter>

<![CDATA[declare namespace n = "urn:eas-samples:en:xsd:phonecalls.1.0";count(/n:Calls/n:Call)]]>

</parameter></data><data>

<id>minmax</id><parameter>

<key name="CallStartDate" type="date-time" xml:space="preserve"><min field="eas_pkey_min_date" xml:space="preserve">

declare namespace n = "urn:eas-samples:en:xsd:phonecalls.1.0";adjust-dateTime-to-timezone(min(/n:Calls/n:Call/xs:dateTime

(n:CallStartDate)), xs:dayTimeDuration("PT0H"))</min><max field="eas_pkey_max_date" xml:space="preserve">

declare namespace n = "urn:eas-samples:en:xsd:phonecalls.1.0";adjust-dateTime-to-timezone(max(/n:Calls/n:Call/xs:dateTime

(n:CallStartDate)), xs:dayTimeDuration("PT0H"))</max>

</key></parameter>

</data><data>

<id>toc.creator</id><parameter>

<![CDATA[declare namespace n = "urn:eas-samples:en:xsd:phonecalls.1.0";for $ci in distinct-values(/n:Calls/n:Call/n:Attachments/n:Attachment/

n:FileName)order by $cireturn <content type="audio/x-mpeg" format="mp3" audit="{ $ci }">

{ $ci }</content>]]>

</parameter></data><data>

<id>pdi.ci.id</id><parameter>

<![CDATA[

128

Page 129: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

declare namespace n = "urn:eas-samples:en:xsd:phonecalls.1.0";declare namespace ri = "urn:x-emc:eas:schema:ri";let $pdi_uri := root(.)let $aip_id := xhive:metadata($pdi_uri, 'eas_aip_id')let $ri_uri := replace(document-uri($pdi_uri), '\.pdi$', '.ri')for $ri in doc($ri_uri)/ri:ris/ri:ri[@pdi_key]for $n in /n:Calls/n:Call/n:Attachments/n:Attachment/n:FileName[. = $ri/@pdi_key]return ($n,concat($aip_id,":ci:",$ri/@seqno))]]>

</parameter></data>

</datas>

PdiSchema (ia_cfg_schema)

Field Description

id Type: UUID

Mandatory: Yes

Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Collection Name

application Type: Application

Mandatory: Yes

Label: Application

format Type: String

Mandatory: Yes

Label: Schema format

xsd

XSD Content<?xml version="1.0" encoding="UTF-8" standalone="yes"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:eas-samples:en:xsd:phonecalls.1.0" version="1.0" elementFormDefault="qualified"xmlns:Q1="urn:eas-samples:en:xsd:phonecalls.1.0"><xs:element name="Calls"><xs:complexType><xs:sequence maxOccurs="unbounded"><xs:element name="Call"><xs:complexType><xs:sequence><xs:element name="SentToArchiveDate" type="xs:date" nillable="false" /><xs:element name="CallStartDate" type="xs:dateTime" nillable="false" />

129

Page 130: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<xs:element name="CallEndDate" type="xs:dateTime"/><xs:element name="CallFromPhoneNumber"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:minInclusive value="1" /><xs:totalDigits value="11" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="CallToPhoneNumber" nillable="false"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:minInclusive value="1" /><xs:totalDigits value="11" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="CustomerID" nillable="false"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:totalDigits value="11" /><xs:minInclusive value="1" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="CustomerLastName" nillable="false"><xs:simpleType><xs:restriction base="xs:normalizedString"><xs:minLength value="1" /><xs:maxLength value="32" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="CustomerFirstName" nillable="false"><xs:simpleType><xs:restriction base="xs:normalizedString"><xs:minLength value="1" /><xs:maxLength value="32" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="RepresentativeID" nillable="false"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:minInclusive value="1" /><xs:totalDigits value="7" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="Attachments" nillable="false" minOccurs="1"><xs:complexType><xs:sequence maxOccurs="unbounded" minOccurs="0"><xs:element name="Attachment"><xs:complexType><xs:sequence><xs:element name="AttachmentName" nillable="false" maxOccurs="1"><xs:simpleType><xs:restriction base="xs:normalizedString"><xs:minLength value="1" /><xs:maxLength value="32" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="FileName" nillable="false" minOccurs="1" maxOccurs="1"><xs:simpleType>

130

Page 131: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<xs:restriction base="xs:normalizedString"><xs:minLength value="1" /><xs:maxLength value="32" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="CreatedBy" nillable="false" maxOccurs="1"><xs:simpleType><xs:restriction base="xs:normalizedString"><xs:minLength value="1" /><xs:maxLength value="32" /></xs:restriction>

</xs:simpleType></xs:element><xs:element name="CreatedOnDate" type="xs:dateTime"

nillable="false" /></xs:sequence></xs:complexType>

</xs:element></xs:sequence>

</xs:complexType></xs:element>

</xs:sequence></xs:complexType>

</xs:element></xs:sequence>

</xs:complexType></xs:element>

</xs:schema>

Query (eas_cfg_query)

The query configuration object (eas_cfg_query) defines:

• Which AIC (each corresponding to a holding) to search. Can be configured to search one ormore specified holdings.

• How search criteria can be built (through the xdbPdiConfig).

• Howmany results can be returned (through QueryQuota for both synchronous and asynchronoussearch).

This object defines every option needed to build a query to retrieve an AIU.

CRUD operations can be performed on this object like other configuration objects. The alias typeis ’query’.

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by thesystem

131

Page 132: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

name Type: String

Mandatory: Yes

Label: Name

Query configuration name.

application Type: Application

Mandatory: Yes

Label: Application

The application associated with the query.

aics Type: List<AIC>

Mandatory: Yes

Label: Archiving unit collections

List of AICs that can be queried throughthis configuration.

resultSchema Type: String

Mandatory: Yes

Label: Result schema

URN of the schema in which the queryresults are returned (in XML) before beingtransform for the UI. Only one queryconfiguration object for the same resultschema is allowed.

resultRootElement Type: String

Mandatory: No

Label: Result root element

The root XML element of the search result.Should be set to ’result’.

132

Page 133: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

resultRootNsEnabled Type: boolean

Mandatory: No

Default: False

Label: Namespace in root element

Activates the declaration of the resultschema as namespace of the root XMLelement of the results.

quota Type: QueryQuota

Mandatory: Yes

Label: Query quota

Query quota to use for the synchronoussearch.

quotaAsync Type: QueryQuota

Label: Asynchronous query quota

Query quota to use for the asynchronoussearch (background search).

order Type: Order

Mandatory: No

Label: Order

Configuration object for the backgroundsearch (asynchronous serach).

namespaces Type: List<Namespace>

Mandatory: No

Label: Set of name spaces

The search can query multiple namespace.

133

Page 134: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

uri Type: String

Mandatory: No

Label: Namespace URI

URI of the namespace to build the query(on the ingested data).

namespace

prefix Type: String

Mandatory: No

Label: Namespace prefix

Prefix of the namespace to build the query(on the ingested data)

xdbPdi-Configs

Type: List<xdbPdiConfig>

schema Type: String

Mandatory: Yes

Label: xDB PDI schema

URN of the ingested data (pdi).

entityPath Type: String

Mandatory: Yes

Label: Entity path

xpath to the AIU.

template Type: String

Mandatory: No

Label: Query template

Default Value: ’return $aiu’

xQuery that can be added to retrieveresult.

name Type: String

Mandatory: Yes

Label: OrderBy name

Name of the field to use for the order.

orderBy

xdbPdi-Config

134

Page 135: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

direction Type: String

Mandatory: No

Label: OrderBy direction

Possible values: ASCENDING,DESCENDING for this order criterion.

position Type: Integer

Mandatory: No

Label: OrderBy position

Position of the order criterion.

operands Type: List<Operand>

name Type: String

Mandatory: Yes

Label: Operand name

Name of the queryable field (internalname in the PDI, not the display name).

path Type: String

Mandatory: Yes

Label: Operand path

The xpath of queryable field in the PDI(relative xpath to enityPath).

type Type: Aic.CriteriaType

Mandatory: Yes

Label: Operand type

Default: STRING

Type of the queryable field. Possiblevalues: STRING, LONG, INTEGER,DOUBLE, DATE, DATETIME, CID,AIUID.

Operand

index Type: boolean

Mandatory: No

Label: Operand index

’true’ if the field is indexed.

135

Page 136: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Query Quota (ia_cfg_query_quota)

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Name

application Type: Application

Mandatory: Yes

Label: Application

aipQuota Type: long

Mandatory: Yes

Label: AIP quota

Maximum number of AIPs that can be embraced for thesearch. A zero value indicates an unlimited number.

aiuQuota Type: long

Mandatory: Yes

Label: AIU quota

Maximum number of AIUs that can be embraced for thesearch. A zero value indicates an unlimited number.

dipQuota Type: long

Mandatory: Yes

Label: DIP quota

Maximum number of AIU returns by the search. A zerovalue indicates an unlimited number.

orderAipQuota Type: long

Mandatory: Yes

Label: AIP quota for background search

Maximum number of AIPs that can be embraced for thesearch. A zero value indicates an unlimited number.

136

Page 137: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

orderAiuQuota Type: long

Mandatory: Yes

Label: AIU quota for background search

Maximum number of AIUs that can be embraced for thesearch. A zero value indicates an unlimited number.

orderDipQuota Type: long

Mandatory: Yes

Label: DIP quota for background search

Maximum number of AIU returns by the search. A zerovalue indicates an unlimited number.

Receiver Node (ia_cfg_receive_node)

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Name

Name of reception node.

application Type: Application

Mandatory: Yes

Label: Application

137

Page 138: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

logLevel Type: LogLevel

Mandatory: Yes

Label: Log level

Possible values for logLevel:

• TRACE

• DEBUG

• INFO

• WARN

• ERROR

• ALL

• OFF

workingDirectory Type: FileSystemFolder

Mandatory: Yes

Label: Working Directory

format Type: String

Mandatory: Yes

Label: Format

SIP format.

extractorImpl Type: String

Mandatory: No

Label: Extractor Implementation class

Full qualified name of the java class implementing theInfoArchive interface ISipExtractor.java (by defaultwe need a SipZipExtractor, EasSipZipExtractor,ExtSipExtractor). If not defined, use theSipZipExtractor.

sips sip

extractor-Parameter

Type: List<String>

Mandatory: Yes

Label: Extractor Parameters

SIP Extractor Interface

138

Page 139: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

import com.emc.documentum.eas.common.exception.EventException;import com.emc.documentum.eas.datamodel.sip.data.SIP;

import javax.xml.validation.Schema;import java.io.Closeable;import java.io.File;

/*** The interface defines the requirements of classes that extract SIP froma file*/public interface ISIPExtractor extends Closeable {

/*** The method that extract an SIP from a file** @param sipFile is the file to process* @return the SIP for the file (if any)* @throws EventException can be thrown by implementation*/SIP extract(File sipFile) throws EventException;

/*** @return the associated schema*/Schema getSchema();

/*** @return the java class arg1 value*/String getArg1();

/*** @return the working directory*/File getWorkingDir();

/*** @return the SIP format*/String getFormat();

}

Search

A search can be created for either table or SIP data.

The search is managed by the search composition and is composed of search forms (the xform) andthe result pages (the result master).

A primary search is a search seen by users, although a nested search can be used by another searchto link searches.

A search can run synchronously or asynchronously.

For SIP data, the search is executed by two queries:

• The first retrieves packages (AIP) with the partition key criteria,

• The second retrieves the suitable AIU among the AIPs of the first query.

139

Page 140: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

The SIP search is configured with an AIC, a query configuration to define the queryable fields andthe Result Configuration Helper to list the available result fields. The SIP search is executed on anAIC based on one or several holdings in the same application.

Field Description

id Type: UUID

Mandatory: Yes

Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Search name

The search name.

application Type: Application

Mandatory: Yes

Label: Application

Application of which it depends.

description Type: String

Mandatory: No

The search description.

searchGroup Type: SearchGroup

Mandatory: No

schema Type: Schema

Mandatory: Yes (for table search)

table Type: Table

Mandatory: Yes (for table search)

aic Type: AIC

Mandatory: Yes (for table search)

Label: Archive Collection

The Archive Information Collection of SIP data.

140

Page 141: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

query Type: Query

Mandatory: Yes (for table search)

Label: Configuration

The Query Configuration of the SIP data.

nestedSearch Type: boolean

Label: Nested Search

Set to ’True’ for a nested search to allow search to be linkedfrom other searches. When selected, this is not shown tousers for access. Set to ’False’ for primary search to allowusers access.

state Type: State

Possible values: DRAFT or PUBLISHED

useBySearches Type: Collection<String>

List search names.

SearchComposition

The Search Composition manages all search objects for the user interface:

• Either XForms, resultmaster and search for SIP data, or

• XForms, XQueries, resultmaster and search for table data.

A search is executed from the search composition (synchronously or asynchronously).

Field Description

id Type: UUID

Mandatory: Yes

Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Name

search Type: Search

Mandatory: Yes

Label: The Search

141

Page 142: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

searchName Type: String

Mandatory: Yes

Label: The Search Name

permission Type: Permission

Creating a searchComposition with an ANT Script

The following example illustrates the procedure with the PhoneCalls application. Only the groupproperty can be set in the searchcomposition.properties file.groups=

XForm

This is the search form to generate the search criteria.

Field Description

id Type: UUID

Mandatory: Yes

Automatically generated by the system

name Type: String

Mandatory: Yes

Label: xform name

Name of the search form.

Application Type: Application

Mandatory: Yes

Label: Application

Application of which it depends.

form Type: String

Mandatory: Yes

Content of the search form.

142

Page 143: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

searchComposition Type: SearchComposition

Mandatory: Yes

Label: Search composition

Search composition it depends upon

search Type: Search

Mandatory: Yes

Search it depends upon

searchName Type: String

Label: The search name

Name of the search it depends upon

Creating an XForm from an ANT Script

The following example illustrates the content for the PhoneCalls application (for SIP data) in theDefaultSearch.xml file:

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xhtml:head><xforms:model>

<title>Default PhoneCalls Search</title><xforms:instance xmlns="">

<data><CallStartDate>

<from>2000-01-01</from><to>2016-04-10</to>

</CallStartDate><CustomerID/><CustomerLastName/><RepresentativeID/><CustomerFirstName/>

</data></xforms:instance><xforms:instance xmlns="" id="labels">

<labels><CallStartDate>Call Start Date:</CallStartDate><CustomerID>Customer ID:</CustomerID><CustomerLastName>Customer Last Name:</CustomerLastName><RepresentativeID>Representative ID:</RepresentativeID><CustomerFirstName>Customer First Name:</CustomerFirstName>

</labels></xforms:instance><xforms:instance xmlns="" id="hints">

<hints><CallStartDate/><CustomerID/><CustomerLastName/>

143

Page 144: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<RepresentativeID/><CustomerFirstName/>

</hints></xforms:instance><xforms:instance xmlns="" id="prompts">

<prompts><CustomerID/><CustomerLastName/><RepresentativeID/><CustomerFirstName/>

</prompts></xforms:instance><xforms:instance xmlns="" id="alerts">

<alerts><CallStartDate/><CustomerID/><CustomerLastName/><RepresentativeID/><CustomerFirstName/>

</alerts></xforms:instance><xforms:instance xmlns="" id="range-messages">

<rangemessages><CustomerID/><CustomerLastName/><RepresentativeID/><CustomerFirstName/>

</rangemessages></xforms:instance><xforms:instance xmlns="" id="pattern-messages">

<patternmessages><CustomerID/><CustomerLastName/><RepresentativeID/><CustomerFirstName/>

</patternmessages></xforms:instance><xforms:submission id="phoneSearchSubmission" method="post" serialization=

"application/xml"/><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms=

"http://www.w3.org/2002/xforms" targetNamespace="http://www.w3.org/2002/xforms" elementFormDefault="qualified">

</xsd:schema><bind xmlns="http://www.w3.org/2002/xforms" ref="/data/CallStartDate/

from" type="xforms:date" constraint="(string-length(.) = 0 or (days-from-date(.)<= days-from-date(/data/CallStartDate/to) and string-length(/data/CallStartDate/to) > 0))" required="true()"/>

<bind xmlns="http://www.w3.org/2002/xforms" ref="/data/CallStartDate/to" type="xforms:date" constraint="(string-length(.) = 0 or (days-from-date(.) >=days-from-date(/data/CallStartDate/from) and string-length(/data/CallStartDate/from) > 0))" required="true()"/>

<bind xmlns="http://www.w3.org/2002/xforms" ref="/data/CustomerID"/><bind xmlns="http://www.w3.org/2002/xforms" ref="/data/

CustomerLastName"/><bind xmlns="http://www.w3.org/2002/xforms" ref="/data/

RepresentativeID"/><bind xmlns="http://www.w3.org/2002/xforms" ref="/data/

CustomerFirstName"/></xforms:model>

</xhtml:head><xhtml:body>

<xhtml:h1>Default PhoneCalls Search</xhtml:h1><input xmlns="http://www.w3.org/2002/xforms" ref="CallStartDate/from">

<label ref="instance('labels')/CallStartDate"/>

144

Page 145: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<hint ref="instance('hints')/CallStartDate"/><alert ref="instance('alerts')/CallStartDate"/>

</input><input xmlns="http://www.w3.org/2002/xforms" ref="CallStartDate/to"/><input xmlns="http://www.w3.org/2002/xforms" ref="CustomerID">

<label ref="instance('labels')/CustomerID"/><hint ref="instance('hints')/CustomerID"/><hint appearance="minimal" ref="instance('prompts')/CustomerID"/><alert ref="instance('alerts')/CustomerID"/><message class="range" ref="instance('range-messages')/CustomerID"/><message class="pattern" ref="instance('pattern-messages')

/CustomerID"/></input><input xmlns="http://www.w3.org/2002/xforms" ref="CustomerLastName">

<label ref="instance('labels')/CustomerLastName"/><hint ref="instance('hints')/CustomerLastName"/><hint appearance="minimal" ref="instance('prompts')/CustomerLastName"/><alert ref="instance('alerts')/CustomerLastName"/><message class="range" ref="instance('range-messages')/CustomerLastName"/><message class="pattern" ref="instance('pattern-messages')/

CustomerLastName"/></input><input xmlns="http://www.w3.org/2002/xforms" ref="RepresentativeID">

<label ref="instance('labels')/RepresentativeID"/><hint ref="instance('hints')/RepresentativeID"/><hint appearance="minimal" ref="instance('prompts')/RepresentativeID"/><alert ref="instance('alerts')/RepresentativeID"/><message class="range" ref="instance('range-messages')/RepresentativeID"/><message class="pattern" ref="instance('pattern-messages')

/RepresentativeID"/></input><input xmlns="http://www.w3.org/2002/xforms" ref="CustomerFirstName">

<label ref="instance('labels')/CustomerFirstName"/><hint ref="instance('hints')/CustomerFirstName"/><hint appearance="minimal" ref="instance('prompts')

/CustomerFirstName"/><alert ref="instance('alerts')/CustomerFirstName"/><message class="range" ref="instance('range-messages')

/CustomerFirstName"/><message class="pattern" ref="instance('pattern-messages')

/CustomerFirstName"/></input>

</xhtml:body></xhtml:html>

ResultMaster

The search result page are rendered in the InfoArchive web application with the ResultMaster.

It is generated during search design by the search composition.

The search result field are dispatched in several sections (panels) according to the ResultMaster.

Field Description

id Type: UUID

Mandatory: Yes

145

Page 146: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

application Type: Application

Mandatory: Yes

Application it depends upon.

searchComposition Type: SearchComposition

Mandatory: Yes

SearchComposition it depends upon.

search Type: Search

Mandatory: Yes

Search it depends upon.

searchName Type: String

Mandatory: Yes

Name of the search

panels Type: List<Panel>

Mandatory: No

Each panel is a section of the search resultpage.

name Type: String

Mandatory: Yes

Panel’s name (example ’Side Panel’).

title Type: String

Mandatory: No

Title of the panel.

description Type: String

Mandatory: No

Description of the panel.

Panel

tabs Type: List<Tab>

Mandatory: No

Tabs of this panel (example the ’side panel’is composed of several tabs).

146

Page 147: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

name Type: String

Mandatory: Yes

Name of the Tab.

title Type: String

Mandatory: No

Title of the Tab.

description Type: String

Mandatory: No

Dsscription of the Tab.

Tab

columns Type: List<Column>

Mandatory: No

Columns of the result page (returneddata).

name Type: String

Mandatory: Yes

Internal name.

label Type: String

Display name.

hidden Type: boolean

xdbElementName Type: String

masked Type: boolean

dataType Type: DataType

Possible values: STRING, DATE,DATETIME, NUMBER, BOOLEAN,INTEGER, DOUBLE, LONG, FLOAT, ID,CID.

type Type: Type

Possible values: XQUERY_REFERENCE,SCHEMA_COLUMN_NAME, CONTENT,NESTED_SEARCH or EXTERNAL_URL.

order Type: int

sortable Type: boolean

Mandatory:

Column

147

Page 148: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

defaultSort Type: DefaultSort

Possible values: NONE, ASCENDING,DESCENDING

links Type: Map<String,String>

nestedSearch Type: Search

nestedSearchName Type: String

url Type: URL

parameterMapping Type: Map<String,String>

groupName Type: String

groupPath Type: String

path Type: String

namespaces Type: List<Namespace>

List of namespaces for the results.

uri Type: String

URN of the namespace.

Namespace

prefix Type: String

Prefix of the namespace.

Creating a ResultMaster with an ANT Script

The following example with the illustrates the PhoneCalls holding in the DefaultResultMaster.xml file:<data>

<namespaces><prefix>n</prefix><uri>urn:eas-samples:en:xsd:phonecalls.1.0</uri>

</namespaces><namespaces>

<prefix>ia</prefix><uri>urn:x-emc:ia:schema:pdi</uri>

</namespaces><panels>

<name>Main Panel</name><tabs>

<name>_ia_Default_Main_tab_</name><columns>

<name>CustomerID</name><type>SCHEMA_COLUMN_NAME</type><binding>CustomerID</binding><path>n:CustomerID</path><label>Customer ID</label><dataType>INTEGER</dataType><sortable>true</sortable><defaultSort>NONE</defaultSort>

148

Page 149: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CustomerLastName</name><type>SCHEMA_COLUMN_NAME</type><binding>CustomerLastName</binding><path>n:CustomerLastName</path><label>Last Name</label><dataType>STRING</dataType><sortable>true</sortable><defaultSort>NONE</defaultSort><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CustomerFirstName</name><type>SCHEMA_COLUMN_NAME</type><binding>CustomerFirstName</binding><path>n:CustomerFirstName</path><label>First Name</label><dataType>STRING</dataType><sortable>true</sortable><defaultSort>NONE</defaultSort><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CallStartDate</name><type>SCHEMA_COLUMN_NAME</type><binding>CallStartDate</binding><path>n:CallStartDate</path><label>Call Start</label><dataType>DATETIME</dataType><sortable>true</sortable><defaultSort>ASCENDING</defaultSort><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CallToPhoneNumber</name><type>SCHEMA_COLUMN_NAME</type><binding>CallToPhoneNumber</binding><path>n:CallToPhoneNumber</path><label>Call To Phone Number</label><dataType>STRING</dataType><sortable>true</sortable><defaultSort>NONE</defaultSort><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>Attachment1</name><type>SCHEMA_COLUMN_NAME</type><binding>Attachment1</binding><path>n:Attachments/n:Attachment[1]/n:FileName/@ia:cid</path><label>Attachment</label><dataType>CID</dataType><sortable>false</sortable><defaultSort>NONE</defaultSort>

149

Page 150: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns/>

</tabs><tabs/>

</panels><panels>

<name>Inline Panel</name><tabs>

<name>_ia_Default_Detail_Inline_tab_</name><columns>

<name>cid</name><type>SCHEMA_COLUMN_NAME</type><binding>cid</binding><path>n:FileName/@ia:cid</path><label>CID</label><dataType>CID</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked><groupName>Attachments</groupName><groupPath>n:Attachments/n:Attachment</groupPath>

</columns><columns>

<name>AttachmentName</name><type>SCHEMA_COLUMN_NAME</type><binding>AttachmentName</binding><path>n:AttachmentName</path><label>Name</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked><groupName>Attachments</groupName><groupPath>n:Attachments/n:Attachment</groupPath>

</columns><columns>

<name>FileName</name><type>SCHEMA_COLUMN_NAME</type><binding>FileName</binding><path>n:FileName</path><label>Filename</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked><groupName>Attachments</groupName><groupPath>n:Attachments/n:Attachment</groupPath>

</columns><columns>

<name>CreatedBy</name><type>SCHEMA_COLUMN_NAME</type><binding>CreatedBy</binding><path>n:CreatedBy</path><label>Created by</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked><groupName>Attachments</groupName><groupPath>n:Attachments/n:Attachment</groupPath>

</columns><columns/>

150

Page 151: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

</tabs><tabs/>

</panels><panels>

<name>Side Panel</name><tabs>

<name>_ia_Default_Detail_Side_tab_</name><columns>

<name>CustomerID</name><type>SCHEMA_COLUMN_NAME</type><binding>CustomerID</binding><path>n:CustomerID</path><label>Customer ID</label><dataType>INTEGER</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>RepresentativeID</name><type>SCHEMA_COLUMN_NAME</type><binding>RepresentativeID</binding><path>n:RepresentativeID</path><label>Representative ID</label><dataType>INTEGER</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CustomerLastName</name><type>SCHEMA_COLUMN_NAME</type><binding>CustomerLastName</binding><path>n:CustomerLastName</path><label>Last name</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CustomerFirstName</name><type>SCHEMA_COLUMN_NAME</type><binding>CustomerFirstName</binding><path>n:CustomerFirstName</path><label>First name</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>SentToArchiveDate</name><type>SCHEMA_COLUMN_NAME</type><binding>SentToArchiveDate</binding><path>n:SentToArchiveDate</path><label>Sent to</label><dataType>DATE</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CallStartDate</name><type>SCHEMA_COLUMN_NAME</type>

151

Page 152: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<binding>CallStartDate</binding><path>n:CallStartDate</path><label>Call start</label><dataType>DATETIME</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CallEndDate</name><type>SCHEMA_COLUMN_NAME</type><binding>CallEndDate</binding><path>n:CallEndDate</path><label>Call end</label><dataType>DATETIME</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CallFromPhoneNumber</name><type>SCHEMA_COLUMN_NAME</type><binding>CallFromPhoneNumber</binding><path>n:CallFromPhoneNumber</path><label>Call from</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns>

<name>CallToPhoneNumber</name><type>SCHEMA_COLUMN_NAME</type><binding>CallToPhoneNumber</binding><path>n:CallToPhoneNumber</path><label>Call to</label><dataType>STRING</dataType><hidden>false</hidden><encrypt>false</encrypt><masked>false</masked>

</columns><columns/>

</tabs><tabs/>

</panels><panels/>

</data>

ResultConfigurationHelper

Field Description

id Type: UUID

Mandatory: Yes

152

Page 153: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

name Type: String

Mandatory: Yes

Label: Name

application Type: Application

Mandatory: Yes

Label: Application

resultSchema Type: List<String>

Mandatory: Yes

Label: Result Schema

<?xml version="1.0" encoding="UTF-8"?><resultConfigurationHelper xmlns:n="urn:eas-samples:en:xsd:phonecalls.1.0"xmlns:ia="urn:x-emc:ia:schema:pdi"><element><name>id</name><label>ID</label><type>ID</type><path>@ia:id</path>

</element><element><name>SentToArchiveDate</name><label>Sent to</label><type>DATE</type><path>n:SentToArchiveDate</path>

</element><element><name>CallStartDate</name><label>Call start</label><type>DATETIME</type><path>n:CallStartDate</path>

</element><element><name>CallEndDate</name><label>Call end</label><type>DATETIME</type><path>n:CallEndDate</path>

</element><element><name>CallFromPhoneNumber</name><label>Call from</label><type>STRING</type><path>n:CallFromPhoneNumber</path>

</element><element><name>CallToPhoneNumber</name><label>Call to</label><type>STRING</type><path>n:CallToPhoneNumber</path>

</element><element><name>CustomerID</name><label>Customer ID</label>

153

Page 154: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

<type>INTEGER</type><path>n:CustomerID</path>

</element><element><name>CustomerLastName</name><label>Last name</label><type>STRING</type><path>n:CustomerLastName</path>

</element><element><name>CustomerFirstName</name><label>First name</label><type>STRING</type><path>n:CustomerFirstName</path>

</element><element><name>RepresentativeID</name><label>Representative ID</label><type>INTEGER</type><path>n:RepresentativeID</path>

</element><element><name>Attachment1</name><label>Attachment 1</label><type>CID</type><path>n:Attachments/n:Attachment[1]/n:FileName/@ia:cid</path>

</element><group><name>Attachments</name><label>Attachments</label><path>n:Attachments/n:Attachment</path><element><name>cid</name><label>CID</label><type>CID</type><path>n:FileName/@ia:cid</path>

</element><element><name>AttachmentName</name><label>Name</label><type>STRING</type><path>n:AttachmentName</path>

</element><element><name>FileName</name><label>Filename</label><type>STRING</type><path>n:FileName</path>

</element><element><name>CreatedBy</name><label>Created by</label><type>STRING</type><path>n:CreatedBy</path>

</element><element><name>CreatedOnDate</name><label>Created on</label><type>DATETIME</type><path>n:CreatedOnDate</path>

</element></group>

</resultConfigurationHelper>

154

Page 155: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Space

Field Description

id Type: UUID

Mandatory: Yes

Label: ID

name Type: String

Mandatory: Yes

Label: Name

application Type: Application

Mandatory: Yes

Label: Application

Space Root Folder

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

path Type: String

Mandatory: Yes

Label: Path

space Type: Space

Mandatory: Yes

Label: Space

fileSystemRoot Type: FileSystemRoot

Mandatory: Yes

Label: File system root

155

Page 156: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

SpaceRootXdbLibrary

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Library name

space Type: Space

Mandatory: Yes

Label: Space

xdbDatabase Type: XdbDatabase

Mandatory: Yes

Label: Xdb Database

Space Root xDB Library

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Library name

space Type: Space

Mandatory: Yes

Label: Space

xdbDatabase Type: XdbDatabase

Mandatory: Yes

Label: Xdb Database

156

Page 157: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

FileSystemRoot

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

path Type: String

Mandatory: Yes

Label: Path

default Type: Boolean

Mandatory: No

Label: Default

Permit to define a default FileSystemRoot to help to define aworking directory, for example.

FileSystemFolder

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Folder name

subPath Type: String

Mandatory: Yes

Label: Folder sub path

157

Page 158: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

parentSpaceRootFolder Type: SpaceRootFolder

Mandatory: Yes

Label: Parent space root folder

parentFileSystemFolder Type: FileSystemFolder

Mandatory: Yes

Label: Parent file system folder

Store

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Collection name

application Type: Application

Mandatory: Yes

Label: Application

type Type: Enum

Mandatory: Yes

Label: Type

FILESYSTEM, XDB, SMARTLOCK, CUSTOM

storeType Type: Enum

Mandatory: Yes

Label: Store type

REGULAR, RESULT

158

Page 159: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

status Type: Enum

Mandatory: Yes

Label: Status

ONLINE, OFFLINE, READONLY

fileSystemFolder Type: FileSystemFolder

Mandatory: No

Label: File system folder

xdbLibrary Type: XdbLibrary

Mandatory: No

Label: xDB library

javaClass Type: String

Mandatory: No

Label: Java class

For custom extension.

parameters Type: Map<String,String>

Mandatory: No

Label: Parameters

For custom extension.

Tenant

In the build.properties file, do not change the name of the INFOARCHIVE tenant(tenant=INFOARCHIVE). If the INFOARCHIVE tenant is changed, the application will not appearin the InfoArchive web application.

159

Page 160: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

id Type: UUID

Mandatory: Yes

Label: ID

name Type: String

Mandatory: Yes

Label: Name

Transformation

Field Description

id Type: UUID

Mandatory: Yes

name Type: String

Mandatory: Yes

Label: Name

application Type: Application

Mandatory: Yes

Label: Application

inputSchema Type: String

Mandatory: Yes

Label: Input Schema

resultSchema Type: String

Mandatory: Yes

Label: Result Schema

format Type: String

Mandatory: Yes

Label: Format

XSLT

160

Page 161: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

XdbDatabase

Field Description

id Type: UUID

Mandatory: Yes

Label: ID

name Type: String

Mandatory: Yes

Label: Name

adminPassword Type: String

Mandatory: Yes

Label: Password

xdbFederation Type: XdbFederation

Mandatory: Yes

Label: Federation

XdbFederation

Field Description

id Type: UUID

Mandatory: Yes

Label: ID

name Type: String

Mandatory: Yes

Label: Name

superUserPassword Type: String

Mandatory: Yes

Label: Super user password

bootstrap Type: String

Mandatory: Yes

Label: Bootstrap

161

Page 162: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

xDB Library

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

name Type: String

Mandatory: Yes

Label: Library name

subPath Type: String

Mandatory: Yes

Label: Library path

detached Type: Boolean

Mandatory: Yes

Label: Detached

detachable Type: Boolean

Mandatory: Yes

Label: Detachable

readOnly Type: Boolean

Mandatory: Yes

Label: Read-only

concurrent Type: Boolean

Mandatory: Yes

Label: Concurrent

parentSpaceRootXdbLibrary Type: SpaceRootXdbLibrary

Mandatory: Yes

Label: Parent space root xDB library

parentXdbLibrary Type: XdbLibrary

Mandatory: No

Label: Parent xDB library

162

Page 163: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

cacheSupport Type: Boolean

Mandatory: Yes

Label: Cache-out support

Indicate immediately if this library can be cached out.

cacheLockDate Type: OffsetDateTime

Mandatory: Yes

Label: Locked in cache deadline date

cacheInCount Type: Long

Mandatory: Yes

Label: Cache-in count

Number of times the library has been cached in.

cacheInCount Type: OffsetDateTime

Mandatory: Yes

Label: Latest cache-in date

Date of the last cache-in of the library.

size Type: Long

Mandatory: Yes

Label: Size in xDB

indexSize Type: Long

Mandatory: Yes

Label: Index size in xDB

Include path value, Fulltext, Multi path indexes

pkey Type: String

Label: Partitioning key

aipCount Type: Long

Label: Stored AIP count

Number of AIPs stored in the library

163

Page 164: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

aiuCount Type: Long

Label: Stored AIU count

Number of AIUs stored in the library

effectiveCloseDate Type: OffsetDateTime

Label: Effective close date

Date from when the library became eligible to be closed.

closed Type: Boolean

Label: Closed

’true’ only if library has been closed.

closedDate Type: OffsetDateTime

Label: Closed date

Closing date of the library. A library that has this data withthe NULLDATE value indicates an open library.

closeRequested Type: Boolean

Label: Closing manually requested

Setting this flag allows you to manually request the closingof the library.

xdbMode Type: ENUM

Label: xDB mode

PRIVATE, POOLED, AGGREGATE

Creating an xDB Library with an ANT Script

<!-- Create second xdb-library object if any--><echo>Configuring xdb-library object with name '${holding}-xdb-library'</echo><ia-task self="libSelf">

<object typeAlias="xdb-library" checkExistSpEL="?[name=='${holding}-xdb-library']">

<create><name>${holding}-xdb-library</name><subPath>aips/${holding}</subPath><parentSpaceRootXdbLibrary>${rootSelf}</parentSpaceRootXdbLibrary>

</create></object>

</ia-task>

164

Page 165: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

XdbLibraryPolicy

The XdbLibraryPolicy object is referenced in the Holding object.

Field Description

aipQuota Type: long

Label: AIP quota per library

Description: Maximum number of AIPs allowed in a library. The valueof zero indicates an unlimited number.

aiuQuota Type: long

Label: AIU quota per library

Description: Maximum number of AIUs allowed in a library. The valuezero indicates an unlimited number.

closeMode Type: ENUM

Label: Close mode

Description: Mode to apply for closing a library of the pool automaticallycreated by InfoArchive. Values include:• NONE,

• CREATION_DATE,

• LAST_MODIFIED_DATE,

• CLOSE_HINT_DATE

closePeriod Type: long

Label: Close period

Description: Period expressed in days used according to the close mode

pkeyQuery Type: String

Label: Partitionning key query

Description: Optional xQuery executed on the sip.xml file.

closeHintDateQuery Type: String

Label: Closing hint date query

Description: Optional xQuery executed on the sip.xml file. Mandatoryif closeMode is set to CLOSE_HINT_DATE.

165

Page 166: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Content

The SDX Partition feature is used with this object. The partition key is the Application UUID.

Field Description

id Type: UUID

Mandatory: Yes

Label: Automatically generated by the system

parentId Type: UUID

Mandatory: Yes

Label: Parent ID

AIP, PDI, Ingest, ResultConfigurationHelper, Query,PDI_Schema.

parentType Type: String

Mandatory: No

Label: Parent Type

aip, table, order-item. (value from AuditConstants.Types).

application Type: Application

Mandatory: Yes

Label: Application

Required for SDX partition.

store Type: Store

Mandatory: Yes

Label: Store

format Type: String

Mandatory: Yes

Label: Format

modifier Type: String

Mandatory: No

Label: Modifier

166

Page 167: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Field Description

path Type: List<String>

Mandatory: No

Label: Path / External ID

Centera C-CLIPs, Swift, S3

size Type: Long

Mandatory: Yes

Label: Size

checksum Type: String

Mandatory: Yes

Label: Checksum

SHA-1

createdDate Type: OffsetDateTime

Mandatory: Yes

lastModifiedDate Type: OffsetDateTime

Mandatory: Yes

version Type: Integer

Mandatory: Yes

orphan Type: Boolean

Mandatory: Yes

Set to ’true’ to flag this content as ready to be deleted (usefulwhen deleting the parent object).

blob Type: String (Base64)

Mandatory: No

"Turbo Store" for content configuration object only. Limitedto 100 KB.

options Type: List<ENUM>

Mandatory: No

Label: Options

DO_NOT_APPLY_STORAGE_RETENTION

167

Page 168: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

SIP Generator

The SIP Generator is a Talend Open Studio output component that allows the customer to generateSIPs to be ingested into InfoArchive via the Talend ETL job. This component is universal, meaning itcan work with any data source provided by Talend Open Studio.

Because the default ulimit value is ’1024’, a customer will receive zip errors when ingesting a largenumber of SIP files . Make sure to set the ulimit value to a bigger value, such as ’10240’. After settingulimit, restart the server.

Building and Installing

1. Run Maven goal assembly:assembly in library (\PlayGround\SPb\kapela\SipCreator).

2. Copy tSipCreator (\PlayGround\SPb\kapela\SipCreator) to Talend components folder (InTalend: Window - Preferences - Talend - Components - User component folder).

3. If Talend could not find sip-creator-*.jar, provide path to it in (\PlayGround\SPb\kapela\SipCreator\target)

The component is named tSipCreator and is located in the InfoArchive. Simply drag and drop itfrom component palette to the job design canvas.

The component has one input connection and no output connections. The input connectionmust have only one column with document type and any name. This document must be valideas_pdi.xml with any AIU count inside. These documents can be formed, for example, in tXMLMapor tFileInputXML. You can provide any count of document in the input connection - componentmerges/splits them, if needed.

You can configure the component in Component Pane. It has following parameters:

Parameter Description Required?

Application Specifies the application that generates theSIP.

Enable XSD validation Enable PDI file validation against XSD Schema

Entity Specifies the business entity that owns thedata to be archived.

Hash algorithm Specifies the algorithm for calculating hashvalue. If none is selected, hash wont becalculated.

Holding Specifies the target holding into which theextracted objects will be archived.

Id Specifies the archiveId.

Output directory Specifies the complete path of the workingdirectory in which to generate SIPs. If thedirectory does not exist, the utility will createit when executed.

168

Page 169: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Parameter Description Required?

Pdi schema Specifies the PDI schema that is written to theSIP files.

Pdi schema version Specifies the PDI schema version that iswritten to the SIP files.

Priority Specifies the ingestion priority of the SIP.The greater the value, the higher the priority.The order by which SIPs are ingestedis determined first by ingestion priority(higher-priority SIPs are ingested first), andthen by ingestion deadline date (SIPs withearlier deadlines are ingested first).

Process unstructured data Enable unstructured data processing.

Producer Specifies the application that generates theSIP.

Split by count Enables splitting packages by number ofobjects in a SIP.

Split by size Enables splitting packages by content file size.

Split count Specifies the maximum number of objects ina SIP.

Required if "Splitby count" ischecked

Split size Specifies the maximum size in bytes forcontent files per SIP.

Required if "Splitby size" is checked

Unstructured data directory Specifies folder, containing unstructured data. Requiredif "Processunstructured data"is checked

xPath Specifies path to unstructured file names ineas_pdi.xml. eg "//Q1:FileName". Connectorexpects to find files with such names in folderspecified in "Unstructured data directory"

Requiredif "Processunstructured data"is checked

XSD File Specify an XSD schema file, for exampleDctmDocbase.xsd (default schema), as theschema (.xsd) file against which the PDI filegenerated by the utility will be validated.

Required if "EnableXSD validation" ischecked

Scenario – Creating a SIP Using Data from MySql

This scenario demonstrates the usage of all the tSipCreator features, including creating SIP package,handling unstructured data, splitting packages by content size and object count, XML validationand hash calculation.

The following illustrates the input data and the expected output data.

169

Page 170: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Input data is stored in MySql database "phonecalls" on localhost in table "calls". The followingillustrates the table structure:

Column FileName represents recording file name and the customer would expect to find a file withthis name in "recordings" folder.

For the output, the customer would expect to see multiple SIPs generated, each containingeas_pdi.xml validated with specified XSD schema, eas_sip.xml and content files.

1. Read data. Add to palette the tMysqlInput component and configure as in the following:

2. Transform data:

a. Add the tXMLMap component to the palette and connect it to tMysqlInput component.

b. In the Component Configuration, open Map Editor.

c. Create a new output row with any name.

d. In the Schema Editor, add a new output Column with a type ’Document’.

e. In the Row Properties, right click on the created column, press Import From file and selectthe root node.

f. Map the data.

g. To generate right date format, open "Tree Schema Editor" and specify the pattern, as follows:

h. Click OK.

3. Create the SIP:

a. Add the tSipCreator component to the palette.

b. Connect tSipCreator with tXMLMap.

c. Configure component, as follows:

4. Run the Talend ETL job. If no error is generated, the SIPs were successfully created and validated.Go to the directory specified in tSipCreator component. The SIPs were generated with eachSIP using less thea 100 KB.

5.Each SIP contains both structured and unstructured data.

Space Limitation for a SIP File NameBe careful when naming a SIP file, as file names containing more than one space will result in anexception during the ingestion process (i.e., Phone CallsSample-2009.zip).

170

Page 171: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

The reason is the limitation of the third party – Spring, which normalizes all strings in the way oftrimming all excessive spaces to one space. This limitation cannot be avoided, as a file name thatcontains more than one space looks like a typo rather than a usual use case.

Unitary Archiving and AggregationUnitary archiving allows a client application to synchronously archive data in InfoArchive. If the webservice call succeeds, archived data can be immediately searched. Unitary archiving executes thesame processing as batch ingestion.

Unitary archiving can be completed by an aggregation step to optimize storage and reduce therepository footprint.

The following diagram illustrates unitary archiving at the SDX level:

171

Page 172: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

The following diagram illustrates unitary archiving prior to aggregation:

The following diagram illustrates unitary archiving after aggregation:

Receiving and Ingesting a SIP in One Request

When ingesting a SIP in batch, it is first necessary to receive the SIP in the system. This does not,however, make sense with unitary archiving.

To achieve this, an exposed REST API can receive and ingest simultaneously. Receiving an ingestinga SIP in one request reduces the number of steps you must perform (i.e., saving the SIP file). Theresource name is ingest-direct:/applications/{applicationId}/aips?format=sip_zip&ingestDirect=true

172

Page 173: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Configuring the Ingestion Process to Store MultipleAIPs in the Same xDB Library

When working in the aggregation mode, InfoArchive allows you to store metadata into a sharedlibraries, which are also known as pooled libraries. For more information, see XdbLibraryPolicy.

The effective close date is computed with the following rules:

Close Mode Rule

NONE nulldate

LAST_MODIFIED_DATE CLOSE PERIOD + XDB LIBRARY LASTMODIFIED DATE

CREATION_DATE CLOSE PERIOD + XDB LIBRARYCREATION_DATE

CLOSE_HINT_DATE CLOSE PERIOD + XQUERY DATE TIME

The XdbLibraryPolicy is referenced to the Holding: in the following attributes:

• xdbMode

• xdbLibraryPolicy

The following attributes are added at the AIP level:

• xdbMode

• phaseCode

• stateCode

The following attributes are added at the XdbLibrary level to facilitate the library management: 777

• pkey

• aipCount

• aiuCount

• effectiveCloseDate

• closed

• closedDate

• closeRequested

• xdbMode

173

Page 174: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

Executing the Close Job to Close the xDB Library andPerform a Backup

When you run the Close job. for each xDBLibrary:

• An xDB backup is performed;

• The XdbLibrary is set to closed = TRUE; and

• The closeDate value is updated.

The backup is only performed if every AIP of the xdbLibrary is set to COMPLETED.

An xDBLibrary with the xdbMode set to PRIVATE is not eligible to be closed. Only an xDBLibrary inxdbMode POOLED or AGGREGATE can be closed:

XdbLibrary where xdbMode in (POOLED,AGGREGATE) and closed = FALSE and(effectiveCloseDate < (offsetDateTime(now) - {closeDelay}) or closeRequested = true)

Note: An exceeded quota never triggers a closure. Only an outdated closing date or a manual closecan be taken into account.

The job accepts the following parameters to control the execution:

• phaseToProcess

• closeDelay

For more information, see the information related to the Close Job in the Working with Jobs: List ofAvailable Jobs section of the Configuration & Administration User Guide.

Configuring the Ingestion Process to Allow Aggregation

The aggregation mode is based on the pooled mode with additional constraints to allow theaggregation at a later time. To activate the aggregation mode, it is necessary to specify at the Holdinglevel the xdbMode AGGREGATE and link a new configuration object XdbLibraryPolicy.

To configure and enable this mode:

1. Update the following values in the 101-xdb-library-policy.xml file:• aipQuota

• aiuQuota

• closeMode

• closeHintDateQuery

• pKeyQuery

• closePeriod

For more information, see XdbLibraryPolicy.

2. in build.properties, change the xdbMode value to AGGREGATE.

174

Page 175: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

To close and perform the aggregation, execute the Close job. An aggregate can be closed only:

• When the effectiveCloseDate is expired; or

• If a manual closing has been requested.

At the end, the children (in COMPLETED phase) will be moved to the PRUNE phase and the AIPAGGREGATE will be moved to the COMPLETED phase.

The effectiveCloseDate is computed with the information stored in the XdbLibraryPolicy(101-xdb-library-policy.xml) and the close mode you have chosen:

• closeMode: NONE, CREATION_DATE, LAST_MODIFIED_DATE, CLOSE_HINT_DATE

• closePeriod: number of days

• closeHintDateQuery: XQuery to compute a DateTime on the fly based on the SIP XML information

NONE: nulldate

CREATION_DATE: CLOSE PERIOD + XDB LIBRARY

LAST_MODIFIED_DATE CLOSE PERIOD + XDB LIBRARY LAST

CLOSE_HINT_DATE CLOSE PERIOD + XQUERY DATE TIME

Reception

If XdbMode is set to AGGREGATE, the AIP is not put under retention. The AIP should have isSipLastset to true and SipSeqNo set to 1 or it will fail validation. CommitSync is always enabled, whateverthe value of the holding.

InfoArchive Components Debug LevelConfigurationThis section illustrates where to look for logs and how to switch the log level from info to DEBUG.

In IAShell, it is possible to define an environment variable to provide a file path to the logback.xmlfile.

For Windows

Enter the following in a console window:

set IASHELL_OPTS=-Dlogback.configurationFile=<path_to_the_file>/logback.xml

The following example illustrates the set command if the logback.xml file will be placed in thesame folder as iashell.bat:

175

Page 176: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a SIP Application

set IASHELL_OPTS=-Dlogback.configurationFile=logback.xml

The file can be extracted from infoarchive-shell-4.1.0.jar.

For Linux

Enter the export command:

export IASHELL_OPTS=-Dlogback.configurationFile=logback.xml

Enabling Debug Log Level

Add the following section (inside the tag named configuration) to the file for enabling DEBUG level:

<logger name="com.emc.ia.cli" level="DEBUG" additivity="false"><appender-ref ref="CLI-MAIN" /></logger>

Now, IAShell is prepared to use custom settings (DEBUG level) for the logging, which must beexecuted in the same console window:

iashell

Enable the "DEBUG" log level by modifying the application.yml file at <INSTALL_DIR>/infoarchive/config/server/:

logging.level.: 'DEBUG'

For the InfoArchive web application, enable the "DEBUG" log level by modifying theapplication.yml file at <INSTALL_DIR>/infoarchive/config/webapp/

logging.level.: 'DEBUG'

176

Page 177: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Chapter 4Configuring a Table Application

The table archiving approach uses different system data types, namely:

• Tenant

• Application

• Database

• Schema

• Table

The successful execution of the table archiving process requires that these data types be set up in thesystem beforehand. The ’Database’ is a collection of schemas, and each schema is a collection of a listof tables. In case of uploading unstructured content, the system data ’Store’, which is the locationwhere unstructured data will be stored, should also be created.

metadata.xml<metadata>

<caseSensitive>false</caseSensitive><defaultSchema>BASEBALL</defaultSchema><validatingOnIngest>true</validatingOnIngest><locale>en-US</locale><schemaMetadataList>

<schemaMetadata><name>BASEBALL</name><tableCount>24</tableCount><tableMetadataList>

<tableMetadata><name>MASTER</name><recordCount>18589</recordCount><columnList>

<column><name>NAMEFIRST</name><ordinal>14</ordinal><type>VARCHAR</type><typeLength>50</typeLength><index>true</index>

</column><column>

<name>NAMELAST</name><ordinal>15</ordinal><type>VARCHAR</type><typeLength>50</typeLength><index>true</index>

</column></columnList>

</tableMetadata>

177

Page 178: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a Table Application

</tableMetadataList></schemaMetadata>

</schemaMetadataList></metadata>

The ingestion of the above metadata file creates a schema named "BASEBALL" and one table named"MASTER". Table data can then be ingested on the link referencing to the "MASTER" object.

A Spring shell provides an interactive shell that allows the customer to define custom commandsusing a Spring-based programming model.

A Spring REST template enables communication between HTTP servers and clients with theenforcement of RESTful principles, and supports the following HTTP methods: GET, POST, DELETEand PUT.

The Admin CLI supports two commands: upload and upload-schema.

Using the Upload CommandThe upload command loads table data from the specified file system location into the specifiedtarget InfoArchive database. A Spring REST template discovers the REST resources required toobtain the desired table link that will allow ingestion. For data to be ingested successfully, somesystem data objects must be present and, therefore, must be created prior to ingestion through the’upload’ command. The prerequisite system data objects are: tenant, application, database, schemaand table. Among the aforementioned system data types, schema and table are created during theuploading of table metadata through ’upload-schema’ command. For more information, see Usingthe Upload Schema Command.

Argument Description

--application <name of the application>

--authenticationType <type of authentication to be used as specified by the user>

--database <name of the database>

--debug <log in DEBUG mode>

--error <log in ERROR mode>

The default mode of logging if none of the logging options arespecified.

--filter <pattern based on which the files will be searched from thepath denoted by --path argument. All the files matching thespecified filter will be picked up for ingestion>

Wildcards such as "*" and "?" are supported.

To use:

1. Single argument : --filter = "*.txt" (filters all the text filesfrom the path specified by --path).

2. Multiple arguments have to be separated by a commaenclosed within braces : --filter = "*.{txt,doc}" (filters all

178

Page 179: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a Table Application

Argument Descriptionthe files having extensions ".txt" and ".doc" from the pathspecified by --path).

3. Wildcards that signify multiple characters : --filter ="a*c*e.xml" (filters all the XML files that start with ’a’, endswith ’e’ and has ’c’ in between.There can be any number ofcharacters between ’a’ and ’c’ and between ’c’ and ’e’).

4. Wildcards that signify a single character : --filter ="a?c?e.xml" (filters all the XML files that start with ’a’,ends with ’e’ and has ’c’ in between. There can be just onecharacter between ’a’ and ’c’ and between ’c’ and ’e’).

If no value is specified for this flag by default, only XML fileswill be searched for.

--host <name of the host on which the InfoArchive server is running>

--info <log in INFO mode>

--password <password of the user>

--path <path to a file or a directory containing the files to be ingested>

--port <port on the host on which IA server is running>

--recursive If false, the upload command ignores sub-directories andonly retrieves files from --path location. If true, the uploadcommand also retrieves files from --path sub-directories in adepth-first manner.

--schema <name of the schema>

--table <name of the table>

--tenant <name of the tenant>

--token <web token>

--username <name of the user>

The values specified for --tenant, --application, --database, --schema and --table are their respectivenames. These names are used to discover them using the REST template.

An exception is thrown if one or more mandatory arguments are not found.

Usage Examples

upload --path /home/ia/ingest --tenant test-tenant --application test-application --databasetest-database --schema test-schema --table test-tableScans only the path /home/ia/ingest for *.xml files, logging in ERROR mode

upload --path /home/ia/ingest --tenant test-tenant --application test-application --databasetest-database --schema test-schema --table test-table --recursive

179

Page 180: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a Table Application

scans the path /home/ia/ingest, directories and all the sub-directories recursively, depth first, for*.xml files

upload --path /home/ia/ingest --tenant test-tenant --application test-application --databasetest-database --schema test-schema --table test-table --recursive --debuglogs in the DEBUG mode

Using the Upload Schema Command

The upload-schema command loads table metadata (SQL table definitions) from the specifiedsource file into the specified target InfoArchive database.

It takes 10 parameters: file, tenant, application, database, username, password, host, port,authenticationType and token. For descriptions of these parameters, see the following section, Usingthe Upload Command.

The parameter ’file’ points to the XML document containing definitions of the SQL database thatincludes the records being ingested.

Usage Examples

upload-schema --file <file-path> --tenant <tenant-name> --application <application-name>--database <database-name>.

In the above command, the parameters --tenant, --application and --database contain their respectivenames used by the REST template to discover the underlying entities. Similar to upload command,an exception is thrown if they are not found.

run-chain-of-custody

The run-chain-of-custody command sends a HTTP POST request to the InfoArchive server to executechain of custody tests. These tests are specified in ’file’ – one the command’s parameters. Thespecified tests are executed on a table discovered by the REST template using the provided valuescontained in the command’s parameters. There are 10 parameters that are described in the tabledepicted under the section of the command ’upload’ (except ’file’).

The following is an illustration of the input file whose path is specified in ’file’:<chainofcustody><testsuite>

<test class="com.emc.ia.coc.tests.TableDataTest" /></testsuite>

</chainofcustody>

The above input will run ’TableDataTest’ on the table whose name is specified in the ’table’ parameter.

The following table outlines the five types of tests in chain-of-custody tests:

180

Page 181: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a Table Application

Test Description

TableDataTest Checks whether the ingested XML document of a table containsthe right table name and, if it does, then whether its child XMLelement is ROW or not.

The following illustrates a valid ingested document into theAWARDSMANAGERS table, according to the TableDataTest:

<BASEBALL xmlns:row="urn:x-emc:ia:schema:table">

<AWARDSMANAGERS> <ROW row:id="380d7b6a-a938-426a

-a29f-a91f1b1b8a97"/> </AWARDSMANAGERS> </BASEBALL>

The following illustrates an invalid ingested document into theAWARDSMANAGERS table, according to the TableDataTest:

<BASEBALL xmlns:row="urn:x-emc:ia:schema:table">

<INVALIDTABLENAME> <ROW row:id="380d7b6a-a938

-426a-a29f-a91f1b1b8a97"/> </INVALIDTABLENAME>

</BASEBALL>

The above document would not pass the TableDataTest.

TableRowCountTest Tests that the number of tables listed in the system metadatamatches the number of tables that are ingested. It also tests if thenumber of rows in each table matches the number of rows listedin the table metadata.

ColumnDataTest Tests consistency between metadata and ingested table w.r.tcolumns. Its main tests include: column count and column typeof each row. It has one optional parameter (rows) that specifies alimit on the number of rows to test. This value must be an integer.If the number of rows is negative, it will be set to ’0’ (the defaultvalue), which tests all rows.

SpacesTest Tests for leading and trailing spaces in the ingested data for eachcolumn of rows. It has two required parameters: leading andtrailing; each with a value that specifies the number of leadingor trailing spaces to check. These values must be integers. If thenumber of spaces is not greater than ’0’, it will be set to ’1’. It hasone optional parameter (rows) that specifies a limit on the numberof rows to test. This value must be an integer. If the number ofrows is negative, it will be set to ’0’ (the default value), whichtests all rows.

181

Page 182: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Configuring a Table Application

182

Page 183: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Chapter 5Search Composition

Searching Table Data

Using a Common Custom Library in an XQuery forTable-based Searches

When creating a search for a table-based archive, an XQuery has to be created. There are also specificdirections about how XQuery modules can be used. An XQuery module can be seen as a functionlibrary, which can be used by an XQuery.

When creating an XQuery in InfoArchive, you are able to use an XQueryModule object that can beidentified by a namespace. The function library is then referenced from the XQuery by using thenamespace of the XQuery module:

import module namespace iau = 'urn:x-emc:ia:util:fn';

In the XQuery itself, functions of this module can be used by entering the prefix of the module import:

iau:getResultsPage($rows, $page, $size)

An XQuery module is like an XQuery, a piece of text. It starts with a namespace declaration:

module namespace iau = 'urn:x-emc:ia:util:fn';

This module can contain one or more function declarations. Modules can be created at the tenant andapplication levels, and can be used by any XQuery in the scope of the tenant or application.

Use the IAShell and ANT tasks to view, create, update or delete an XQuery module.

Automatic Search Installation for Applicationwith ANTInfoArchive has the capability to automatically install searches within applications.

Sample searches for an application:

• Provide quick possibility to search over a sample application;

• Provide the user with an introduction to the InfoArchive search mechanism with a sampleapplication;

183

Page 184: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Search Composition

• Illustrate the method that searches can be installed automatically within an application; and

• Allows users to share searches among different InfoArchive installations.

All the searches (ANT and ZIP) are located in the <application_name>/searches folder.

The "create-searches" ANT task performs the installation of ZIP searches, previously exported fromthe UI. By default, the "create-searches" task is switched on for all applications.

The "create-searches-ant" ANT task performs installation of searches that are based on a directorystructure.

There is possibility to manage the installation by the cmd property "skipSearches":

• If the property value is "true", then the searches installation is skipped.

• If it is omitted or the value is different from "true", then the searches are installed. For example:

cmd> Tools\applications\PhoneCalls>ant -DskipSearches=true

There is a property for an application – finalSearchState:

• If there is no finalSearchState property in the build.properties file, then search state isdefault and is set to DRAFT.

• If there is a finalSearchState property in the build.properties file of application, then allthe searches are updated after installation with the value of the property.

• The property can be one of two values: PUBLISHED or DRAFT.

There is a property for application – overwriteSearch:

• If there is no overwriteSearch property in the build.properties file, then searches are notupdated in case they existed prior to installation.

• If there is an overwriteSearch property overwriteSearch in build.properties file ofapplication, and its value is ’true’, then searches can be updated with new data during installation

• If there is an overwriteSearch property in the build.properties file of the application, andits value is "false", then searches are not updated with new data during installation

Application Searches Structure

The search structure is almost the same for SIP and table application types, except for the xQueryfolder. The method default searches are installed is also the same for both application types.

Searches Folder

A "searches" folder in the PhoneCalls application contains searches that are automatically installedwithin the application.

The name of the folder under "searches" corresponds to the search name in user interface. ForPhoneCalls, there is the "DefaultSearch" folder and the user interface contains a search with thesame name.

184

Page 185: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Search Composition

In general, every search is presented by several artifacts, which are described in the following sections.

Search Properties File

The first artifact is the search.properties file, which contains the set of properties that areautomatically installed within the search and assigned to it. The following properties are supported:

Property Name Description

searchDescription Contains a short explanation of the search.

aicName Contains the AIC name used by the search.

queryName Contains the query name used by the search.

searchState Values can be:

• Draft: Indicates that the search has not been published and,therefore, cannot be executed by the End User.

• Published: Indicates that the search can be executed by theEnd User.

Search Composition

The second artifact is Search-Composition folder.

By design, InfoArchive’s search functionality are based around using search forms, which allowssearches to be made available for a concrete user group.

Every search form has its own name. The name of the folder corresponds to the name of searchform in the user interface.

A properties file in the Search-Composition folder contains a single property that allows anAdministrator to assign a search form to a specific user group.

Search forms for a SIP application contains two folders, and another for the .

• Search form (XForm) folder: The name of the folder is strongly defined and must not be changed.The folder contains a search form that will be installed for the search. The file under that foldershould be a valid XFrom that contains only InfoArchive web application-supported constructions.

• Result master folder: The name of the folder is strongly defined and must not be changed. Thefolder contains result master that will be installed for the search.

Search Installation

There is special dependency in build.xml file for an application.

185

Page 186: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Search Composition

If a customer includes this task into dependencies, all sample searches from Searches folder areinstalled.

After installation, the user can:

• Edit a search (search form, result master, etc.)

• Duplicate a search form

• Export a search form to a ZIP archive

Creating a Search Form

Perform the following steps to create a search that can be installed automatically with an ANT task:

1. Manually create the search with in the InfoArchive web application.

2. Export the search form from the InfoArchive web application to a ZIP archive.

3. Create a search folder with the search name in the "<application_name>/searches" folder.

4. From the import.descriptor file, copy the "aicName" and "queryName" into the<application_name>/searches/<search_name>/search.properties file forcorresponding properties.

5. From the preliminary.search.resource file, copy the "description" and "state" intothe <application_name>/searches/<search_name>/search.properties file forcorresponding properties.

6. From the searchcomposition.resource" file, copy the name of the search form and create afolder with the same name in the <application_name>/searches/<search_name> folder.

7. Set the groups property to the file <application_name>/searches/<search_name>/<search_composition_name>/search-composition.properties file.

8. Convert formats for XFrom:

a. Take the XFrom file:

b. Take the part of the file that is related to XForm:

c. Replace “\n\r” to an empty string.

d. Replace \” to “

e. Correct the line formatting:

f. Put corrected XFrom in the <application_name>/searches/<search_name>/<search_composition_name>/xforms folder.

Note: You cannot make constructive changes in XFrom.

186

Page 187: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Search Composition

9. Convert formats for the result-master:

a. Take the result-master file.

b. Convert the result-master file from json to xml.

c. Remove "searchName" and "compositionName" from result XML.

d. Put converted XML under the <application_name>/searches/<search_name>/<search_composition_name>/result-master folder.

Note: you cannot make constructive changes in the result-master.

10. After the search structure is prepared, execute the ANT task.

Configuring the Number of Items Listed in theSearch ResultsThe defaultPageSize value in the application.yml indicates the number of result items thatappear in the Record Search page. The default value is 10.

In the following example, the user is changing the default value to 5.

1. Before updating the defaultPageSize, stop all services.

2. Access the application.yml file in the infoarchive > config > server folder.The following information is displayed:infoarchive...rest:......collections.........defaultPage: 0.........defaultPageSize: 10......search:.........defaultTimeOutMs: 8000

3. Change the defaultPageSize value to the desired value (in the following example, the desirednumber of result items is 5):infoarchive...rest:......collections.........defaultPage: 0.........defaultPageSize: 5......search:.........defaultTimeOutMs: 8000

4. Save the change.

5. Restart the services.

187

Page 188: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Search Composition

Configuring the Time Limit for a BackgroundSearchIf a search exceeds the time limit specified in the application.yml file, it automatically becomesa background search. The default time limit set is set to 8,000 milliseconds (8 seconds). You are,however, able to change the time limit.

In the following example, the user is changing the time limit from the default to 5,0000 milliseconds.

1. Before updating the time limit, stop all services.

2. Access the application.yml file in the infoarchive > config > server folder.The following information is displayed:infoarchive...rest:......collections.........defaultPage: 0.........defaultPageSize: 5......search:.........defaultTimeOutMs: 8000

3. Change the defaultTimeOutMs value to the desired time (in the following example, the desiredtime is 5000):infoarchive...rest:......collections.........defaultPage: 0.........defaultPageSize: 5......search:.........defaultTimeOutMs: 5000

4. Save the change.

5. Restart the services.

188

Page 189: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Chapter 6Compliance

Using Audits for ComplianceInfoArchive allows the following audit events:

• Registering an audit: An event can be turned on for auditing (i.e., the customer wants to controlaudit generation for unsuccessful login attempts).

• Creating an audit: The created audit tracks:

— The name of the user who performed the action.

— The name of the object involved in the action.

— The time the operation took place.

• Viewing audit information

• Searching an audit: This allows the customer to look for specific audit events (i.e., the customerwants to view any unsuccessful login attempts).

There is core information that is part of every audit. Additionally, there is event-specific informationadded to an audit.

Use the Admin CLI to add any additional metadata.

Metadata Fields

Field Type Mandatory Comments

id UUID Yes Automatically generated by thesystem

eventType String Yes Event type for the audit (i.e.,application, AIP, table, login,retention policy, etc.)

eventName String Yes Event Name (i.e., view, create,edit, Delete, ingest, export,dispose, etc.).

eventSource String No Additional context dataindicating where the auditevent took place (i.e., disposecould be from the job or auser-defined action).

189

Page 190: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Field Type Mandatory Comments

auditedObjectId UUID No Unique identifier that isassociated to the object beingaudited (i.e., URI of the retentionpolicy).

applicationName String No Name of the application that theaudit may be part of.

applicationId UUID No ID of the application that theaudit may be a part of

tenantId UUID Yes Tenant that this audit is a part of.

createdby String Yes User who created this event. Thesystem populates this field whenthe audit is created.

createdDate Date (GMT) Yes The date the audit was created.The system sets this field whenthe audit is created

SupplementalData SupplementalData No Describes any additional datafields that the customer wantsadded to the audit event. Specificto the audit event type andinclude information the callerdeems necessary.

The implementation of each auditevent is done by each processthat utilizes the audit system.

Audit Event Type

The audit event type is set to enable or disable audits for a particular audit action/process. If there isno audit configuration set for a particular audit, then auditing is not enabled for that particular event.

InfoArchive includes a fixed list of audits stored in a constants file and uses a REST to retrieve theaudits. Customers can create their own audits using the Admin CLI.

Application-Specific Audits

InfoArchive provides the ability to enable specific audits on an application basis. When creating anapplication name, the event type is optional. If the event type it is not set, then the audit is for allapplications that include that particular event type.

If the audit is specific to an application, and the application name is passed, the system checks for thataudit event combination. If there is no event type that exists, the system checks for an event typewithout the application name to use.

190

Page 191: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Metadata Fields

Field Type Mandatory Comments

id UUID Yes Automatically generated by thesystem.

type String Yes Object/Event type for the audit(i.e., login, logout, application,AIP, table, hold, retention policy,etc.).

name String Yes The event name (i.e., create, edit,delete, dispose, etc.).

applicationId UUID No ID of the application that thisaudit may be a part of

TenantId UUID Yes Tenant for this event type.

enabled String Yes Defines whether the audit isenabled.

Searching for Audits

Audits are archived into the system as SIPs/AIPs., which allows the customer to perform searches ofthe audit entries.

There is a default search form and result list.

Audit Entries

Audits can be configured through the InfoArchive interface to change the default configuration totrack a specific event. If too many audits are enabled, however, performance will be impacted.

Three levels of audits exist:

• System

• Tenant

• Application

The following table describes the audit type than can be enable in the product for specific actions(see audit name). The event source is the source that can generate the audit. [Not sure it us useful todisplay this table, maybe the ui panels are cleared about audit list].

Type Description

LOGIN Name: SUCCESSFUL/FAILED

Event Source: UserName

191

Page 192: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Type Description

LOGOUT Name: SUCCESSFUL

Event Source: UserName

RETENTION_POLICY Name: APPLY/REMOVE/RETRIEVE/CREATE/ UPDATE/ DELETE/REQUALIFY/ FULFILL

Event Source: Ingestion, Search, Job

Application : Application the object is in

Audited Object:• APPLY: ID of the object the policy was applied to.

• REMOVE: ID of the object the policy was removed from.

• ID of the Retention Policy

HOLD Name: APPLY/REMOVE/RETRIEVE/CREATE UPDATE/DELETE

Event Source: Ingestion, Search, Job

Application : Application the object is in

Audited Object:• APPLY: Object the hold was applied to

• REMOVE: Object the hold was removed from

• ID of the Hold

TENANT Name: RETRIEVE/CREATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the tenant

FEDERATION Name: RETRIEVE/CREATE

Audited Object: Object ID of the federation

XDBDATABASE Name: RETRIEVE CREATE

Audited Object: Object ID of the xDBDatabase

DATABASE Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the database

LDAP_CONFIGURATION Name: RETRIEVE/CREATE/UPDATE/DELETE

Audited Object: Object ID of the LDAP Configuration

192

Page 193: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Type Description

APPLICATION Name: RETRIEVE/CREATE/UPDATE/DELETE DISPOSE (if notfound in controller)

Application : Application the object is in, if applicable

Audited Object: Object ID of the Application

AIC Name: RETRIEVE/CREATE/UPDATE/DELETE/

Application : Application the object is in, if applicable

Audited Object: Object ID of the AIC

AIC also contains the audit name SEARCH and FETCH. FETCH isonly available through the REST API.

AIP Name: RETRIEVE/CREATE/UPDATE/DELETE/ DISPOSE/RECEIVE/INGEST/COMMIT/REJECT/ INVALID/ROLLBACK/CONFIRMATION/ CONFIRMATION_COMPLETED/CHANGE_RETENTION / CONTENT/ CONTENT_DOWNLOADCONTENT_DELETE/ CI

Event Source: RECEIVE: Receiver Node INGEST: IngestNode COMMIT:Commit Job / Ingest Node REJECT:ReceiverNode, End User INVALID: End User ROLLBACK: InvalidJob CONFIRMATION: Confirmation Job CONFIRMATION_COMPLETED: Confirmation Job DISPOSE: Disposition JobCHANGE_RETENTION: CONTENT: CI:

Application : Application the object is in, if applicable

Audited Object: Object ID of the AIP

HOLDING Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the holding

STORE Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the store

INGEST_NODE Name: RETRIEVE CREATE UPDATE DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the ingest node

193

Page 194: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Type Description

PDI Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the pdi

CONFIRMATION Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the confirmation

QUERY_QUOTAS Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the query quotas

PDI_SCHEMAS Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the pdi schemas

RECEIVER_NODES Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the receiver node

CONFIGURATION_HELPER

Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the configuration helper

RESULT_MASTER Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the result config pages

TYPE_ALIAS Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the type alias

APPLICATION_CATEGORY

Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the application category

194

Page 195: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Type Description

JOB_DEFINITION Name: RETRIEVE/CREATE/UPDATE/DELETE/ACTIVE INACTIVE

Event Source:

Application : Application the object is in, if applicable

Audited Object: Object ID of the job definition

JOB_INSTANCE Name: RETRIEVE/CREATE/UPDATE/DELETE/SKIP/UNSKIP

Event Source:

Application : Application the object is in, if applicable

Audited Object: Object ID of the job instance

TABLE Name: RETRIEVE/CREATE/UPDATE/DELETE/DISPOSE

Application : Application the object is in, if applicable

Audited Object: Object ID of the table

TABLE_ROW Name: DISPOSE/CHANGE_RETENTION

Application : Application the object is in, if applicable

SCHEMA Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the schema

SEARCH_GROUP Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the search group

SPACE Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the space

MANAGED_ITEM Name: RETRIEVE/CREATE/UPDATE/DELETE/ APPLY_POLICY/REMOVE_POLICY

Application : Application the object is in, if applicable

Audited Object: Object ID of the managed item

SEARCH Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the search

195

Page 196: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Type Description

XFORM Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the xform

RESULT Name: RETRIEVE/CREATE/UPDATE/DELETE

Application : Application the object is in, if applicable

Audited Object: Object ID of the result

QUERY Name: RETRIEVE/CREATE/UPDATE/DELETE/ SEARCH

Application : Application the object is in, if applicable

Audited Object: Object ID of the query

PURGE_LIST Name: GENERATE/APPROVE/ REJECT/REVOKE/DISPOSE/RESUME/ CANCEL

Application : Application the object is in, if applicable

Audited Object: Object ID of the purge list

AUDITS Name: PURGE/ARCHIVE/ENABLE/DISABLE

Event Source: ARCHIVE: Archive audit job/PURGE: Purge audit job

Application : Tenant

Scope: Tenant

User Context:• ARCHIVE: No

• PURGE: No

• ENABLE: Yes

• DISABLE: Yes

SIP-Based Applications and Retention ClassThe retention class defines a logical mapping of one or more retention policies. The retention classis defined in the holding the set of possible retention classes. The holding can also define a defaultretention class.

196

Page 197: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

Checking an AIP Object’s StateThe following table illustrates how to use IAShell to verify AIP information:

To Use the Following Command

Check that all the AIPs are inCompleted state

select aip --property state

Check that #9 of the AIPs isunder retention

1. Enter the select command:

select aip

2. Enter the view command for the AIP under retention:

view --id 9

Set a variable with the ID valuevar-set --name myAIP --value <copy/past an ID

value from the select output>

If you do not see properties,pre-configure the properties setfor the AIP type alias

set-alias-properties aip --properties “id, name,

dss.holdingName, sipSeqno, sipAiuCount, state,

underHold, underRetention"

Configuring a Custom Retention PolicyThe following example illustrates the process of configuring a custom retention policy named’My-policy’:

1. Create a folder named xml in the $IA_home > tools location and place the following to a filenamed my_retention.xml:

<?xml version="1.0"?><configuration><object typeAlias="retention-policy" checkExistSpEL="?[name=='My-policy']">

<create><name>My-policy</name><agingStrategy><type>FIXED_DATE</type><retainUntil>2017-01-01T10:00:00+01:00</retainUntil>

</agingStrategy><dispositionStrategy><type>DESTROY_ALL</type>

</dispositionStrategy></create>

</object></configuration>

2. Enter the configure command for the policy:

configure --from xml/my_retention.xml

3. Enter the select command to verify that the policy has been created:

197

Page 198: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

select --t retention-policy

Setting a Default Retention PolicyThe following example illustrates the process of setting the default retention policy for an applicationnamed PhoneCalls. The retention policy is a custom policy named ’My-policy’, which was configuredin the previous section:

1. Create a file named upd_holding.xml in the XML folder. Enter the following data in the file:

<?xml version="1.0"?><configuration><object typeAlias="holding" checkExistSpEL="?[name=='PhoneCalls']"><update><retentionClasses><name>default</name><policies>My-policy</policies><policies/>

</retentionClasses><retentionClasses/>

</update></object>

</configuration>

2. Enter the select command to select the holding configuration:

select --holding --property id --var-set myHolding

3. Enter the configure command to update the holding configuration:

configure --from xml/upd_holding.xml

4. Enter the view command to verify the result:

view --properties "retentionClasses" --t holding --id #{myHolding}

Alternately, you can also update the object (JSON-like format):

update --id #{myHolding} --properties "{'retentionClasses' : [{'name' :'default', 'policies' :['My-policy'], 'holds':null}]}"

Invalidating an AIPThe following example illustrates how to invalidate the AIP:

1. Enter the select command to select the AIP:

select aip

198

Page 199: EMC InfoArchive 4.1 Command Line Tool Guide · TableofContents RevisionHistory ...................................................................................................................

Compliance

2. Enter the invalidate command for the specific AIP being invalidated:

invalidate --id #{myAIP}

Removing a Retention Policy and Deleting anAIPIf you attempt to delete the AIP, and an error message is issued, it means that the AIP cannot bedeleted because it is under a retention policy. The following example illustrates how to removethe retention policy and then delete the AIP.

To remove a retention policy, specify the policy ID and the object ID. Set a variable for this purpose orrefer to the hold by ID value or index.

1. Enter the select command:

select --t retention-policy --where "?[name=='PhoneCalls-policy']" property id--var-set myRetId

2. Enter the remove-retention command:

remove-retention --id #{myRetId} --externalId #{myAip}

An error message is issued if the object is not under the retention policy.

199