Table of Contents

Media Descriptor

Media descriptor is a feature that allows you to request the list of media types and their metadata details. For more information about the structure of the media type table click here.


1 - List of media types

A GET request to /api/v1/media_types will retrieve a list of media types.

GET /api/v1/media_types?hidelinks=1&hidemeta=1 HTTP/1.1
Host: mediaibox.mydomain.com
Authorization: Bearer mYs3cr3tT0k3n
Accept: application/vnd.api+json

Response:

HTTP/1.1 200 OK
Content-Type: application/vnd.api+json;charset=UTF-8
{
   "media_types":[
      {
         "_id":42,
         "_href":"/api/v1/media_types/42",
         "_type":"media_types",
         "_etag":"G-avIVLixFUceP8lK7vMhA",
         "dateins":1414430530,
         "name":"ADM_ADDINS",
         "mibindex":42,
         "title":"Addins",
         "block_write":0,
         "block_delete":0,
         "block_create":0,
         "list_download_enabled":true,
         "block_default_list":false,
         "block_default_edit":true,
         "file_hash_column":null,
         "_permissions":{
            "can_write":true,
            "can_delete":true
         },
         "_links":{
            "owner":{
               "operation":"Add",
               "values":1
            }
         }
      },
      {
         "_id":43,
         "_href":"/api/v1/media_types/43",
         "_type":"media_types",
         "_etag":"UWHYNtXyQ4xjAVvaFF1iFg",
         "dateins":1414430530,
         "name":"ADM_AUDIT",
         "mibindex":43,
         "title":"Audit",
         "block_write":null,
         "block_delete":null,
         "block_create":null,
         "list_download_enabled":null,
         "block_default_list":null,
         "block_default_edit":null,
         "file_hash_column":null,
         "_permissions":{
            "can_write":true,
            "can_delete":true
         },
         "_links":{
            "owner":{
               "operation":"Add",
               "values":1
            }
         }
      }
   }

2 - Media type details

It's possible to get media type details by its identifier (MIB_INDEX database column) or by exact name. Both cases the result will be the same object.


2.1 - By Mib Index

GET /api/v1/meta/100 HTTP/1.1
Host: mediaibox.mydomain.com
Authorization: Bearer mYs3cr3tT0k3n
If-None-Match: "r0Wv3r$10n0"
Accept: application/vnd.api+json

Response:

HTTP/1.1 200 OK
ETag: "r0Wv3r$10n1"
Content-Type: application/vnd.api+json;charset=UTF-8
{
   "_links":{
      "media_types.owner":{
         "_href":"/api/v1/adm_users/{media_types.owner}",
         "_type":"adm_users"
      },
      "media_types.adm_addins[media_type]":{
         "_href":"/api/v1/adm_addins?media_type={media_types.id}",
         "_type":"adm_addins"
      },
      "media_types.adm_audit[media_type_id]":{
         "_href":"/api/v1/adm_audit?media_type_id={media_types.id}",
         "_type":"adm_audit"
      },
      "media_types.adm_fields[mediatype]":{
         "_href":"/api/v1/adm_fields?mediatype={media_types.id}",
         "_type":"adm_fields"
      },
      "media_types.adm_fileextensions[sourcetable]":{
         "_href":"/api/v1/adm_fileextensions?sourcetable={media_types.id}",
         "_type":"adm_fileextensions"
      },
      "media_types.adm_relateds[localtable]":{
         "_href":"/api/v1/adm_relateds?localtable={media_types.id}",
         "_type":"adm_relateds"
      },
      "media_types.adm_relateds[remotetable]":{
         "_href":"/api/v1/adm_relateds?remotetable={media_types.id}",
         "_type":"adm_relateds"
      },
      "media_types.adm_quickpublish_requirements[mediatype]":{
         "_href":"/api/v1/adm_quickpublish_requirements?mediatype={media_types.id}",
         "_type":"adm_quickpublish_requirements"
      },
      "media_types.adm_quickcontent[media_type]":{
         "_href":"/api/v1/adm_quickcontent?media_type={media_types.id}",
         "_type":"adm_quickcontent"
      },
      "media_types.adm_quicklist[media_type]":{
         "_href":"/api/v1/adm_quicklist?media_type={media_types.id}",
         "_type":"adm_quicklist"
      },
      "media_types.content_criteria[media_type_index]":{
         "_href":"/api/v1/content_criteria?media_type_index={media_types.id}",
         "_type":"content_criteria"
      },
      "media_types.all_mib_fields_test[droprelated]":{
         "_href":"/api/v1/all_mib_fields_test?droprelated={media_types.id}",
         "_type":"all_mib_fields_test"
      },
      "adm_fields.owner":{
         "_href":"/api/v1/adm_users/{adm_fields.owner}",
         "_type":"adm_users"
      },
      "adm_fields.mediatype":{
         "_href":"/api/v1/media_types/{adm_fields.mediatype}",
         "_type":"media_types"
      },
      "adm_fields.relatedtable":{
         "_href":"/api/v1/media_types/{adm_fields.relatedtable}",
         "_type":"media_types"
      },
      "adm_fields.enumtype_id":{
         "_href":"/api/v1/adm_enumtypes/{adm_fields.enumtype_id}",
         "_type":"adm_enumtypes"
      },
      "adm_enumtypes.owner":{
         "_href":"/api/v1/adm_users/{adm_enumtypes.owner}",
         "_type":"adm_users"
      },
      "adm_enumtypes.adm_enumvalues[enumtype_id]":{
         "_href":"/api/v1/adm_enumvalues?enumtype_id={adm_enumtypes.id}",
         "_type":"adm_enumvalues"
      },
      "adm_enumtypes.adm_fields[enumtype_id]":{
         "_href":"/api/v1/adm_fields?enumtype_id={adm_enumtypes.id}",
         "_type":"adm_fields"
      },
      "adm_enumtypes.content_criteria_filters[selection_enum_id]":{
         "_href":"/api/v1/content_criteria_filters?selection_enum_id={adm_enumtypes.id}",
         "_type":"content_criteria_filters"
      },
      "adm_enumvalues.owner":{
         "_href":"/api/v1/adm_users/{adm_enumvalues.owner}",
         "_type":"adm_users"
      },
      "adm_enumvalues.enumtype_id":{
         "_href":"/api/v1/adm_enumtypes/{adm_enumvalues.enumtype_id}",
         "_type":"adm_enumtypes"
      },
      "adm_enumvalues.adm_enumvalues[enumtype_id]":{
         "_href":"/api/v1/adm_enumvalues?enumtype_id={adm_enumtypes.id}",
         "_type":"adm_enumvalues"
      },
      "adm_relateds.owner":{
         "_href":"/api/v1/adm_users/{adm_relateds.owner}",
         "_type":"adm_users"
      },
      "adm_relateds.localtable":{
         "_href":"/api/v1/media_types/{adm_relateds.localtable}",
         "_type":"media_types"
      },
      "adm_relateds.remotetable":{
         "_href":"/api/v1/media_types/{adm_relateds.remotetable}",
         "_type":"media_types"
      },
      "adm_relateds.adm_quickcontent_blocks[related_id]":{
         "_href":"/api/v1/adm_quickcontent_blocks?related_id={adm_relateds.id}",
         "_type":"adm_quickcontent_blocks"
      },"adm_fileextensions.owner":{
         "_href":"/api/v1/adm_users/{adm_fileextensions.owner}",
         "_type":"adm_users"
      },
      "adm_fileextensions.sourcetable":{
         "_href":"/api/v1/media_types/{adm_fileextensions.sourcetable}",
         "_type":"media_types"
      }
   },
   "media_types":[
      {
         "_id":100,
         "_href":"/api/v1/media_types/100",
         "_type":"media_types",
         "_etag":"YNlHBOEvRmXoVH-dD_HI4g",
         "dateins":1414430533,
         "name":"MVP_PRODUCERS",
         "mibindex":100,
         "title":"MVP_PRODUCERS",
         "block_write":null,
         "block_delete":null,
         "block_create":null,
         "list_download_enabled":null,
         "block_default_list":null,
         "block_default_edit":null,
         "file_hash_column":null,
         "_permissions":{
            "can_write":true,
            "can_delete":true
         },
         "_links":{
            "owner":{
               "operation":"Add",
               "values":1
            },
            "adm_fields[mediatype]":{
               "operation":"Add",
               "values":[
                  844,
                  843,
                  845,
                  846,
                  847
               ]
            },
            "adm_relateds[localtable]":null,
            "adm_relateds[remotetable]":null,
            "adm_fileextensions[sourcetable]":null
         }
      }
   ],
   "_linked":{
      "adm_fields":[
         {
            "_id":844,
            "_href":"/api/v1/adm_fields/844",
            "_type":"adm_fields",
            "_etag":"_DhwcQWalSPtf78gMqdJGQ",
            "dateins":1414430655,
            "name":"DATEINS",
            "columnname":"DATEINS",
            "type":"DateTime",
            "readonly":true,
            "orderlist":null,
            "orderedit":null,
            "relatedcolumn":null,
            "relatedcolumnname":null,
            "regex":null,
            "isunique":false,
            "droprelatednulllabel":null,
            "hide_related_find_button":null,
            "hide_related_edit_button":null,
            "hide_related_add_new_file_button":null,
            "hide_related_delete_button":null,
            "related_display_pattern":null,
            "default_value":null,
            "keyword_separator":null,
            "_nullable":false,
            "_maxlength":-1,
            "_permissions":{
               "can_write":true,
               "can_delete":true
            },
            "_links":{
               "owner":{
                  "operation":"Add",
                  "values":1
               },
               "mediatype":{
                  "operation":"Add",
                  "values":100
               }
            }
         },
         {
            "_id":843,
            "_href":"/api/v1/adm_fields/843",
            "_type":"adm_fields",
            "_etag":"Qw5V0JUfMGlFPwWeoZG0Pg",
            "dateins":1414430655,
            "name":"ID",
            "columnname":"ID",
            "type":"Integer",
            "readonly":true,
            "orderlist":null,
            "orderedit":null,
            "relatedcolumn":null,
            "relatedcolumnname":null,
            "regex":null,
            "isunique":false,
            "droprelatednulllabel":null,
            "hide_related_find_button":null,
            "hide_related_edit_button":null,
            "hide_related_add_new_file_button":null,
            "hide_related_delete_button":null,
            "related_display_pattern":null,
            "default_value":null,
            "keyword_separator":null,
            "_nullable":false,
            "_maxlength":-1,
            "_permissions":{
               "can_write":true,
               "can_delete":true
            },
            "_links":{
               "owner":{
                  "operation":"Add",
                  "values":1
               },
               "mediatype":{
                  "operation":"Add",
                  "values":100
               }
            }
         },
         {
            "_id":845,
            "_href":"/api/v1/adm_fields/845",
            "_type":"adm_fields",
            "_etag":"wtoS19a8yPQgie0DoKcvog",
            "dateins":1414430655,
            "name":"NAME",
            "columnname":"NAME",
            "type":"Varchar",
            "readonly":false,
            "orderlist":null,
            "orderedit":null,
            "relatedcolumn":null,
            "relatedcolumnname":null,
            "regex":null,
            "isunique":false,
            "droprelatednulllabel":null,
            "hide_related_find_button":null,
            "hide_related_edit_button":null,
            "hide_related_add_new_file_button":null,
            "hide_related_delete_button":null,
            "related_display_pattern":null,
            "default_value":null,
            "keyword_separator":null,
            "_nullable":false,
            "_maxlength":250,
            "_permissions":{
               "can_write":true,
               "can_delete":true
            },
            "_links":{
               "owner":{
                  "operation":"Add",
                  "values":1
               },
               "mediatype":{
                  "operation":"Add",
                  "values":100
               }
            }
         },
         {
            "_id":846,
            "_href":"/api/v1/adm_fields/846",
            "_type":"adm_fields",
            "_etag":"V1sMh3MvAp_EtM1J6xh0DQ",
            "dateins":1414430655,
            "name":"OWNER",
            "columnname":"OWNER",
            "type":"Related",
            "readonly":false,
            "orderlist":null,
            "orderedit":null,
            "relatedcolumn":"ID",
            "relatedcolumnname":"NAME",
            "regex":null,
            "isunique":false,
            "droprelatednulllabel":null,
            "hide_related_find_button":null,
            "hide_related_edit_button":null,
            "hide_related_add_new_file_button":null,
            "hide_related_delete_button":null,
            "related_display_pattern":null,
            "default_value":null,
            "keyword_separator":null,
            "_nullable":false,
            "_maxlength":-1,
            "_permissions":{
               "can_write":true,
               "can_delete":true
            },
            "_links":{
               "owner":{
                  "operation":"Add",
                  "values":1
               },
               "mediatype":{
                  "operation":"Add",
                  "values":100
               },
               "relatedtable":{
                  "operation":"Add",
                  "values":54
               }
            }
         },
         {
            "_id":847,
            "_href":"/api/v1/adm_fields/847",
            "_type":"adm_fields",
            "_etag":"x666lxWmREisXQdB3aqirg",
            "dateins":1414430655,
            "name":"TITLE",
            "columnname":"TITLE",
            "type":"Varchar",
            "readonly":false,
            "orderlist":null,
            "orderedit":null,
            "relatedcolumn":null,
            "relatedcolumnname":null,
            "regex":null,
            "isunique":false,
            "droprelatednulllabel":null,
            "hide_related_find_button":null,
            "hide_related_edit_button":null,
            "hide_related_add_new_file_button":null,
            "hide_related_delete_button":null,
            "related_display_pattern":null,
            "default_value":null,
            "keyword_separator":null,
            "_nullable":false,
            "_maxlength":250,
            "_permissions":{
               "can_write":true,
               "can_delete":true
            },
            "_links":{
               "owner":{
                  "operation":"Add",
                  "values":1
               },
               "mediatype":{
                  "operation":"Add",
                  "values":100
               }
            }
         }
      ],
      "adm_enumtypes":[],
      "adm_enumvalues":[],
      "adm_relateds":[],
      "adm_fileextensions":[]
   }
}

2.2 - By Media Type Name

GET /api/v1/meta/mvp_producers HTTP/1.1
Host: mediaibox.mydomain.com
Authorization: Bearer mYs3cr3tT0k3n
If-None-Match: "r0Wv3r$10n1"
Accept: application/vnd.api+json

Response is the same JSON above, in previous example (by ID), or if entity was cached, it would be:

HTTP/1.1 304 Not Modified
ETag: "r0Wv3r$10n1"

See HTTP ETags chapter for more information about entity cache.


3 - Field types

Possible field types are:

  • Varchar: text field usually limited to one line of text;

  • Text: multi-line text field for really long strings;

  • Html: html-formatted text;

  • Integer: 32-bit signed integer;

  • Date: a day;

  • DateTime: a date and time;

  • Source: a reference to a source media type;

  • Enum: a reference to an enumeration media-type;

  • Related: a reference to another media-type;

  • Password: a secret-char text field, encrypted before persist, with password criteria;

  • PasswordPlain: a secret-char text field, with password criteria;

  • Hidden: a secret-char text field, without password criteria;

  • Boolean: true or false;

  • Long: 64-bit signed integer;

  • Float: floating-point numeric value;

  • DropRelated: same as related, but represented as a dropbox in MibFront;

  • Link: an URL;

  • Time: a timestamp;

  • UtcDateTime:;

  • RowVersion:;

  • OsTimezone:;

  • Keyword:;

  • NullableDropRelated: same as DropRelated, but supports null value;

  • Owner: a username (defined by its ID);

  • Image: an image url.

  • Json: a JSON string.


4 - Relation types

  • Direct: one-to-many relationship;

  • LinkObjects: many-to-many relationship using LinkObjects to connect both sides;

  • RelationshipTable: many-to-many relationship using a specialized junction table.