A frequently requested feature is to allow more flexibility when it comes to choosing how different upload files are processed.

At this point our robots are already smart enough to not touch files they don't know how to handle, so a video robot would silently ignore image files. This makes it really easy to use the same Assembly for upload forms where the user is free to upload whatever media file he desires.

However, of course there are other conditions than file type that may lead to a different treatment of the file. As of today we're adding the first new condition which allows you to execute a given Step based on the name of the form field the file was uploaded with.

Usage is as simple as:

  steps: {
    encode: {
      robot: "/video/encode",
      use: {
        fields: ["raw_video"]
    store: {
      robot: "/s3/store",
      use: [":original", "encode"]

In this Assembly, a video would only be encoded if it was uploaded using the field name "raw_video". Otherwise the video is taken as-is and directly uploaded to S3.

Going forward we are planning to add more conditions that will also allow you to make your Steps choose their input using the meta data of the incoming file.

PS We have also updated the docs.