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:


Release 21.1.257

Breaking Changes

Docker Migration of Services and Agents

Services

The following table shows all VidiCore services which have been migrated from Service Fabric to Docker for 21.1.

It is important to note that these services are no longer available in Service Fabric and need to be replaced by the corresponding Docker-based services when updating from 20.2 to 21.1.

Service

Previous Name in Service Fabric

Name of Pod in Kubernetes

File Notifications

fabric:/Platform.VidispineServices/FileNotifications

vidispine-agents-vidispine-agents-file-noti

VidiCore Agents

The following table shows all VidiCore Agents which have been migrated from Service Fabric to Docker for 21.1.

It is important to note that these agents are no longer available in Service Fabric and need to be replaced by the corresponding Docker-based agent when updating from 20.2 to 21.1.

The names and contracts of the service tasks for usage in VidiFlow workflows were kept the same as in the previous release to make the migration as simple as possible.

Agent

Previous Name in Service Fabric

Name of Pod in Kubernetes

Register Item

fabric:/Platform.VidispineServices/RegisterItemAgent

vidispine-agents-vidispine-agents-register-item

Get Metadata

fabric:/Platform.VidispineServices/GetMetadataAgent

vidispine-agents-vidispine-agents-get-metadata

Deletion Lock Management

fabric:/Platform.VidispineServices/DeletionLockManagementAgent

vidispine-agents-vidispine-agents-deletion-lock-manage

Manage User Group Right

fabric:/Platform.VidispineServices/ManageUserGroupRightAgent

vidispine-agents-vidispine-agents-manage-usergroup-rig

Set Object Metadata

fabric:/Platform.VidispineServices/SetObjectMetadataAgent

vidispine-agents-vidispine-agents-set-metadata

Get Shape From Item

fabric:/Platform.VidispineServices/GetShapeFromItemAgent

vidispine-agents-vidispine-agents-get-shape

Export Item

fabric:/Platform.VidispineServices/ExportItemAgent

vidispine-agents-vidispine-agents-export-item

Transfer File Vidispine

fabric:/Platform.VidispineServices/TransferFileVidispine

vidispine-agents-vidispine-agents-transfer

Get File Information

fabric:/Platform.VidispineServices/GetFileInformationAgent

vidispine-agents-vidispine-agents-get-file-information-

Get File By Shape Tag

fabric:/Platform.VidispineServices/GetFileByShapeTagAgent

vidispine-agents-vidispine-agents-get-file-by-shape

Manage Poster

fabric:/Platform.VidispineServices/ManagePoster

vidispine-agents-vidispine-agents-manage-poster

Read File Data

fabric:/Platform.VidispineServices/ReadFileDataAgent

vidispine-agents-vidispine-agents-read-file-data

Render Item Sequence

fabric:/Platform.VidispineServices/RenderItemSequenceAgent

vidispine-agents-vidispine-agents-render-item

Update Metadata

fabric:/Platform.VidispineServices/UpdateMetadataAgent

vidispine-agents-vidispine-agents-update-metadata

Find Item

fabric:/Platform.VidispineServices/FindItemAgent

vidispine-agents-vidispine-agents-find-item

Get House Format Shapetag

fabric:/Platform.VidispineServices/GetHouseFormatShapetag

vidispine-agents-vidispine-agents-get-houseformat-shap

Import Side Car

fabric:/Platform.VidispineServices/ImportSideCarAgent

vidispine-agents-vidispine-agents-import-side-car

Manage Collection

fabric:/Platform.VidispineServices/ManageCollection

vidispine-agents-vidispine-agents-manage-collection

TransferFileVidispine

 fabric:/Platform.VidispineServices/WriteVidispineFileContentAgent

vidispine-agents-vidispine-agents-transfer

GetExistingPartialOfItem

fabric:/Platform.VidispineServices/GetExistingPartialOfItem.ServiceFabricHost

vidispine-agents-vidispine-agents-get-existing-partial

ShapeExistsOnStorage

fabric:/Platform.VidispineServices/ShapeExistsOnStorage

vidispine-agents-vidispine-agents-shape-exists-on-storage

Test Agent

fabric:/Platform.Tools/TestAgent

tools-tools-test-agent

Essence Agents

The following table shows all Essence Agents which have been migrated from Service Fabric to Docker for 21.1.

It is important to note that the agents in Service Fabric will still be available in release 21.1, but will be removed in the subsequent release. To access the migrated agents form a VidiFlow workflow, the service tasks must be replaced by the corresponding task with the post fix “ViaLinux”. Both measures are in place to support a step-wise migration from release 20.2 to 21.1.

VidiFlow Agents offer different task versions when adding new functionality. Newer version usually contain all existing functionality. The migrated essence agents mostly have just one task version available - when migrating, it is recommended to always use the latest version.

Agent

Previous Name in Service Fabric

Name of Pod in Kubernetes

Create Folder

fabric:/Platform.Essences/CreateFolderAgentHost

essence-agents-essence-agents-create-folder

Delete Folder

fabric:/Platform.Essences/DeleteFolder

essence-agents-essence-agents-delete-folder

File Exists

fabric:/Platform.Essences/FileExists

essence-agents-essence-agents-file-exist

Read File Content

fabric:/Platform.Essences/ReadFileContentAgent

essence-agents-essence-agents-read-file-content

Write File Content

fabric:/Platform.Essences/WriteFileContentAgent

essence-agents-essence-agents-write-file-content

File Delete

fabric:/Platform.Essences/FileDeleteHost

essence-agents-essence-agents-file-delete

File Info Reader

 fabric:/Platform.Essences/FileInfoReader

ssence-agents-essence-agents-file-info-reader

Platform URI Agent

fabric:/Platform.Essences/PlatformUriAgent

essence-agents-essence-agents-platform-uri

Timecode Management Agent

fabric:/Platform.Essences/TimecodeManagementAgent

essence-agents-essence-agents-time-code

File Transfer Host

fabric:/Platform.Essences/FileTransferHost

essence-agents-essence-agents-file-transfer

CreateFolderAgentHost

fabric:/Platform.Essences/CreateFolderAgentHost

essence-agents-essence-agents-create-folder

XSL Transformation Agent

fabric:/Platform.Essences/XslTransformationService

essence-agents-essence-agents-xsl-transformation

Workflow Management Host

fabric:/Platform.Essences/WorkflowManagementAgentHost

essence-agents-essence-agents-vpms2-workflow-managemen

The migrated XSL Transformation Agent does not longer provide the service “XLS Transformation Service”.

Media Agents

The following table shows all Media Agents which have been migrated from Service Fabric to Docker for 21.1.

It is important to note that agents in Service Fabric will still be available in release 21.1, but will be removed in the subsequent release. To access the migrated agents form a VidiFlow workflow, the service tasks must be replaced by the corresponding task with the post fix “ViaLinux”. Both measures are in place to support a step-wise migration from release 20.2 to 21.1.

VidiFlow Agents offer different task versions when adding new functionality. Newer version usually contain all existing functionality. The migrated media agents mostly have just one task version available - when migrating, it is recommended to always use the latest version.

Using the Vidispine MediaFramework was implemented in a new way: The VidiFlow agents using MediaFramework now spawn a new Kubernetes job for every job hosting the MediaFramework and providing a transcoding job template to it. Feedback on status will be provided back via the RabbitMQ message bus.

Agent

Previous Name in Service Fabric

Name of Pod in Kubernetes

Transcoder S4M Agent

fabric:/Platform.MediaframeworkServices/TranscoderS4MAgent

media-agents-media-agents-transcode

TrimMxf

fabric:/Platform.MediaframeworkServices/TrimMxf

media-agents-media-agents-trimmxf

MediaInfoAgent

fabric:/Platform.MediaframeworkServices/MediaInfoAgent

mediaanalysis-mediaanalysis-mediainfo

NormalizeMxfAgent

fabric:/Platform.MediaframeworkServices/NormalizeMxfAgent

media-agents-media-agents-normalizemxf

PartialRestoreMxf

fabric:/Platform.MediaframeworkServices/PartialRestoreMxf

media-agents-media-agents-partialrestore

StitchVideoAgent

fabric:/Platform.MediaframeworkServices/StitchVideoAgent

media-agents-media-agents-stitchvideo

CreateIndexFile

fabric:/Platform.MediaframeworkServices/CreateIndexFile

media-agents-media-agents-createindexfile

GetPartialRestoreOffsets

fabric:/Platform.MediaframeworkServices/GetPartialRestoreOffsets

media-agents-media-agents-getpartialrestoreoffsets

The migrated MediaInfoAgent has some important differences to the version running in Service Fabric:

The Media Info library was upgraded from version v17.x in SF to v20.x. Due to this, the XML output might differ and needs to be checked when migrating.

Besides that the K8S version of the agent cannot validate the XML result any longer with XSD since the XSD is not maintained any longer.

Removed Services

The following services was deleted from the VidiCore deployment:

  • XLS Transformation Service

The following agents were not migrated to Docker-based deployment and are expected to be deleted with the next release:

  • Platform.Essences/MetadataAgent

  • Platform.Essences/MetadataDefinitionService

  • Platform.Essences/SendToService

  • Platform.Essences/FileStateAwaiterHost

  • Platform.Essences/FileStateService

Setup and Operations

Component updates

The following central components were updated and will be shipped in the noted version:

Component

Version

VidiCore

5.6.1

ConfigPortal

21.1.47

AuthService

21.1.67

MediaFramework (for K8S agents)

21.1.7

MediaFramework (for SF agents)

21.1.8

Grafana

7.3

RabbitMQ

3.8.14

Prometheus

2.22

Fluentd

1.12.2

Nginx Ingress

0.44.0

New database for Camunda Broker Redundancy

The Camunda Broker can now be operated in multiple instances for redundancy as described in Redundancy of Camunda Broker.

To allow the redundant operation, a new database “VPMS_Platform_CamundaBroker” is created in VidiFlow setup.

New database for Deletion Monitor

VidiFlow provides now a Deletion Monitor. To support this, a new database “VPMS_Platform_DelMonitor” is created in VidiFlow setup. For more details see User guide Deletion Monitor [VF 21.1 UG].

Change log-level during run-time

It is now possible to change the log-level of VidiFlow services and agents running in Kubernetes at runtime. To do so, edit the configmap for the respective service and amend the appsettings settings. An example settings looks like the following:

{
    "UniqueModuleName": "WorkflowEngineAPI",
    "Vpms3Logging": {
        "LogLevel": {
            "Default": "Debug",
            "Hangfire": "Information"
        }
    }
}
JSON

PostgreSQL support

PostgreSQL and Azure Database for PostgreSQL are now officially supported as relational database for all VidiFlow internal databases.

Grafana dashboards

A collection of useful Grafana dashboards will be deployed with VidiFlow. These are intended to serve as patterns to be able to easily map the metrics needed for the respective system in Grafana. The following screenshot show an example view:

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.

List of New Tasks
Detach File

The new task “Detach File” can be used to detach a file from an item in VidiCore. If the last file of a shape was detached, the shape will also be deleted. If the task is called for a file which is not attached, it will run successfully.

Trim with Vantage

A new task is implemented in the Telestream Vantage agent which allows trimming of videos.

Search for Vidicore collections

A new task was implemented to return all collections stored in VidiCore matching a given ItemSearchDocument.

List of Adapted Tasks
Trim MXF File

The task now allows one to specify sub-folder for the target file. Folders will be created if not exisiting

The task now provides an optional input parameter 'ItemToAttachPlatformUri'. If set, the task does not create an item but attach the file to the item transmitted in the new parameter.

Additionally, it provides three non-interrupting message boundary events (FileToAppear, FileOpen, FileClosed).

Remark: Most changes of Trim MXF File only apply on the Core / Docker version.

Create Image File From Poster

The Task “Create Image File From Poster” now supports TargetFileName and Subfolder as input parameters.

GetShapeFromItem

Improved support of differentiation of multiple shapes (see task description in WF Designer.

Delete

If the delete task is called for file deletion and the file is on a storage which is not accessible by VidiCore, then the file is unregistered instead.

If the delete task is called on a file and the last file of an shape is deleted, also the shape is deleted.

If the last file of a shape is detached, the shape will be deleted.

If the last file of an item was deleted and the item is not protected by other deletion locks, the item will be deleted (since task version 2.1).

Unregister File

If the last file of an item was unregistered and the item is not protected by other deletion locks, the item will be deleted (since task version 1.1).

TranscoderS4M

The task TranscoderS4MViaLinux (only Docker-based version) now support S3 and Azure blob storages as source and target. Storages need to be configured in the CP storage configuration as VidiCore storage.

Metadata Editing

Enum Value show and keep outdated values

When enum values are outdated, they now can still be shown in the UI and it is also allowed to keep their values without editing.

Auto generate values for input fields

The metadata UI builder can now access customer specific back-end services to calculate form metadata based on other metadata. After clicking an the valuation button, all form data will be send to the service. Teh service and validate the data, change one or more metadata fields and send it back to the UI which updates the data. The endpoint of the service can be configured in CP.

For detailed information please refer Create Booking Component [VF 21.1 IG] .

Workflow Monitor

VidiFlow contains a new workflow monitor UI that a new tree-list-view to monitor main- and sub-workflows in the same view and brings detailed filtering options. Role-based rights management is also available to strip down user rights for different groups of users.

For detailed information please refer to the user guide. All links are changed to the new version. The old version is deprecated, but can be reached in VidiFlow Portal named as “Workflow Monitor Classic”.

File Upload UI

Files bigger than 2 GB cannot be uploaded via the File Upload UI. Previously, the upload failed after selecting a file. Now, there will be an error message if a user selects a file bigger than 2 GB and the upload process will not initiate.

Clean up of Workflows in ConfigPortal

ConfigPortal comes with a new cleanup feature, which allows one to remove workflows with all their version or single workflow version completely from the system. Please see the Enterprise Operations Guide Clean up of Workflows in ConfigPortal [ENT 21.1 OG] .

Redundancy of Camunda Broker and WF API

Prior to 21.1, the Camunda Broker component could not be installed in multi instances for redundancy. In this version, this is finally possible and highly recommended for productive scenarios. To allow the redundant operation, a new database “VPMS_Platform_CamundaBroker” is created in VidiFlow setup.

The WF API was split into two services, one for handling all API call and the other one for handling SignalR messages for clients. Due to this, the WF API service can should should run redundantly in productive environments.

Performance and stabilization improvements

VidiFlow has experienced various performance and stabilization improvements in key components:

Item #

Item

182140

Agents perform OIDC token validation against AuthService without additional API calls

182141

Agenst cache OIDC tokens to reduce AuthService load

176391

Most VidiFlow REST clients were migrated to a new HTTP-library to avoid network socket exhaustion

181926, 184159

The workflow deployment behavior of the system was changed to increase performance on calling many sub-workflows. After staging a workflow from CP it will now immediately deployed

185627

The workflow indexing to Elastic was changed in a way that the workfow indexing is proceeded without reading from the Camunda history tables to reduce the load on those tables and due to that improve the general performance of the Camunda workflow engine

182485, 185553

Rebuilding the workflow index (bulk re-index) was improved performance wise

182059

The prefetch settings for RabbitMQ where changed in all VidiFlow agents. This leads to a better distribution of tasks among several agents

Several system components have better and reduced log output now

Description for Workflows in ConfigPortal

The new column “Description” is now available for each workflow in the workflow list visible in ConfigPortal. A description can be added via a new API call for each workflow version.

In upcoming VidiFlow releases, this field will be filled with a possible description for each workflow, entered in the Workflow Designer.

Hangfire dashboard

Hangfire is used to execute recurring tasks in VidiFlow like workflow re-indexing. VidiFlow now includes a dashboard for system administrators to better monitor those jobs.

Please refer to the official Hangfire documentation for detailed usage.

Deletion Monitor

System administrators or material managers customer-side often want to determine when and why assets where deleted or will be deleted from the system’s housekeeping. The VidiFlow Deletion Monitor allows one to monitor information on the deletion of items, collections and files. Additionally, different information about deletion locks are stored.

For detailed information please refer to Deletion Monitor [VF 21.1 UG] in the VidiFlow User Guide.

Workflow Designer: input variable can be selected as "workflow object id"

The VidiFlow Workflow Monitor now supports to show the most important workflow input parameter as “Workflow Object ID”. To be able to show, this variable has to be selected as workflow object id on design time. The Workflow Designer allows to do so in the section Workflow Parameters:

The selection is limited to fields with subtype PlatformURI.

RabbitMQ Connection Handling Improvements

Apart from RabbitMQ server upgraded to version 3.8, improvements are also made for the connection handling to the RabbitMQ server to avoid connection overhead. Each module now should uses two connections to RabbitMQ (one for publishing and another one for subscription). This will reduce the connection load on the RabbitMQ server.

It is also now possible to identify which connection is used by which module. This can be seen as the ClientName in the RabbitMQ connections in the management page.

Other fixes and changes

Item #

Item

179013

WorkflowHandling and CP API calls when using "Latest"

179512

Additional Parameter for Vantage Agent Needed: SourceStorageUri

179857

Critical Bug in CP - Staging switches/sets active environment!

180064

S4MTranscoder 60s break

172786

Agent to retrieve item sequence needed to support stitching on non StationFormat Items

179071

Camunda: Deployment of MS SQL scripts for DB optimization

180490

Improve rabbitmq notification plugin handling for Vidispine

172602

Special character handling in Metadata definitions

180523

Vantage agent must use cluster-internal rabbitmq endpoint

180875

Vantage Agent Configurations - RetryCount, JobTimeout, WorkflowForward Timeout

182409

Vantage Agent Configuration: Remove option to configure multiple endpoints

181205

ActiveMQ memory settings is not following the MaxRAMPercentage settings

181209

Fluentd is not picking up new logs

181388

WF Monitor - Missing terminated state in Wf state filter selection

180732

NPM Package: ReadOnly for Edit Metadata layout for Collection

180901

Enable thumbnail caching in nginx ingress controller

181165

WF Monitor: Fix for display problems

181215

Logging: SF-Services: Reduce Logging of REST API in Debug Level

181274

ConfigPortal: Improve performance and reduce process memory

181373

Workflow Index Service: Revise log messages

181466

Add Options to delay HouseKeeping Workflow trigger

181470

Update UpdateMetadata and SetObjectMetadata task to support "onlyReturnChanges" vidicore metadata update

181498

GetMetadata agent: Reduce VidiCore load

181409

Special characters in password leads to script problem in db creation

181555

The workflow is still show running when It reach Terminated end event

181606

Vidispine database purging cleanup resources not sufficient for productive system

181645

RuleAPI randomly fails sometimes with "error executing api request"

181893

Booking layout not updated after changes in CP

179514

MediaPortal Notifier does not receive Metadata Updates when __deletion_lock_expiry is updated in VS

181838

CP: Editing, Workflow list stuck in loading state

181933

Workflow state is not updated

182023

TranscoderS4M: Does not shutdown MediaFramework (Service Fabric version of Agent)

182163

IsRedundant (for Vantage) does not work properly in CP

182355

WorkflowAPI: Concurrent starts for the same workflow version fail

182413

CamundaBroker: Improve log message

182503

Removing WF contract causing indexing not working properly

183298

Agent_GetShapeFromItem fails with two shapes of same type attached to item

184100

Escape spaces in filenames in URIs, Create Image from Poster (ManagePoster agent)

184117

TargetFileName and Subfolder as Inputparameter for "Create Image File From Poster" Task

183247

Agent_TrimMxf changes Audio Channels of File

184386

Agent_TrimMxf is not writing Subtitle to target File

184336

Task "Export Item" should fail if Source File does not exist

182356

Camunda plugin: Reduce log output

184591

FC: WorkflowAPI: Limit size of queues

180742

FileUpload: Prevent uploading of file bigger then 2GB

181472

Handling of DateTime Fields in WF input parameter mappings

181868

Possibility to change log-level per component during run-time

182059

Add Prefetch Settings for RabbitMq

181490

Research Performance Problem with Call Activity

181872

ConfigPortal write access to single instance only

182124

ConfigPortal data loss due to failed push

169079

MP Connector: Sync Vidispine Subtitle Metadata Fields and Groups from Vidispine

185828

Failed to write to VidiCore with Metadata Enum with empty values

183747

Workflow Cleanup Cron Job fails with DB Query

176671

Automatic cleanup of ACT_RU_METER_LOG table in ProcessEngine DB

185389

Change naming of key/value metadata for partial items in collections

180877

WF API accesses CP API over Ingress

182660

Change Camunda Link in Platform Portal to Public Ingress

169854

FC: Logging: Optimize fluentd logs for VidiCore and Camunda

181533

Camunda metrics cleanup job fails during execution

186019

Workflow are not set to Incident when there's a incident Task

186028

Special characters problem with colon in Metadata Editor

186143

Metadata editor: Reload of values doesn't work properly

181472

Handling of DateTime Fields in WF input parameter mappings

183782

WF API won't boot due to misconfiguration in 21.1.1-beta.280 deployment

180388

Update helmchart for agent/service to support auto update license to CP

186559

Licensing: Add packages.config for 3rd party components

179455

Workflow Index unable to recover when problem with database connection

187177

Move Platform.Portal from Platform Chart into Platform.Tools helmchart

182620

MFT targets and storages are not sorted

186672

MFT-Mask: email-field to small

184182

MP-Upload PROD: Metadata mask can be closed too easily

185840

Upload Dialog looks weird

187013

Vantage agent: remove obsolete helm values

187276

Create Image From Poster Error to trigger ImageForPosterAlreadyExists