/
Bulk Entity Action API

Bulk Entity Action API

Background

In portal file browsers, to delete or otherwise update an entity bundle, you must first select the target entity,. From inside a project or folder, there is no quick and convenient way to delete/update multiple files and subfolders, so the aim is to provide a way to bulk select files from within the files browser then select a bulk action to perform on those selected.  We introduce a new set of services to provide the mechanism for performing and tracking these jobs. We intend to interface with the already present job tracking widget, which may then be extended for other uses on the portal such as table query tracking.

Object Model

The new classes are:

Request

Requests will have a max bulk operation limit.

BulkRequest.uxf

Response

BulkResponse.uxf

Web Services

ActionURIMethodRequest BodyResponse BodyAuthorization
Bulk Get/entity/bulk/get/async/startPOSTBulkGetRequestAsyncJobIdACCESS_TYPE.READ on each entity in the passed entityList
Bulk Get Results/entity/bulk/get/async/get/{asyncToken}GET BulkActionEntityResult 
Bulk Update/entity/bulk/update/async/startPOSTBulkUpdateRequestAsyncJobIdACCESS_TYPE.UPDATE on each entity in the passed entityList
Get Update Results/entity/bulk/update/async/get/{asyncToken}GET BulkUpdateResponse

Asynchronously get the results of an updateEntities request started with POST /entity/bulk/update/async/start

Note: When the result is not ready yet, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.

Bulk Delete/entity/bulk/delete/async/startPOSTBulkDeleteRequestAsyncJobId ACCESS_TYPE.DELETE on each entity in the passed entityList
Get Delete Results/entity/bulk/delete/async/get/{asyncToken}GET BulkDeleteResponse

Asynchronously get the results of a deleteEntities request started with POST /entity/bulk/delete/async/start

Note: When the result is not ready yet, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.

Discussion

  • The web services follow the pattern established by many async table functions in their http method and their URI.
  • It is currently under investigation whether whoever requests the move operation also requires ACCESS_TYPE.UPDATE or other on the parentId in question.
  • Bundle to update annotations, etc
  • Max bulk operation limit

Related content

Batch FileHandle and File URL Services
Batch FileHandle and File URL Services
More like this
Bulk File/Table Download via Web Client REST API
Bulk File/Table Download via Web Client REST API
More like this
Bulk File Download
Bulk File Download
More like this
Data Repository Service (DRS) Extension for File Handle ID
Data Repository Service (DRS) Extension for File Handle ID
More like this
Download List for all Clients - API Design
Download List for all Clients - API Design
More like this
Hierarchical Changes in Synapse (PLFM-4174)
Hierarchical Changes in Synapse (PLFM-4174)
More like this