# 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"
  ]
}
```