Vidispine
Release Notes [VF 21.3 RN]
The following items on the list encompass breaking changes, features, and fixes that are relevant for the major release.
Release Notes are divided into the following sections:
- 1 Release 21.3.115
- 1.1 Setup and Operations
- 1.2 Features
- 1.2.1 New and Adapted Agents and Tasks
- 1.2.1.1 List of New Tasks
- 1.2.1.1.1 CopyOriginalImageMetadataToItem
- 1.2.1.1.2 WaitForJobState
- 1.2.1.1.3 Flatten WorkflowObjects Data Structure
- 1.2.1.1.4 Remove Item From All Collections
- 1.2.1.1.5 Additional new tasks
- 1.2.1.2 List of Adapted Tasks
- 1.2.1.2.1 TrimMxfAgent
- 1.2.1.2.2 FindLastItem
- 1.2.1.2.3 TranscoderS4M via Linux
- 1.2.1.1 List of New Tasks
- 1.2.2 Workflow documentation features
- 1.2.3 Rule Designer
- 1.2.4 Workflow Designer
- 1.2.5 Workflow Monitor
- 1.2.5.1 More search results
- 1.2.5.2 Filter to exclude workflow names
- 1.2.5.3 Changes on time values
- 1.2.5.4 Filter for current user
- 1.2.5.5 Support of freetext query parameter
- 1.2.5.6 Configure shown columns
- 1.2.5.7 Expand / collapse selected workflows
- 1.2.6 Prioritization of Workflows
- 1.2.6.1 Workflow Designer
- 1.2.6.2 Migration
- 1.2.6.3 Limitations
- 1.2.7 Cron Workflows
- 1.2.8 VidiCore Libraries
- 1.2.9 Access to multiple metadata fields in workflows
- 1.2.10 Performance and stabilization improvements
- 1.2.10.1 Changed retry strategy for REST calls
- 1.2.10.2 Task contracts show Rabbit queue
- 1.2.10.3 Agent logging supports analysis of specific task executions
- 1.2.10.4 DotNet Diagnostic Tools bundled
- 1.2.10.5 Additional improvements
- 1.2.11 ConfigPortal Improvements
- 1.2.1 New and Adapted Agents and Tasks
- 1.3 Fixes
Release 21.3.115
Setup and Operations
Component updates
The following central components were updated and will be shipped in the noted version:
Component | Version |
---|---|
VidiCore | 21.3 |
ConfigPortal | 21.3.41 |
AuthService | 21.3.9 |
MediaFramework (Linux) | 21.3.19 |
MediaFramework (Windows) | 21.1.7 |
VideoEngine Images | 21.3.90 |
Angular | 12 |
BPMN.io | 1.3 |
RabbitMQ | 3.8.14 |
RabbitMQ Operator | 1.5.0 |
Powershell | 7 |
Setting helm atomic flag per helm chart
The global helm chart atomic and roleback flags can now by overwritten per helm chart (item 180389).
Important deployment information
Due to changes in the Kubernetes API, Kubernetes 1.22 is currently not supported by VidiFlow in Release 21.3. It is planned for 21.4, that newer Kubernetes versions be supported again.
The update for RabbitMQ to version 3.8.14 will not work with just one instance of RabbitMQ installed.
It is mandatory to use Powershell 7 or later for the deployment of VidiFlow.
Features
New and Adapted Agents and Tasks
All tasks can be selected via VidiFlow’s Workflow Designer. The tasks and their input and output parameters are documented in the Workflow Designer itself after choosing a task.
If not stated differently, all changes are just implemented in the Linux/Docker version only.
List of New Tasks
CopyOriginalImageMetadataToItem
Images often contain metadata stored in IPTC, EXIF or other formats. While importing such a file, VidiCore reads this metadata and stores it at the videoComponent for the image in different metadata fields.
The new task CopyOriginalImageMetadataToItem can be used to copy all of this data to one metadata field called V3_Orignal_Image_Source_Metadata at the item, separated by newline character. This allows searching and showing for this metadata from the VidiCore index. Additionally, the id of the shape the data was read from is stored in the metadata field V3_Orignal_Image_Source_ShapeId.
Currently, only IPTC and EXIF data are supported.
WaitForJobState
When starting jobs in VidiCore it is important to be able to wait for specific job states reached, before continuing a VidiFlow workflow. This is simplified now by the new agent WaitForJobState. Given the Job ID, the state to wait for, a poll interval and a timeout value, this task wait for the job state to be reached. Currently allowed states are STARTED and FINISHED.
Flatten WorkflowObjects Data Structure
This new task is intented to parse a WorkflowObjects structure and flatten recursively all included collections to a list of items or partial items. These are returned in another WorkflowObjects.
Remove Item From All Collections
Items can be part of any number of collection. If users want to explicitely delete an item, this may not be possible as the collections may inherit deletion locks to the item. With this new task an item can be deleted from all collections containing it. Note that the task execution will be affected by access rights.
Additional new tasks
List of Adapted Tasks
TrimMxfAgent
A new minor task version was implemented to support an additional optional parameter PartialItemPlatformUri. When given, the trimmed file will be attached as a shape to this item and no new item will be created.
FindLastItem
The task FindLastItem brings a new major task version which through an interrupting boundary event ItemNotFound to indicate in case no matching item can be found.
TranscoderS4M via Linux
As the media processing jobs are often resource consuming it may be needed to them to dedicated Kubernetes nodes that provide resources or even use a scalable service like AWS Fargate. In VidiFlow 21.1 the node affinity of the media processing job was set to the node affinity of the executing agent. In VidiFlow 21.3 this can be configured separately from the affinity of the executing agent.
Workflow documentation features
Users want to document their work on workflows in several sections. To support this, the following new features are part of VidiFlow 21.3:
The workflow documentation field allows one to enter a detailed documentation for any workflow.
Commit messages support saving a description when saving a workflow to document the changes in the new version.
Input and output parameters can be documented new via description and examples.
For more information, please view Documenting Workflows in the Designer [ENT 21.3 OG] .
Rule Designer
The UI of the Rule Designer has been changed due to a new version of BPMN.io (DMN 1.3)
It also comes with a new rule format, that is saved as a new version. UI always shows the new version
Use '+' to create columns
Some things have been simplified
Please refer to the Camunda documentation for more details: https://bpmn.io/blog/posts/2020-dmn-js-8-0-0.html
Workflow Designer
Undo-redo and Copy-paste
The Workflow Designer now supports undo-redo and copy-paste functions. Important rules apply to these. For more information, please view Copy-Paste and Redo/Undo [ENT 21.3 OG] .
Highlight tasks with missing parameters or undefined boundary event names
Tasks with missing parameters or undefined boundary event names are often a cause for errors when saving or running workflows. Any task with missing parameters is highlighted now in red color. Defined boundary events without a a chosen name are highlighted in the same way.
For more information, please view Tasks with Missing Parameters and Undefined Boundary Event Names [ENT 21.3 OG].
Search for Task Names or IDs
Users can utilize Strg-F to search for Task Names, Tasks IDs or other aspects of the workflow.
Save animation
For longer lasting operations a UI animation is shown by WF Designer. The UI is blocked in the meanwhile for user interactions.
Improved error messages
Workflow Designer shows improved error messages now for many situations.
Workflow Monitor
VidiFlow 21.1 introduced a full new version of Workflow Monitor. The following improvements are available in the Workflow Monitor in VidiFlow 21.3.
More search results
Workflow Monitor 21.1 was limited to 1.000 results. Version 21.3 now brings up to 10.000 results in the result list. The performance was increased accordingly to allow for more results.
Filter to exclude workflow names
In order to filter for specific workflow names, you can exclude workflow names from the list by selecting the checkbox “Exclude selected workflows” on the filter dialog. For more information please view Workflow Monitor [VF 21.3 UG]
Changes on time values
The format used for the column and filter “start time” adapts fully to the browsers language settings.
Task properties in the details view now also show seconds for the start and end time.
Filter for current user
It is now possible to filter for workflows executed by the currently logged in user in Workflow Monitor by pressing the button “current user” in the user filter page.
Support of freetext query parameter
The query parameter “?freeText=…” is now supported again.
Configure shown columns
Columns can be shown or hidden in Workflow Monitor. For more information, please view Workflow Monitor [VF 21.3 UG] .
Expand / collapse selected workflows
One can now select one or multiple workflows and expand or collapse all sub-workflows.
Prioritization of Workflows
VidiFlow 21.3 comes with new options for prioritizing workflows and tasks.
Prioritization offers one the possibility to set a workflow instance priority when starting a workflow or to change it on running workflows. This will not affect the priority of the workflows itself in Camunda, but it will use the current priority of a workflow to automatically adopt the priority for all tasks in the Rabbit MQ message bus. For more information please view Workflow Monitor [VF 21.3 UG] .
Workflow Designer
The priority of a workflow instance can be accessed in the Workflow Designer via the variable WorkflowInstancePriority. This variable can be changed to another value from inside the workflow execution of from outside via the Workflow Monitor (see Release Notes [VF 21.3 RN] | Workflow Monitor.1).
For more information, please view Prioritizing Workflows in the Designer [ENT 21.3 OG].
Migration
All Rabbit MQ agent queues need to be migrated in order to support priority queues. There’s a migration script that needs to be manually invoke with the agents shut down in order to ensure all the messages are migrated correctly. If queues still have consumers when the script runs, those queues are skip, mentioning the found consumers. The script can be called subsequently.
Please refer to the setup guide for details of the migration script.
Limitations
Priority can only be set for Linux based agents, all service fabric tasks have the same priority.
Changes in fetch-and-lock mechanism in the Camunda Broker will lead to larger log files.
The feature can lead to higher load in Camunda Broker in different situations, but should smoothen over time.
Cron Workflows
Cron workflows allow one to trigger workflows recurringly.
For the configuration of Cron workflows, please refer to Functional Use Case Category Cron [ENT 21.3 OG].
Cron Workflows are executed by the new service CronWorkflowScheduler. They can be monitored in the new Hangfire Dashboard Cron Workflow Scheduler Service Dashboard.
VidiCore Libraries
Libraries are a way to collect different items with the ability to have the library content dynamically updated based on a query (see https://apidoc.vidispine.com/latest/item/library.html). For more information please view Global Configuration Libraries [ENT 21.3 OG] .
In Workflow Designer a library’s items can be accessed by the new task “Get Item IDs Of Library“, using the libraries configured in ConfigPortal.
Access to multiple metadata fields in workflows
Before release 21.3 it was possible to read either one metadata field or alternatively all metadata fields from VidiCore objects. Now the following additional options are available:
Task Get Object Metadata Values
Reads metadata values for fields provided in a list for a given VidiCore object.
Task Get Key-Value Metadata Values
Reads key-value metadata values for a given VidiCore object.
Task Get Metadata Values using Content Path
Gets metadata values for a VidiCore item using the content path syntax. Support object and technical metadata.
Performance and stabilization improvements
VidiFlow has experienced various performance and stabilization improvements in key components.
Changed retry strategy for REST calls
The retry strategy for REST calls was changed in the following aspects:
For most services, a retry will be done automatically independently of the returned error code. This is because many services do not provide a perfect HTTP error code handling. For Vidispine’s own services a different strategy is implemented which does not perform any retries for HTTP 4xx codes (with exception of 408, 429).
A de-escalating retry strategy is now implemented which increases the timeout between consecutive retries each time. General retry time is about 4.5 minutes as before, but with much fewer calls.
Task contracts show Rabbit queue
All VidiFlow tasks inform now automatically about the used message bug queue name. This can be seen in the Agent’s Contract overview:
Agent logging supports analysis of specific task executions
All log entries from agents that belong to one task have now a unique ID (“external task ID”. That allows filtering for all messages from one task in Kibana to see them in chronological sequences.
DotNet Diagnostic Tools bundled
All VidiFlow agents and services container images will now contain the following Microsoft .NET diagnostic tools for performance troubleshooting and diagnosing. The tools are available in the folder /tools.
dotnet-trace
dotnet-counters
dotnet-dump
Additional improvements
Item # | Item |
---|---|
188313 | FC: Enlarge general REST call timeout |
187711 | VidiFlow Components: Allow https endpoint and credentials for external Elasticsearch cluster |
ConfigPortal Improvements
The following improvements were done in ConfigPortal:
Support of MaxConcurrentConnection for CP API
CP API supports now the Kestrel MaxConcurrentConnection (item 188179) to prevent thread starvation issue that caused the application to became unresponsive with too many concurrent requests. Values can be changed in CP API appsettings.json. The default value is set to 0 (no limitation).
Configure VidiCore thumbnail options
ConfigPortal offer now (item 163924) the ability to configure the different option for saving thumbnails (see https://apidoc.vidispine.com//latest/system/thumbnails.html#how-thumbnails-are-saved-on-disk).
Additional improvements for ConfigPortal
Item # | Item |
---|---|
188178 | CP: Retry on transient error in CP UI |
188321 | CP: add inheritance for metadata groups |
187870 | CP: Improve resolve on UseCase with large number of Configuration |
Fixes
Item # | Item |
---|---|
184311 | AddFileToPlaceholder task: Side car file import should be deactivated by default |
187228 | FileUpload workflows should be triggered as the user that uploads the file |
188432 | Download helm charts issues with Helm 3.6.1 |
188680 | Camunda call activity plugin - ConcurrentModificationException |
188687 | WF Monitor: Page number is not stored after come back from wf detail view |
188712 | WF Monitor: Expanded workflows are not expanded after a reload |
188908 | WF Monitor: Change page needs to scroll up automatically |
187921 | WF Monitor: Filter for state 'failed' not working |
187922 | WF Monitor: Remove text from search field and press enter doesn't do anything |
188004 | WF Monitor: Text box filter doesn't work correct in combination with workflow name filter |
187920 | WF Monitor: Filter for WF name is not showing all workflow names |
188175 | Wf Monitor: Redundant API call when refreshing page |
188434 | WF Monitor: Duplicates request when expanding and loading state (possible infinite loop) |
189521 | WF Monitor: State does not apply after switch to detail and back to overview page |
189529 | WF Monitor: Selection on refresh |
189823 | WF Monitor: Search filter does not reset when empty out the search text |
189734 | WF Monitor: State button doesn't get update automatically |
189599 | WF Monitor: Multiple calls when expanding workflows that are still updating progress |
187680 | CP: read-only role for WF Monitor |
190322 | CP: UseCaseConfiguration failed at Resolved CustomInput_SystemEndpoint with null value |
188293 | Transcoder S4M:Problems mixing via Linux Use Cases with enabling/disabling and SF use cases |
188612 | TranscoderS4M: Problems handling audio source files |
188814 | Transcoder S4M: S3 Secret Access Key with '/' does not work |
188719 | Transcoder S4M: Node affinity not working for Linux Transcoding |
187069 | TranscoderS4M: option to disable video or audio part of container |
189064 | TranscodeS4MProxyViaLinux TargetFilename needs an Extension |
185036 | TranscoderS4M: Succeeds although keyframes are not generated |
183888 | Unable to resolve #{SourcePlatformUri} in Vidispine Tasks |
185677 | Vidispine Server Agent Crashes Every 24 Hours |
188693 | RabbitMQ endpoint in Camunda config always points to cluster-internal endpoint event if external RabbitMQ endpoint is configued |
187488 | MetadataEditor value reverted when saving 2nd time |
187610 | AddFileToItem: Misleading error statement |
187974 | Boundary events: Rabbit messages must not have TTL |
187822 | WF API service: Remove CP, Camunda health check |
188169 | WF Designer: Reduce unnecessary call to cp api |
188320 | Possible memory leak on different agents in 21.1 |
188656 | DeleteFile does not throw ProtectedByDeletionLock InterruptingEvent |
188944 | Remove VidiCore endpoint from Portal |
189928 | Deployment: Wrong VidiCore agent logrotate config map |
189397 | Default Values for Camunda installation |