Get started with the Processing API

The Processing API supports the automation of your processing workflows. You can programmatically use this API to create and update custodians, data sources, processing sets, and profiles required for processing. It provides an alternative to manually creating them through the Relativity UI. You also can use the Processing API to run inventory, discovery, and publishing jobs.

Use the information on this page to learn about Processing API fundamentals. It includes prerequisites for developing with this API, and code samples for common operations. Additional resources to help you get started with the Processing API include:

  • Processing on the RelativityOne Documentation site - provides general information about how Relativity supports processing.

See these related pages:

The Relativity.Processing.SDK contains this API. For compatibility and package installation instructions, see Download the SDKs and NuGet packages.

Processing API fundamentals

The Processing application provides system admins with the ability to ingest raw data directly into a workspace for review. When you set up a processing workflow, you create a processing profile. This profile specifies settings that control how the processing engine ingests the data. You create or reference the following items:

  • A custodian who is a user associated with the data included in a processing job.
  • A data source that contains the path used to specify the location of the files that you want to discover.

You also create a processing set that links a processing profile to one or more data sources. When you run a discovery job, the processing engine discovers files in the data source based on the values specified in the processing set. For more information, see Processing on the RelativityOne Documentation site

The Processing API provides interfaces and objects that you can use to automate many of the tasks in a processing workflow. It includes the following interfaces that you can use to access services, which interact with custodian, data source, and processing set objects:

*These interfaces provide a CreateAsync() and UpdateAsync() method, which you can use to create, update, or retrieve processing objects.

Common processing workflows

The Processing API also includes the IProcessingJobManager interface. You can use this interface to access the Processing Job Manager service for running inventory, discovery, and publishing jobs. It includes the following methods:

  • SubmitInventoryJobsAsync() method – used for excluding irrelevant files from a data set prior to running a discovery job, such as eliminating NIST file types. The InventoryJob class includes properties for the workspace artifact and processing set IDs required to submit a job.
  • SubmitDiscoveryJobsAsync() method – used for submitting data sources to the processing engine for discovery. The DiscoveryJob class includes properties for the workspace artifact and processing set IDs required to submit a job.
  • SubmitPublishJobsAsync() method – used to publish the processed data to a workspace after discovery, so that reviewers can access it. The PublishJob class includes properties for the workspace artifact and processing set IDs required to submit a job.

Common workflows for processing include inventorying, discovering, and then publishing data, or just discovering and then publishing data. You can only inventory files that haven’t been discovered. Additionally, you can only publish files after Relativity has completed discovery.

In Relativity, you want to enable the auto-publish option on the processing profile, so that the discovered files are automatically added to the workspace. See Relativity environment setup.

Processing API prerequisites

Complete the following prerequisites to begin development with the Processing API:

Development guidelines for the Processing API

Use these guidelines when automating workflows with the Processing API:

  • Add the following DLL references to your Visual Studio project. For additional information, see Prerequisites for Processing API development.
    • Relativity.Processing.Services.Interfaces.dll (in the Processing API SDK)
    • kCura.Relativity.Client.dll (in the Relativity SDK)
    • Relativity.Kepler.dll (in the Relativity SDK)
  • Use the Relativity API helpers to establish a connection with the Processing API and set the context used for your code execution. All code samples on this page illustrate how to use the helper classes to connect with the Processing API. For more information, see Using Relativity API Helpers.
  • Call the CreateAsync() method on any processing object that you create, or UpdateAsync() that you modify. Your changes won't be added to the database until you make this call.
  • Use a try-catch block around your code for creating, updating, and reading objects. Also, use it when submitting jobs. Catch any ServiceExceptions raised by your code as exemplified in the following code samples.
  • Use logging to help troubleshoot your code as exemplified in the following code samples.