Workspace Manager (.NET)

Workspace Manager API service exposes the API to create, read, update and delete the workspaces. Sample use cases for the Workspace Manager API include:

  • creating a new workspace;
  • modifying the workspace information;
  • retrieving information about the workspace.

You can also use the Workspace Manager service through the REST API. For more information, see Workspace Manager service.

This page contains the following information:

Field Permissions

Secured Fields

It's possible for a client of this API to be able read and write some, but not all, fields of the workspace. This is achieved through the Securable<T> type. Instances of that type have the properties Secured (bool) and Value (T). If Secured is true, the user does not have access to the contents of the field for either read and/or write.

Below is a guide to how permissions dictate which fields are secured per endpoint.

Field Create Update Read
Instance - Object - Matter - View Instance - Object - Matter - View Instance - Object - Matter - View
Client Number N/A N/A Instance - Object - Client - View
ProductionRestrictions N/A Workspace - Object Search - View Workspace - Object Search - View
ResourcePool Instance - Object - Resource Pool - View Instance - Object - Resource Pool - View Instance - Object - Resource Pool - View
DefaultFileRepository Instance - Object - Resource Server - View Instance - Object - Resource Server - View Instance - Object - Resource Server - View
DataGridFileRepository Instance - Object - Resource Server - View Instance - Object - Resource Server - View Instance - Object - Resource Server - View
DefaultCacheLocation Instance - Object - Resource Server - View Instance - Object - Resource Server - View Instance - Object - Resource Server - View
SqlServer Instance - Object - Resource Server - View Instance - Object - Resource Server - View Instance - Object - Resource Server - View
AzureCredentials Instance - Object - Credential - View Instance - Object - Credential - View Instance - Object - Credential - View
AzureFileSystemCredentials Instance - Object - Credential - View Instance - Object - Credential - View Instance - Object - Credential - View
Template Instance - Object - Workspace - View N/A N/A
WorkspaceAdminGroup Instance - Object - Credential - View N/A Instance - Object - Credential - Group

Read-Only Fields

A user may have permission to view a field but not update or delete it. If this is the case, the field name will be included in the read-only list in the metadata. Examples include the following:

  • Client

  • Matter

  • Workspace Admin Group

Cancellation and progress

The Create, Update and all Query endpoints offer overloads that employ cancellation and progress functionality. Documentation, including code samples, for those features is available within the Kepler framework section.

Fundamentals for managing Workspaces

In order to use V1 Workspace Manager endpoints, you need to import the Relativity.Environment.SDK package. You'll find workspace manager inferace under the Relativity.Environment.V1.Workspace namespace.

To setup a proxy to interact with the IWorkspaceManager API, call the CreateProxy() method on the object returned by the GetServiceManager() method. For more information, check out Best Practices for the Services API.

Create a Proxy using CreateProxy()

using Relativity.Environment.V1.Workspace;
 
 
Client.SamplesLibrary.Helper.IHelper helper;
  
// Create a proxy
using (IWorkspaceManager workspaceManager = helper.GetServicesManager().CreateProxy<IWorkspaceManager>(ExecutionIdentity.User))
{
    // Add your custom code ...
}

Classes

The Workspace Manager API exposes the following classes available in the Relativity.Environment.V1.Workspace.Models namespace:

  • WorkspaceRequest class - represents a request for creating or updating a workspace. The class contains the following fields:

    • DownloadHandlerUrl: string - represents the default URL for making downloaded files available to users. This field is required.

    • EnableDataGrid: bool - whether the workspace can have fields that save to Data Grid. This field cannot be set during Create request.

    • Matter: Securable<ObjectIdentifier> - represents the case or legal action associated with the workspace. This field is required.

    • Name: string - represents the name of the workspace. This field is required.

    • ProductionRestrictions: Securable<ObjectIdentifier> - represents the saved search used to exclude documents from new production sets. This field cannot be set during Create request.

    • ResourcePool: Securable<ObjectIdentifier> - represents the resource pool used by the workspace for the other resource-related fields. This field is required.

    • DefaultFileRepository: Securable<ObjectIdentifier> - represents the file repository for the physical location of the files, including document natives and images). This field is required.

    • DataGridFileRepository: Securable<ObjectIdentifier> - represents the file repository for the physical location of the text files used by Data Grid.

    • DefaultCacheLocation: Securable<ObjectIdentifier> - represents the Cache Location Server where the natives, images, productions and other types used by the viewer are temporarily stored. This field is required.

    • SqlServer: Securable<ObjectIdentifier> - represents the SQL server where the workspace database is stored. This field is required.

    • AzureCredentials: Securable<ObjectIdentifier> - represents Azure credentials for the workspace. This field is required if CredentialEnableAzure setting is set to true.

    • AzureFileSystemCredentials: Securable<ObjectIdentifier> - represents Azure File System credentials for the workspace. This field is required if CredentialEnableAzureFileSystem setting is set to true.

    • SqlFullTextLanguage: int - represents ID of the language used for determining the correct word-break characters used in the full text index inside the workspace. This field is required.

    • Status: ObjectIdentifier - represents the status of the workspace which can be added to views for filtering workspaces. This field is required.

    • Template: Securable<ObjectIdentifier> - represents an existing workspace structure used to create the workspace. This field can be specified only during Create request.

    • WorkspaceAdminGroup: Securable<ObjectIdentifier> - represents the group selected as admin for the workspace. This field cannot be set during Create request.

  • WorkspaceResponse class - represents the results of a read operation on a workspace. The class contains the following fields:

    • Client: Securable<DisplayableObjectIdentifier> - represents the client associated with the workspace.

    • ClientNumber: Securable<string> - represents the number of the client associated with the workspace.

    • DownloadHandlerUrl: string - represents the default URL for making downloaded files available to users.

    • EnableDataGrid: bool - whether the workspace can have fields that save to Data Grid.

    • Matter: Securable<DisplayableObjectIdentifier> - represents the case or legal action associated with the workspace.

    • MatterNumber: Securable<string> - represents the number of matter associated with the workspace.

    • ProductionRestrictions: Securable<DisplayableObjectIdentifier> - represents the saved search used to exclude documents from new production sets.

    • ResourcePool: Securable<DisplayableObjectIdentifier> - represents the resource pool used by the workspace for the other resource-related fields.

    • DefaultFileRepository: Securable<DisplayableObjectIdentifier> - represents the file repository for the physical location of the files, including document natives and images).

    • DataGridFileRepository: Securable<DisplayableObjectIdentifier> - represents the file repository for the physical location of the text files used by Data Grid.

    • DefaultCacheLocation: Securable<DisplayableObjectIdentifier> - represents the Cache Location Server where the natives, images, productions and other types used by the viewer are temporarily stored.

    • SqlServer: Securable<DisplayableObjectIdentifier> - represents the SQL server where the workspace database is stored.

    • AzureCredentials: Securable<DisplayableObjectIdentifier> - represents Azure credentials for the workspace.

    • AzureFileSystemCredentials: Securable<DisplayableObjectIdentifier> - represents Azure File System credentials for the workspace.

    • SqlFullTextLanguage: NameIDPair - represents ID and name of the language used for determining the correct word-break characters used in the full text index inside the workspace.

    • Status: DisplayableObjectIdentifier - represents the status of the workspace which can be added to views for filtering workspaces.

    • WorkspaceAdminGroup: Securable<DisplayableObjectIdentifier> - represents the group selected as admin for the workspace.

    • Keywords: string - represents any keywords associated with the workspace.

    • Notes: string - represents an optional description or other information about the workspace.

    • CreatedOn: DateTime - represents date and time when the workspace was added to Relativity.

    • CreatedBy: DisplayableObjectIdentifier - represents the user who created the workspace.

    • LastModifiedBy: DisplayableObjectIdentifier - represents the user who recently updated the workspace.

    • LastModifiedOn: DateTime - represents date and time when the workspace was most recently updated.

    • Meta: Meta - represents a list of unsupported and read-only properties on the current workspace.

    • Actions: List<Action> - represents a list of RESTful operations that a user has permissions to perform on the artifact.

  • SqlFullTextLanguageOptions class - represents the default and available SQL full text language options for the workspace. The class contains the following fields:

    • DefaultLanguageLcid: int - represents the ID of default language.

    • Languages: List<NameIDPair> - represents the available languages.

  • WorkspaceSummary class - represents the statistics about the workspace. The class contains the following fields:

    • DocumentCount: long - represents the count of documents in the workspace.

    • FileSize: long - represents the size of workspace files.

Methods

The Workspace Manager API exposes the following methods on the Relativity.Environment.V1.Workspace namespace:

  • CreateAsync() method - adds a new workspace. Its parameter is the WorkspaceRequest object which describes the workspace to create. It returns the WorkspaceResponse object which contains information about the created workspace.

  • ReadAsync() method - retrieves information about the workspace. Its parameter is the Artifact ID of the workspace. It returns the WorkspaceResponse object which contains information about the workspace.

  • UpdateAsync() method - modifies workspace information. Its parameters are the Artifact ID of the workspace and the WorkspaceRequest object. It returns the WorkspaceResponse object which contains information about the modified workspace.

  • DeleteAsync() method - deletes the workspace from the system. Its parameter is the Artifact ID of the workspace.

  • GetMetaAsync() method - retrieves a list of unsupported WorkspaceRequest fields for Create operation.

  • GetDefaultDownloadHandlerURLAsync() method - returns the Default Download Handler URL. This method does not take any parameters.

  • QueryWorkspaceByGroupAsync() method - retrieves information about the workspaces that are related to a given group. The parameters are QueryRequest object, start index and count of workspaces to return, and the Artifact ID of the group. This method returns the QueryResultSlim object.

  • GetEligibleResourcePoolsAsync() method - retrieves a list of resource pools that are eligible for a workspace's ResourcePool property. This method doesn't take any parameter. It returns a list of DisplayableObjectIdentifier objects that describe the eligible resource pools.

  • GetEligibleFileRepositoriesAsync() method - retrieves a list of file repository servers that are eligible for a workspace's DefaultFileRepository and DataGridRepository properties. Its parameter is the Artifact ID of the resource pool. It returns a list of DisplayableObjectIdentifier objects that describe file repository servers in the provided resource pool.

  • GetEligibleCacheLocationsAsync() method - retrieves a list of cache locations that are eligible for a workspace's DefaultCacheLocation property. Its parameter is the Artifact ID of the resource pool. It returns a list of DisplayableObjectIdentifier objects that describe cache locations in the provided resource pool.

  • GetEligibleSqlServersAsync() method - retrieves a list of SQL servers that are eligible for a workspace's SqlServer property. Its parameter is the Artifact ID of the resource pool. It returns a list of DisplayableObjectIdentifier objects that describe SQL servers in the provided resource pool.

  • GetEligibleAzureCredentialsAsync() method - retrieves a list of Azure credentials that are eligible for a workspace's AzureCredentials property. Its parameter is the Artifact ID of the resource pool. It returns a list of DisplayableObjectIdentifier objects that describe Azure credentials in the provided resource pool.

  • GetEligibleAzureFileSystemCredentialsAsync() method - retrieves a list of Azure Filesystem Credentials that are eligible for a workspace's AzureFileSystemCredentials property. Its parameter is the Artifact ID of the resource pool. It returns a list of DisplayableObjectIdentifier objects that describe Azure filesystem credentials in the provided resource pool.

  • QueryEligibleClientsAsync() method - retrieves a list of clients that are eligible for a workspace's Client property. Its parameters are QueryRequest object, start index and count of clients to return. It returns the QueryResultSlim object that describes the eligible clients.

  • QueryEligibleGroupsAsync() method - retrieves a list of groups that are eligible to be members of a workspace. Its parameters are QueryRequest object, start index and count of groups to return. It returns the QueryResultSlim object that describes the eligible groups.

  • QueryEligibleMattersAsync() method - retrieves a list of matters that are eligible for a workspace's Matter property. Its parameters are QueryRequest object, start index and count of matters to return. It returns the QueryResultSlim object that describes the eligible matters.

  • QueryEligibleSavedSearchesAsync() method - retrieves a list of saved searches that are eligible for a workspace's ProductionRestrictions property. Its parameters are QueryRequest object, start index, count of saved searches to returns, and the Artifact ID of the workspace. It returns the QueryResultSlim object that describes the eligible saved searches.

  • QueryEligibleTemplatesAsync() method - retrieves a list of workspaces that are eligible for a new workspace's Template property. Its parameters are QueryRequest object, start index and count of workspaces to return, It returns the QueryResultSlim object that describes the eligible workspaces.

  • GetEligibleSqlFullTextLanguagesAsync() method - retrieves a list of eligible languages for workspace's SqlFullTextLanguage property. This method does not take any parameters. It returns the SqlFullTextLanguageOptions object that describes the eligible and default languages.

  • GetEligibleStatusesAsync() method - retrieves a list of choices that are eligible for a workspace's Status property. This method does not take any parameters. It returns a list of DisplayableObjectIdentifier objects that describe the eligible statuses.

  • RetryFailedCreateEventHandlersAsync() method - retries failed Create Event Handlers for the specified workspace. Its parameter is the Artifact ID of the workspace. This method does not return a value.

  • GetWorkspaceSummaryAsync() method - retrieves statistics summary about the workspaces. Its parameter is the Artifact ID of the workspace. It returns the WorkspaceSummary object that contains the summary for a given workspace.

Community Updates

Aero Developer FAQ Evolving the Platform Most recent release notes
Learn more Learn more Learn more

Additional Resources

   
Access Third-Party Tools with GitHub     Create .NET Apps Faster with NuGet
Visit github     visit nuget