# REST Interface - Working with Projects and Entities

# Getting all Project Entities

<span class="rvts6">This call retrieves all entities in the project.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">GET</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/entity.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-project-unique-ident"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="85"><span class="rvts6">project</span>

</td><td valign="top" width="538"><span class="rvts6">Unique identifier for the project</span>

</td></tr></tbody></table>

</div><span class="rvts6"> </span><span class="rvts16">Returns</span>

<span class="rvts6">This call returns a JSON file. The file defines a dictionary where each key is an entity “ID”, and the data associated to the key is another dictionary containing the entity’s properties.</span>

<span class="rvts16">Example</span>

<table border="1" id="bkmrk-http%3A%2F%2Flocalhost%3A586" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>http://localhost:58697/entity.ashx?project=myproject</td></tr></tbody></table>

## <span class="rvts0"><span class="rvts24"> </span></span>

## <span class="rvts0"><span class="rvts24"></span></span>

# Getting an Entity

<span class="rvts6">This call retrieves one entity.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">GET</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/entity.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-id-unique-identifier"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="76"><span class="rvts6">id</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the entity</span>

</td></tr></tbody></table>

</div><span class="rvts6"> </span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">This call returns a JSON file. The file defines a dictionary where the entity’s properties appear as key-value pairs.</span>

##### <span class="rvts16">Example</span>

<table border="1" id="bkmrk-http%3A%2F%2Flocalhost%3A586" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td><span class="rvts25">http://localhost:58697/entity.ashx?id=770A11061EFA41C0B7729DE5ABA266C4</span></td></tr></tbody></table>

# Requesting a new ID

<span class="rvts6">The REST API provides a mean to obtain a new unique identifier. This is useful when creating object hierarchies where objects are required to point to each other. By generating their IDs first, the application can submit objects only once.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">GET</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/file.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-generateids-contains"><table border="1" cellpadding="7" cellspacing="-1" style="height: 51px; width: 90.8333%;"><tbody><tr valign="top"><td style="width: 11.9891%;" valign="top" width="75"><span class="rvts6">generateids</span>

</td><td style="width: 88.0109%;" valign="top" width="548"><span class="rvts6">Contains the number of identifiers to be created</span>

</td></tr></tbody></table>

</div>##### <span class="rvts16">Returns</span>

<span class="rvts6">If completed (200 code), this call returns a JSON array of strings where each string corresponds to a newly created ID:</span>

<span class="rvts6">\["21CB001A697043ACBF84F54BCB1244F3"\]</span>

##### <span class="rvts6"> </span><span class="rvts16">Example (PowerShell)</span>

<span class="rvts6">This GET call creates one new unique identifier:</span>

<span class="rvts6">  
</span>

<div class="rvps2" id="bkmrk-invoke-webrequest--u"><table border="1" cellpadding="1" cellspacing="2" width="100%"><tbody><tr valign="top"><td><span class="rvts26">Invoke-WebRequest -Uri "http://localhost:58697/file.ashx?generateids=1" -Headers @{</span>

<span class="rvts26">"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"</span>

<span class="rvts26"> "Accept"="\*/\*"</span>

<span class="rvts26"> "Sec-Fetch-Site"="same-origin"</span>

<span class="rvts26"> "Sec-Fetch-Mode"="cors"</span>

<span class="rvts26"> "Sec-Fetch-Dest"="empty"</span>

<span class="rvts26"> "Referer"="http://localhost:58697/cloud/project.html?id=D9927BF62BFA4CCD930CBC716601D09C"</span>

<span class="rvts26"> "Accept-Encoding"="gzip, deflate, br"</span>

<span class="rvts26"> "Accept-Language"="en-US,en;q=0.9,es;q=0.8"</span>

<span class="rvts26">}</span>

</td></tr></tbody></table>

</div>

# Creating a Project

<span class="rvts6">This call creates a new project.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">POST</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/entity.ashx</span>

##### <span class="rvts16">Post Payload</span>

<span class="rvts6">Multi-part form data containing two fields:</span>

<div class="rvps2" id="bkmrk-operation-must-be-se"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="75"><span class="rvts6">operation</span>

</td><td valign="top" width="548"><span class="rvts6">Must be set to "create"</span>

</td></tr><tr valign="top"><td valign="top" width="75"><span class="rvts6">data</span>

</td><td valign="top" width="548"><span class="rvts6">A JSON dictionary where each project property appears as a key-value entry.</span>

</td></tr></tbody></table>

</div>##### <span class="rvts16">Returns</span>

<span class="rvts6">If completed (200 code), this call returns a JSON object that describes the result of the operation and provides the ID of the newly created object:</span>

<span class="rvts6">  
</span>

<span class="rvts6">{"result" : "success", "id" : "D8C328DD186E4059A81555E07E60A210"}</span>

<span class="rvts6"> </span>

##### <span class="rvts16">Example (PowerShell)</span>

<span class="rvts6">This POST call creates a folder entity named “New Folder” at the root of the “myproject” project:</span>

<span class="rvts6">  
</span>

<table border="1" id="bkmrk-invoke-webrequest--u" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td><span class="rvts6">Invoke-WebRequest -Uri "http://localhost/entity.ashx" -Method "POST" -Headers @{"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"; "Accept"="\*/\*"; "Origin"="http://localhost"; "S</span></td></tr></tbody></table>

# Creating an Entity

<span class="rvts6">This call creates a new entity.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">POST</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/entity.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-project-unique-ident"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="76"><span class="rvts6">project</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the project</span>

</td></tr></tbody></table>

</div>##### <span class="rvts6"> </span><span class="rvts16">Post Payload</span>

<span class="rvts6">Text payload containing a JSON dictionary where each entity property appears as a key-value entry.</span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">If completed (200 code), this call returns a JSON object that describes the result of the operation and provides the ID of the newly created object:</span>

<span class="rvts6">{"result" : "success", "id" : "D8C328DD186E4059A81555E07E60A210"}</span>

##### <span class="rvts16">Example (PowerShell)</span>

<span class="rvts6">This POST call creates a folder entity named “New Folder” at the root of the “myproject” project:</span>

<span class="rvts6">  
</span>

<table border="1" id="bkmrk-invoke-webrequest--u" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td><span class="rvts25">Invoke-WebRequest -Uri "http://localhost:58697/entity.ashx?project=myproject" -Method "POST" -Headers @{"Origin"="http://localhost:58697"; "Accept-Encoding"="gzip, deflate, br"; "Accept-Language"="en-US,en;q=0.9,es;q=0.8"; "User-Agent"="custom"; "Accept"="\*/\*"; "Referer"="http://localhost:58697/cloud/project.html?id=myproject"} -ContentType "application/json; charset=UTF-8" -Body "{`"name`":`"New Folder`",`"type`":`"FILE`",`"file\_type`":`"FOLDER`",`"file\_date`":`"1557000140020`",`"file\_folder`":`"0`"}"</span></td></tr></tbody></table>

# Updating an Entity

<span class="rvts6">This call updates the properties of an existing entity.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">POST</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/entity.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-id-unique-identifier"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="76"><span class="rvts6">id</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">project</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the project</span>

</td></tr></tbody></table>

</div>##### <span class="rvts6"> </span><span class="rvts16">Post Payload</span>

<span class="rvts6">Text payload containing a JSON dictionary where each entity property appears as a key-value entry.</span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">If completed (200 code), this call returns a JSON object that describes the result of the operation and the ID of the modified object:</span>

<span class="rvts6">{"result" : "success", "id" : " 953F185BDE91400C94B56E0F69F78B16"}</span>

<span class="rvts6"> </span>

##### <span class="rvts16">Example (PowerShell)</span>

<span class="rvts6">This POST call renames a folder entity:</span>

<span class="rvts25">Invoke-WebRequest -Uri "http://localhost:58697/entity.ashx?id=953F185BDE91400C94B56E0F69F78B16&amp;project=myproject" -Method "POST" -Headers @{"Origin"="http://localhost:58697"; "Accept-Encoding"="gzip, deflate, br"; "Accept-Language"="en-US,en;q=0.9,es;q=0.8"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"; "Accept"="\*/\*"; "Referer"="http://localhost:58697/cloud/project.html?id=myproject"} -ContentType "application/json; charset=UTF-8" -Body "{`"name`":`"My Folder`"}"</span>

# Deleting Entities

<span class="rvts6">This call deletes a list of entities from the project. If the entity has any data associated to it, it will be deleted as well.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">POST</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/entity.ashx </span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-id-unique-identifier"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="57"><span class="rvts6">id</span>

</td><td valign="top" width="567"><span class="rvts6">Unique identifier for the entity</span>

</td></tr><tr valign="top"><td valign="top" width="57"><span class="rvts6">project</span>

</td><td valign="top" width="567"><span class="rvts6">Unique identifier for the project</span>

</td></tr><tr valign="top"><td valign="top" width="57"><span class="rvts6">org</span>

</td><td valign="top" width="567"><span class="rvts6">Organization ID</span>

</td></tr></tbody></table>

</div><span class="rvts6">  
</span>

##### <span class="rvts16">Post Payload</span>

<span class="rvts6">Multi-part form data containing two fields:</span>

<div class="rvps2" id="bkmrk-operation-must-be-se"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="57"><span class="rvts6">operation</span>

</td><td valign="top" width="567"><span class="rvts6">Must be set to “delete”</span>

</td></tr><tr valign="top"><td valign="top" width="57"><span class="rvts6">items</span>

</td><td valign="top" width="567"><span class="rvts6">A string containing the IDs for the entities to be deleted, separated by spaces</span>

</td></tr></tbody></table>

</div><span class="rvts6"> </span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">If completed (200 code), this call returns a JSON object that describes the result of the deletion operation:</span>

<span class="rvts6">  
</span>

<span class="rvts6">{"result" : "success"}</span>

<span class="rvts6"> </span>

##### <span class="rvts16">Example (PowerShell)</span>

<span class="rvts6">This POST request deletes two entities:</span>

<span class="rvts6">  
</span>

<table border="1" id="bkmrk-invoke-webrequest--u" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td><span class="rvts25">Invoke-WebRequest -Uri "http://localhost:58697/entity.ashx?project=myproject&amp;org=2343243456678890" -Method "POST" -Headers @{"Origin"="http://localhost:58697"; "Accept-Encoding"="gzip, deflate, br"; "Accept-Language"="en-US,en;q=0.9,es;q=0.8"; "User-Agent"="custom"; "Accept"="\*/\*"; "Referer"="http://localhost:58697/cloud/project.html?id=myproject"} -ContentType "multipart/form-data; boundary=----WebKitFormBoundaryn7EOnCC1kkG5mYkA" -Body (\[System.Text.Encoding\]::UTF8.GetBytes("------WebKitFormBoundaryn7EOnCC1kkG5mYkA$(\[char\]13)$(\[char\]10)Content-Disposition: form-data; name=`"operation`"$(\[char\]13)$(\[char\]10)$(\[char\]13)$(\[char\]10)delete$(\[char\]13)$(\[char\]10)------WebKitFormBoundaryn7EOnCC1kkG5mYkA$(\[char\]13)$(\[char\]10)Content-Disposition: form-data; name=`"items`"$(\[char\]13)$(\[char\]10)$(\[char\]13)$(\[char\]10)953F185BDE91400C94B56E0F69F78B16 D8C328DD186E4059A81555E07E60A210 $(\[char\]13)$(\[char\]10)------WebKitFormBoundaryn7EOnCC1kkG5mYkA--$(\[char\]13)$(\[char\]10)"))</span></td></tr></tbody></table>

# Getting Entity Files

<span class="rvts6">Some entities may have raw files associated to them. This is the case of raw point clouds and unprocessed block models. Some other entities may have files that are the result of processing spatial data, like a CSV report file, or datasets that have been exported as images, meshes or point clouds.</span>

<span class="rvts6">  
</span>

<span class="rvts6">A single entity may have multiple files associated with it. Each file will have a unique filename under the entity.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">GET</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/file.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-id-unique-identifier"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="76"><span class="rvts6">id</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">project</span>

</td><td valign="top" width="548"><span class="rvts6">Identifier of the project that contains the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">org</span>

</td><td valign="top" width="548"><span class="rvts6">Organization ID</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">filename</span>

</td><td valign="top" width="548"><span class="rvts6">The name of the file inside the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">namehint</span>

</td><td valign="top" width="548"><span class="rvts6">A base64 string that contains a filename that will be suggested by the browser</span>

</td></tr></tbody></table>

</div><span class="rvts6"> </span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">This call returns the contents of the file.</span>

##### <span class="rvts16">Example</span>

<span class="rvts25">http://localhost:58697/file.ashx?org=2343243456678890&amp;project=myproject&amp;id=08A1E6851DFD46F3B0EC958D1118A823&amp;filename=report.csv&amp;namehint=Vm9sdW1lb2ZTcGhlcmUuY3N2</span>

# Uploading Entity Files

<span class="rvts6">Some entities may have raw files associated to them. This is the case of raw point clouds and unprocessed block models. Some other entities may have files that are the result of processing spatial data, like a CSV report file, or datasets that have been exported as images, meshes or point clouds.</span>

<span class="rvts6">  
</span>

<span class="rvts6">A single entity may have multiple files associated with it. Each file will have a unique filename under the entity.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">POST</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/file.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-id-unique-identifier"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="76"><span class="rvts6">id</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">project</span>

</td><td valign="top" width="548"><span class="rvts6">Identifier of the project that contains the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">org</span>

</td><td valign="top" width="548"><span class="rvts6">Organization ID</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">filename</span>

</td><td valign="top" width="548"><span class="rvts6">The name of the file inside the entity</span>

</td></tr></tbody></table>

</div><span class="rvts6"> </span>

##### <span class="rvts16">Post Payload</span>

<span class="rvts6">Multi-form binary data containing the files to upload.</span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">If completed (200 code), this call returns a JSON object that describes the result of the upload operation:</span>

<span class="rvts6">  
</span>

<span class="rvts6">{"result" : "success", "size" : "0"}</span>

##### <span class="rvts16">Example</span>

<table border="1" id="bkmrk-invoke-webrequest--u" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td><span class="rvts25">Invoke-WebRequest -Uri "http://localhost:58697/file.ashx?project=myproject&amp;id=BC094DC8D5CB4D15963D57D13B848A73&amp;org=2343243456678890&amp;partialsize=0" -Method "POST" -Headers @{"Origin"="http://localhost:58697"; "Accept-Encoding"="gzip, deflate, br"; "Accept-Language"="en-US,en;q=0.9,es;q=0.8"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"; "Accept"="\*/\*"; "Referer"="http://localhost:58697/cloud/project.html?id=myproject"} -ContentType "multipart/form-data; boundary=----WebKitFormBoundaryqUAZzU65mbgwqJSz" -Body (\[System.Text.Encoding\]::UTF8.GetBytes("------WebKitFormBoundaryqUAZzU65mbgwqJSz$(\[char\]13)$(\[char\]10)Content-Disposition: form-data; name=`"file`"; filename=`"Points.zip`"$(\[char\]13)$(\[char\]10)Content-Type: application/x-zip-compressed$(\[char\]13)$(\[char\]10)$(\[char\]13)$(\[char\]10)$(\[char\]13)$(\[char\]10)------WebKitFormBoundaryqUAZzU65mbgwqJSz--$(\[char\]13)$(\[char\]10)"))</span></td></tr></tbody></table>

# Uploading large files

<span class="rvts6">In occasions, file sizes can be prohibitively large for uploading using the REST interface, as some services have file limits of 2GB or 4GB for a single file size.</span>

<span class="rvts6">In these cases, there are alternatives to consider:</span>

1. <span class="rvts6">If the files have not been compressed, consider placing them into a ZIP archive before uploading. The processor system will unpack the files.</span>
2. <span class="rvts6">If the entity type allows, consider splitting the spatial data into several files that under the required limit.</span>
3. <span class="rvts6">Bypass the REST upload altogether, and upload directly to the storage system, for instance AWS S3 or Azure Blob Storage.</span>

<span class="rvts6">The following sections cover how to upload data directly, depending on the storage system in use.</span>

<span class="rvts6">  
</span>

##### <span class="rvts16">Uploading data directly to Azure Blob Storage</span>

<span class="rvts6">In order to upload data directly into Azure Blob storage, it is necessary to know how storage keys are composed in the system.</span>

<span class="rvts6">The keys in Azure are composed using the following syntax:</span>

<span class="rvts6">&lt;OrganizationID&gt;@&lt;ProjectID&gt;@&lt;EntityID&gt;@&lt;FileName&gt;</span>

<span class="rvts6">Where:</span>

<span class="rvts6">OrganizationID - Set to 2343243456678890</span>

<span class="rvts6">ProjectId - The ID of the project that contains the data entity</span>

<span class="rvts6">EntityId - The ID of the entity that will contain the file</span>

<span class="rvts6">FileName - Name for the file</span>

<span class="rvts6">Here is one particular examples of such a key:</span>

<span class="rvts6">2343243456678890@03684CA0F35947EC8243E52972CA3E70@3AC3A444AF414041A0668032536697AD@myblockmodel.zip</span>

<span class="rvts6">This key/blob pair should be created in the Blob Container that is used by the deployment.</span>

<span class="rvts6">  
</span>

##### <span class="rvts16">Uploading data directly to AWS S3</span>

<span class="rvts6">In order to upload data directly into AWS S3, it is necessary to know how storage keys are composed in the system.</span>

<span class="rvts6">The keys in Azure are composed using the following syntax:</span>

<span class="rvts6">&lt;OrganizationID&gt;@&lt;ProjectID&gt;@&lt;EntityID&gt;@&lt;FileName&gt;</span>

<span class="rvts6">Where:</span>

<span class="rvts6">OrganizationID - Set to 2343243456678890</span>

<span class="rvts6">ProjectId - The ID of the project that contains the data entity</span>

<span class="rvts6">EntityId - The ID of the entity that will contain the file</span>

<span class="rvts6">FileName - Name for the file</span>

<span class="rvts6">Here is one particular examples of such a key:</span>

<span class="rvts6">2343243456678890@03684CA0F35947EC8243E52972CA3E70@3AC3A444AF414041A0668032536697AD@myblockmodel.zip</span>

<span class="rvts6">This key/blob pair should be created in the S3 Bucket that is used by the deployment.</span>

# Retrieving Processing Log Files

<span class="rvts6">This call retrieves the processing log for an entity.</span>

##### <span class="rvts16">Method</span>

<span class="rvts6">GET</span>

<span class="rvts16">URL</span>

<span class="rvts6">&lt;server&gt;/file.ashx</span>

##### <span class="rvts16">Parameters</span>

<div class="rvps2" id="bkmrk-id-unique-identifier"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="76"><span class="rvts6">id</span>

</td><td valign="top" width="548"><span class="rvts6">Unique identifier for the entity</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">project</span>

</td><td valign="top" width="548"><span class="rvts6">Project identifier</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">org</span>

</td><td valign="top" width="548"><span class="rvts6">Organization identifier, use 2343243456678890</span>

</td></tr><tr valign="top"><td valign="top" width="76"><span class="rvts6">filename</span>

</td><td valign="top" width="548"><span class="rvts6">Set to processor.log</span>

</td></tr></tbody></table>

</div><span class="rvts6"> </span>

##### <span class="rvts16">Returns</span>

<span class="rvts6">This call returns a text file that contains the processing log.</span>

##### <span class="rvts16">Example</span>

<span class="rvts25">http://localhost:58697/file.ashx?org=2343243456678890&amp;project=18ACF0074ED64B49851033071EA6F401&amp;id=7D5F61152A14495F9BD2216DE59FE778&amp;filename=processor.log</span>

# Adding versions to Workflow Products

<span class="rvts6">The process of triggering a new version for a Workflow Product involves the following general steps:</span>

<span class="rvts6">  
</span>

1. <span class="rvts6">Upload all required files in the designated drop-zone blob container</span>
2. <span class="rvts6">Once all required files have successfully uploaded, upload one additional file named "manifest.json" to the designated drop-zone blob container</span>

<span class="rvts6">  
</span>

<span class="rvts6">The "manifest.json" file contains the following properties:</span>

<span class="rvts6">  
</span>

<div class="rvps2" id="bkmrk-project-unique-ident"><table border="1" cellpadding="7" cellspacing="-1"><tbody><tr valign="top"><td valign="top" width="85"><span class="rvts6">project</span>

</td><td valign="top" width="538"><span class="rvts6">Unique identifier for the project</span>

</td></tr><tr valign="top"><td valign="top" width="85"><span class="rvts6">product</span>

</td><td valign="top" width="538"><span class="rvts6">The identifier for the Workflow Product</span>

</td></tr><tr valign="top"><td valign="top" width="85"><span class="rvts6">files</span>

</td><td valign="top" width="538"><span class="rvts6">A JSON array of strings, where each string contains a path relative the drop-zone blob container for a file that should be attached to the new version</span>

</td></tr><tr valign="top"><td valign="top" width="85"><span class="rvts6">properties</span>

</td><td valign="top" width="538"><span class="rvts6">A JSON object containing a dictionary of properties that will be associated with the new version. Values must be strings.</span>

</td></tr></tbody></table>

</div><span class="rvts6">  
</span>

<span class="rvts6">Example of a "manifest.json" file:</span>

```json
{

    "project" : "D1847E42C5964B2DAED3B8DBE1C8B6CF",
    "product" : "COM_SURF",
    "files" : ["EOM_220130.zip"],
    "properties": {
        "custom_0" : "value 1",
        "custom_1" : "value 2"
    }
}
```

<span class="rvts6">This example creates a new version in the COM\_SURF product for the specified project. The version will be produced using the "EOM\_220130.zip" which must have been previously uploaded to the same blob container as the "manifest.json" file. The example adds two custom properties to the version: "custom\_0" and "custom\_1".</span>

<span class="rvts6">  
</span>

<span class="rvts6">This is the JSON schema for the "manifest.json" file:</span>

```json
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project": {
      "type": "string"
    },
    "product": {
      "type": "string"
    },
    "files": {
      "type": "array",
      "items": [
        {
          "type": "string"
        }
      ]
    },
    "properties": {
      "type": "object"
    }
  },
  "required": [
    "project",
    "product",
    "files"
  ]
}
```