REST Admin API
Server 7 introduces a new Administration REST API that gives access to all the configuration data held by CatDV Server. Specifically the Admin API allows access to:
Users
Production Groups Roles and Permissions Field Definitions
Panel Definitions View Definition
Media Stores/Media Paths
These APIs are used to support to new web-based administration interface. API Conventions
The Administration REST API is implemented as an extension to the existing CatDV REST API, and shares its basic structure with the rest of the API. Please see the documentation for the CatDV REST API for information about the basic structure and protocols of the API.
Common Object Definitions
Visibility Rules
The visibility of views, panels and other UI elements is controlled by a set of Visibility Rules stored against each item. Each set of Visibility Rules contains three sets of rules:
· Production Group Rules – relate to a catalog’s Production Group
· User Role Rules – relate to the user’s Role.
· Client Rules – relates to the current client:
· CDV – CatDV Desktop Client
· WC1 – CatDV Web Client
· WC2 – CatDV Web 2
· IOS – CatDV iOS Apps
· TRI – CatDV Tricaster Plug-in
· PRE – CatDV Premiere Pro Plug-in Each set of rules consists of two lists:
· Visible To – item is visible to the groups, roles or clients in this list
· Hidden From – item is hidden from the groups, roles or clients in this list Note: If a ‘visible to’ list is empty then the item is always visible.
Each Visibility Rule object contains the following fields:
Field | Type | Description |
visibleToGroups | String[] | List of Production Groups that this item is visible to. |
hiddenFromGroups | String[] | List of Production Groups that this item is hidden from. |
visibleToRoles | String[] | List of Roles that this item is visible to. |
hiddenFromRoles | String[] | List of Roles that this item is hidden from. |
visibleToClients | String[] | List of Clients that this item is visible to. |
hiddenFromClients | String[] | List of Clients that this item is hidden from. |
Endpoint: /users
Represents the collection of all the users defined on the server:
Object Definitions
User Object
Represents a user who can log in to the CatDV system. Each User object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of user |
name | String | User’s name |
notes | String | Additional notes about the user |
roleID | Integer | ID of this User’s Role |
role | String | Name of this User’s Role |
Operations
GET /users
Returns an array of all the users defined on the server.
GET /users/<user_id>
Returns the user with the specified id.
POST /users
Add a new user to the system. POST data contains JSON User object. Returns the ID of the newly created User.
PUT /users/<user_id>
Update the User specified by <user_id> with the values in the JSON User object passed in the PUT data. Only fields present in the passed in JSON User object will be updated.
DELETE /users/<user_id>
Delete the User specified by <user_id>. Any items currently owned by the user will pass to the anonymous user.
Endpoint: /groups
Represents the collection of all the Production Groups defined on the server:
Object Definitions
Production Group Object
Represents a Production Group in to the CatDV system. Each Production Group object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of Production Group |
name | String | Name of this Production Group |
notes | String | Additional notes about the group |
defaultPermissions | String[] | List of permissions that new members of this group get. |
Operations
GET /groups
Returns an array of all the role defined on the server.
GET /groups/<group_id>
Returns the Production Group with the specified <group_id>.
POST /groups
Create a new Production Group based on the JSON Production Group object passed in the POST data. Returns the ID of the newly created Production Group.
PUT /groups/<group_id>
Update the Production Group specified by <group_id> with the values in the JSON Production Group object passed in the PUT data. Only fields present in the passed in JSON Production Group object will be updated.
PUT /groups/<groupID>/roles
Update the Role Permissions for this Production Group. PUT data contains an array of Role objects, each with two fields set – the Role’s ID and the Role’s Permissions with respect this Production Group. Roles not present in the list are assumed to have no Permissions with respect to this Production Group and will have any existing permissions removed.
DELETE /groups/<group_id>
Delete the Production Group specified by <group_id>.
Endpoint: /roles
Represents the collection of all the Roles defined on the server:
Object Definitions
Role Object
Represents a Role, which can be thought of as a permission template that a number of users can share. Each Role object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of Role |
name | String | Name of this Role |
notes | String | Additional notes about the Role |
List of permissions for this Role with respect to a particular Production Group. This field is only used in contexts where the Production Group is specified, generally as an additional parameter to the REST API call.
Available Role Permissions are:
readOthersCatalogs – can read catalogs belonging to others.
createCatalogs – can create catalogs.
editCatalogs – can edit clips and catalog details of catalogs owned by them.
editOthersCatalogs – can edit clips and catalog details of catalogs owned by others.
Operations
GET /roles
Returns an array of all the Role defined on the server.
GET /roles/<role_id>
Returns the production role with the specified <role_id>.
GET /roles/<roleID>/permissions?groupID=<groupID>
Returns the set of Role Permissions (as a String[]) that apply to the specified Role with respect to the specified Production Group.
POST /roles
Create a new Role based on the JSON Role object passed in the POST data. Returns the ID of the newly created Role.
PUT /roles/<role_id>
Update the Role specified by <role_id> with the values in the JSON Role object passed in the PUT data. Only fields present in the passed in JSON Role object will be updated.
DELETE /roles/<role_id>
Delete the Role specified by <role_id>.
Endpoint: /fieldgroups
Represents the collection of all the Field Groups defined on the server. All user-defined fields belong to exactly one Field Group. The Field Group defines the type of the object (clip, catalog etc.) that the field definitions it contains pertain to.
Object Definitions
Field Group Object
Field | Type | Description |
ID | Integer | Unique ID of this FieldGroup. |
name | String | Name of this Field Group. |
description | String | Longer description |
objectClass | String | Class of object that the fields contain |
identifierPrefix | String | Optional prefix that will be applied (by the admin UI) to the identifiers of any fields created in this group. |
isBuiltIn | Boolean | True for built-in field groups e.g. the ‘All Fields’ field group. These built-in groups are generated on the fly and cannot be edited |
originType | String | High-level categorization of the origin of this field group. Values are: user-defined – created directly by a user plugin – created by a server plugin (e.g. archive status fields) file-metadata – created by CatDV to store filed metadata (e.g. EXIF fields) fieldset – migrated from a pre-server 7 field set |
originInfo | String | Further details about the origin of this field group – e.g. the name of the legacy field set or the plugin that created the fields. |
visibility | VisibilityRules | Rules to determine who can see these fields (only applies to the fields offered to user when constructing a query – does not control whether fields on a panel are visible or not – that is controlled by panel-level visibility rules) |
Operations
GET /fieldgroups
Returns an array of all the field groups on the server.
GET /fieldgroups/<field_group_id>
Returns the field group with the specified <field_group_id>.
POST /fieldgroups
Create a new field group based on the JSON FieldGroup object passed in the POST data. Returns the ID of the newly created FieldGroup.
PUT /fieldgroups/<field_group_id>
Update the FieldGroup specified by <field_group_id> with the values in the JSON FieldGroup object passed in the PUT data. Only fields present in the supplied JSON FieldGroup object will be updated.
DELETE /fieldgroups/<field_group_id>
Delete the FieldGroup specified by <field_group_id>.
Endpoint: /fields
Represents the collection of all the Field Definitions defined on the server:
Object Definitions
Field Definition Object
Represents a, usually user-defined, field on a particular type of CatDV object (e.g. Clip, SourceMedia, Marker etc.) Each Field Definition object contains the following fields:
Field | Type | Description |
ID | String | Unique ID of this FieldDefinition. For built-in fields this is the familiar CatDV field short code (e.g. NM1, STS etc.). For user-defined fields it the unique numeric ID of the object. |
fieldGroupID | Integer | Unique ID of this FieldGroup that this FieldDefinition belongs to. |
memberOf | String | Type of object this field definition belongs to. Possible values are: · catalog · clip · media · importSource · marker · other custom object class identifier |
identifier | String | Unique (within the given object type) name (or ‘slug’) for this field definition. To ensure that the identifier is unique it is generally built up from a domain-specific prefix, such as the field’s group, or the vender reverse domain, followed by a simplified version of the field’s name, with spaces converted to periods and all lowercase.For user- defined fields this value as the ‘name’ of the property in an object’s metadata object, whereas for built-in fields this value is the name of the field in the relevant object. For example the Field Definition for clip.name (NM1), would have memberOf=”clip” and identifier=”name”. |
name | String | Descriptive name for the field. Used as the label when the field is displayed in the UI. |
description | String | Longer description of the field. Used as the tooltip when the field is displayed in the UI. |
fieldType | String | Type of data stored in this field and how the field should be presented to the user. Possible values are: text – plain text multiline – multi-line plain text field date – a date time – time of day number – a number identifier – arbitrary string hidden – hidden field checkbox – a checkbox multi-checkbox – a set of checkboxes radio – set of radio buttons picklist – single value selected from a drop down list multi-picklist – multiple values selected from a drop down list hierarchy – single value selected from a hierarchical list multi-hierarchy – multiple values selected from a hierarchical list linked-multi-hierarchy – multiple values selected from a hierarchical list linked to another field auto-suggest – a value which may be one selected from a list of values multi-auto-suggest – multiple values which may be ones selected from a list of values html – a rich formatted HTML field |
isBuiltIn | Boolean | True if this Field Definition represents a built-in field. |
canQuery | Boolean | True if this field can be used in a clip query. |
isSortable | Boolean | True if this field can be used to sort the results of a clip query. |
isCalculated | Boolean | (Only present for built-in fields). Hint to tell client that this built-in field is not directly represented by a field on the relevant object. For example the “IO” field displays the In timecode and the Out timecode in a single field. The value to display must therefore be calculated by the client. |
isEditable | Boolean | True if any user can edit this field (assuming they have the necessary permissions). |
isMandatory | Boolean | True if the user must enter a value in this field. |
isMultiValue | Boolean | True if multiple values can be stored against this field. This is a calculated field based on the type of the field. |
isList | Boolean | True if a list of possible values is associated with this field. This is a calculated field based on the type of the field. |
values | String[] | For list fields this field can optionally be populated with all the list values. |
Picklist Object
Represents the list of values for fields where the user selects a value from a list (e.g. picklist, hierarchy etc.). Each View Set object contains the following fields (Note that not all client support all options):
Field | Boolean | Description |
isExtensible | Boolean | True is user is allowed to enter values that are not in the list. |
isKeptSorted | Boolean | Values are kept sorted in alphabetical order. |
savesValues | Boolean | Non-list values get added to the list. |
isLocked | Boolean | Only administrators can add values. |
values | String[] | The list of values. |
Operations
GET /fields[?include=<include_flags>][&filter=<filter>]...
Returns a PartialResultSet of Field Definitions that conform to the passed in parameters:
Parameter | Function |
include | Determines which Field Definitions to include in the results and also whether to return additional related data within each Field Definition. Supported values are: builtin – include built-in fields catalog – include user-defined catalog fields catalog.builtin – include built-in catalog fields clip – include user-defined clip fields media – include user-defined source media metadata fields source– include user-defined import source metadata fields marker – include user-defined marker fields user – include user-defined user fields cliplist – include user-defined clip list fields picklists – for picklist fields include the associated picklist values – include picklist values for picklist fields fieldGroup – include the containing field group. onlySimpleSearchable – only include fields that can be searched onlyQueryable – only include fields that can be queried onlyEditable – only include that can be edited onlyFilterable – only include that can be included in a filter onlyVisible – only include that are visible to the current user based on field group visibility onlySortable – only include that can be used to sort the result set. |
filter | Only return FieldDefinitions whose name contains the specified string |
skip/take | Controls which portion of the result set to return. See PartialResultSet |
groupID | For built-in fields, use the specified group to determine the correct set of Picklist values if applicable. |
onlyQueryableFields | Only return FieldDefinitions for fields that can be used in Clip Query filter expressions |
GET /fields/<field_id>
Returns the Field Definition with the specified <field_id>, where <field_id> can be either the numeric ID of a user-defined custom field, or the short string ID of a built-in field (e.g. NM1, STS etc.).
GET /fields/<field_id>/list[?groupID=<group_id>][&include=values]
Returns the Picklist object associated with the FieldDefinition specified by <field_id>, where <field_id> can be either the numeric ID of a user-defined custom field, or the short string ID of a built-in field (e.g. NM1, STS etc.). For built-in fields the groupID parameter must be provided to identify the Production Group that the Picklist definition should be taken from.
If the optional include=values parameter is included then the actual picklist values are included with with the picklist.
GET /fields/<field_id>/list/values[?groupID=<group_id>]
Returns the Picklist values associated with the FieldDefinition specified by <field_id>, where <field_id> can be either the numeric ID of a user-defined custom field, or the short string ID of a built-in field (e.g. NM1, STS etc.). For built-in fields the groupID parameter must be provided to identify the Production Group that the values should be taken from.
GET /fields/<field_id>/values
Returns a complete list of all the unique values held in the database for the specified field. For large databases this can be an expensive operation, since every clip needs to be considered.
GET /fields/types
Returns all the available user-defined field types as an array of ID/Name pairs.
POST /fields
Create a new Field Definition based on the JSON Field Definition object passed in the POST data. Returns the ID of the newly created Field Definition.
PUT /fields/<field_id>
Update the Field Definition specified by <field_id> with the values in the JSON FieldDefinition object passed in the PUT data. Only properties present in the passed in JSON FieldDefinition object will be updated.
PUT /fields/<field_id>/list[?groupID=<group_id>]
Update the Picklist associated with the Field Definition specified by <field_id> with the values in the JSON Picklist object passed in the PUT data. The values of <field_id> can be either the numeric ID of a user-defined custom field, or the short string ID of a built-in field (e.g. NM1, STS etc.). For built-in fields the groupID parameter must be provided to identify the Production Group that the Picklist belongs to.
DELETE /fields/<field_id>
Delete the Field Definition specified by <field_id>.
Endpoint: /viewsets
Represents the collection of all the viewsets defined on the server:
Object Definitions
View Set Object
Represents a set of views (ViewDefinitions) where each view may be a list a grid or filmstrip. View Sets exists to make it easier to manage which views should appear under what situations. For example one might wish to define one View Set that defines the views that appear for a particular Production Group, or one a particular type of client (e.g. Web or iOS). Each View Set object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of this ViewSet. |
name | String | Name of this ViewSet. |
description | String | Longer description of this ViewSet. |
visibility | VisibilityRules | Set of rule that determine when this ViewSet should be displayed. |
order | Integer | Used to specify the position that this ViewSet will appear in lists of ViewSets. |
views | ViewDefinition[] | List of the ViewDefinitions that make up this View Set. |
Operations
GET /viewsets
Returns an array of all the viewsets defined on the server.
GET /viewsets/<viewset_id>
Returns the ViewSet with the specified id.
POST /viewsets
Add a new ViewSet to the system. POST data contains JSON ViewSet object. Returns the ID of the newly created ViewSet.
PUT /viewsets/<viewset_id>
Update the ViewSet specified by <viewset_id> with the values in the JSON ViewSet object passed in the PUT data. Only fields present in the passed in JSON ViewSet object will be updated.
DELETE /viewsets/<viewset_id>
Delete the ViewSet specified by <viewset_id>.
Endpoint: /views
Represents the collection of all the views defined on the server:
Object Definitions
View Definition Object
Represents the fields to be displayed with each item in a list, grid or filmstrip list of clips.
Note that currently only the desktop CatDV client supports all the available view options. The Web Client and Web 2 interface currently only support customisation of Normal, Concise and Full views.
Each View Definition object contains the following fields:
Field | Type | Description |
ID | Integer | Unique ID of this ViewDefinition. |
name | String | Name of this ViewDefinition. |
description | String | Longer description of this ViewDefinition. |
type | String | What type of panel or view does this ViewDefinition define. Possible values: builtin – a built-in CatDV view list – a tabular list view grid – a grid view list – a filmstrip view |
options | JSONObject | Set of options that can be applied to the various view types. Possible values are: list spacing – normal or wide grid size – small, medium, large or huge text – none, right or below filmstrip size – small, medium or large allThumbnails -true or false poster -true or false |
visibility | VisibilityRules | Set of rule that determine when this ViewDefinition should be displayed. |
order | Integer | Used to specify the position that this ViewSet will appear in lists of ViewSets. |
fields | ViewField[] | List of the ViewFields that make up this View Definition. |
View Field Object
Represents an individual fiels within the view. Each View Field object contains the following fields:
Field | Type | Description |
ID | Integer | Unique ID of this ViewSet. |
viewDefID | Integer | ID of the containing ViewDefinition. |
fieldDefID | Integer | ID of the FieldDefinition of the field. |
fieldDefinition | FieldDefinition | Optionally a copy of the FieldDefinition object for this field. |
Operations
GET /views[?include=<include_options>][&groupID=<group_id>]
Returns an array of the views defined on the server based on the supplied parameters.
Parameter | Function |
include | Determines which views to include in the results and also whether to return additional related data within each view. Supported values are: builtin – include built-in Views fields – include the fields defined in each View fieldDefs – include the associated FieldDefinition for each of the View’s fields. values – include Picklist values for Picklist fields |
groupID | For built-in fields, use the specified group to determine the correct set of Picklist values if applicable. |
GET /views/<view_id>
Returns the user with the specified id.
GET /views/<view_id>/fields
Returns the ViewFields defined for the the specified view.
POST /views
Add a new user to the system. POST data contains JSON View object. Returns the ID of the newly created View.
PUT /views/<view_id>
Update the View specified by <view_id> with the values in the JSON View object passed in the PUT data. Only fields present in the passed in JSON View object will be updated.
PUT /views/<view_id>/fields
Update the fields associated with the specified View using with the array of JSON ViewField objects passed in the PUT data.
DELETE /views/<view_id>
Delete the View specified by <view_id>.
Endpoint: /panelsets
Represents the collection of all the PanelSets defined on the server:
Object Definitions
Panel Set Object
Represents a set of panels (PanelDefinitions). Panel Sets exists to make it easier to manage which panels should appear under what situations. For example one might wish to define one Panel Set that defines the panels that appear for a particular Production Group, or one a particular type of client (e.g. Web or iOS). Each Panel Set object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of this PanelSet. |
name | String | Name of this PanelSet. |
description | String | Longer description of this PanelSet. |
visibility | VisibilityRules | Set of rule that determine when this PanelSet should be displayed. |
order | Integer | Used to specify the position that this PanelSet will appear in lists of PanelSets. |
panels | PanelDefinition[] | List of the PanelDefinitions that make up this Panel Set. |
Operations
GET /panelsets
Returns an array of all the PanelSets defined on the server.
GET /panelsets/<panelset_id>
Returns the PanelSet with the specified id.
POST /panelset
Add a new PanelSet to the system. POST data contains JSON PanelSet object. Returns the ID of the newly created PanelSet.
PUT /panelsets/<panelset_id>
Update the PanelSet specified by <panelset_id> with the values in the JSON PanelSet object passed in the PUT data. Only fields present in the passed in JSON PanelSet object will be updated.
DELETE /PanelSets/<panelset_id>
Delete the PanelSet specified by <panelset_id>.
Endpoint: /panels
Represents the collection of all the panels defined on the server:
Object Definitions
Panel Definition Object
Represents the fields to be displayed on the panel (tab). Each Panel Definition object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of this PanelDefinition. |
name | String | Name of this PanelDefinition. |
description | String | Longer description of this PanelDefinition. |
type | String | What type of panel or panel does this PanelDefinition define. Possible values: builtin – a built-in CatDV panel normal– a normal CatDV metadata panel html– a read-only formatted HTML panel |
visibility | VisibilityRules | Set of rule that determine when this PanelDefinition should be displayed. |
order | Integer | Used to specify the position that this PanelSet will appear in lists of PanelSets. |
Panel Field Object
Represents an individual fiels within the panel. Each Panel Field object contains the following fields:
Field | Type | Description |
ID | Integer | Unique ID of this PanelSet. |
panelDefID | Integer | ID of the containing panel. |
fieldDefID | Integer | ID of the FieldDefinition of the field. |
readOnly | Boolean | True if user is not allowed to edit this field. |
hideIfBlank | Boolean | True if field should be hidden if it is blank. |
spanTwoColumns | Boolean | True if field show span two columns. |
multiline | Boolean | True if field should be displayed over multiple lines |
fieldDefinition | FieldDefinition | Optionally a copy of the FieldDefinition object for this field. |
Operations
GET /panels[?include=<include_options>][&groupID=<group_id>]
Returns an array of the panels defined on the server based on the supplied parameters.
Parameter | Function |
include | Determines which panels to include in the results and also whether to return additional related data within each panel. Supported values are: builtin – include built-in Panels fields – include the fields defined in each Panel fieldDefs – include the associated FieldDefinition for each of the Panel’s fields. values – include Picklist values for Picklist fields |
groupID | For built-in fields, use the specified group to determine the correct set of Picklist values if applicable. |
GET /panels/<panel_id>
Returns the user with the specified id.
GET /panels/<panel_id>/fields
Returns the PanelFields defined for te the specified panel.
POST /panels
Add a new user to the system. POST data contains JSON Panel object. Returns the ID of the newly created Panel.
PUT /panels/<panel_id>
Update the Panel specified by <panel_id> with the values in the JSON Panel object passed in the PUT data. Only fields present in the passed in JSON Panel object will be updated.
PUT /panels/<panel_id>/fields
Update the fields associated with the specified Panel using with the array of JSON PanelField objects passed in the PUT data.
DELETE /panels/<panel_id>
Delete the Panel specified by <panel_id>.
Endpoint: /formsets
Represents the collection of all the FormSets defined on the server:
Object Definitions
Form Set Object
Represents a set of forms (FormDefinitions). Form Sets exists to make it easier to manage which forms should appear under what situations. For example one might wish to define one Form Set that defines the forms that appear for a particular Production Group, or one a particular type of client (e.g. Web or iOS). Each Form Set object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of this FormSet. |
name | String | Name of this FormSet. |
description | String | Longer description of this FormSet. |
visibility | VisibilityRules | Set of rule that determine when this FormSet should be displayed. |
order | Integer | Used to specify the position that this FormSet will appear in lists of FormSets. |
forms | FormDefinition[] | List of the FormDefinitions that make up this Form Set. |
Operations
GET /formsets
Returns an array of all the FormSets defined on the server.
GET /formsets/<formset_id>
Returns the FormSet with the specified id.
POST /formset
Add a new FormSet to the system. POST data contains JSON FormSet object. Returns the ID of the newly created FormSet.
PUT /formsets/<formset_id>
Update the FormSet specified by <formset_id> with the values in the JSON FormSet object passed in the PUT data. Only fields present in the passed in JSON FormSet object will be updated.
DELETE /FormSets/<formset_id>
Delete the FormSet specified by <formset_id>.
Endpoint: /forms
Represents the collection of all the forms defined on the server:
Object Definitions
Form Definition Object
Represents the fields to be displayed on the form (tab). Each Form Definition object contains the following fields
Field | Type | Description |
ID | Integer | Unique ID of this FormDefinition. |
name | String | Name of this FormDefinition. |
description | String | Longer description of this FormDefinition. |
type | String | What type of form or form does this FormDefinition define. Possible values: search – a search form navsearch – special search form that appears in nav-tree upload – form to enter metadata to be included with file upload subclip – for to enter metadata for new subclip filter – filter definition |
visibility | VisibilityRules | Set of rule that determine when this FormDefinition should be displayed. |
order | Integer | Used to specify the position that this FormSet will appear in lists of FormSets. |
Form Field Object
Represents an individual fiels within the form. Each Form Field object contains the following fields:
Field | Type | Description |
ID | Integer | Unique ID of this FormSet. |
formDefID | Integer | ID of the containing form. |
fieldDefID | Integer | ID of the FieldDefinition of the field. |
spanTwoColumns | Boolean | True if field should two layout columns (Upload Forms only). |
multiline | Boolean | True if field should be displayed over multiple lines (Upload Forms only). |
mandatory | Boolean | True if field must be filled in before form can be submitted (Upload Forms only).. |
Operations
GET /forms[?include=<include_options>][&groupID=<group_id>]
Returns an array of the forms defined on the server based on the supplied parameters.
Parameter | Function |
include | Determines which forms to include in the results and also whether to return additional related data within each form. Supported values are: builtin – include built-in Forms fields – include the fields defined in each Form fieldDefs – include the associated FieldDefinition for each of the Form’s fields. values – include Picklist values for Picklist fields |
groupID | For built-in fields, use the specified group to determine the correct set of Picklist values if applicable. |
GET /forms/<form_id>
Returns the user with the specified id.
GET /forms/<form_id>/fields
Returns the FormFields defined for te the specified form.
POST /forms
Add a new user to the system. POST data contains JSON Form object. Returns the ID of the newly created Form.
PUT /forms/<form_id>
Update the Form specified by <form_id> with the values in the JSON Form object passed in the PUT data. Only fields present in the passed in JSON Form object will be updated.
PUT /forms/<form_id>/fields
Update the fields associated with the specified Form using with the array of JSON FormField objects passed in the PUT data.
DELETE /forms/<form_id>
Delete the Form specified by <form_id>.
Endpoint: /mediastores
Represents the collection of all the mediastores defined on the server:
Object Definitions
Media Store Object
Represents a logical storage volume where media is held. Each store contains one or more Media Paths that refer to physical locations on shared storage. Each Media Store object contains the following fields:
Field | Boolean | Description |
ID | Integer | Unique ID of this Media Store. |
name | String | Name of this Media Store. |
paths | MediaPath[] | List of Media Paths contained by this Media Store. |
Media Store Path Type Object
Represents the type of a Media Store Path. For example, types would typically include “Original Hires Media”, “Web Video Proxy” and “Filmstrip”. Each Media Store Path has a mediaStoreTypeID the specifies the type of that path:
Field | Boolean | Description |
ID | Integer | Unique ID of this Media Path Type. |
name | String | Name of this Media Path Type. |
mediaType | String | Type of media this media path type refers to. Valid values are: · hires · proxy · filmstrip · audio · subtitle |
mediaSubType | String | (Optional) Specifies a user-defined sub-type for the media. For example this field could be used to define multiple types of proxy file, with different resolutions or compression. If this field is specified then this Media Path Type will become available as an option in the Download function. |
target | String | (Optional) Specifies the context at which this path type is targetted. Valid values are: · client - Path is valid for the Desktop client’s filesystem. · web - Path refers to media valid for the playback on in a browser. The path itself must be valid for the CatDV Server’s filesystem · worker - Path is valid for the Worker node’s filesystem. · server - Path is valid for the CatDV Server’s filesystem. · adobe – Path is valid for the Adobe CC client’s filesystem and refers to media suitable for playback in the Adobe CC application. (Used by the Adobe Panel) · fcpx - Path is valid for the Final Cut Pro client’s filesystem and refers to media suitable for playback in Final Cut Pro. (Used by the Final Cut Pro Workflow Extension) · aspera – Path is a URL in the following format ‘aspera://<aspera_target>/<path>’ that specifies a location on the specified Aspera server. · archiware – Path is valid on the Archiware Server. (Used by the Archiware Archiving Server Plugin) |
extensions | String | (Optional) List of file extensions (e.g. .mp4,.mov) that the server should use in place of the original extension when looking up proxy media, or (required) for cases where the path in not a valid server path, so the server cannot perform file existence checks itself (for example for Adobe Panel proxy paths) |
Media Store Path Object
Field | Boolean | Description |
ID | Integer | Unique ID of this Media Path. |
mediaStoreID | Integer | ID of containing Media Store. |
pathTypeID | Integer | ID of the Media Path Type entry that defines the type of this Media Path hires – original hi-resolution media proxy – lower-resolution proxy media proxy.web – lower-resolution proxy encoded for web use |
path | String | Path of this location. |
pathOrder | Number | Sort of paths – defines priority where multiple candidate paths exist. |
Represents a location on shared storage where a particular type of media is held (e.g. hi-res, proxy etc.) as seen by a particular type of client (e.g.
Windows, Mac OS etc.). For example, if a location
on shared storage was mounted on Mac clients as /Volumes/SAN/Media, but on Windows machines as \\san\media, then you would store two paths, one targeting client.win and one targeting client.mac.
Each Media Path object contains the following fields:
Operations
GET /mediastores
Returns an array of all the Media Stores defined on the server.
GET /mediastores/pathtypes
Returns an array of all the Media Store Path Types defined on the server.
GET /mediastores/downloadtypes
Returns an array of all the Media Store Path Types defined on the server that have a ‘sub-types’ set. These path types are used to present the set of file type options in the download function.
GET /mediastores/<mediastore_id>
Returns the Media Store with the specified id.
POST /mediastores
Add a new Media Store to the system. POST data contains JSON Media Store object. Returns the newly created Media Store.
POST /mediastores/pathtypes
Add a new Media Store Path Type to the system. POST data contains JSON Media Store Type object. Returns the newly created Media Store Path Type.
POST/mediastores/<mediastore_id>/paths
Add a new Media Store Path to the Media Store specified by <mediastore_id>.
PUT /mediastores/<mediastore_id>
Update the Media Store specified by <mediastore_id> with the values in the JSON MediaStore object passed in the PUT data. Only fields present in the passed in JSON Media Store object will be updated.
PUT /mediastores/pathtypes/<mediastorepathtype_id>
Update the Media Store Path Type object specified by < mediastorepathtype _id> with the values in the JSON Media Store Store Path Type object passed in the PUT data. Only fields present in the passed in JSON Media Store Path Type object will be updated.
PUT /mediastores/<mediastore_id>/paths/<mediapath_id>
Update the Media Store Path specified by <mediapath_id> within the Media Store Path specified by <mediastore_id> with the values in the JSON Media Store Path object passed in the PUT data. Only fields present in the passed in JSON Media Store Path object will be updated.
DELETE /mediastores/<mediastore_id>
Delete the Media Store specified by <mediastore_id>.
DELETE /mediastores/pathtypes/<mediastorepathtype_id>
Delete the Media Store Path Type object specified by < mediastorepathtype _id>.
DELETE /mediastores/<mediastore_id>/paths/<mediapath_id>
Delete the Media Store Path specified by <mediastore_id> and /<mediapath_id>.