Ooyala Flex 6.1.0 Release Notes 2017-11-08

What's New

Subtitle Support

We have added the ability to view subtitles for assets that have been uploaded to MAM.

Note: the subtitles feature must be configured in Core before it can be used in MAM. To configure subtitles, you must do the following:
  1. Upload an MXF OP-1a input media file with OP-47 teletext subtitle.  
  2. Configure an Extract Subtitle Resource plugin.
  3. Create an Extract Subtitle action.
  4. Start the Extract Subtitle action.
Note: at present the output files for subtitles are WebVTT or SRT.

Subtitle Service

With the introduction of the subtitles feature, we have added a new Subtitle service. This service manages the extraction of subtitles from media asset files, and transcodes subtitle files from one format to another.

Ooyala Flex Query Language in MAM

We have added support for the Ooyala Flex Query Language in MAM. The FQL allows for complex search queries to be carried out directly in MAM.  This includes a new search bar with a drop down which recommends query parameters that can be used to either narrow or widen a search.

Timelines: Custom Marker Configuration in the Metadata Designer

We have added the ability to upload an image to act as a custom marker on a timeline. This is done usng the Metadata Designer.

Custom markers must be uploaded to Ooyala Flex using the Metadata Designer. Only then are the markers associated with the specific metadata definitions and timelines.

Timelines: Custom Markers in MAM

We have added the ability to add custom markers to timelines in MAM.

Example: various events occur throughout a football match (soccer match), such as yellow cards, red cards, injuries, goals, and free kicks. Custom markers can be used to differentiate between these events. A goal could be represented by a football icon, and an injury might be represented by an icon of a bandage, and so on.


Subtitle Support: we have added a new REST endpoint that retrieves a list of subtitle assets.

Resource Endpoint Method
assets: /assets/{assetId}/subtitles get

With the introduction of this new subtitle endpoint, we have also extended the functionality of the assets endpoint in the following ways:

  • We have updated the api/assets endpoint so that users can retrieve a list of subtitle assets and technical metadata information, as well as create new subtitle assets.
  • We have updated the api/assets/{assetId} endpoint so that users can update an existing subtitle asset.

Panel URL Evaluation: we have added an endpoint that evaluates panel URLs.

Resource Endpoint Method
evaluation: /evaluation post

New Matrix Parameters

We have added two new matrix parameters to the assets/<assetId> endpoint. These are:

  • publishedFrom
  • publishedTo
These matrix parameters enable users to search assets published from a certain date, or published up to a certain date.

Web Transfer: Multi-language UI

The Web Transfer UI is now available in different languages, which can be selected using a drop-down menu.

Note: Currently, the available languages are English, Romanian, and Japanese.

Ooyala Flex Query Language

A new SORT BY operator has been added to FQL. It enables users to sort by a given field. This includes sorting in ascending and descending order.

Note: If an order is not specified, it will sorted by ascending order by default.

Example:  brand = Motorola OR description = G3 SORT BY id ASC

SDK: Support for viewing and editing tag metadata fields

In the SDK we have added support for retrieving and setting the value of a tag field (as an array). This supports specifying the value of the tag (rather than the ID).

An example of a GET is as follows:

metadata.getField("tag-field").getValue() // Returns ["tag1", "tag2"]

An example of setting the value is as follows:

metadata.getField("tag-field").setValue(["tag3", "tag4"])


The following plugins are new:

  • Extract Subtitle Resource: Extracts subtitles of OP-47 format. MXF OP-1a input media file with OP-47 teletext subtitle as input and WebVTT/SRT file as output is supported in this version of the resource.
  • Encode Subtitle: This creates a WebVTT file from an SRT.
  • Extract Subtitle Technical Metadata: Extracts technical metadata from the subtitle file.
  • Extract Technical Metadata: Extracts technical metadata from an SRT or a WebVTT file.
  • Backlot Bucket-to-Bucket Ingest Monitoring:  This plugin works together with the Backlot Bucket to Bucket Publish action plugin. When the Backlot Bucket to Bucket Publish plugin triggers an ingest by uploading a manifest file, the Backlot Wait for Live Status action monitors the ingest. A new field, Account Name, has been added to the Publish Action plugin. This field allows to you provide an account name for accessing Azure blob storage. This is only applicable for the Azure Blob Storage (AZBS) protocol.

AWS-JAVA-SDK and HTTP Client Dependency Upgrade

The following dependencies have been updated:

  • Updated aws-java-sdk, HTTP Client and Jackson2
  • Jboss (docker image for 6.1.0 (master) enterprise)  
  • Flex Enterprise BOM
  • Flex Enterprise Commons Library
  • Flex File System Library

Issues Fixed

Ooyala Flex Enterprise API can't serve more than 60 requests per second

A load test to fetch asset metadata via the REST API was performed and it was found that Ooyala Flex Enterprise couldn’t handle more than 60 requests per second.


  • The operation to encrypt the password was slow. To solve this we have introduced a cache in the JAAS login module (MioDatabaseServerLoginModule).
  • We have introduced a separate datasource for the JAAS authentication module. Previously, JAAS was using same datasource that was used by Ooyala Flex Enterprise and this was causing an issue with the connection pool.
  • The above changes are covered by feature toggles. The consul key is: flex/shared/flex-enterprise/featureToggles/useAuthCache. By default this feature toggle is disabled. It can be enabled by setting the flex/shared/flex-enterprise/featureToggles/useAuthCache key in consul with a value of “true”.

Service is crashing due to OOM prevented the merge from continuing after a restart

The metadata definition was updated by adding a new field in a system with a large number of assets (all associated with that metadata definition). This triggered a merge; however, due to memory settings, the merge service quickly ran out of memory and crashed. The second metadata merge instance did not pick this merge up, even after the first instance was restarted. The merge could only be resumed by deleting the associated row in the database (METADATA_STATUS table).

Resolution: The batch size was fixed to process 250 metadata instances per batch and due to that, hibernate was keeping all the metadata instances in session until the entire batch was complete. In the case of large metadata instances, this resulted in out of memory error.The code is now updated to calculate batch size based on the number of metadata variables in the metadata definition. The batch size is now defined as number of variables to be processed in the batch, rather than the number of instances.

Search for External IDs is not working from general options

Users found that when they searched for a specific list of external IDs from the General Options section in Core, all results were returned, instead of results that just matched the specified search criteria.

Resolution: External IDs should be searched in colon separated key value pairs.

Cannot run Import command as a group job

Users found that the Import action's run rule expression blocked jobs from running against an asset group. This meant it could not be run as a group job on a group of asset placeholders.


  • Previously it was not possible to run an import action against a group asset, but we have now made a change that means that when the asset import action is run against a group asset and the group asset has more than one media placeholder, the import action job will be completed on each placeholder.
  • We have updated the run rule for the Import action.

Error in Index Elastic when indexing full text metadata

Users found an error in Index Elastic when indexing metadata full text metadata.

Resolution: it was found that we were storing space delimited words in metadata full text fields and all those words combined as a single token were stored in metadataFullText.raw for exact matching of all words. This wasn't required as we have removed metadataFullText.raw field.

Not able to execute action visibility

Some users found that if an action was created, and the visibility for this action was given to an account, when a holder of this account tried to execute that action in MAM, the action page only displayed a loader.

Resolution: The action now displays as expected.

Searching across temporal metadata is not working with date fields

When users performed a search across temporal metadata, they found that date fields were not displayed in the results.

Resolution: We have modified the dynamic templates to cover annotation metadata fields. Date fields are now showing up in temporal metadata searches.

Searching for jobs and workflows by ID doesn't show results

When users searched for jobs and workflows by ID, it was found that the search results were not displayed, unless the drop down button next to the search was selected or if a specific ID was selected.

Resolution: The search results are now displayed correctly.  Jobs and workflows can only be searched for by ID, when a valid number is specified in Search For box, irrespective of whether an ID is selected or not.

Visibility set on an action in Ooyala Flex UI doesn’t apply in MAM

The visibility that is set in Ooyala Flex did not apply in MAM.

Resolution: The proper permissions now apply in MAM.

MAM: Creating an instance for a workspace specific udot shows error

When users created an instance for a workspace specific user defined object type, they found that an error was displayed that meant the instance could not be created.

Resolution: We have added validation for user defined object types (add / edit) API and Enterprise for all API endpoint prefixes. We have also added caching functionality to load all API endpoints.

Usernames with special characters are not being created

Users whose names contained special characters were not visible in Flex, and new  users whose names contained special characters were unable to be created. The issue was found to have started after an upgrade from one version of Ooyala Flex to another.

Resolution: We have modified the code, so that user names can contain all special characters with the exception of the following characters: '>','<','/','\'

Flex Publish: Subaccount publish does not work when subaccount has its own token

If users created a metadata definition and assigned it to a subaccount which included the storage resource and token field for Publish, then that subaccount would have its own token for Publish.

However, when it was a subaccount, the object would retrieve the assigned account ID along with the parent account ID, and subaccount ID. When it comes to the subaccount ID, publish expects to receive the account ID that corresponds to the account provided, and because the provided token was the subaccount ID, the publish would fail.

Resolution: We have implemented some changes so that when the subaccount has its own metadata and publish token, and you publish the assets, the account ID is set with the subaccount ID.  If the subaccount is using the token from the parent account, you need to set the account ID with the parent account ID and set the subaccount ID with the subaccount ID.

Remote SSH Command Line message - increase text size

The action configuration of the Remote SSH Command Line Message action truncated long command strings, causing the job to fail.

Resolution: The Command field type was changed from a string to text, so more than 500 characters can now be stored.

Not able to enable newly created users with UTF characters in username

Usernames containing UTF characters apart from ‘<’, ‘>’, ‘/’, and ‘\’ could not be enabled.

Resolution: Usernames containing any UTF characters apart from the above can now be used.

Searching for jobs and workflows by ID doesn't show results

When users searched for jobs and workflows by ID, it was found that the search results were not displayed, unless the Select All option next to the search field was selected, or if a specific ID was selected.

Resolution: The search results are now displayed correctly. By default, jobs and workflows are searched for by ID when a valid number is specified in the Search For box, irrespective of whether ID is selected as the search target option.

MAM: Creating an instance for a workspace specific UDOT shows an error

When users tried to create an instance for a workspace specific User Defined Object Type in MAM, an error would occur.

Resolution: Validation has been added for User Defined Object Types (add / edit) API and in Core for all API endpoint prefixes. Caching functionality has also been added in order  o load all API endpoints.

Breadcrumbs not created for new objects and assets

Users found that new UDOs and assets created after the 6.0 upgrade did not have any breadcrumbs displaying on the asset. This made navigation impossible. Assets created before the upgrade retained their breadcrumbs but new ones do not.

Resolution: Bread crumbs now appear correctly for assets post 6.0 upgrade.

Known Issues

MAM Advance Search

The advanced search for metadata in MAM does not show metadata definitions for user defined objects. Users can only search for definitions for assets (media \ image) despite the fact  you can find objects in an ordinary text search.

At present, in order to see metadata definitions in advanced searches, the metadata definition needs to be associated with a type (media / image). Once the metadata is visible in the Advanced Search section it works correctly.

Web Transfer: Selected language should be highlighted in multi language dropdown

When users select a language from the multi language dropdown in the Web Uploader, the language should be highlighted. At present the selected language is not highlighted.

The incorrect count appears in API results

When users assign any inbox resources to multiple accounts a case count mismatch occurs with the list due to the same resource rendering in the count query.

Sorting Is not working for imageFormat

Sorting is not working correctly for imageFormat. It was found that the code responsible for sorting the image file type with imageFormat was not present.


Metadata Commons: Fails to convert JSON to metadata when MioOptionChildVariable is present

The following issues were found in MAM. These will be fixed in upcoming releases.

Searching for image and file variables for metadata schemas is not working

Search for image and file variables in MAM using the Flex Query Language is not working correctly. This will be fixed in upcoming releases.

When specifying an object type in a search, you must specify the object ID

Currently, the only way to search for an object type using FQL in MAM, is to specify the ID for the object. This will be fixed in upcoming releases.

Searching for dates in MAM using FQL

At present, when searching for a specific date you must specify the date using epoch in milliseconds. This will be fixed in upcoming releases so that dates can searched using a human readable format.  

FQL search suggestions doesn’t work for complex variables

Currently users are unable to search for complex variables. This will be fixed in upcoming releases.

FQL Suggestions differ on every call

Search suggestions differ when the same search criteria is entered on multiple occasions. This will be fixed in upcoming releases.

Certain search terms in MAM FQL should be case-insensitive

Some search terms in FQL are not case-insensitive. For example: If you search for "format"= mp4, no results are returned. However, if you search for "format"= MP4, FQL successfully returns all assets that are of an MP4 format. This will be fixed in upcoming releases.

Some suggestions listed in FQL may not be relevant to the objects available in MAM

Some users may find that when FQL suggests query parameters, they may not always be relevant to all the objects currently available in MAM. This will be fixed in upcoming releases.

Buttons do not display correctly in action dialog boxes

When viewing action dialog boxes in MAM, some of the buttons are displaying incorrectly. This will be fixed in upcoming releases.

Upgrade Instructions

Please take note of the following upgrade instructions:


Please delete the following RabbitMQ queues via the RabbitMQ UI:

  • All queues beginning with "amq.gen-"
  • flex.job.execution.request.queue


ArangoDB has been upgraded to 3.2. This requires taking a backup of all existing databases, destroying the existing cluster, and restoring the backup into a new 3.2 cluster.


A reindex is required for adding the new suggestion index in elasticsearch. See the Reindexing guide for more information on how to perform a reindex.


Service Version Notes
flex-admin-app 2.0.512  
flex-authentication-service 7.5.357  
flex-authorisation-service 2.3.370  
flex-dataagreggation-service 1.4.377  
flex-divarchive-service 2.1.407  
flex-events-service 2.7.411  
flex-fastobject-service 3.4.431  
flex-forms-service 0.0.222  
flex-imageproxy-service 3.2.356  
flex-indexelastic-service 5.10.457  
flex-mam-app 4.6.1251.1-bugfix-4.6.1251.1  
flex-metadatadesigner-app 2.2.1140  
flex-metadatamerge-service 2.3.424  
flex-outboundtransfer-service 2.0.279  
flex-publish-service 9.3.464  
flex-reviewer-app 3.1.554  
flex-searchelastic-service 5.2.636  
flex-streamprocessor-service 1.1.101  
flex-subtitle-service 1.0.153  
flex-tag-service 1.0.792  
flex-thesaurus-service 0.1.875  
flex-webtransfer-app 7.0.594  
flex-workflowdesigner-app 7.1.277