Vidispine
Understanding VidiFlow Contracts [VF 21.4 IG]
This chapter contains a draft concept of contracts and is subject to change without further notice.
VidiFlow often uses the term contract to describe an abstract input/output interface of a task. Currently, these tasks can be
Service Tasks
Workflows (see Workflow: Definitions, Instances)
Business Rules
ConfigPortal also provides contracts and stores them in its repository. These contracts add to those described in this section.
All contracts use a single, generalized JSON definition as a template, which is displayed below, to describe different tasks.
Please note that the following is not a valid JSON since it contains comments and line breaks for documentation purposes.
Task Contract Definition |
{ |
This definition can be separated into three main sections:
Contract identification (marked in red).
External input/output (marked in green).
Internal input/output (marked in blue).
Contract Identification
A contract is uniquely identified by the triple of Type, Name and Version. Type specifies whether it is a contract for a Service Task (aka Agent), Workflow or Business Rule. Name is the name of the contract and Version its version in the format of major.minor.
Please note that the distinction by minor version is currently not supported. It must always be 0 (zero).
External Input/Output
This section describes what the input and output of the task is. This is the set of parameters that must be provided / will be received by the module that triggers the task execution.
All (input) parameters and (output) results are defined by a Type and Name.
An input parameter can also be declared optional, i.e. it is not necessary to specify a value for this parameter when triggering the task executing. Instead, the task will be executed using the (in this case mandatory) default value specified in the contract.
Internal Input/Output
This set of parameters provides a special functionality (called "provisioning") for task contracts of the type "Agent". It will not be covered in this document. For all other contract types this set of parameters is currently irrelevant.