Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
Important: Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.
On June 28, 2023, AWS is dropping all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.
Windows Server 2016 and above are the natively supported versions with 1.2.
Hardware Requirements
A Windows PC or Server
Windows Server 2016+ is recommended for the note below.
Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.
As of June 28, 2023, AWS dropped all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.
Windows Server 2016 and above are the natively supported versions with 1.2.
At least 1GB of free space for program installation and execution
Internet access to upload the CSV to CAM; 50mbps or higher upload speed is recommended
Software Requirements
.NET Framework 4.8 or higher*
*= 4.8 is required for the new version of Data Uploader since Sprint 23.
Date Format
Format all date values as
yyyy-MM-dd HH:mm:ss
To format the dates, go to Administration-> Settings->General tab-> Default Data Format.
SQL Requirements
Firms are strongly recommended to use an on-premises SQL database (instead of SQLLite) when the firm is a medium to large-sized company or it has more than 5,000 active matters. This allows Delta syncs to perform more efficiently as only necessary workspaces and metadata will be updated.
If the firm is using an on-premises SQL database, these are the requirements:
SQL Server 2012 Standard Edition or above.
Windows Server 2016+ is recommended for the note below.
CAM Data Uploader does support SQL 2019 and 2022.
Important Note for Windows Server 2012
Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.
As of June 28, 2023, AWS dropped all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.
Windows Server 2016 and above are the natively supported versions with 1.2.
A dedicated or Shared SQL server
8+GB of free RAM
4+CPU (cores/threads)
10+GB free hard disk space*
SQL Maintenance plans setup as typically configured.
*Solid state drive(s) are preferred for the SQL file storage
Collation is recommended to be SQL_Latin1_General_CP1_CI_AS for the US. If you get a collation error when running SQL scripts. add a collation conversion in the script.
A full recovery database option is recommended for production level environments, for the database restoration and login aspects. A dev or test or staging environment might be able to have a simple recovery set, but it is the firm’s decision!
Firewall and Port Requirements
Whitelist the following ports.
Port 443 should be open. CAM and Data Uploader utilize the HTTPS ports for requests. The API manages the requests, and no data is locally accessed or stored. If you’ve changed the default port for HTTPS, use the changed port. Check with your IT team if your firm has changed the port, and if so they need to open that default port on the corresponding HTTPS.
Port 1433 should be open for SQL communication between the on-premises SQL and the API. Check with your IT team if your firm has changed the port, and if so they need to open that default port on the corresponding SQL server.
User Account Requirements
Litera recommends a service account be used to run Data Uploader. For more details on setting up a user account, see Create CAM User Accounts
This service account should have:
Permission to download, install, and run the Data Uploader on the Desktop or server.
Read/Write access to the designated Data Uploader application directory.
Read access to the source database on the SQL server (to query the database and upload to CAM)
Permission to the local system to edit/enable the Windows Task Scheduler.
Read access to Active Directory.
Must be a system admin
If the user is using the CheckOut feature, the user will need at a minimum read/write access to the check-out path. If it is a path on the local PC, then that local PC will also need to be on the network.
Handling Bulk Jobs and Load Balancing within Data Uploader
Important: Currently, the daily Throttle limit is set to a maximum of 50,000 jobs daily for optimum and error-free performance. The Data Uploader (DU) can hold bulk jobs in the queue for up to 7 days from the job creation date. After 7 days, if they are not processed, the jobs are removed automatically from the queue.
Please Consider: If you have a large number of jobs that you need to run, you could start all jobs at the same time and let the Data uploader work through the backlog. However, this results in poor performance and even failure if the number of jobs is too high. The first few jobs are put into the Running state and the remaining jobs are put into the Queued state. This could make a lot of jobs fail even when they aren’t running and that can negatively impact the other jobs that are running. Please work with your partner or professional services consultant to discuss best practices of managing and queueing jobs.
Important: Currently, CAM supports and uses TLS 1.2 by default, but allows TLS 1.0/1.1 if the Data Uploader is run on a Windows 2012 Server.
As of June 28, 2023, AWS dropped all support for TLS 1.0/1.1 and this could affect users using Windows Server 2012 or older with the use of Data Uploader.
Windows Server 2016 and above are the natively supported versions with TLS 1.2. CAM supports these versions.
Best Practices
Set the number of jobs under the 50k limit for better performance, to ensure the jobs run. E.g. if undeclaring more than 50k records, batch into 40k amounts per day.
Use Data Uploader if the bulk actions from Service Desk or Analytics can’t handle the number of records that need to be modified.
Data Uploader Limits
Important: Currently, you can set the daily Throttle limit to a maximum of 50,000 jobs for optimum and error-free performance. Daily, you can upload the maximum jobs that are permitted as per the Throttle limit. After the daily limit is reached, you can find the Throttle limit warning message in the log.
Important: CAM has a limitation of 492 characters in the group name when adding to the group path.
To Download Data Uploader
Navigate to Administration.
Click on Downloads.
Download the Data Uploader EXE installer.
Navigate to the download location and double-click the program to start the installer.
Important: An admin user should run DU for the first time. Subsequent runs can be done with the logged-in user account.
Installing Data Uploader
Ensure the requirements are met. The requirements can be found here.
In the Welcome to Data Uploader Setup Wizard dialog, click Next.
If you would like to install the Data Uploader somewhere other than the default location displayed in the installer, click Browse and navigate to your desired installation folder; otherwise, leave the path unchanged.
To install it for your access only, click Just me or select Everyone to allow access to anyone using your system.
Click Next to continue.
Tip: It is recommended to install the Data Uploader on the SQL server where the firm Time & Billing system/NBI application is being run.
Click Close on the Installation Complete pop-up box once it notes DataUploader has been successfully installed.
The Cloud Data Uploader is installed as a shortcut on your desktop. Double-click it to launch the application.
Note: The Cloud Data Uploader application must be run as Administrator to ensure optimal performance. Cntrl+Shift and right click to run as administrator.
Tip: CAM Data Uploader will warn the users if they have an outdated version of Data Uploader, and prompt a download link for the latest version. For subsequent upgrades, the Data Installer must be uninstalled and installed again.
You must create a backup of the existing DU database before the upgrade. If you are not utilizing a dedicated SQL database for DU, then skip this step.
Make a backup copy of the current Data Uploader installation directory:
Prosperoware Data Uploader folder found at: C:\Program Files (x86)\Prosperoware\Prosperoware Data Uploader.
Information: The installation path is selected programmatically while installing the Data Uploader.
Note:
Verify the logs so that no DU upload jobs are running. If there are jobs running, wait until they are done processing. This is a required step, which may result in data loss if jobs are running during the upgrade.
End and disable DU Windows scheduled tasks (if applicable) to prevent them from running while the upgrade is happening.
Log into your CAM website.
If you are already logged in, sign out and sign in back in to ensure the latest update is available.
Navigate to Administration
Click on Downloads and download the latest version of Data Uploader onto the server where DU is installed.
Note: Browsers typically block MSI and exe installers downloaded from the internet, which may interfere with the version upgrade. Unblock the DU msi installer by Right-click on the file properties.
Run the installation wizard.
Click Next. Keep the install folder path the same.
Click Next.
Note: The installation directory has changed slightly to “C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\”
This version of the Data Uploader now requires that you enter a Windows Services domain, username, and password of the service account.
Click Install to begin the installation.
Once the installation is complete, click Close to close the wizard. Continue with Updating the Configurations section below.
Updating the Configurations
The new Data Uploader application has replaced many of the previous configuration files with new config files after an upgrade happens. Since the following instructions for copying old configurations to the new files reference line numbers, we recommend using a program like Notepad++ or other tools that have line numbering available.
All configuration files are now in a directory under the install path called config located here:
If you have made any configuration changes to the following files, please follow the instructions below to copy your configurations to the new files. If you have not modified any of these files, you can skip this section
Data.config
UserPropertiesMapping.config
SourceFilesConfig
ADMapping File
AppSetting.config
CheckoutPathMap.config
Note that legal hold and retention controls are entered manually and are not supported to be entered via Data Uploader currently (2025).
Source Files Config
Source files set where the source files for Data Uploader and any mappings exist. The out-of-the-box configurations set uniqueids which are important unique identifiers in CAM and other systems used. This is a new configuration file that allows you to set a separate unique identifier for each of your provisioning scripts. Some content systems might support a matter index ID for a unique identifier, while others might only be able to support client and matter ID. This file configures the unique ID per script.
Update the uniqueid line to the columns and source that makes a user unique to the firm. Most commonly it is the type of user, the userid, and the database of the source.
For example, uniqueid client id, matterid is pulled from CreateorUpdateWorkspace.sql
You need to have at least one set of unique fields for DataUploader to import data into CAM, this allows a ImportReference to be put together so the system knows what changed, especially when dealing with AD users and groups, as AD doesn’t track those changes easily.
Last Modified Date in the Config
If the last modified date is in the config, then the last modified date is used to check the data brought in. However, the Job Delta ensures the records from the sync before remain in the Staging tables. Only any new, or changed records get imported from there into CAM. Similarly, the SQL files tab will use the last modified date in those SQL files.
Modifying Application Settings
The application configuration can be further edited from the AppSettings.config file in the Data Uploader directory.
To restore a prior configuration:
First, backup the appsettings.config.
Then, upgrade Data Uploader as you normally would.
Finally, restore the config, or copy the configuration to another system.
CheckOutPathMap.Config
Configure this script to scan for remote check-in files from Data Uploader.
The script looks like this. Use the attributes description to understand variables.
Ensure the service account has full access to the checked-out directory
### checkoutPathMap.config Overview
The `checkoutPathMap.config` file is utilized by CAM to determine document checkout locations during remote check-ins. By default, this configuration file does not exist and must be manually created in the directory `C:\Program Files\Prosperoware.CAM\data`. The match patterns within this file can include multiple criteria, such as:
- User name, PC name, and drive
- User name and drive
- PC name and drive
- Drive
#### Attributes Description
| Attribute | Description |
|---------------------|---------------------------------------------|
| `match-user-name` | The name of a WorkSite user. |
| `match-machine-name`| The name of a user's computer. |
| `match-drive-name` | |
| `replace-pattern` | |
| `replace-start-with` | |
#### Variables Description
| Variable | Description |
|-------------------------|----------------------------|
| `@user@` | |
| `@machine@` | Citrix session |
| `@checkoutdrive@` | |
| `@userhomedirectory@` | |
| `@userhomedrive@` | |
#### Configuration Example
```xml
<configuration>
<path match-drive-name="c:" replace-pattern="\\@machine@\@checkoutdrive@$\vvvvv" replace-start-with="@checkoutdrive@" />
</configuration>
CAM processes the checkoutPathMap.config file according to the following sequence:
Check for a Matching Pattern
Starting from the top of the checkoutPathMap.config file, CAM searches for a matching pattern. Once a match is found, CAM will not continue to read the remaining entries in the configuration file. The order of pattern matching is as follows:
Check for pattern: username (match-user-name) + drive (match-drive-name)
Check for pattern: username (match-user-name) + machinename (match-machine-name)
The final check is for a drive only.
Read and Parse the Replacement Pattern
CAM compares the replace-start-with value and replaces it with the parsed replace-pattern. For example, if a file is checked out to C:\NrPortbl\file.doc on the machine desktop1, the following pattern designates the path as \\desktop1\c$\yyyy rportbl\file.doc:
If no matching pattern is found in the checkoutPathMap.config file, CAM defaults to using the checkout path location recorded in the WorkSite database.
Implementation Notes
matchdrivename will be according to the checked-out path. If you have a checkout path on the c drive then pass the matchdrivename like c:\. If you are using a network path for the checked-out document then enter the path like \\machine_ip\ i.e 94.130.20.199
To remotely check in a document for any checked-out document, implement this in the following way:
Grant full access to the service account to the checkout dir.
Add the following line to CheckoutPathMap.config on the Data Uploader server
Filtering on the data brought in from Active Directory can be done on the configuration file in Data Uploader. This is so specific users or groups can be included or excluded from the sync. Multiple values are supported, but users cannot add multiple in one configuration.
Please note:
Wild cards are not supported, only standard operations like =,<,>,<=,>=, <> and !=.
If the AD system has users from iManage, the users can be virtual, external or an AD user. These AD properties are supported, as well as domain and operating system.
Active Directory details are configured in the Data.config. Path to Data Uploader folder (C:\Program Files (x86)\Prosperoware\Prosperoware Data Uploader\Data.config).
The organization units in Active Directory contain multiple groups with multiple users. Now you can filter the user from a specific group in a single organization unit. The supported property is the "memberof." The "memberof" property takes the group name as a value and operators (%% - contains and !% - not contains) that are used to help in the filter. These parameters return the list of the users who are present or not present in the specific group.
The following are examples of supported operators:
ad-property name - represents the search value or string.
Value – represents character(s). It must be present in the search value or string.
Operator – represents the searchable value. It must come either at the start of the string (s%) or at the end of the string (e%)
MultivaluedDatabasevalueMapping
It is a new database property value "MultivaluatedDatabase" which allows you to add multiple databases to the value field in AD-mapping that allows you to generate multi-input CSV or multi- delta CSV, respectively.
Note: Multivalued database property is applicable only for the iManage system.
SkipUpdateIfExists
While importing new AD users to iManage for the first time, the property name "SkipUpdateIfExists" with a value ="True" for iscamuser and iscamgroup has been added in the AD-Mapping that allows you to skip the update programmatically if it exists already.
Sample SkipUpdateIfExists property value - iManage
Note: PreferredDatabase property is applicable only for the iManage external system.
Password flag Mapping
The property name “passwordExpired“ allows you to set the password expiration against user creation in iMange. Allows you to set password update on the first login after user creation in iManage using the property name “ForceUserToChangePassword“.
Note: passwordExpired and ForceUserToChangePassword properties are applicable only for iManage.
App Settings allow for configuring the settings to the Data Uploader application as a whole. Any performance, or implementation settings reside in here.
Open up the AppSettings.config in C:\Program Files (x86)\Prosperoware\Prosperoware Data Uploader\configs file path.
Available Settings
Show Fileshare: If your firm uses fileshares and imports from one in Data Uploader, set this to true during the implementation. The default is false.
SQLFolderPath: This sets the folder where the SQL files to run that display in the SQL Files tab reside. If you’ve changed the folder location from default, change this before you implement and sync.
CsvFolderPath: This sets the folder where CSV’s that were generated by the data uploader reside during the sync. If you’ve changed the folder location from default, change this before implementing and syncing.
CSVArchiveFolderPath: Archived CSVs from jobs reside in this folder path. If you’ve changed the folder location from default, change this before implementing and syncing.
CSVDelimiter: Tells what delimiter to use in CSV creation. \t is for tab separated and \c is for comma separated. Change this to the delimiter that your firm uses.
DateFormat: Sets the format of dates handled through data uploader imports. The default is: yyyy-MM-dd HH:mm:ss.
SyncGroups: Set as true to sync groups. This will be set to true if you select sync groups from the UI. The default is false.
SuppressScriptErrors: Set as true to eliminate extra debugging errors. Set as false if you are running into errors or not getting an error to an issue/ customer care recommends. Recommended to keep true until necessary. The default is true.
CommandTimeout: Sets the timeout of DataUploader’s processing of syncs. The default is 600. Keep for the initial sync, unless your partner or professional services team or DevOps recommends a higher value, or if you see issues with timeouts with large batches.
ArchiveFilesLifeCycle: Sets the retention period in days for archived files. The default is 30 days. E.g. if 30 days is set it will keep archived files for 30 days past when it was generated. If your firm requires a longer retention, change this value in implementation.
RecordCountLimit: The limit of records to return per CSV when it is batching to upload to CAM. The default is 100. This setting can be changed in the Administration panel of CAM to override as well. This helps to batch the records.
ThreadCount: Number of processor threads to use for DataUploader on the machine running DU. Keep in mind that this depends on the machine running DataUploader, as well as the DMS you may be syncing from like iManage. Do change this during implementation.
ExportFolderLength: Character length max for the folder name. The default is 200 characters. If your folder name length is longer than this, you may see folder length errors, so increase this value.
ExportDocumentLength: Character length max for the document name. The default is 200 characters. If your document name length is longer than this, you may see document length errors, so increase this value.
DomainMachineName: This is the machine name or IP address of the AD server you are connecting to.
SkipDupeDetection: If 0, this would enable duplicate detection in the sync and flag in the validation report and job any duplicates.
DupeDetectionType: If 1, the log resides in the dupe folder path.
DupeFolderPath: Path folder for duplicates to be logged in. “Duplicate” is the default.
ReplicationSyncWaitTime: Time to wait between the replication of a sync to the next sync. The default is 30 seconds. If you set this too close, syncs may collide.
MaximumExportConcurrency: Sets the number of items to concurrently process in export. The default is 20 items. If errors exist with timeouts or Unavailable, the number could be too high for the source server.
EmailProfileColumns: The columns of metadata to include in the email profile. Default is: MessageId#Name,DateTimeReceived,DateTimeSent. Change this configuration during implementation if necessary to change the email profile columns.
UserPictureProperty: The property to bring over the user’s pictures in the sync to CAM. The default is thumbnailphoto. If you don’t want pictures, remove this property in implementation.
SyncNestedGroups: This parameter allows the syncing of nested groups and their children users and groups. The default is No (turned off). Turn this on if your firm in AD has one or more nested groups that you want to sync the nested groups and users.
App Settings Implementation Checklist
Must Review or Add
The following of the above settings need to be reviewed or added during implementation:
Show Fileshare
CSV Delimeter
DateFormat
SyncGroups
CommandTimeout
ArchiveFilesLifecycle
ThreadCount
ExportFolderLength
ExportDocumentLength
DomainMachineName
SkipDupeDetection
EmailProfileColumns
SyncNestedGroups
Optional or Default System Settings
The following settings are either defaults that may not need to be changed or optional settings:
SQLFolderPath
CsvFolderPath
CSVArchiveFolderpath
SuppressScriptErrors
RecordCountLimit
ReplicationSyncWaitTime
MaximumExportConcurrency
userPictureProperty
SQL Scripts
Copy the scripts from the C:\Program Files (x86)\Prosperoware\Data Uploader\sql file to the new. C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\sql
Please Note: Out of the box the CreateOrUpdateWorkspace.SQL script is included in the sql folder. You can delete this script if you already have scripts created. If you have not created any scripts, you can edit this script for use in provisioning.
Move any additional custom scripts to this SQL folder.
Note: Users and groups can be created using two ways, one by uploading the API or CSV file and two by using the AD.
Testing new workspace provisioning scripts
To ensure the successful deployment of a new workspace provisioning script, testing is crucial. Follow these recommended steps for effective testing:
· Validate the script in SQL and review the output to identify any issues with missing metadata, templates, or with script logic.
· Update and revalidate the script to address any problems.
· Use Data Uploader to generate a CSV and examine the data for accuracy.
Remove all but a few records from the CSV and submit a test job with this smaller dataset to ensure accuracy before full deployment.
Active Directory Synchronization Overview
Setting up AD Sync is critical for synchronizing users and groups to CAM from Active Directory. The process is driven by a connection to each AD Organizational Unit (OU) where the users and groups to be synced are located, and configuring the ADMapping.config file. All the OUs are filtered through this one file by the configuration of criteria filters and other attributes and properties that can be set. Ultimately, the result is a CSV of the applicable people which can be scheduled in Data Uploader to automatically be sent to CAM for processing.
Here are the recommended steps for the setup and configuration of AD Sync:
Review and cleanup Active Directory Organizational Unit data.
Connect to Active Directory Organization Units via Data Uploader.
Configure ADMapping.config.
Update SourceFiles.config with Organization Units.
Test the AD Sync configuration.
Schedule the AD Sync.
1. Review and Cleanup Active Directory Organization Unit Data
AD data review and cleanup should focus on purging non-user entities such as printers, multi-function devices (MFDs), and other legacy connected devices from each OU to ensure only user data is synchronized, preventing unnecessary entries in the DMS that could complicate the data environment.
2. Connect to Active Directory Organization Units via Data Uploader
In Data Uploader’s Active Directory tab, use the Add button to add each Organization Unit that contains the users and group you wish to sync. There is no limit to the OUs that can be added for synchronization.
The ADMapping.config file, located in C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\service\config, is pivotal for configuring AD Sync. This configuration tool defines the user and group data that will be organized in the CSV sent to CAM for processing, serving as the blueprint for synchronization.
All connected Organizational Units are configured within this single ADMapping.config file. The file contains three Objects (UsersAndGroups, UsersOnly, and GroupsOnly) with criteria that act as filters. For each OU, multiple instances of these Objects can be created, and their criteria configured to determine the specific users and groups to be included in the AD Sync process. Properties and values for these users and groups can also be directly specified in the file, affecting the information that will be included in the CSV. Once the ADMapping.config file has been configured, a CSV reflecting the user and group data configuration can be produced and provided to CAM for processing.
Anatomy of the ADmapping.config File
Objects Section
Three objects are available: UsersAndGroups, UsersOnly, and GroupsOnly.
Each Object contains a <criteria> and <values> section.
A. The <criteria> section is used to configure the filter for the users and groups that will be included in the AD Sync process. The ad-property and value are used to set the criteria and value for the filter, and the operator facilitates logic operations for the filtering process.
B. The <values> section provides the ability to set properties and values for the users being filtered by the criteria section. See the CSV parameters for User and Group Provisioning section for more information on setting properties and values.
To configure multiple OUs for synchronization, copy Objects as many times as needed, then add the OU for the Object via the DC attribute.
<default>, <fields>, and <groupfields> Sections
The <default> section is used to assign a default value to all the records being filtered above. If for example, you are setting the same database for all the records, instead of setting this value in the values section for each Object, set the Database property in the Default section.
The Fields and Groupfields sections are used to map specific Active Directory attributes to a CSV property. The AD attribute’s value will be added to the CSV in a column with the property name you specify. For example, change the “mail” attribute in AD to “userid” for iManage.
CSV Parameters for User and Group Provisioning
Parameters are available for tasks such as creating, editing, deleting, and disabling users and groups, as well as removing users from MyMatters in iManage. For the complete User and Group Provisioning parameter list, visit our documentation.
These parameters are coded as properties in the ADMapping.config file to set specific values for the synchronization process.
Below are examples of setting properties:
· Disabled. This property is used to enable or disable a user or group in CAM or another system. Set to True/1: property name="Disabled" values="1"
· IsCAMUser and IsCAMGroup. This property determines whether to create a CAM user or group, the people and groups who will use CAM, during the AD Sync process. Setting to 1 will trigger creation; Setting to 0 will prevent the creation. property name="isCAMUser" values="1" property name="isCAMGroup" values="1"
· Database. Determines the specific library or libraries to which users and groups will be associated. This property is essential for ensuring that the AD Sync process targets the correct database.
o The value should be the exact name for the target database.
o When associating multiple databases, separate each with a pipe character (|).
o Use with the Preferred Database property when specifying multiple databases to indicate which database is primary. property name="Database" values="HR|Active" appliesTo="iManage" property name="PreferredDatabase" values="HR" appliesTo="iManage"
SkipUpdateIfExists: This parameter can be used with an AD sync or without one based on where you want users and groups to be imported. Set this setting here in AD configurations if you want the user to come from the AD system. 0 will update the user or group in both CAM and the external system, 1 will skip the external system and update only in CAM.
4. Update SourceFiles.config with Organization Units
Add an entry for all connected OUs in the AD Sync process to the SourceFiles.config. See the Source Files section for more information on adding connected OUs to the SourceFiles.config.
The SourceFiles.config, located in C:\Program Files (x86)\Prosperoware\CAM\Data Uploader\service\config, should include an entry for each active SQL script and each connected Active Directory Organizational Unit. The file ensures Data Uploader only processes and sends new or modified jobs to CAM by enabling the JobDelta table in the CAM Local Database to track job submissions.
5. Test the AD Sync Configuration
Before scheduling AD Sync, use Data Uploader to generate a CSV, then submit a job with a small subset of the data to ensure accuracy.
On Data Uploader’s Active Directory tab, click Generate CSV for the OU being tested. Open the CSV and examine the data to verify the configuration has produced the right results. Next, remove all but a few records from the CSV and submit a test job with this smaller dataset, then verify the results of the job.
When user and group records are not updating, check:
· Does the user meet the filter conditions defined within the <criteria> section for the relevant Object in the ADMapping.config file?
· Does the user exist in the external system, and is the “SkipUpdateIfExists” configuration set to True in the ADMapping.config file?
· Does the user have an entry in the JobDelta table? Is there a change to the user record? Existing users with no changes will be skipped.
· Is the OU where the user is a member included in the scope of the ADMapping.config file?
6. Schedule AD Sync
The best strategy for scheduling AD Sync is to schedule each OU individually from Data Uploader’s Active Directory tab. It is important to determine the frequency of changes applicable to not only each OU, but also scheduled SQL scripts to ensure jobs do not overlap.
When adding an OU, or editing a connected OU, use the Run option, in the Domain details screen, to set the synchronization frequency for that specific OU.
If after an ad-hoc sync or a scheduled Data Uploader sync, you see the following in the Data Uploader logs that a job has been skipped with the log: Skip Uploading CSVName.csv, this means that the csv was skipped because of an empty file, or that there is no new data to upload or update from that job (eg all rows are the same from source to target).
Some versions of data uploader will not show the message in the logs FYI!
The CSV that was skipped will reside inside the folder path Prosperoware\CAM\DataUploader\skipcsv
External System Configuration
Note: Before you start using the Cloud Data Uploader, you must configure the external systems. Once you successfully complete the initial CAM configuration, you can configure incremental imports on a regular basis to keep CAM synchronized with your billing system.
When the data uploader is accessed for the first time, the CAM Credentials tab on the Cloud Data Uploader window displays. The Cloud Data Uploader requires domain authentication to secure information from the source destination to the target destination.
Type information in the provided fields, based on the table below, then click Authenticate. This is a one-time process only and need not be done for subsequent updates. Re-authentication may be required in case you change your credentials or your access token fails.
Field
Description
Field
Description
Domain
Enter the domain name that contains the data to be synced to cloud. E.g. sitename.tenantname.io. Leave off the https:// and the ending /
Enter password for the email specified above that is used to log into CAM.
Upon successful authentication, you will be brought into the Data Uploader page to the Run tab by default. Go to the Connection String tab to begin.
Connection String tab
Use the following instructions to add a new connection string to connect to the billing database. This will allow the Data Uploader to connect to the SQL Server and execute the queries to upload jobs to CAM. If you run Data Uploader without a connection string, it will return an error.
SQL must be SQL Standard or higher, CAM no longer supports SQLLite.
Type information in the provided fields, based on the table below.
Field
Description
Field
Description
SQL Server Name
The name of the SQL server hosting the billing database.
Connected System
Shows the connected systems that can be set. Options are Local Sync Database, Source Database, and CAM Local Database. Local Sync is one used for DataSync. Source Database is the external system typically used. CAM local database allows connecting to a CAM local database to use.
Database
The name of the database that you created on the SQL server to be used by Data Uploader.
Authentication
Choose the type of authentication to be used to connect to the data source database. Options include Windows authentication using the Windows credentials and SQL authentication using specific database-only credentials.
Username
Enter the username of the database. (SQL authentication only)
Password
Enter the password for the username of the database. (SQL authentication only)
Click Save.
Click Test Connection. If successful, a Valid Connection message is displayed.
Continue to the SQL Files tab to set the SQL scripts to run for the uploader process.
Note: Data Uploader also supports configuring to ODBC databases like IBM/DB2. The option for ODBC connection is in External Systems.
Creating and Connecting to the CAM Local Database
The CAM Local Database is used to store the Data Uploader database schema, which includes various tables that Data Uploader uses to store information about the jobs it submits to CAM. One of the CAM Local Database tables, the JobDelta table, tracks changes between job runs and is important for troubleshooting.
To create the Data Uploader schema as pictured above, create an empty SQL database, then establish a CAM Local database connection to it within Data Uploader.
In the external system SQL server, create an empty SQL database. It is common for the database to be named “CAMLocal” but not required.
On the Connection Strings tab in Data Uploader, click +Add to add a new connection.
Enter a Name for the connection, then in the Select Connected system list, choose CAM Local Database.
Complete the other connection details, click Connect, then Save. The empty database is populated with the Data Uploader schema.
Using Multiple Connection Strings
If there are multiple sources, you can set multiple connection strings. For this to work, .Net 4.8 or higher is required to be on the system data uploader is installed on.
The setup of the multiple connection strings, differs where the source systems reside. Use one of the following steps below:
Both sources are cloud based: Set up the source systems in the Source System panel. The source systems can be independently run.
Both sources are on-premise and on the same sql server: The connection string can be used for both systems, since the databases reside on the same server.
Both sources are on-premise, but each source is on a different sql server: Data Uploader would need to be installed on two instances, one for each source.
There is a new ConnectionString.config file, where users can add multiple connection strings, on a file by file basis. This is edited whenever a user adds a new connection string from the Connection Strings tab in the user interface.
How does Data Uploader determine how to import
If the last modified date is in the SQL files, then the last modified date is used to check the data brought in. However, the Job Delta ensures the records from the sync before remain in the Staging tables. Only any new, or changed records get imported from there into CAM. Similarly, AD sync or other tabs will use the system configuration.
For example, if a user or group is imported, If the client has other conditions in the SQL Scripts to check if a duplicate record exists using if/then statements, these are used to bring over the initial records to staging.
Then the records are compared using the username or group name to see if it exists. The client can change these with the source mapping configurations by stating the unique ID columns exactly!
Lastly in the script or in the source mapping, if there is a last modified date inside, this is used to determine the date range to go back to check and pull data.
For Active Directory, all records are checked in Active Directory, unless a particular group or OU or container is defined.
Active Directory tab Connect to to AD
Click this tab to sync connections to an Active Directory system including AzureAD/Entra ID which CAM DU supports. Microsoft now calls Azure Active Directory-> EntraId New name for Azure Active Directory - Microsoft Entra .
Active Directory is used to bring over users and groups into CAM.
CAM’s EntraId support does not support MTO!
Click + Add and provide details in the available fields, based on the table below.
Field
Description
Field
Description
Domain
The domain controller (DC) that contains the users or groups to be synced to CAM. CAM supports both the DC naming, as well as just the domain name in this field. For example if your domain name is Prod, and the DC is prod.myfirmname.com, we support either putting “Prod” or “DC=prod, DC=myfirmname, DC=COM”.
Additionally, OU’s are supported in this field as in OU=Asia
Note: This field supports up to 156 characters.
Select External Systems
Selects which external system(s) to create the AD items on. Note this will show all available external systems configured, not just those to which your license has.
User Path
Define the common name (CN) user look up path.
Sync Groups?
Select [Yes] to sync your user groups with CAM.
If you are keeping users of an external system in a group and you just want to import the users and not the group to assign the users to, set No for syncing groups.
Group (CN) Path
Define the common name (CN) group lookup path. There is a 54 character limit to define the path.
Nested Groups?
Select [Flatten and include] to sync your child user group members with the parent group that contain them. This will remove all the sub-groups and create a flat list of users in the parent group, gathered from all the child groups contained within the parent group. Or [Skip]
Group Exclusions
Add any groups to be excluded from this domain.
Reprocess all users and groups to include GUID?
Pulls the GUID and import reference from AD sync and includes it into the CSV in the GUID and importreference columns. This is so user and group changes can be tracked; without it CAM cannot tell what changed in AD and could create new users if the id, email or username changes.
Active
Select [Yes] to activate the domain, otherwise select [No].
Authentication
If the domain is added to the Trusted site zones, you can select the Trusted Login option for auto log on with current username and password or Enter windows credentials to log on to the domain.
Go to Run Tabs and click Run Now to trigger the AD sync manually.
Note: Syncing will allow the user groups and child user groups to be created on the configured external system in CAM. This will ensure a disabled user in the Active Directory is also disabled in the relevant external system.
Click Save.
Note: When creating a workspace in iManage, the Boolean metadata values for the custom fields can only be passed as TRUE/FALSE.
Additional AD Information
If necessary these are the following mappings of AD properties to a given CAM field that is imported through Data Uploader. The CSV is created in the beginning of a scheduled sync or a run now sync. The files then are uploaded into CAM.
Note: If you have multiple domains, separate CSV’s per domain will be produced.
The following AD properties are mapped (from the CSV file) on data sync:
Note: When a user/group is deleted from AD, programmatically it will be disabled from iManage too. The disabled user information can be tracked for document audit history.
Scheduling multiple OU or Container syncs
Firms can sync multiple OU’s or containers separately if necessary.
To do so, create another AD configuration in the Active Directory tab.
Set a different OU in the domain path than the first one (e.g. OU=Asia rather than US even though the domain might be the same otherwise).
If a user path or group path differs, change this.
The container path can also be inputted to the domain field if desired.
Set any remaining exclusions or configurations and set them active.
Now the user under the Run tab can schedule each AD domain job separately so that each OU Container or path is imported.
Maintaining AD Change Events in DU by Turning on AD Logging
For Active Directory to maintain change events in DU/CAM to users and groups in regards to deletions, the Active Directory logging needs to be enabled on that AD server.
You can read this information in full from Microsoft here:
Each entry that is displayed in the right pane of the Registry Editor window represents a type of event that Active Directory can log. All entries are set to the default value of 0 (None).
Configure event logging for the appropriate component:
In the right pane of Registry Editor, double-click the entry that represents the type of event for which you want to log. For example, Security Events.
Type the logging level that you want (for example, 2) in the Value data box, and then select OK.
Repeat step 4 for each component that you want to log.
On the Registry menu, select Exit to quit Registry Editor.
Note
Logging levels should be set to the default value of 0 (None) unless you are investigating an issue.
When you increase the logging level, the detail of each message and the number of messages that are written to the event log also increase. A diagnostic level of 3 or greater is not recommended, because logging at these levels requires more system resources and can degrade the performance of your server. Make sure that you reset the entries to 0 after you finish investigating the problem.
Local Sync tab
This tab helps to schedule and sync CAM data to the local database.
Type the information in the provided fields, based on the table below.
Field
Description
Field
Description
Select Connection String
It will list the Connection Strings that are set in Connection String tabs where connected source is set as 'Local Sync Database'. Choose the connection string to create local data sync.
What do you want to sync?
Select any or all from the options provided :
Users
Groups & Group Membership
Matter(Workspace)
Metadata
How often do you want to sync?
Select any one interval option and occurrences.
Minutes - The job is executed based on the interval in minutes to execute.
Hourly - The job is executed based on the time interval defined in hour(s).
Daily - The job is executed daily based on the time interval defined in day(s).
Weekly - The job is executed weekly based on the time interval defined in week(s)and the days of the week selected.
Never - If Never is selected, no options appear, it triggers background job and starts local sync. So “Run Now” option is not available at Local Sync
Click Save.
Data Flow from AWS tenant to local database
It enables you to save the data from a CAM tenant into a local database through a connection string. This uses the CAM API over calls through an HTTPS connection authorized by an “OAuth token”. For details on OAuth see the subsection below.
Then the data is saved to the local Database into CAMSync.job. CAM will log the data being synched, the audit information, and details about the job being processed such as scheduling and recurrences.
CAMSync.Matter, CAMSync.Metadata, CAMSync.Users, CAMSync.Groups and other tables will be where the data resides when it is synched to CAM. Use these for your queries to see what data flows to CAM.
OAuth Information
Data Uploader(DU) connects to CAM via OAuth. Initial tokens are obtained during the initial setup and then renewed on a regular interval. Token can not be used to directly log into UI. Tokens are stored encrypted locally.
Version Data Uploader Uses: 2.0
OAuth 2.0 has a client, an authorization server, a resource server, and a resource owner. As per the flow chart below, Data Uploader uses OAuth 2.0 to connect to CAM.
SQL Files tab
In Data Uploader, all sample SQL files are stored in the Sample folder (C:\Program Files(x86)\Prosperoware\CAM\DataUploader\CAM\sample - this will point to the location where the uploader is installed). To execute SQL queries, move the SQL files to the on-premises database defined in the connection string (C:\ProgramFiles(x86)\Prosperoware\CAM\DataUploader\sql). This sql folder will contain all your SQL queries to be executed by the Data Uploader.
After upgrading Data Uploader:
Edit the Path for the SQL files to point to a folder inline in the AppSettings.config file if a custom SQL files path is used. Otherwise, skip this.
Open the Data Uploader folder in the filesystem. Go to C:\Program Files(x86)\Prosperoware\CAM\DataUploader\CAM\service
Open file AppSettings.config
Confirm or edit the line item <add key="SqlFolderPath" value="" /> is set to the folder of the SQL files if a custom folder is set. If out of the box, skip.
Edit the individual SQL file configurations in the SourceFiles.config.
E.g. if you added a script for Folders, a line item would be added inside SourceFiles.config like:
Repeat for all SQL files you have. If you don’t add these to the config they will not be used in the import.
Viewing SQL Files:
In the Cloud Data Uploader, click the Refresh button to view the updated list of files placed in the Sample folder.
To view or edit the script, click Edit File.
Options to Edit are:
FileName cannot be edited.
Type of the SQL file.
Select if Enabled or not Enabled. If no, the remaining fields do not display. If yes, these fields display:
Run Every: The time period to run the SQL script.
From: The initial date of the full or delta sync.
Start: The start date of the full or delta sync
Click Run Now to execute the query.
Actively used SQL files will be checked in the Active box. Inactive files are not checked and used.
Once the query is executed, the Data Uploader will create a CSV folder in the default installation location C:\Program Files(x86)\Prosperoware\CAM\DataUploader\csv. Each query is returned in the form of a separate CSV file, which is placed by the Data Uploader in this CSV folder. The CSV file is then uploaded to the Jobs tab for further processing. The log details of this uploaded job can be viewed in the Log tab in the Data Uploader.
Note: In order for Data Uploader to be able to create provisioning jobs, a properly configured script to update the matters must exist in the Data Uploader program folder C:\Program Files(x86)\Prosperoware\CAM\DataUploader\sample
Validation of SQL Files:
This feature allows for the validation of the Data Uploader SQL files. It checks if the metadata is present in CAM, if the metadata mappings are present, and if the column names are defined. Additionally, if templates are set, it will check that the templates exist in CAM. Users and Groups ACL's are also confirmed to ensure the users and groups exist in CAM.
Click Validate SQL Files from the options menu in the SQL Files tab of Data Uploader.
User Creation and Validation
When a user is created through an SQL file, whichever metadata is present in CAM Internal Metadata will validate successfully. Missing metadata will show an error. The particular failed data entries will be in the Application Log of Data Uploader. Any portion of the Validation that fails will have a red X.
The tables checked will be the Users, UserGroups tables as these are the staging tables. Under the schema CAMSync, the users and usergroup tables there will be where the records that are new or changed need to be imported into CAM.
By default, all SQL files are checked. If you uncheck the all button, then you can individually select one or multiple files.
If a validation error or error shows that the group name or username is too long, please modify this. See this page for the group name character limitation: CAM Limitations | Data Uploader
Important: If an SQL File is disabled and the connection string is not set, the file will be skipped by default.
Warning: When using the Availability group in SQL in Data Uploader, it is recommended to use the cluster alias instead of the primary server. Otherwise, there may be failures when changing from the primary to the secondary server.
Setup the Schedule button
The best strategy for scheduling both AD sync and SQL scripts is to first determine the frequency of changes applicable to each. Next, based on the determined frequency, individually schedule each SQL script from the SQL tab, and the AD sync from the Active Directory tab, and ensure that tasks do not overlap.
The global schedule for the queries to be executed can be set on the Run tab. The content from your source database will be automatically updated to CAM as per the frequency defined here. You can set the option to execute the queries Minutely, Hourly, Daily, Weekly, or Never (for a manual or one-time run).
The table below lists the set up available. The timer is available for each SQL file available.
Timer
Description
Timer
Description
Minutes
The job is executed based on the start time, end time, and the interval in minutes to execute.
Hourly
The job is executed based on the start time and the time interval defined in hour(s).
Daily
The job is executed daily based on the start date, time, and the time interval defined in day(s).
Weekly
The job is executed weekly based on the start date, time, the time interval defined in week(s)and the days of the week selected.
Never
If Never is selected, no options appear below. In Local Sync if user configure interval option as “Never” then it triggers background Boolean values should be Enable and starts local sync. So “Run Now” option is not available at Local Sync.
Set the timer
Click Save. The Last Run time and the scheduled Next Run time is updated in the tab.
You can also click Run Now to execute the job manually.
Note: if an existing sync is updated to Never, then the scheduled job associated will be removed.
The Data Uploader task is also added to the Windows Task Scheduler on the machine where the Data Uploader tool resides, if scheduled for a timeframe. The schedule for the Data Uploader can also be adjusted from the Task Scheduler. The user must have an account with permissions to enable the scheduler task.
Each CSV file will be uploaded one at a time into the Jobs tab to eliminate collisions.
By default, when deleting logs, CAM will delete all filtered logs. For example, if you filter based on date, it will delete all log records from that time period.
Tip: In order to have a smoother experience when scheduling any task for AD Sync:
Go to the Task Scheduler.
Right-click the scheduled task and select Properties.
Under Security options,select Run whether user is logged on or not and uncheck Do not store password.
Click
OK.
Validate button
This button validates the data and configuration files, and provides status.
Any portion of the validation that fails will have a red X. The particular failed data entries will be in the Application Log of Data Uploader.
For example if it says Templates do not exist in CAM, the templates need to be created in CAM first before running DataUploader. See step 8 of the Provision checklist here: Provision Implementation Checklist
Run Now button
This will pop up a window that provides options for the user to decide which files to run. It allows users to select individual SQL files or Active Directory Sync.
Click Run Now to open the following dialog:
Select Sql Files, Active Directory, or All
If Sql Files is selected, it displays a list of active SQL files with checkboxes. See below.
Tip: User can select or deselect the listed scripts at a time for run.
Click Run so the selected files will be executed, or click Cancel to close the dialog. You can see that CAM has created a separate CSV folder under the parent CSV folder for each SQL file to help us identify the specific SQL file.
Task Scheduler Configurations
After successfully running the SQL files, navigate to the Task Scheduler. Notice a CAM folder is created programmatically containing SQL files, as shown below:
Select the job and double-click to edit. The following screen opens:
Select Run whether user is logged on or not.
Check the box for Run with highest privileges.
Click OK to run the job or click Cancel to close the dialog.
Note: Users should put an auto cleanup job to delete files older than 30/60 days from both the archivecsv and skipcsv folders to keep your server clean. If the folder gets too large, delta jobs can not be run or fail.
Also, you should have the standard SQL server maintenance jobs setup on the CAM Local database.
Logging of the Job
Click the Log tab to view information on the jobs executed in the Data Uploader, including process information and the type of error. The following types of entries are displayed:
INFO- Any information or generic notes regarding certain jobs uploaded.
ERROR- Displays a message describing the failure. Click Details in the message to view the error details and stack trace.
FATAL- Displays a complete description of the error.
The Log has a Filter option that allows you to narrow the entries to a particular set of results.
You can also Export the content of any log to Excel. This can be helpful when contacting Support regarding an issue.
Click the Refresh button to refresh the values to show the latest log entry.
Click Delete to clear the log.
Re-queue a Job:
There is a new queue parameter to re-queue any old jobs. To do this:
add/update the CSV parameter of the job CSV to Queue=1 and upload.
Users do not need to wait for the complete job to see the log within CAM. When it appears, double-click on the Jobs tab in CAM.
Note: In Data Uploader, or SSI or CAM in general, When a provisioning job for a team or channel or site is received, CAM creates a separate job for each tab or app in addition to the Team creation or provisioning job. For provisioning users, or groups or workspaces or folders, there is only one job when bulk updating or creating records from DU or SSI.
E.g. one record will show for Data Upload. Then a record shows for the subsequent action of Create Workspace if the job was creating workspaces from DU.
Sync with an On-Premises SQL Database
Data Uploader comes with the ability to sync CAM with an on-premises local SQL database. Users may need the CAM data for third-party databases like SPM. Additionally, this locally stores the uploaded workspace jobs before uploading them to CAM. This enables an efficient Delta upload by allowing Data Uploader to compare the local data for changes and only upload those workspace jobs that need to be updated.
To setup an On Premise Sync
Open Data Uploader.
Go to the On-Premise Sync tab.
Enter the SQL server name. If it is on the localhost, you can put (local).
Enter the Database Name.
On the Trusted Login option, select Yes or no.
Yes is if the user will use Windows authentication to connect to SQL.
No lets the user set the UserId and Password.
Click Connect and Create Schema.
This creates the needed schema on the database for the CAM Data Uploader sync(s).
Note: The user permission should have SQL rights to create tables and schema for this.
After the schema is created, set up the sync properties and schedule.
What do you want to sync?
Users
Groups and Group Membership
Matter(Workspace)
Metadata
How often do you want to sync?
Minutes
Hourly
Daily
Weekly
Never- Means one time manually
Note: Logs for Data Uploader are moved to the SQL database and not using SQLLite if on premise is used.
Note: The Delta sync is supposed to sync one job if there are multiple job rows in the CSV specified. If you don’t use Delta sync, you might run multiple jobs.
Schema of the On-Premises Sync
CAMSync.GroupMembers. Contains the members of each group.
CAMSync.Job. Contains the jobs that run.
CAMSync.JobDetails. Details about which sync job is running. For example, is the job running a user job, matters job, etc.
CAMSync.Matter. The matters are synched here. Note these are just references.
CAMSync.MatterSystem. The details of the matters reside here. All system matters live here (imanage, netdocuments, office365, external systems).
CAMSync.Metadata. All of the metadata is synched here.
CAMSync.UserGroups. The users and their groups are synched here.
Mapping Active Directory (AD) properties
The ad-property imported can be mapped to another property so that the data comes through as desired.
To set the property mapping
Change the config for the AD sync to add the csvproperty.
For example, let's change the email to be the iManage userid and not the userid from Active Directory
Within the adproperty field line, add csvProperty="Property" for it to use that csv property.
Save the config.
Run Data Uploader.
The email is set as the userid for iManage, if you Generate the CSV from Data Uploader, or run the Data Uploader Sync.
Passing Users via CSV
If the UserId passed in the CSV is incorrect compared to Active Directory, CAM will still create a user that doesn’t exist, if you pass them via CSV.
Required fields for the user to be added are:
Field
Description
Values
Field
Description
Values
Full Name
Name of the user. Includes first and last
Joe Canton
UserId
The id of the user. AD will use the email as userid
testuser@myfirm.com
Role
The user’s role in Active Directory
Default or one of the AD roles
User Number (No)
The user’s number.
If this is invalid or not passed/blank, the OS_Type then is set to Virtual=2
14378
Email
The user’s email
testuser@myfirm.com
Preferred Database
Sets the preferred database the user can access. If you get errors with csv’s being created, you may want to remove the appliesto parameter from your ADMapping config file.
iManageProd
External User
Sets if the user is external to the firm
Yes/No
Allow Login
Allows login from AD to the external system/CAM
Yes/No
Failed Login
Sets the number of login attempts
0, 1,2…
Password Never Expires
If a system or admin account, typically is set to never expire.
Yes/No
User must change password at next login
Determines if the user must change their password the next time they login.
Let’s say the properties division and desktoprofile exist. If you want the users or groups to receive both properties, set this optype=1
Optional fields:
SkipUpdateifExists: Use this parameter with an AD sync or without one based on where you want users and groups to be imported. Set this setting here in AD configurations if you want the user to come from the AD system. 0 will update the user or group in both CAM and the external system, 1 will skip the external system and update only in CAM.
OS Type Ids
OS_Type
Id
OS_Type
Id
Novel 3.x
1
Virtual
2
Windows NT
3
Novell NDS
4
External
5
Active Directory
6
LDAP
7
Configure Metadata names to Export the Document to Network Path
While exporting the document to network path with the option include CSV file, it will export the metadata selected in the query.
The CSV values are generated according to the config file related to the external system.
We recommend using the V2 version of Data Uploader for more efficient processing!
New Version Features
In addition to the new submission in JSON, there is a new folder where those CSVs are stored when the JSONs are uploaded. This folder is called newCSV. The CSVs are created and then converted from these files in this folder to JSON. If a job fails, this would be the folder that contains the JSON files to troubleshoot.
Generated CSVs still reside in the generatecsv folder for all jobs.
Archived CSVs still reside in the archivecsv folder for any successfully completed jobs over time.