Deployment file formats

You can create all configuration files using FileNet Deployment Manager. In some cases, however, you might want to create or modify the following deployment files manually, or by using a custom-created tool:

For example, to update a principal half map with new or changed security principal information, you might want to create a custom tool to perform specialized LDAP queries.

To understand the XML formats of the deployment files for file editing purposes, see the format descriptions in this topic. Additionally, you can refer to the formal schema definitions contained in the *.xsd files (such as DataMap_ObjectStore.xsd). The *.xsd files reside in the Samples folder, and define what constitutes valid XML syntax. The XML within a deployment file must be valid in order for the FileNet Deployment Manager to use the file as part of a deployment operation.

Editing a deployment file might include creating the file from scratch. Alternatively, you can start with one of the sample files provided in the Samples folder, or with a file created by FileNet Deployment Manager. For example, you might use the graphical user interface (GUI) of FileNet Deployment Manager to create the initial version of a DeploymentOperation file, and then make edits as needed. Note that DeploymentOperation files are created in the ../Temp folder. For half map files and data map files, you also have the option of using the command-line interface to create the initial file if you have a DeploymentOperation file configured for this purpose (since half map and data map creation is a deployment operation).

The ../ portion in the folder paths (such as in ../Temp) refers to the deployment tree root. When using the command-line interface, the root path is set by the <DeploymentOperation> element in the DeploymentOperation file. When using the GUI, you are prompted for the root path.

For information on the purpose of these files and other configuration files, see About deployment files. For information on the sample files and Samples folder, see the --samples argument in Deployment command-line reference.

Half map format – object store

<?xml version="1.0" encoding="UTF-8"?>
<HalfMap version="1" type="ObjectStore">
    <List>

        <Item label="{label}">
            <!-- Each <Item> represents an object store in this environment. <List> can contain 
            more than one <Item>.
            {label} is the user-defined label for the item. When you use FileNet Deployment Manager to merge two half maps together as part of a data map creation operation, this item is paired with the item in the other half map that has the same label value as this item. For items with zero-length labels, the pairing occurs based on <Name>. For example: <Item label="OS1"> --> <ID>{guid}</ID> <!-- {guid} is the identifier for the object store. For example: <ID>{0ED7DF5A-AEA8-47F3-951B-E96F62730045}</ID> --> <Name>{name}</Name> <!-- {name} is the name for the object store. For example: <Name>LaurelTree</Name> --> <SymbolicName>{name}</SymbolicName> <!-- {name} is the symbolic name for the object store. For example: <SymbolicName>LaurelTree</SymbolicName> --> </Item> <Item label="_default">
<!-- FileNet Workplace objects might use "_default" as the name of the object store.
Always include this item as part of an object store half map.
-->
<ID></ID> <Name>_default</Name> <SymbolicName>_default</SymbolicName>
</Item> </List> </HalfMap>

Half map format - principal

<?xml version="1.0" encoding="UTF-8"?>
<HalfMap version="1" type="Principal">
    <List>
        <Item label="{label}">
            <!-- Each <Item> represents a security principal in this environment. <List> can
            contain more than one <Item>.
	    
            {label} is the user-defined label for the item. When you use FileNet Deployment 
            Manager to merge two half maps together as part of a data map creation 
            operation, this item is paired with the item in the other half map 
            that has the same label value as this item. For items with zero-length 
            labels, the pairing occurs based on <Name>.
            For example:
            <Item  label="Administrator">
            -->
	
            <SID>{identifier}</SID>
                <!-- {identifier} is the security identifier for the principal. For example:
                <SID>S-1-5-21-665270499-1575821905-1417038006-500</SID>
                -->
            <ShortName>{name}</ShortName>
                <!-- {name} is the short name for the principal. For example:
                <ShortName>Administrator</ShortName>
                -->
            <DisplayName>{name}</DisplayName>
                <!-- {name} is the display name for the principal. For example:
                <DisplayName>Administrator</DisplayName>
                -->
            <PrincipalType>{type-code}</PrincipalType>
                <!-- {type-code} is the code for the type of principal: 0 for user, and 1 for group.
                For example:
                <PrincipalType>0</PrincipalType>
                -->
            <Name>{name}</Name>
                <!-- {name} is the full LDAP name for the principal. For example:
                <Name>Administrator@cempdev1.eng.filenet.com</Name>
                -->
        </Item>
    </List>
</HalfMap>

Data map format – object store

<?xml version="1.0" encoding="UTF-8"?>
<DataMap version="1" type="ObjectStore">
    <List>

        <MapItem>
            <!-- Each <MapItem> represents a pair of object stores, with one object store from the 
            source environment and one object store from the destination environment. <List> can contain 
            more than one <MapItem>.
            -->
    
            <Source label="{label}">
                <!-- {label} is the user-defined label for this source object store. The label
                has significance when you use FileNet Deployment Manager to generate the data map
                from half maps. For more information, see the Half map format - object store.
                For example:
                <Source label="OS1">
                -->
		    
                <ID>{guid}</ID>
                    <!-- {guid} is the identifier for the source object store. For example:
                    <ID>{0ED7DF5A-AEA8-47F3-951B-E96F62730045}</ID>
                    -->
                <Name>{name}</Name>
                    <!-- {name} is the name for the source object store. For example:
                    <Name>LaurelTree</Name>
                    -->
                <SymbolicName>{name}</SymbolicName>
                    <!-- {name} is the symbolic name for the source object store. For example:
                    <SymbolicName>LaurelTree</SymbolicName>
                    -->		
            </Source>
		
            <Destination label="{name}">
                <!-- <Destination> represents the destination object store. It has the same structure
                as <Source>
                -->
		    
                <ID>{guid}</ID> 
                <Name>{name}</Name> 
                <SymbolicName>{name}</SymbolicName> 
            </Destination>
	    
        </MapItem>

        <MapItem>
<!-- FileNet Workplace objects might use "_default" as the name of the object store.
Always include this item as part of an object store data map.
-->
<Source label="_default">
<ID></ID>
<Name>_default</Name>
<SymbolicName>_default</SymbolicName>
</Source>
<Destination label="_default">
<ID></ID> <Name>_default</Name> <SymbolicName>_default</SymbolicName> </Destination>
</MapItem> </List> </DataMap>

Data map format - principal

<?xml version="1.0" encoding="UTF-8"?>
<DataMap version="1" type="Principal">
    <List>
        <MapItem>
            <!-- Each <MapItem> represents a pair of security principals, with one principal from the
            source environment and one principal from the destination environment. <List> can contain
            more than one <MapItem>.
            -->
            <Source label="{label}">
                <!-- {label} is the user-defined label for this source security principal. The label
                has significance when you use FileNet Deployment Manager to generate the data map
                from half maps. For more information, see the Half map format - principal.
                For example:
                <Source label="Administrator">
                -->
		
                <SID>{identifier}</SID>
                    <!-- {identifier} is the security identifier for the source principal. For example:
                    <SID>S-1-5-21-665270499-1575821905-1417038006-500</SID>
                    -->
                <ShortName>{name}</ShortName>
                    <!-- {name} is the short name for the source principal. For example:
                    <ShortName>Administrator</ShortName>
                    -->
                <DisplayName>{name}</DisplayName>
                    <!-- {name} is the display name for the source principal. For example:
                    <DisplayName>Administrator</DisplayName>
                    -->
                <PrincipalType>{type-code}</PrincipalType>
                    <!-- {type-code} is the  code for the type of source principal: 0 for user, 
                    and 1 for group. For example:
                    <PrincipalType>0</PrincipalType> 
                    -->
                <Name>{name}</Name>
                    <!-- {name} is the full LDAP name for the source principal. For example:
                    <Name>Administrator@cempdev1.eng.filenet.com</Name>
                    -->
            </Source>
	    
            <Destination label="">
                <!-- <Destination> represents the destination security principal. It has the same structure
                as <Source>.
                -->
                <SID>{identifier}</SID> 
                <ShortName>{name}</ShortName>
                <DisplayName>{name}</DisplayName>
                <PrincipalType>{type}</PrincipalType> 
                <Name>{name}</Name> 
            </Destination>
		
        </MapItem>
    </List>
</DataMap>

DeploymentOperation format - half map creation

In the following schema, three types of retrieve operations are shown:

In an actual DeploymentOperation file, only one of these operations are valid.

<DeploymentOperation operation="Retrieve" version="1" deploymentTreeLocation="{path}">
    <!-- {path} is the path to the deployment tree. For example:
    <DeploymentOperation operation="Retrieve" version="1"
    deploymentTreeLocation="c:\P8Deployment\P8DeploymentData">
    -->
    
    <Retrieve mode="{mode}">
        <!-- {mode} is the retrieval mode. Valid values are as follows: 

            * merge: Merges the retrieved information into the existing half map 
            file. Existing half map items are updated as needed.

            * overwrite: Regenerates the contents of the half map file based on 
            the retrieved information.

        For example:
        <Retrieve mode="merge">
        -->
	
        <RetrieveObjectStoreInfo>
            <Environment name="{dir-name}"  />
                <!--  {dir-name} is the ../Environments subfolder that contains the half map to update
                (HalfMap_ObjectStore.xml).  For example:
                <Environment name="LaurelTree">
                -->
            <RetrieveFromP8/>
        </RetrieveObjectStoreInfo>
	
        <RetrievePrincipalInfoFromExportManifest>
            <Environment name="{dir-name}"/>
                <!--  {dir-name} is the ../Environments subfolder that contains the half map to update
                (HalfMap_Principal.xml). The half map is updated with the principal information
                found in the files exported from Content Engine (versus from LDAP). For example:
                <Environment name="LaurelTree">
                -->
		
            <CEExportXML>
                <ExportDescriptorFileName>{path}</ExportDescriptorFileName>
                    <!-- {path} is the file path to the manifest file for the files exported from
                    Content Engine. For example:
                    <ExportDescriptorFileName>C:\Set1_CEExport_Manifest.xml</ExportDescriptorFileName>
                    -->
                <ExternalContentSourceDirectory>{dir-name}</ExternalContentSourceDirectory>
                    <!--{dir-name} is the directory containing the external content for the data exported
                    from Content Engine. ({dir-name} has no significance if content is not stored
                    externally.)  For example:
                    <ExternalContentSourceDirectory>C:\Export\content</ExternalContentSourceDirectory>
		    -->
                <ContentIsExternal value="{flag}"/>
                    <!-- {flag} is an indicator of whether external content exists or not. Valid values 
                    are true and false. For example:
                    <ContentIsExternal value="true">
                    -->
            </CEExportXML>
		
        </RetrievePrincipalInfoFromExportManifest>
	    
        <RetrievePrincipalInfoFromLDAP>
            <Environment name="{dir-name}"  />
                <!--  {dir-name} is the ../Environments subfolder that contains the half map to update
                (HalfMap_Principal.xml).  For example:
                <Environment name="LaurelTree">
                -->
           <LDAPDataSource filter="{filter-name}" value="{filter-value}">
               <!-- {filter-name} is the type of filter to apply when retrieving security principal 
	       information. Valid values are as follows:
	       
                   * None
                   No filtering is in effect; updates the half map with all principals found in LDAP.
                   ({filter-value} has no significance in this case.)
		   
                   * HalfMap
                   Updates the half map from LDAP for the principals listed in another principal half
                   map file.  Set {filter-value} to the ../Environments subfolder that contains this 
                   other principal half map that is to be used as a filter.
		   
                   * LabelFile
                   Updates the half map from LDAP with the principals listed in the label file specified 
                   by {filter-value}. Set {filter-value} to be the full path for this file. Note: The
                   label file is a text file containing the short name and a label for each principal.
                   Each principal is on a separate line, with the short name first, the label second,
                   and a comma between the two.
        
               For  example:
               <LDAPDataSource filter="HalfMap"  value="LaurelTree">
               -->

               <Realms>
                   <Realm name="{realm-name}"  />
                       <!-- {realm-name} is the LDAP realm that contains the security principals
                       to be retrieved. For example:
                       <Realm name="dc=cempdev1,dc=eng,dc=filenet,dc=com"/>
                       -->
               </Realms>
           </LDAPDataSource>
	   
       </RetrievePrincipalInfoFromLDAP>
       
   </Retrieve>
   
</DeploymentOperation>

DeploymentOperation format - data map creation

<DeploymentOperation operation="MapIt" version="1" deploymentTreeLocation="{path}">
    <!-- {path} is the path to the deployment tree. For example:
    <DeploymentOperation operation="Retrieve" version="1"
    deploymentTreeLocation="c:\P8Deployment\P8DeploymentData">
    -->

    <MapIt>
        <Pair name="{dir-name}"/>
            <!-- {dir-name} is the ../Pairs subfolder that contains the PairConfig.xml file and the 
            data map files (such as DataMap_ObjectStore.xml). For example:
            <Pair name="GnarledTree">
            -->
        <MapType>{data-map-type}</MapType>
            <!-- {data-map-type} is the type of data map file to create. Valid values are as follows:
                * ObjectStore
                * Principal
            For example:
            <MapType>ObjectStore</MapType>
            -->
    </MapIt>
    
</DeploymentOperation>

DeploymentOperation format - asset conversion

<DeploymentOperation operation="Convert" version="1" deploymentTreeLocation="{path}">
    <!-- {path} is the path to the deployment tree. For example:
    <DeploymentOperation operation="Retrieve" version="1"
    deploymentTreeLocation="c:\P8Deployment\P8DeploymentData">
    -->

    <Pair name="{dir-name}"/>
        <!-- {dir-name} is the ../Pairs subfolder that contains the PairConfig.xml file and the 
        data map files (such as DataMap_ObjectStore.xml). For example:
        <Pair name="GnarledTree">
        -->
	
    <ConvertCEExportXML>
    
        <CEExportXML>
            <ExportDescriptorFileName>{path}</ExportDescriptorFileName>
                <!-- {path} is the file path to the manifest file for the files exported from
                Content Engine. For example:
                <ExportDescriptorFileName>C:\Set1_CEExport_Manifest.xml</ExportDescriptorFileName>
                -->
            <ExternalContentSourceDirectory>{dir-name}</ExternalContentSourceDirectory> 
                <!--{dir-name} is the folder containing the external content for the data exported
                from Content Engine. ({dir-name} has no significance if content is stored within
                the exported XML files.) For example:
                <ExternalContentSourceDirectory>C:\Export\content</ExternalContentSourceDirectory>
                -->
            <ContentIsExternal value="{flag}"/>
                <!-- {flag} is an indicator of whether external content exists or not. Valid values 
                are true and false. For example:
                <ContentIsExternal value="true">
                -->
        </CEExportXML>
	     
        <CEConvertDestination>
            <DestinationDirectory>{path}</DestinationDirectory>
                <!-- {path} is the file path for the folder designated to contain processed files. The
                FileNet Deployment Manager processes the files that have been exported from a Content
                Engine, prepares them for import, and places them in this folder. For example:
                <DestinationDirectory>C:\Export\Converted</DestinationDirectory>
                -->
            <ExternalContentDestinationDirectory>{dir-name}</ExternalContentDestinationDirectory>
                <!-- {dir-name} is the <DestinationDirectory> subfolder designated to contain external
                content. ({dir-name} has no significance if content is stored within the exported XML 
                files.) For example:
                <ExternalContentDestinationDirectory>Content</ExternalContentDestinationDirectory>
                -->
        </CEConvertDestination>
	
    </ConvertCEExportXML>
    
</DeploymentOperation>