Canto Integration Platform
Developer Guide

Table of contents

1. Introduction

2. Services and Operations

3. Configuration

4. Appendix

1. Introduction

It is assumed the reader is familiar with the concept of web service software technologies and in particular RESTful web services. You should be familiar with programming concepts related to the HTTP protocol, and data exchange mechanisms such as JSON or XML.

The Canto Integration Platform (CIP) is a web service that runs inside a web application container such as Apache Tomcat. The service is providing functionality via HTTP requests of type GET and POST. Unlike other RESTful web services CIP does not use the HTTP requests DELETE, PUT to make it easier to get started by just using a web browser.

The RESTful service API offered by CIP is not designed to handle mass queries for thumbnails, previews, and assets. These are typical use cases for the Media Delivery Cloud (MDC), or for Media Delivery On Premise (MDO).

1.1. Pre-Requisites

Before going any further, please ensure you have the following setup.

  1. You must have a running Cumulus server of the same version or newer version than the CIP server. CIP works with both Workgroup and Enterprise editions of the Cumulus server. CIP does not work with Cumulus Single User, or versions of Cumulus earlier than Cumulus 8.5.
  2. Your Cumulus Server needs an optional serial number for letting the CIP connect to it. This serial number needs to be activated.
  3. Make sure your Cumulus server has a client license free to support write activities. CIP will reserve one or more licenses on startup (depending on your configuration).
  4. Install CIP on some computer. It does not have to be the same as the one running the Cumulus Server.
  5. For development you should have an up to date version of the Firefox browser with the “JSONView” plug-in installed. This will allow you to better see the results of some RESTful requests directly in the browser.
  6. For developing your client-side code you can use whatever environment you feel comfortable with. CIP comes with a set of sample source files in different languages to be included in your project.

1.2. GET vs. POST Requests

All CIP operations allow and some even require sending the request using the HTTP POST method. The documentation for each operation specifies whether POST is required.
When using POST you can pass named parameters (parts of the "HTTP query string") in the request body if this is not already occupied by other (e.g. asset) data.
Please note that the HTTP header needs to specify

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

to pass the parameters to CIP.
If during development you are want to test some requests in a web browser by entering a URL the browser will always send a GET request. For operations that require a POST this will fail with an error message.
You can relax this check in CIP by changing a configuration, see here for details.

1.3. Secure Communication (Optional)

You can configure your web application server (e.g. Apache Tomcat) to use SSL for communicating with any client-side software. This ensures that all data is encrypted and cannot be decoded by any attacker. The actual configuration depends on the web application server software used.

The instructions for Apache Tomcat can be found here:

http://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html

1.4. Cross-Origin Resource Sharing (CORS)

CORS is a protocol between a web browser and a server to negotiate the capability to request HTTP resources across domains. The CIP server supports CORS allowing you to limit the origins for a request by configuring your CIP server's "cip-config.xml" file.
See the configuration section about how to configure CIP for CORS.
The configuration is available since: 10.1.2

1.5. Authentication (Optional)

When accessing the Cumulus server CIP needs to connect using a valid Cumulus user name and password. There are several options available in CIP to be used (in the given order, if available):
  1. Provide the user name and password in the request URL using the named parameters “user” and “password.”
  2. Provide the user name and password in the request using HTTP Basic Access Authentication (http://en.wikipedia.org/wiki/Basic_access_authentication).
  3. Provide a session ID for a valid session in the request. The session had to be opened with valid credentials.
  4. In the URL refer to a catalog alias definition in the configuration file that includes user name and password.
  5. Without any of the above CIP may initiate HTTP basic access authentication depending on a configuration option.
    In case the client software is a web browser it will ask the user to enter name and password for the realm “CIP.”
    See http://en.wikipedia.org/wiki/Basic_access_authentication for details about HTTP Basic Authentication.
  6. If all the above fails CIP returns HTTP status 401 (Unauthorized) to the client.
CIP supports the Cumulus feature to act as another user without the need to specify his/her password.
To prepare you create a technical user in Cumulus who has the permission to log in as another user by specifying the target users or roles of target users.
When calling a CIP operation you specify the target user in the user parameter and the following string in the password parameter: USER{d4c457e4-03c6-43ed-9186-66d56d277538}PASSWORD where USER is the login name and PASSWORD the password of the technical user.
You can also use the method in a configuration of a catalog alias. The following example can be used to allow all users to just specify the user name without the need for a password:

Examples

a) Open a new session specifying the catalog name and the target user
Assume you have configured the following catalog:
Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="mycatalog">
            <serverAddress>localhost</serverAddress>
            <password>techuser{d4c457e4-03c6-43ed-9186-66d56d277538}secret</password>
            <catalogName>Sample Catalog</catalogName>
        </catalog>
    ...
    </catalogs>
...
</config>

Example Request
http://cip-server:port/CIP/session/open?catalogname=Test+Catalog&user=me

Example Response
                            {
                            "jsessionid" : "A045F54785152CE916F8ABA6916D22F4"
                            }
                        

Example Request

The above will open a session for me by using the technical user for authentication. Note that we did not specify any password in the request but Cumulus will check whether the technical user has the necessary permission to act as me.


1.6. Session Handling (Optional)

Besides the typical HTTP Request-Response protocol CIP supports keeping a session for answering requests. The session is identified by a session ID and can store credentials and collections of items to be used across several requests. This way you only need to provide the credentials when opening the session and subsequent requests do not need the credentials anymore.

To start a session you send the session/open request to the CIP server. This will create a new session at the CIP and will return a “jsessionid” cookie as well as the “jsessionid” value in the response data. The value of “jsessionid” is an arbitrary string that your client software needs to keep.

Your client software then provides the “jsessionid” with every subsequent request. You can use either the HTTP cookie mechanism or URL rewriting to provide the “jsessionid” value to CIP.

When you are done with the session you can call the session/close operation to close the session at the server (also providing the “jsessionid”). Every attempt to issue another request for the same session will fail after the session is closed.

Since 11.0.4: You can let CIP actively check whether the session is still valid by specifying the optional parameter keepaliveinterval when opening the session.
You then send session/keepalive requests to keep the session alive in the time interval specified.
CIP will then automatically close your session if:

1.7. Priority of Catalog Access Parameters

You have several options for specifying the parameters for catalog access: user, password, serveradddress, catalogname. They can be configured in the CIP configuration for a catalog, they can be kept in a session in the server and you can specify them in a request.

The CIP server evaluates these parameters in the following priority

  1. Passing the parameter in a request has the highest priority and overwrites any of the below.
  2. If you specified a collection name in the request the information kept in the collection is taken.
  3. If you specified a session (passing a valid jsessionid) the parameter is taken from the session if it was specified when opening the session.
  4. If the parameter is not specified by any of the above it is taken from the catalog configuration in the XML file.
You can configure a catalog alias with constraints that lock the configured values. This will prevent any request using the catalog alias from overwriting the value.
This way you can make sure that no malicious client can use the catalog alias but specify a different catalog or server. See Configure catalog constraints for details.

Since 10.1.3: By passing the name of one of the configured catalogs in a parameter catalogname you can limit access to the one you specify.

Examples

a) Open a new session specifying the catalog name.
Assume you have configured the following catalog:
Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="mycatalog">
            <serverAddress>localhost</serverAddress>
            <userName>sample</userName>
            <password>sample</password>
            <catalogName>Sample Catalog</catalogName>
        </catalog>
    ...
    </catalogs>
...
</config>

Example Request
http://cip-server:port/CIP/session/open?catalogname=Test+Catalog

Example Response
    {
        "jsessionid" : "A045F54785152CE916F8ABA6916D22F4"
    }
                        

The above will search in the catalog "Test Catalog" because the parameter catalogname is taken from the session and overwrites the catalog name specified in the configuration.


1.8. Data Model of CIP

CIP is assuming that the data is organized in the following way:

A server is identified by the server address string is serving one or more catalogs.

Each catalog consists of one or more tables which are identified by their name. The table with the name "AssetRecords" is storing asset information, another table named "Categories" contains categories. Additional tables may exist to store other information not directly related to assets.

Each table stores zero or more items identified by a number called "item ID."

The item ID is a unique identifier of an item inside a table of a catalog. You can safely identify the item representing an asset by specifying the catalog name and item ID (the table name for asset items is fixed).

The item ID is automatically generated and stable during the lifetime of an item.

1.9. Using Connection Pooling with Cumulus

You can configure pooling to be used when the user name is taken from a configured catalog alias.

Whenever you specify a user name in a request the CIP server will not attempt to use a connection pool but will create a separate connection to the server. To get better performance for subsequent requests with the same user name you should open a session using the user name and password as parameters. In this case the connection will be kept open and stored in the server-side session data.

We recommend using a pool to improve the request handling performance whenever you have configured a technical user to be used to connect to the Cumulus server.

If you want to use a pool you can configure the maximum size and some other parameters for the pool in the CIP configuration file (see the section about configuration below).

For each combination of a user name and catalog the CIP server will keep a separate pool of connections to the catalog.

Each pool (combination of user name and catalog) that is used for write access occupies a separate client license at the Cumulus server.

To let CIP server support the configured pool maximum size you need to activate an additional serial number at the Cumulus server:

  1. The "CIP Pooling 3" license allows to configure a maximum pool size of up to 3 connections.
  2. The "CIP Pooling 10" license allows to configure a maximum pool size of up to 10 connections.
  3. The "CIP Pooling 50" license allows to configure a maximum pool size of up to 50 connections.
  4. The "CIP Pooling Unlimited" license allows to configure a pool of any maximum size.

Examples

a) Perform a search using the configured catalog alias.
Assume you have configured the following pooling parameters:
Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
    <catalogs>
    ...
        <catalog aliasName="mycatalog">
            <serverAddress>localhost</serverAddress>
            <userName>sample</userName>
            <password>sample</password>
            <catalogName>Sample Catalog</catalogName>
        </catalog>
    ...
    </catalogs>
...
    <dam>
    ...
        <parameter name="com.canto.cumulus.pool.maxsize">5</parameter>
        <parameter name="com.canto.cumulus.pool.minsize">1</parameter>
    ...
    </dam>
...
</config>

Example Request
http://cip-server:port/CIP/metadata/search/mycatalog/myfields?quicksearchstring=zebra

The above will cause a pool of connections to be created for the user "sample" to access the catalog "Sample Catalog" because the request is using a configured catalog alias.
The pool will start with a size of 1 connection but if subsequent requests find that all connections are in use for other requests the pool will grow to a maximum size of 5 connections.
Because the request is a read-only request no additional client license is occupied at the Cumulus server.
If the request would be one that modifies catalog data a writing pool for the user and catalog will be created which occupies an additional client license.
In order to support the maximum pool size of 5 connections you need to activate a CIP Pooling license at the Cumulus server.
The CIP Pooling license must be chosen so that it covers the configured maximum pool size: "CIP Pooling 10", "CIP Pooling 50", or "CIP Pooling Unlimited" would do this.


1.10. Field Specifiers

When specifying a field either as a request parameter or in the cip-config.xml you have various options.

You can specify a field by its UID, name, or both and also give it an alias name so the field can be identified in the data by a shorter, more convenient name.

CIP also supports accessing information via some virtual fields that do not exist in the catalog layout.

Specify Field Using Field UID

It is preferable to specify the field using the field UID and optionally the field name.
This allows to specify a field in a language-independent way:

Specify Field Using Field UID and Name

To improve readability you can add the field name to the UID separated by colon. The field name is only evaluated if a field with the given UID does not exist.

Giving a Field an Alias Name

You can also give a field an alias name that is used when identifying the field value in JSON:

Specifying a Sub-Field

Some fields allow to specify a part of the field value by adding a sub-field name separated by slash to the end of the field specifier. All fields of type Picture allow specifying the following sub-fields (Available since: 9.2.1):

The "Thumbnail" Field

The "Asset Reference" Field

The field "Asset Reference" has some sub-fields that you can specify:

Fields of Type "Date"

All fields of type DateTime support virtual sub-fields where the sub-field name specifies how to format the date as a string (Available since: 10.2.1).
You can specify the format of the result in two different ways:

format=FORMATSTRING where FORMATSTRING is following the Date / Time Syntax.

dateformat=full|long|medium|short,timeformat=full|long|medium|short to let CIP select a standard format string for the current locale and the given length of the output. You can omit one of the format strings to omit the respective part in the output.

Examples of getting a formatted date and time string:

The "Related Master Assets" and "Related Sub-Assets" Fields

CIP version 11.0.2 introduces getting the field values for the "Related Master Assets" and "Related Sub-Assets" fields having the field UID {af4b2e72-5f6a-11d2-8f20-0000c0e166dc} and {af4b2e71-5f6a-11d2-8f20-0000c0e166dc} respectively.
The field values are a list of relations along with IDs and names of related assets.
To return the related assets of a single relation only you can add the relation UID to the field UID separated by slash.
Here is a list of predefined relation UIDs:
Example field specifiers for related assets:

Virtual Fields

CIP allows to get information that is not stored in a field of a catalog but added by CIP.
All virtual field values in CIP can only be read but not modified.

Virtual fields (Available since: 8.6.1):

Virtual fields (Available since: 9.1.1):

Virtual fields (Available since: 10.0):

Virtual fields (Available since: 10.0.2):

Virtual fields (Available since: 10.2.6):

Collection Fields

A collection can have values in the following fields:
Field NameField GUIDField TypeDescription
Collection Name{ba35f6a4-3ecc-4262-a50b-b942dea26693}StringA user-friendly name that can be translated into different languages.
Description{47544b91-ed41-11d5-b5e8-0050baeba6c7}StringA description that can be translated into different languages.
Collection Type{1cad7152-d5d7-4802-b2d1-b41d573d9b70}EnumThis is an Enum type field with the following possible values:
IDNameDescription
-1unknownThe type is unknown to this version of CIP.
0autoA (private) collection that is automatically created by a client software.
1basketA (private) collection to store a collection basket for the user.
2downloadA collection shared with other users. A collection link was sent to a list of recipients that can then download the assets contained in the collection. A download collection has an expiration date and optionally also an embargo date.
3privateA collection of assets accessible on to the current user.
4sharedA collection of assets shared with others for accessing the assets.
5uploadA shared collection where other users (even external to the system) can upload assets to. When creating an upload collection a mail is sent with a link to a landing page that allows uploading of assets.
6customA collection created by some third-party software which is not shown in any of the Cumulus client applications.
Item Creation Date{af4b2e01-5f6a-11d2-8f20-0000c0e166dc}DateTimeThe date and time this collection was created.
Item Modification Date{af4b2e02-5f6a-11d2-8f20-0000c0e166dc}DateTimeThe date and time this collection was last modified.
Collection Catalogs{e8f80062-4b10-4b33-a261-5de5e1446005}MultiEnumThe list of catalogs that the collection references. Each catalog is listed with an ID and a location.
Collection Expiration Date{76f807ae-299f-40f3-b80e-713be5b8324a}DateTimeThe date and time this collection expires. A download collection is deleted automatically when expired whereas an upload collection will refuse to allow uploading any additional asset.
Collection Embargo Date{01f1663b-b38b-43ca-90e4-1409fa3ddcd7}DateTimeThe date and time this collection will be made usable by others.
Collection Creator{4b4692ee-456e-46a5-bc5b-f3218f31c8da}UserUIDThe user UID of the user who created this collection.
Collection Recipients{6c697634-29be-4813-873c-c84d4323425b}BinaryThe list of people who received an e-mail with an access link to the collection. This is only available for download and upload collections. Each recipient is listed with user UID, e-mail address being used and the last access date.
Collection Number of Records{dd8bfa7e-4637-4b0f-a709-8062e5777f49}IntegerThe number of assets contained in the collection. Only assets from the catalog specified by the catalog alias are counted.

1.11. Accessing Multiple Catalogs

CIP supports to work with multiple catalogs within a single operation.

To use this feature you configure a catalog alias (see Configure a catalog definition) with multiple catalog elements. CIP does currently not support specifying multiple catalogs using the catalogname named parameter in an operation.

Some operations are still limited to only use the first of the configured catalogs:

When working with multiple catalogs assets, categories, and other table items of the first configured catalog will show the same IDs as if you have configured a single catalog. Items of other catalogs will be constructed by adding the index of the catalog in the configuration as the upper 32 bit value of the ID. This identifies to CIP which catalog the item comes from and is completely transparent. As long as you do not change the catalog list in the catalog alias configuration these IDs are stable. As soon as you have changed the catalog list CIP will use other IDs for the same objects.

Example:

The metadata/getcategories operation will return an additional level if working with multiple catalogs. This new top-level lists categories that represent each of the catalog:

Examples

a) Get the top-level categories for a catalog alias containing two catalogs including the two fields "Category Name" and "Category Type".
Assume you have configured the following catalog alias:
Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
    ...
    <catalogs>
        ...
        <catalog aliasName="mycatalogs">
            <serverAddress>localhost</serverAddress>
            <user>techuser</user>
            <password>secret</password>
            <catalogName>My First Catalog</catalogName>
            <catalogName>My Second Catalog</catalogName>
        </catalog>
        ...
    </catalogs>
    ...
</config>

Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalogs?field=name:%7B5251a740-727c-11d2-a73d-0000c000cdd3%7D&field=type:%7B5251a744-727c-11d2-a73d-0000c000cdd3%7D

Example Response
{
  "id": -1,
  "hassubcategories": true,
  "subcategories": [
    {
      "id": 0,
      "name": "My First Catalog",
      "type": null,
      "hassubcategories": true,
      "subcategories": [ ]},
    {
      "id": 4294967296,
      "name": "My Second Catalog",
      "type": null,
      "hassubcategories": true,
      "subcategories": [ ]
    }
  ]
}
                        


1.12. Plug-Ins for Clients

Since version 10.1.1 CIP supports deployment of plug-ins for CIP clients at the CIP server. Plug-ins are installed at the CIP server using the Web Server Console "CIP Configurator" module.
A plug-in is a ZIP file containing at least a "manifest.json" file on top level of the ZIP archive.

This "manifest.json" file describes the plugin by containing the following properties:
Property Description
com.canto.cip.client.plugin.typeThe type of plugin, e.g. "com.canto.cumulus.portals"
com.canto.cip.client.plugin.idA unique ID of the plugin, e.g. "com.canto.cumulus.portals.maps"
com.canto.cip.client.plugin.version(Optional) The version of this plug-in. If missing then CIP uses version "1.0"
com.canto.cip.client.plugin.name(Optional) A user-readable name fort his plug-in. If missing then CIP uses the "id" value

Besides from the "manifest.json" file the ZIP archive will contain all other files implementing the CIP client plug-in.
This can consist of JavaScript files, CSS files, image files, and others.
The ZIP archive may use folders to structure the plug-in content.
To list all installed client plugins you call the configuration/listplugins operation.
To get one of the files contained within the plug-in call configuration/getpluginresource operation.

Examples

a) The following is an example of a "manifest.json" file for a Cumulus Portals plugin.
Example Configuration
{
    "com.canto.cip.client.plugin.type": "com.canto.cumulus.portals",
    "com.canto.cip.client.plugin.id": "com.canto.cumulus.portals.maps",
    "com.canto.cip.client.plugin.name": "Portals Map Plug-In",
    "com.canto.cip.client.plugin.version": "1.0",

    "scripts": [],
    "pluginPort": ["assetactionButtons"]
}


1.13. Error Handling

When CIP encounters a serious problem while processing a request it responds with an HTTP status code of 500.

The response body is a JSON structure containing detailed information about the error:

Some common errors can be identified with an error code assigned by CIP.

Following is a list of all defined error codes:
Error Code Description
server.not.foundCIP cannot connect to the given Cumulus server. Please check the server address and network connectivity to the server.
login.failedThe given login user name or password is wrong.
password.expiredThe user's password is expired. Please contact your administrator.
permission.deniedThe user does not have the necessary permission to perform the operation.
catalog.alias.not.foundA catalog alias specified in the request is not valid. Please check the catalog alias configurations in cip configuration file.
catalog.not.foundThe given catalog was not found at the Cumulus server. Please check whether it has been removed or renamed.
item.not.foundThe requested item (e.g. asset record, category, or sub-table item) does not exist. It may been deleted recently.
field.not.foundThe given metadata field does not exist. Please check the catalog settings.
asset.version.not.foundThe specified asset version does not exist. Please check whether the asset version has been deleted recently.
workflow.not.foundThe specified workflow does not exist in the given catalog. Please check the catalog settings.
workflow.activity.not.foundThe specified workflow activity does not exist in the given catalog. Please check the workflow definition.
workflow.state.not.foundThe specified workflow state does not exist in the given catalog. Please check the workflow definition.
server.view.not.foundThe specified view set does not exist at the Cumulus server. Please check whether the view set may not be accessible for the given user.
collection.not.foundThe specified server-side collection does not exist at the Cumulus server. Please check whether the collection may not be accessible for the given user.
collection.already.existsThe name for a server-side collection is already taken. Please choose another name.
client.configuration.not.foundThe specified client configuration cannot be found. Please check the CIP configuration file.
filter.state.not.foundThe specified filter state is not valid. You may have closed and re-opened a session which removes all filter states.
invalid.queryThe format of the query string is wrong. Please check the syntax. Please see the appendix for a documentation of the query syntax.
cannot.create.previewCIP cannot create a preview for the given asset. It may have a format that is not supported.
client.product.invalidThe given client product ID is not valid for this version of CIP.
client.product.not.activatedThe given client product is not licensed for this version of CIP.
asset.not.foundsince 10.0.2: The requested asset can not be found.
no.asset.convertedsince 10.1: When requesting an asset conversion the result list was empty. There is nothing to download.
cannot.printsince 10.1.1: An error occurred when generating either a PDF or image using a Print Template.
reset.password.token.not.foundsince 10.1.1: when trying to reset a password using a token created when sending the e-mail CIP detected that the token is invalid.
The token is probably expired (used more than 24 hours after the e-mail was sent. It could also be that the token was already being used for resetting the password.
page.number.not.validsince 10.1.1: The given page number is either negative or greater or equal to the total number of pages.
plugin.id.not.foundsince 10.1.1: The given plug-in ID is not valid. There is no plug-in of this ID installed at the CIP server.
invalid.sessionsince 10.1.2: Either the operation or some parameter requires a valid session but there is no session provided.
item.not.publishedsince 10.2: The asset of the specified item is not published so a preview URL cannot be generated.
configuration.errorsince 11.0: Some configuration of the CIP server does not match the usage of CIP.

Examples

a) The following is an example of an error response in case the user credentials are wrong.
Notice that it contains an "error" property in the structure with the value of "login.failed".

Example Request
http://cip-server:port/CIP/metadata/search/sample?quicksearchstring=zebra&user=myself&password=secret

Example Response
{
  "status": 500,
  "message": "Invalid user name or password (src\\ConnectionManager.cpp:2058)",
  "error": "login.failed",
  "exception": {
    "errormessage": "Invalid user name or password (src\\ConnectionManager.cpp:2058)",
    "stacktrace": [
      "com.canto.cip.dam.cumulus.CumulusDamCatalog.getTable(CumulusDamCatalog.java:357)",
      "com.canto.cip.operations.MetadataSearchOperation.execute(MetadataSearchOperation.java:212)",
      "com.canto.cip.servlets.RESTServlet.doRequest(RESTServlet.java:484)",
                            ...
      "java.lang.Thread.run(Thread.java:745)"
    ],
    "cause": {
      "errormessage": "Invalid user name or password (src\\ConnectionManager.cpp:2058)",
      "stacktrace": [
        "com.canto.cip.dam.cumulus.CumulusDamCatalog.assureMultiRecordItemCollection(CumulusDamCatalog.java:239)",
        "com.canto.cip.dam.cumulus.CumulusDamCatalog.getTable(CumulusDamCatalog.java:341)",
        "com.canto.cip.operations.MetadataSearchOperation.execute(MetadataSearchOperation.java:212)",
        ...
        "java.lang.Thread.run(Thread.java:745)"
      ],
      "cause": {
        "errormessage": "Invalid user name or password",
        "stacktrace": [
          "com.canto.cumulus.Server.openConnection1(Native Method)",
          "com.canto.cumulus.Server.openConnection(Server.java:130)",
          "com.canto.cip.dam.cumulus.CumulusDamServer.getServer(CumulusDamServer.java:308)",
          ...
          "java.lang.Thread.run(Thread.java:745)"
        ],
        "details": {
          "error": 86,
          "file": "src\\ConnectionManager.cpp",
          "line": 2058,
          "module": "CantoComponents"
        }
      }
    }
  },
  "version": {
    "cip": {
      "name": "Canto Integration Platform",
      "version": "10.0"
    },
    "dam": {
      "name": "Cumulus Java Classes",
      "version": "10.0"
    },
    "java": {
      "name": "Java HotSpot(TM) 64-Bit Server VM",
      "version": "1.8.0_31",
      "vendor": "Oracle Corporation"
    },
    "os": {
      "name": "Windows 7",
      "version": "6.1",
      "arch": "amd64"
    },
    "server": {
      "name": "Apache Tomcat/8.0.25",
      "version": "3.0"
    },
    "classpath": [
      ...
    ]
  }
}
                        


1.14. API Versions

CIP is supporting older versions of the API by specifying the apiversion named parameter in the request.

By default it is assuming that you want to use it according to the API version that the CIP server was built for.

Some operations or parameters were introduced with a specific API version so they will only work if the API version specified (or implied) is at least at the required level.

Here is a list of API versions and the corresponding CIP release version:
1CIP 8.5.2 release
2CIP 8.6 release
3CIP 8.6.1 release
4CIP 9.0 release
5CIP 9.1 release
6CIP 9.2 release
7CIP 9.2.1 release
10CIP 10.0 release
11CIP 10.0.1 release
12CIP 10.0.2 release
13CIP 10.0.3 release
14CIP 10.1 release
15CIP 10.1.1 release
16CIP 10.1.2 release
17CIP 10.1.3 release
18CIP 10.2 release
19CIP 10.2.1 release
20CIP 10.2.2 release
21CIP 10.2.3 release
22CIP 10.2.4 release
23CIP 10.2.5 release
24CIP 10.2.6 release
25CIP 11.0 release
26CIP 11.0.1 release
27CIP 11.0.2 release
28CIP 11.0.3 release
29CIP 11.0.4 release
30CIP 11.1 release
31CIP 11.1.1 release
32CIP 11.1.2 release

2. Services and Operations

The operations (functions) that CIP provides to clients are grouped into different “services.”
Each service offers a set of operations that conceptually belong together.
The URL for an operation always starts with the following:

http://cip-server:port/CIP/service/operation/path-parameters?named-parameters

Here is an overview of the services that CIP provides:



2.1. Session Service

This service provides operations to create and close server-side sessions.
A session can store the credentials for later use in any subsequent request for the same session.
Any credentials provided explicitly with a request take precedence over session credentials.

2.1.1. session/open

Open a new session at the server. You can provide user name and password to store them in the session for subsequent requests or you can use a configured catalog alias which contains the credentials.
You can optionally open a session that is bound to a server-side collection to implement web landing pages for Cumulus download or upload collections.
The credentials can be provided in three different ways:
  1. As named URL parameters “user” and “password”
  2. In a configured catalog alias referenced by a path parameter for this request
  3. In the HTTP request header following the HTTP “Basic Access Authentication” standard

The third option is less flexible as it can not handle user names and passwords that contain colon (":") characters.
If you want to hide the credentials and encrypt all communication you should configure your web application server to use SSL.
Then each URL you call needs to start with “https” instead of “http.”

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (optional) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
This catalog alias configuration may contain constraints that will apply to the session being opened.

Available since: 10.0

tokenstring (optional) In case you want to open a session for working with a Cumulus download or upload collection link you provide the GUID of the collection link URL as an optional "token" parameter.
The search result for assets will be restricted to only contain assets of the given server-side collection.
For this use case the catalog alias configuration should contain constraints that limit the usage of the session (and thus the credentials in the catalog alias).
The constraints should limit the token parameter to be a valid download or upload collection GUID and should also limit the operations to be executed with this session.
See the section Configure a catalog definition about configuration details.

Available since: 10.0

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

serveraddressstring (optional) The server IP address for later catalog access. e.g. localhost, 192.168.0.2
userstring (optional) The user name for login to the server for later catalog access.
passwordstring (optional) The password for login to the Cumulus server or the password for opening a server-side collection (if the collection is specified as a "token" path parameter).
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog
localestring (optional) The two-letter language code (ISO 639-1) to be used for later catalog metadata fields access.
keepaliveintervalinteger (optional)

Available since:11.0.4

An optional number of seconds for the time between two requests of session/keepalive operation.
By specifying this parameter the CIP server will check whether this session is time out.
See Session Handling for more details.
keepaliveafterrealrequestinteger (optional)

Available since:11.0.4

If you specified the keepaliveinterval parameter then this parameter given in seconds overrides the configured session timeout from the web.xml of CIP.
See Session Handling for more details.

Result

The result contains the session ID of the newly created session. The session ID is returned as a HTTP cookie "jsessionid" as well as in the response text.

See also:

Examples

a) Open a new session at the server:
Example Request
http://cip-server:port/CIP/session/open?user=myself&password=secret

Example Response
    {
        "jsessionid" : "F045F54785152CE916F8ABA6916D22F4"
    }                   



2.1.2. session/switchuser

For an existing session at the server you can provide user name and password to change the session's user but keep all collections previously stored in this session.

Allowed HTTP method:POST
Available since:10.0

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:10.0

For supported values see API Versions

userstring (optional) The new user name for login to the server for later catalog access.
passwordstring (optional) The new password for login to the Cumulus server.

Result

The result contains the session ID of the existing session.

See also:

Examples

a) Change the user for the current session:
Example Request
http://cip-server:port/CIP/session/switchuser?user=myself&password=secret

Example Response
{
    "jsessionid" : "F045F54785152CE916F8ABA6916D22F4"
}
                        



2.1.3. session/information

Get information about a session.
In case the session ID is not valid or the XSRF token does not match CIP returns an error.

Allowed HTTP method:POST
Available since:11.0

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions


Result

The result is a JSON object with information about the session (see example below).

See also:

Examples

a) Get information about a session which was opened by providing the locale "fr":
Example Request
http://cip-server:port/CIP/session/information

Example Response
{
    "jsessionid" : "F045F54785152CE916F8ABA6916D22F4",
    "locale": "fr"
}
                        



2.1.4. session/keepalive

Keep a session alive by extending its timeout.
After opening a session using the keepaliveinterval parameter the client needs to send this request to let the CIP server extend the timeout of the session.

Allowed HTTP method:POST
Available since:11.0.4

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions


Result

None.

See also:

Examples


2.1.5. session/close

Close an existing session at the server.
Any subsequent request for this session will fail after this operation is executed.
You need to provide a session ID (see section about session handling above) for this operation.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions


Result

None.

See also:

Examples

a) Close an existing session at the server:
Example Request
http://cip-server:port/CIP/session/close




2.2. Metadata Service

The main purpose of the metadata service is to provide operations for searching, retrieving, and modifying metadata. When searching you have the following options to keep the result:
  1. Immediately return all IDs of the resulting items.
  2. Immediately return metadata field values for each of the items of the result.
  3. Store the resulting item IDs in a collection by optionally combining this search result with the previous contents of the collection. You then use the getfieldvalues operation to retrieve metadata for items in the collection. This way you can implement “paging” through a long list of items without returning metadata for all items found in a single operation.

Collections
The search operations allow you to optionally store the result in a named collection which is stored in the current session (see session handling above). You give the collection a name which has to be unique within the current session. The collection is bound to a specific catalog and table within the catalog and only contains a list of item IDs.

After storing a search result in a collection you can then either retrieve the metadata for items in the collection using a getfieldvalues operation or combine the collection with the result of a subsequent search operation. Each search always returns the total number of items found. The getfieldvalues operation allows you to specify a starting offset in the item IDs and a maximum number of items to return. This way you can implement client-side “paging” through a long list of resulting items.

2.2.1. metadata/getcatalogs

Return a list of all catalogs that the given user is able to work with.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (optional) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases. If you specify a catalog alias this operation will list all catalogs configured in the configuration.

Available since: 10.0

For supported values see API Versions

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (required) The user name to log in to Cumulus.
passwordstring (required) The password for login to the Cumulus server.
serveraddressstring (required) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the list of catalog names.

See also:

Examples

a) Get the names of all catalog on the server "localhost":
Example Request
http://cip-server:port/CIP/metadata/getcatalogs?user=myuser&password=mypassword&serveraddress=localhost

Example Response
    {
        "catalogs" : [
            {
                "id"   : 3,
                "name" : "Sample Catalog",
                "displaystring": "Sample Catalog",
                "description": "The Canto Cumulus sample catalog"
            },
            {
                "id"   : 5,
                "name" : "Test Catalog",
                "displaystring": "Test Catalog",
                "description": null
            }
        ]
    }
    



2.2.2. metadata/gettables

Return a list of all table names of a catalog.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is the list of table names.

See also:

Examples

a) Get the names of all tables of the catalog with the alias “mycatalog”:
Example Request
http://cip-server:port/CIP/metadata/gettables/mycatalog

Example Response
    {

        "tables" : [
            "AssetRecords",
            "AssetRecords/{a89b908c-e98e-413b-ac4d-50668b2fafbc}",
            "AssetRecords/{04a4080f-fec0-4e01-822f-b9125c0b5ac9}",
            "AssetRecords/{04a4080f-fec0-4e01-822f-b9125c0b5ac9}/{03504c8d-c809-461c-a62e-55a4bd6c1adf}",
            "Vocabulary/AssetRecords/{adf90111-fd40-4449-8bfc-9b01b337cff1}",
            "Categories"
        ]

    }
    



2.2.3. metadata/getlayout

Return a description of all the fields of a given table.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

tablestring (optional) You may want to specify the table to return the layout for. The default is "AssetRecords".
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field names and values for the result. This parameter affects the way field names and language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
propertystring array (optional) You can select the field properties that should be returned by specifying one or more of these named parameters. Limiting the properties returned by the request can minimize the data that is returned.
Available since 11.0:

Possible values are:

name The localized name of the field.
key The unique ID for this field.
type The field type (e.g. "String").
usereditable A boolean specifying whether this field should be offered to the user for editing.
sortable A boolean specifying whether items can be sorted by this field.
mandatory A boolean specifying whether the field is mandatory.
containsearchable A boolean specifying whether a search by "contains" is supported for this field.
aliasname An alias name for the field. If you pass field specifiers or have configured a view the field specification may define an alias name.
values For fields of type "Enum" or "MultiEnum" this property returns a list of possible values.
labels For fields of type "Label" this property returns a list of color values for teh field.
valuetable For fields of type "Vocabulary" or "MultiVocabulary" this property specifies the name of the table that stores the vocabulary items. Use this table name to obtain layout information for this vocabulary field.
userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is the list of field definitions of the given table.
Each field definition contains the type of the field, the field name in the language of the specified locale and the user editable flag.
Fields of type Enum also contain a list of possible values which consist of an ID and a name in the given locale. Fields of type Vocabulary also contain the name of the table containing the possible vocabulary items. To get vocabulary items matching certain criteria (e.g. to present a suggestion list to the user) you can use the metadata/search operation and specify the table name returned in the valuetable property for the vocabulary field.

See also:

Examples

a) Get the asset records layout for the catalog with the alias “mycatalog” and view with the alias fields:
Example Request
http://cip-server:port/CIP/metadata/getlayout/mycatalog/fields

Example Configuration
    <view name="fields">
        <field>Status</field>
        <field>Status Label</field>
        <field>Record Name</field>
        <field>Countries</field>
    </view>
    

Example Response
{

    "fields": [
        {
            "name": "Status",
            "type": "Enum",
            "usereditable": true,
            "sortable": true,
            "mandatory": false,
            "containsearchable": false,
            "aliasname": "Status",
            "key": "{af4b2e07-5f6a-11d2-8f20-0000c0e166dc}",
            "values": [
                {
                    "id": 0,
                    "displaystring": "approved"
                },
                {
                    "id": 1,
                    "displaystring": "needs approval"
                },
                {
                    "id": 2,
                    "displaystring": "rejected"
                }
            ]
        },
        {

            "name": "Status Label",
            "type": "Label",
            "usereditable": false,
            "sortable": true,
            "mandatory": false,
            "containsearchable": false,
            "aliasname": "Status Label",
            "key": "{d6ac1536-6ae3-41ea-8e92-d978f0fce2c2}",
            "labels": [
                {
                    "id": 0,
                    "color": "#FF796B"
                },
                {
                    "id": 1,
                    "color": "#FCBA58"
                },
                {
                    "id": 2,
                    "color": "#F0E45F"
                },
                {
                    "id": 3,
                    "color": "#B7E05F"
                },
                {
                    "id": 4,
                    "color": "#64ABFE"
                },
                {
                    "id": 5,
                    "color": "#D09ADD"
                },
                {
                    "id": 6,
                    "color": "#B5B5B5"
                },
                {
                    "id": 7,
                    "color": "#FFFFFF"
                },
                {
                    "id": 8,
                    "color": "#000000"
                }
            ]

        },
        {
            "name": "Record Name",
            "type": "String",
            "usereditable": true,
            "sortable": true,
            "mandatory": false,
            "containsearchable": true,
            "aliasname": "Record Name",
            "key": "{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}"
        },
        {
            "name": "Countries",
            "type": "Vocabulary",
            "usereditable": true,
            "sortable": false,
            "mandatory": false,
            "containsearchable": true,
            "aliasname": "Countries",
            "key": "{adf90111-fd40-4449-8bfc-9b01b337cff1}",
            "valuetable": "Vocabulary/AssetRecords/{adf90111-fd40-4449-8bfc-9b01b337cff1}"
        }
    ]

}



2.2.4. metadata/search

Perform a search using a combination of QuickSearch, query string, or configured named query.
You must specify at least one of the following parameters: quicksearchstring, queryname, querystring to perform a search.
You can combine a quicksearch string with a normal search query string or named query. If you specify more than one parameter the single queries will be joined to complex one with the AND operator.

A query configuration can be defined in different ways:

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters. If no view or fields are specified then the resulting list of items is just an array of item IDs.

Named Parameters

Parameter Type Description
quicksearchstringstring (optional) The text to perform a quicksearch with. It can be combined with a normal search query string or named query.
querynamestring (optional) The name of a query defined in the CIP configuration file. It can be combined with a quicksearchstring or a normal search query string. The defined query is configured in the cip-config.xml. This configuration either contains a query string itself or can refer to a Cumulus server-side query and may contain placeholders. By convention the placeholders are named using an underscore as a prefix to avoid using a name that is later being defined by CIP. See the configuration section for details on how to define queries.
querystringstring (optional) The complete query string as expected by Cumulus. It can be combined with a quicksearchstring or a named query. You need to make sure all special characters are correctly escaped if you want to pass this parameter in an HTTP request URL. It is recommended to pass the parameter in the body of the request instead.
Available since 10.2: If the query string contains the placeholder ${MASTERS_ONLY} then this is replaced by an actual query fragment that finds master assets only.
localestring (optional) The two-letter language code (ISO 639-1) to be used for parsing the query string and also for the metadata field values to be returned. This parameter affects the way language-dependent metadata values are returned. For example you can specify “fr” to interpret date values in the query in French format and to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the "user.language" Java VM parameter when starting the web application server).
sortbystring array (optional) A field name or field ID with optional sort direction separated by colon (e.g. ID:descending or ID) to specify the fields to be used for sorting the result. The default is that the result is not sorted by any field.

Supported values for sort direction:

ascending (Default)
descending
collectionstring (optional) The name of a collection to save the resulting list of IDs. If you specify this parameter but leave the value empty then CIP will create a unique collection name for you and will return this name in the result. This can be used for a temporary collection to make sure the name is unique in the session. When also using the parameter combine you can combine the existing collection contents with the result of this search operation.
combinestring (optional) This parameter is only used when using a stored collection (see collection parameter above). It specifies how the result of this search operation is combined with the contents of the collection specified. If not specified the collection is created from this search operation’s result.

Supported values:

new Default, do not use the previous contents of the specified collection but store the result of this search operation in the collection
narrow Only keep items in the collection that are also in the result of this search operation.
broaden Add all items of the result of this search operation to the collection (if not contained already).
tablestring (optional) You may want to specify the table in which the search should be performed. The default is "AssetRecords".
uniquebystring (optional) Specifying this parameter with a field specifier as value will cause CIP to scan through the search result and omit all items where the value for the given field is the same as the field value of a previous item.
By specifying a "maxreturned" parameter with the maximum number of items you want returned you can limit the effort for the CIP server. CIP will stop filtering as soon as the result reaches this specified maximum number.
The total count returned is limited by the "maxreturned" parameter when filtering by unique field values.

Available since: 10.0

startindexinteger (optional) The index (zero-based) to start returning the items. Using this parameter you can page through the result list by starting with 0 and then incrementing by a given number. The default is 0 which returns the items starting with the first one.

Available since: 8.6

maxreturnedinteger (optional) The maximum number of items returned by this operation. You may use this parameter to limit the size of the resulting JSON data. When used together with the startindex parameter you can implement paging through the result list. The default is to return all items starting at the one specified by the startindex parameter. Due to changes being encountered in the catalog this operation may return less than the specified number of items if items in the given range have been deleted from the catalog. However, to do proper paging you should start the next getfieldvalues operation at the index you calculate from the given parameters startindex and maxreturned.

Available since: 8.6

fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.

Please see the section Field Specifiers for details about how to specify a field.

fieldquerystringstring array (optional) You can specify a query string that needs to match the current item in order to return the field.
The value for this parameter consists of the property name used for returning the field value and a query string separated by colon.
Fields without such query string parameter are always returned.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

See also:

Examples

a) Perform a QuickSearch using the text “sample” and return the field values defined in the view “myfields” for all items found:
Example Request
http://cip-server:port/CIP/metadata/search/mycatalog/myfields?quicksearchstring=sample&sortby=Record%20Name

Example Configuration
    <view name="myfields">
        <field>Status</field>
        <field>Record Name</field>
        <field>Rating</field>
    </view>
    

Example Response
        {
            "items" : [
                {
                    "Status" : {
                        "displaystring" : "in progress",
                        "id" : 0
                    },
                    "Record Name" : "IMG_3145.tif",
                    "Rating" : 3
                },
                {
                    "Status" : {
                        "displaystring" : "approved",
                        "id" : 1
                    },
                    "Record Name" : "IMG_6345.tif",
                    "Rating" : 5
                }
            ],
            "totalcount" : 2
        }
    


b) Find all assets that are not assigned to any category.
Example Request
http://cip-server:port/CIP/metadata/search/mycatalog?querystring=%7Baf4b2e0c-5f6a-11d2-8f20-0000c0e166dc%7D+!*

Example Response
        {
            "ids" : [12, 645, 874, 464],
            "totalcount" : 4
        }
    


c) Perform a search using a configured query containing a placeholder and only return the list of IDs. To return only a list of IDs the view path parameter is omitted. To specify a parameter for the query the placeholder name _status is used.
Example Request
http://cip-server:port/CIP/metadata/search/mycatalog?queryname=parameterquery&_status=approved

Example Configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    ...
        <queries>
        ...
            <query name="parameterquery">
                <querystring>Status == ${_status}</querystring>
            </query>
        ...
        </queries>
    ...
    </config>
    

Example Response
        {
            "totalcount" : 2,
            "items"      : [
                1,
                5
            ]
        }
    


d) Perform a search using the query “"Host Item ID" is 136” in the table “AssetRecords/{a89b908c-e98e-413b-ac4d-50668b2fafbc}” and return the field values defined in the view “myusagefields” for all items found:
Example Request
http://cip-server:port/CIP/metadata/search/mycatalog/myusagefields?querystring="Host Item ID" is 136&table=AssetRecords/%7Ba89b908c-e98e-413b-ac4d-50668b2fafbc%7D

Example Configuration
    <view name="myusagefields">
        <field>Asset Usage</field>
        <field>Date</field>
        <field>Host Item ID</field>
        <field>User</field>
        <field>Additional Information</field>
    </view>
    

Example Response
        {
            "items" : [
                {
                    "id"          : 176,
                    "Date"        : "/Date(1242028804000)/",
                    "Asset Usage" : {
                        "id"            : 1,
                        "displaystring" : "Copy To"
                    },
                    "Host Item ID" : 136,
                    "User"         : {
                        "id"            : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:Peter",
                        "displaystring" : "Peter"
                    },
                    "Additional Information" : null
                },
                {
                    "id"          : 1157,
                    "Date"        : "/Date(1320249354000)/",
                    "Asset Usage" : {
                        "id"            : 0,
                        "displaystring" : "Preview"
                    },
                    "Host Item ID" : 136,
                    "User" : {
                        "id"            : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                        "displaystring" : "cumulus"
                    },
                    "Additional Information" : null
                }
            ],
            "totalcount" : 2
        }
    



2.2.5. metadata/setfilterquery

Set a query string or named query as a user live filter at the CIP session (see session handling above).
This query is always used when searching inside a catalog to limit the result to items also matching this query.
This way clients can be limited to see only a subset of assets.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

tablestring (optional) You may want to specify the table to which the filter should be assigned. The default is "AssetRecords".
querynamestring (optional) The name of a query defined in the CIP configuration file. The defined query is either one that is stored in the Cumulus server or is configured using a query string with optional placeholders. See the configuration file section for details on how to define queries.
querystringstring (optional) The complete query string as expected by Cumulus. You need to make sure all special characters are correctly escaped if you want to pass this parameter in an HTTP request URL. It is recommended to pass the parameter in the body of the request instead.
Available since 10.2: If the query string contains the placeholder ${MASTERS_ONLY} then this is replaced by an actual query fragment that finds master assets only.

Result

The result does not have any contents.

See also:

Examples

a) Set a named query called "approved" as a user live filter at the CIP session:
Example Request
http://cip-server:port/CIP/metadata/setfilterquery?queryname=approved

Example Response
The result does not have any contents.



2.2.6. metadata/clearfilterquery

Clear stored user live filter from the CIP session.
You can use this operation to remove user live filter from the CIP session.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
tablestring (optional) The name of table for which the stored filter should be removed. The default is "AssetRecords".
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions


Result

The result does not have any contents.

See also:

Examples

a) Clear stored filter query from the CIP session
Example Request
http://cip-server:port/CIP/metadata/clearfilterquery

Example Response
The result does not have any contents.



2.2.7. metadata/getfieldvalues

Retrieve the metadata fields or IDs of items in a stored collection. You can specify an offset to start at and a maximum number of items returned.

You specify the items either by setting the named parameter collection or by specifying the catalog and item ID using path parameters 1 and 2 respectively.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Collection-based:
Parameter Type Description
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters. If no view or fields are specified then the resulting list of items is just an array of item IDs.
Catalog-based:
catalogstring (required) The catalog alias for the catalog to work with.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters. If no view or fields are specified then the resulting list of items is just an array of item IDs.
idlong (required) The ID of the item in the catalog to return field values for.

Named Parameters

Collection-based:
Parameter Type Description
collectionstring (required) The name of an existing collection in the current session.
startindexinteger (optional) The index (zero-based) to start returning the items. Using this parameter you can page through the result list by starting with 0 and then incrementing by a given number. The default is 0 which returns the items starting with the first one.
maxreturnedinteger (optional) The maximum number of items returned by this operation. You may use this parameter to limit the size of the resulting JSON data. When used together with the startindex parameter you can implement paging through the result list. The default is to return all items starting at the one specified by the startindex parameter. Due to changes being encountered in the catalog this operation may return less than the specified number of items if items in the given range have been deleted from the catalog. However, to do proper paging you should start the next getfieldvalues operation at the index you calculate from the given parameters startindex and maxreturned.
Catalog-based:
tablestring (optional) The name of the table to return field values for. The default is "AssetRecords".
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values for the result. This parameter affects the way language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.

Please see the section Field Specifiers for details about how to specify a field.

fieldquerystringstring array (optional) You can specify a query string that needs to match the current item in order to return the field.
The value for this parameter consists of the property name used for returning the field value and a query string separated by colon.
Fields without such query string parameter are always returned.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the total number of items returned and an optional list of items with IDs or field values defined in the given view. If no view is specified then the list of items is just an array of item IDs. Since API version 4 (CIP 9.0) the value for a field of type "User UID" is returned as a structure containing the user unique ID string as well as a display string. If you want the old behavior of just returning the display string you can specify an older API version using the apiversion named parameter.

See also:

Examples

a) Return the first 500 items of the collection "mycoll" with field values taken from view "myfields":
Example Request
http://cip-server:port/CIP/metadata/getfieldvalues/myfields?collection=mycoll&maxreturned=500

Example Configuration
    <view name="myfields">
        <field>Status</field>
        <field>Record Name</field>
        <field>Rating</field>
        <field>ModifiableFields:{e85fd04a-7e4f-4718-9879-92c0f22ba892}</field>
    </view>
    

Example Response
    {
        "items": [
            {
                "id"     : 100,
                "name"   : "IMG_3145.tif",
                "Status" : {
                    "displaystring" : "in progress",
                    "id"            : 0
                },
                "Record Name" : "IMG_3145.tif",
                "Rating"      : 3,
                "ModifiableFields": [
                    "Status",
                    "Record Name",
                    "Rating"
                ]
            },
            {
                "id"     : 103,
                "name"   : "IMG_6345.tif",
                "Status" : {
                    "displaystring" : "approved",
                    "id"            : 1
                },
                "Record Name" : "IMG_6345.tif",
                "Rating"      : 5,
                "ModifiableFields": [
                    "Status",
                    "Record Name",
                    "Rating"
                ]
            }
            ...

        ],
        "totalcount" : 173493
    }
    


b) Return all IDs of all items of the collection "mycoll":
Example Request
http://cip-server:port/CIP/metadata/getfieldvalues?collection=mycoll

Example Response
    {
        "items" : [ 1745, 1867 ],
        "totalcount" : 2
    }
    


c) Return field values taken from view "default" for the item of ID 254:
Example Request
http://cip-server:port/CIP/metadata/getfieldvalues/sample/default/254?locale=en

Example Configuration
        <view name="default">
            <field>Record Name</field>
            <field>Record Modification Date</field>
            <field>Status</field>
            <field>MultiStringList</field>
            <field>Status Label</field>
            <field>Rating</field>
            <field>Categories</field>
            <field>Asset Reference</field>
            <field>Asset Reference/Windows</field>
            <field>Asset Reference/ZIP</field>
        </view>
    

Example Response
    {
        "id" : 254,
        "Status" : {
            "displaystring" : "needs approval",
            "id"            : 1
        },
        "Rating"                   : null,
        "Record Name"              : "IMG065326.jpg",
        "Asset Reference" : [
            {
                "module"        : "{a5298d50-4643-11d2-8f00-0000c0e166dc}",
                "level"         : 0,
                "name"          : "Windows",
                "displaystring" : "C:\pictures\24278374_12fc4ef979b__8000\holiday.zip",
            },
            {
                "module"        : "{3baa1935-c9c6-11d4-83e8-0080ad78309d}",
                "level"         : 1,
                "name"          : "ZIP",
                "displaystring" : "berlin/IMG065326.jpg"
            }
        ],
        "Asset Reference/Windows"  : "C:\pictures\24278374_12fc4ef979b__8000\holiday.zip",
        "Asset Reference/ZIP"      : "berlin/IMG065326.jpg",
        "Categories" : [
            {
                "id"   : 124,
                "name" : "berlin",
                "path" : "$Categories:ZIP:holiday.zip:berlin"
            }
        ],
        "Record Modification Date" : {
            "datetime"     : "/Date(1304679134000)/",
            "milliseconds" : 1304679134000
        }
    }
    


d) Return field values taken from view “myusagefields” for the item of ID 1157 of the table “AssetRecords/{a89b908c-e98e-413b-ac4d-50668b2fafbc}”:
Example Request
http://cip-server:port/CIP/metadata/getfieldvalues/sample/myusagefields/1157?table=AssetRecords/%7Ba89b908c-e98e-413b-ac4d-50668b2fafbc%7D

Example Configuration
    <view name="myusagefields">
        <field>Asset Usage</field>
        <field>Date</field>
        <field>Host Item ID</field>
        <field>User</field>
        <field>Additional Information</field>
    </view>
    

Example Response
    {
        "id" : 1157,
        "Asset Usage" : {
            "id"            : 0,
            "displaystring" : "Preview"
        },
        "Date" : "/Date(1320249354000)/",
        "Host Item ID" : 136,
        "User" : {
            "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
            "displaystring" : "cumulus"
        },
        "Additional Information" : null
    }
    



2.2.8. metadata/setfieldvalues

Set the metadata fields of catalog items.

The field values are specified using a JSON structure transferred in the request body of a HTTP POST request.

The JSON data always contains the ID of the item to be modified.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The catalog alias for the catalog for the item to be modified.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.

Named Parameters

Parameter Type Description
tablestring (optional) The name of a table for the items to be modified. The default is "AssetRecords".
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values. This parameter affects the way language-dependent metadata values are parsed. For example you can specify “fr” to specify all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
fieldstring array (optional) You can select the fields that should be set by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Set the "Status" and "Rating" field values of two asset records of ID 1537 and 638 to some values. In this example the "Rating" field for item 638 is cleared:
Example Request
http://cip-server:port/CIP/metadata/setfieldvalues/mycatalog

Example Request Body
    {
        "items" : [
            {
                "id"     : 1537,
                "Status" : 2,
                "Rating" : 3
            },
            {
                "id"     : 638,
                "Status" : 1,
                "Rating" : null
            }
    ...
        ]
    }
    


b) Set the "Record Modification Date" field value of the asset of ID 1537:
Example Request
http://cip-server:port/CIP/metadata/setfieldvalues/mycatalog

Example Request Body
    {
        "items" : [
            {
                "id"     : 1537,
                "Record Modification Date": "/Date(1347882642000)/"
            }
        ]
    }
    


c) Set the date only field "Test Date Only" in different ways:
Example Request
http://cip-server:port/CIP/metadata/setfieldvalues/mycatalog?field=Test%20Date%20Only

Example Request Body
    {
        "items" : [
            {
                "id" : 129,
                "Test Date Only" : {
                    "displaystring" : "23.07.2012",
                }
            },
            {
                "id" : 130,
                "Test Date Only" : {
                    "day"   : 23,
                    "month" : 7,
                    "year"  : 2012
                }
            },
            {
                "id" : 131,
                "Test Date Only" : {
                    "month" : 7,
                    "year"  : 2012
                }
            },
            {
                "id" : 132,
                "Test Date Only" : {
                    "year"  : 2012
                }
            },
            {
                "id" : 133,
                "Test Date Only" : "23.07.2012"
            }
        ]
    }
    


d) Set the time only field "Test Time Only" in different ways:
Example Request
http://cip-server:port/CIP/metadata/setfieldvalues/mycatalog?field=Test%20Date%20Only

Example Request Body
    {
        "items" : [
            {
                "id" : 129,
                "Test Time Only": {
                    "milliseconds": 40953000,
                }
            },
            {
                "id" : 130,
                "Test Time Only": {
                    "displaystring": "11:22:33"
                }
            },
            {
                "id" : 131,
                "Test Time Only": 40953000
            },
            {
                "id" : 132,
                "Test Time Only": "11:22:33"
            }
        ]
    }
    


e) Set the data size field "Asset Data Size (Long)" in different ways:
Example Request
http://cip-server:port/CIP/metadata/setfieldvalues/mycatalog?field=Asset%20Data%20Size%20(Long)

Example Request Body
    {
        "items" : [
            {
                "id" : 130,
                "Asset Data Size (Long)": {
                    "value": 604609,
                }
            },
            {
                "id" : 132,
                "Asset Data Size (Long)": 604609
            }
        ]
    }
    


f) Set the multi enum field "Multi Enum Test" in different ways:
Example Request
http://cip-server:port/CIP/metadata/setfieldvalues/mycatalog?field=Multi%20Enum%20Field

Example Request Body
                        {
                            "items" : [
                                {
                                    "id" : 129,
                                    "Multi Enum Test": [
                                        {
                                             "id": 0,
                                             "displaystring": "Value0"
                                        },
                                        {
                                             "id": 1,
                                             "displaystring": "Value1"
                                        }
                                    ]
                                },
                                {
                                    "id" : 130,
                                    "Multi Enum Test": [
                                        {
                                             "displaystring": "Value3"
                                        },
                                        {
                                             "displaystring": "Value2"
                                        }
                                    ]
                                },
                                {
                                    "id" : 131,
                                    "Multi Enum Test": [
                                        {
                                             "id": 0
                                        },
                                        {
                                             "id": 2
                                        },
                                        {
                                             "id": 3
                                        }
                                    ]
                                }
                            ]
                        }
                        



2.2.9. metadata/createitem

Create a new catalog item and optionally set the metadata fields for it.

The field values are specified using a JSON structure transferred in the request body of a HTTP POST request.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The catalog alias for the catalog for the item to be modified.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.
hostitemidinteger (optional) ID of the host item in the parent table when creating sub table items.
This parameter is deprecated since: 11.1.2 in favor of a named parameter "hostitemid" to allow omitting the "view" path parameter but still provide a host item ID for sub-table item creation.

Named Parameters

Parameter Type Description
tablestring (optional) The name of a table for the items to be modified. The default is "AssetRecords".
hostitemidinteger (optional) ID of the host item in the parent table when creating sub table items.

Available since: 11.1.2

For supported values see API Versions

localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values. This parameter affects the way language-dependent metadata values are parsed. For example you can specify “fr” to specify all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the ID of the created catalog item.

See also:

Examples

a) Create a new metadata catalog item and set the "Status" and "Rating" field values:
Example Request
http://cip-server:port/CIP/metadata/createitem/mycatalog

Example Request Body
    {
        "Status" : 2,
        "Rating" : 3
    }
    

Example Response
    {
        "id" : 25112
    }
    


b) Create a new sub table item on the given table for the host item with id 1723:
Example Request
http://cip-server:port/CIP/metadata/createitem/mycatalog/1723?table=AssetRecords/%7B4f1f8461-bd98-4ea2-b45b-5e007257431e%7D

Example Request Body
    {
    }
    

Example Response
    {
        "id" : 10
    }
    



2.2.10. metadata/getcategories

Get the sub-categories for a given parent category. You can either get the direct sub-categories of the parent only or the whole sub-tree.

Three options allow specifying the parent category:

  1. Specify the category by the complete path (use parameter path).
  2. Specify the category by its ID (use parameter categoryid).
  3. If neither the path nor categoryid parameter is specified the operation will return the top-level categories.

The result can be returned as a JSON structure containing metadata field values for the categories or the IDs of the categories can be stored in a named collection of the session.
When storing the result in a named collection the hierarchical structure of a possible sub-tree will be lost and all IDs will be stored in a flat list.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters. If no view or fields are specified then the resulting list of items is just an array of item IDs.

Named Parameters

Parameter Type Description
pathstring (optional) The complete path of the parent category in the tree starting at the top-level category name. The category names for each level are separated by colon. Use double-colon to escape a colon appearing in a category name.
categoryidlong (optional) The ID of the parent category.
querynamestring (optional) The name of a query defined in the CIP configuration file. It can be combined with a querystring parameter. The defined query is configured in the cip-config.xml. This configuration either contains a query string itself or can refer to a Cumulus server-side query and may contain placeholders. By convention the placeholders are named using an underscore as a prefix to avoid using a name that is later being defined by CIP. See the configuration section for details on how to define queries.
querystringstring (optional) The complete query string as expected by Cumulus. It can be combined with a quicksearchstring or a named query. You need to make sure all special characters are correctly escaped if you want to pass this parameter in an HTTP request URL. It is recommended to pass the parameter in the body of the request instead.
sortbystring array (optional) A field name or field ID with optional sort direction separated by colon (e.g. {dc363515-c675-4423-9055-105bf28cfcc8}:ascending or {dc363515-c675-4423-9055-105bf28cfcc8}) to specify the fields to be used for sorting the result. The example above sorts by the "Custom Order" field in ascending order. The default is that the result is not sorted by any specific field and the categories are returned in ascending alphabetical order.

Available since: 11.0

For supported values see API Versions

Supported values for sort direction:

ascending (Default)
descending
levelsstring (optional) This parameter specifies whether you want the result to contain not just the direct sub-categories of the given parent but the whole sub-tree including all categories down to the given level.

Possible values are:

1 (Default) Return the direct sub-categories of the given parent category only.
0 Return the requested category only.

Since: 10.1.3:If the requested category ID is -1 then it returns the virtual root category for all catalogs and the root categories of all catalogs as its sub-categories.

n (Where “n” is a positive number) Return all the categories underneath the parent category down to the “n” level. They are returned in “depth-first”. The result nests sub-categories inside their parent category item so that the tree structure can be reconstructed. If you specify a collection to store the result the collection will contain the category IDs as a flat list.
all Return all the categories underneath the parent category down to the bottom level. They are returned in “depth-first”. The result nests sub-categories inside their parent category item so that the tree structure can be reconstructed. If you specify a collection to store the result the collection will contain the category IDs as a flat list.
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values for the result. This parameter affects the way language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
collectionstring (optional) The name of a collection to save the resulting list of IDs. If you specify this parameter but leave the value empty then CIP will create a unique collection name for you and will return this name in the result. This can be used for temporary collection to make sure the name is unique in the session.
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.

Please see the section Field Specifiers for details about how to specify a field.

fieldquerystringstring array (optional) You can specify a query string that needs to match the current item in order to return the field.
The value for this parameter consists of the property name used for returning the field value and a query string separated by colon.
Fields without such query string parameter are always returned.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the total number of category items returned and a list of items with the field values defined in the given view.
The sub-categories are returned as a list with the name subcategories. Empty sub-category arrays are suppressed in the output. The item field values or IDs can then be retrieved using the getfieldvalues operation.

See also:

Examples

a) Get all top-level categories and return the field values defined in the view "categories" for all items found:
Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalog/categories

Example Configuration
        <view name="categories">
            <field>Category Name</field>
            <field>ID</field>
        </view>
    

Example Response
        {
            "id"               : 0,
            "hassubcategories" : true,
            "subcategories"    : [
                {
                    "Category Name"    : "America",
                    "hassubcategories" : false,
                    "id"               : 4
                },
                {
                    "Category Name"    : "Asia",
                    "hassubcategories" : true,
                    "id"               : 5
                },
                {
                    "Category Name"    : "Europe",
                    "hassubcategories" : true,
                    "id"               : 3
                }
            ],
            "totalcount" : 3
        }
    


b) Just return the IDs of the top-level categories.
Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalog

Example Response
    {
        "id": 0,
        "hassubcategories" : true,
        "subcategories"    : [
            {
                "id"               : 4,
                "hassubcategories" : false
            },
            {
                "id"               : 5,
                "hassubcategories" : true
            },
            {
                "id"               : 3,
                "hassubcategories" : true
            }
        ]
    }
    


c) Store the result in a collection named “topcats” instead of returning any items in the result:
Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalog?collection=topcats

Example Response
    {
        "collection" : "topcats",
        "totalcount" : 3
    }
    


d) Return the sub-categories of a specific category (“Europe” above) as a tree:
Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalog/categories?categoryid=3&levels=all

Example Configuration
        <view name="categories">
            <field>Category Name</field>
            <field>ID</field>
        </view>
    

Example Response
    {
        "id"               : 3,
        "hassubcategories" : true,
        "subcategories"    : [
            {
                "Category Name"    : "Belgium",
                "hassubcategories" : false,
                "id"               : 31
            },
            {
                "Category Name"    : "France",
                "hassubcategories" : true,
                "id"               : 37,
                "subcategories"    : [
                    {
                        "Category Name"    : "Lyon",
                        "hassubcategories" : false,
                        "id"               : 371
                    },
                    {
                        "Category Name"    : "Paris",
                        "hassubcategories" : false,
                        "id"               : 576
                    }
                ]
            },
            {
                "Category Name"    : "Italy",
                "hassubcategories" : true,
                "id"               : 32,
                "subcategories"    : [
                    {
                        "Category Name"    : "Rome",
                        "hassubcategories" : false,
                        "id"               : 532
                    },
                    {
                        "Category Name"    : "Venice",
                        "hassubcategories" : false,
                        "id"               : 936
                    }
                ]
            }
        ],
        "totalcount" : 7
    }
    


e) Return the sub-category IDs for a specific root category (“Europe” above) as a tree:
Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalog?categoryid=3&levels=3

Example Response
    {
        "id"               : 3,
        "hassubcategories" : true,
        "subcategories"    : [
            {
                "id"               : 31,
                "hassubcategories" : false
            },
            {
                "id"               : 37,
                "hassubcategories" : true,
                "subcategories"    : [
                    {
                        "id"               : 371,
                        "hassubcategories" : false
                    },
                    {
                        "id"               : 576,
                        "hassubcategories" : false
                    }
                ]
            },
            {
                "id"               : 32,
                "hassubcategories" : true,
                "subcategories"    : [
                    {
                        "id"               : 532,
                        "hassubcategories" : true
                    },
                    {
                        "id"               : 936,
                        "hassubcategories" : true
                    }
                ]
            }
        ],
        "totalcount" : 7
    }
    


f) Return the sub-categories of a specific category (“France” above):
Example Request
http://cip-server:port/CIP/metadata/getcategories/mycatalog/myfields?path=Europe:France

Example Configuration
        <view name="myfields">
            <field>Category Name</field>
            <field>ID</field>
        </view>
    

Example Response
    {
        "id"               : 37,
        "hassubcategories" : true,
        "subcategories"    : [
            {
                "Category Name"    : "Lyon",
                "hassubcategories" : false,
                "id"               : 371
            },
            {
                "Category Name"    : "Paris",
                "hassubcategories" : false,
                "id"               : 576
            }
        ],
        "totalcount" : 2
    }
    



2.2.11. metadata/createcategory

Create a new category as a sub-category of a given other category.

Three options allow specifying the parent category:

  1. Specify the parent category by the complete path (use parameter path).
  2. Specify the parent category by its ID (use parameter categoryid).
  3. If neither the path nor categoryid parameter is specified the operation will create a top-level category.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
namestring (required) The name for the newly created category
pathstring (optional) The complete path of the parent category in the tree starting at the top-level category name. The category names for each level are separated by colon. Use double-colon to escape a colon appearing in a category name.
categoryidlong (optional) The ID of the parent category.
ifcategoryexistsstring (optional) Specify what to do when the newly created category refers to an existing one.

Available since: 8.6

Possible values are:

createwithsamename (Default) Create another category with the requested name.
returnexistingone Return category ID of the existing one.
error Do nothing and return an error instead.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the ID of the newly created category.

See also:

Examples

a) Create a new top-level category named “Countries”:
Example Request
http://cip-server:port/CIP/metadata/createcategory/mycatalog?name=Countries

Example Response
        {
            "id" : 534
        }
    


b) Create a new category underneath "Countries" named "Sweden":
Example Request
http://cip-server:port/CIP/metadata/createcategory/mycatalog?path=Countries&name=Sweden

Example Response
        {
            "id" : 535
        }
    


c) Create a new category underneath “Sweden” called “Stockholm”:
Example Request
http://cip-server:port/CIP/metadata/createcategory/mycatalog?path=Countries:Sweden&name=Stockholm

Example Response
        {
            "id": 536
        }
    



2.2.12. metadata/assigntocategories

Assign categories to given catalog item.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The catalog alias for the catalog for the item to be modified.
idlong (required) The ID of the item in the catalog to be assigned to given categories.

Named Parameters

Parameter Type Description
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values. This parameter affects the way language-dependent metadata values are parsed. For example you can specify “fr” to specify all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
pathstring array (optional) The complete path of the categories in the tree starting at the top-level category name to assign an item to. The category names for each level are separated by colon. Use double-colon to escape a colon appearing in a category name.
categoryidlong array (optional) The IDs of the categories to assign an item to.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Assign categories "PDF" and "CDC/Custom" to the asset of ID 1537
Example Request
http://cip-server:port/CIP/metadata/assigntocategories/mycatalog/1537?path=$Categories:PDF&path=$Categories:CDC:Custom



2.2.13. metadata/detachfromcategories

Detach categories from given catalog item.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The catalog alias for the catalog for the item to be modified.
idlong (required) The ID of the item in the catalog to be detached from given categories.

Named Parameters

Parameter Type Description
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values. This parameter affects the way language-dependent metadata values are parsed. For example you can specify “fr” to specify all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
pathstring array (optional) The complete path of the categories in the tree starting at the top-level category name to detach an item from. The category names for each level are separated by colon. Use double-colon to escape a colon appearing in a category name.
categoryidlong array (optional) The IDs of the categories to detach an item from.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Detach categories of ID 12 and 20 from the asset of ID 1537
Example Request
http://cip-server:port/CIP/metadata/detachfromcategories/mycatalog/1537?categoryid=12&categoryid=20



2.2.14. metadata/deletecategory

Delete a given category and all of its sub-categories.

Two options allow specifying the category to be deleted:

  1. Specify the category by the complete path (use parameterpath).
  2. Specify the category by its ID (use parametercategoryid).

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
pathstring (optional) The complete path of the category in the tree starting at the top-level category name. The category names for each level are separated by colon. Use double-colon to escape a colon appearing in a category name.
categoryidlong (optional) The ID of the category to delete.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Delete the category with the ID 536:
Example Request
http://cip-server:port/CIP/metadata/deletecategory/mycatalog?categoryid=536


b) Delete the category "Sweden" underneath "Countries":
Example Request
http://cip-server:port/CIP/metadata/createcategory/mycatalog?path=Countries:Sweden



2.2.15. metadata/getrelatedassets

Return IDs list of all related assets.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the item in the catalog.
relationstring (required) The relation type.
Possible values:
  • contains
  • iscontainedin
  • references
  • isreferencedby
  • isvariantmasterof
  • isvariantof
  • isalternatemaster
  • isalternateof
  • A valid relation GUID. This can be followed by an option separated by a colon. The option "master" returns all master assets and the option "sub" returns all sub assets for the given relation type. The option "sub" is the default value if no option is specified.

    Available since: 10.0.1

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is a list of IDs

See also:

Examples

a) Get the IDs of all related assets for item with the ID 137 of the catalog with the alias “mycatalog” and relation named “isvariantmasterof”:
Example Request
http://cip-server:port/CIP/metadata/getrelatedassets/mycatalog/137/isvariantmasterof

Example Response
{
    "ids" : [
        131,
        132
    ]
}
    


b) Get the IDs of all related assets for item with the ID 137 of the catalog with the alias “mycatalog” and relation GUID “{6fe3b22c-390e-44b3-99e5-df25de94893b}”. It does the same as the first example.:
Example Request
http://cip-server:port/CIP/metadata/getrelatedassets/mycatalog/137/%7B6fe3b22c-390e-44b3-99e5-df25de94893b%7D

Example Response
{
    "ids" : [
        131,
        132
    ]
}
    



2.2.16. metadata/linkrelatedasset

Add a new relation to the given other record.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the item in the catalog.
relationstring (required) The relation type.
Possible values:
  • contains
  • iscontainedin
  • references
  • isreferencedby
  • isvariantmasterof
  • isvariantof
  • isalternatemaster
  • isalternateof
  • A valid relation GUID. This can be followed by an option separated by a colon. The option "master" adds the asset given by otherId as master asset and the option "sub" adds the asset given by otherId as sub asset for the given relation type. The option "sub" is the default value if no option is specified.

    Available since: 10.0.1

otherIdlong (required) The ID of the other item in the catalog.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Link asset of ID 137 to the asset of ID 133 with the relation named “isalternateof”:
Example Request
http://cip-server:port/CIP/metadata/linkrelatedasset/mycatalog/137/isalternateof/133


b) Link asset of ID 137 to the asset of ID 133 with the relation GUID “{9ed0887f-40e8-4091-a91c-de356c869251}” as master asset. It does the same as the first example.
Example Request
http://cip-server:port/CIP/metadata/linkrelatedasset/mycatalog/137/%7B9ed0887f-40e8-4091-a91c-de356c869251%7D:sub/133



2.2.17. metadata/unlinkrelatedasset

Remove the relation to the given other record.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the item in the catalog.
relationstring (required) The relation type.
Possible values:
  • contains
  • iscontainedin
  • references
  • isreferencedby
  • isvariantmasterof
  • isvariantof
  • isalternatemaster
  • isalternateof
  • A valid relation GUID. This can be followed by an option separated by a colon. The option "master" removes the asset given by otherId from the master assets and the option "sub" removes the asset given by otherId from the sub assets for the given relation type. The option "sub" is the default value if no option is specified.

    Available since: 10.0.1

otherIdlong (required) The ID of the other item in the catalog.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Unlink asset of ID 133 to the asset of ID 137 with the relation named “isalternatemaster”:
Example Request
http://cip-server:port/CIP/metadata/unlinkrelatedasset/mycatalog/133/isalternatemaster/137


b) Unlink asset of ID 133 to the asset of ID 137 with the relation GUID “{9ed0887f-40e8-4091-a91c-de356c869251}” from the master assets. It does the same as the first example.
Example Request
http://cip-server:port/CIP/metadata/unlinkrelatedasset/mycatalog/133/%7B9ed0887f-40e8-4091-a91c-de356c869251%7D:master/137



2.2.18. metadata/getfieldstatistics

This operation allows to retrieve some statistics about field values being present in the records of the catalog or a CIP collection.
You specify the metadata fields for which you want to get statistics and CIP will return a JSON structure containing the number of records having various field values.
If you specify a field of type DateTime you can retrieve the number of records having field values on each day you want the statistics for. You specify a start date and time (typically a start of day in your local time zone) and a number of consecutive days. The result is an array of numbers representing the number of records having a field value on that day.
If you specify a field of type String CIP will return a structure showing the number of records having a field value that starts with the same character.
See the examples below to see the data being returned.

Allowed HTTP methods:GET and POST
Available since:8.6

Path Parameters

Collection-based:
Parameter Type Description
- There's no path parameters for the collection based operation.
Catalog-based:
catalogstring (required) The catalog alias for the catalog to work with.

Named Parameters

Collection-based:
Parameter Type Description
collectionstring (required) The name of an existing collection in the current session.
Catalog-based:
tablestring (optional) The name of the table to return field values for. The default is "AssetRecords".
startdatetimelong (optional) The starting date and time in UTC as the number of milliseconds since January 1, 1970, 00:00:00 UTC.
You typically specify a time in UTC that corresponds to midnight of the user's local time zone.
numberofdaysinteger (optional) The number of days starting at startdatetime.
This number determines the size of the array returned by CIP.
fieldstring array (required) You must select at least one field that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The operation returns a list of integer values, one for each day.
The integer specifies the number of records have a field value within the given day.
The total number of integer values is the same as the "numberofdays" parameter value.

See also:

Examples

a) Return statistics for the fields Asset Modification Date and Asset Creation Date starting from 2009-05-06 14:03:09 UTC for 10 days.
Example Request
http://cip-server:port/CIP/metadata/getfieldstatistics/sample?numberofdays=10&startdatetime=1241618589000&field=Asset Modification Date&field=Asset Creation Date

Example Response
{

    "Asset Modification Date": [
        0,
        1,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0
    ],
    "Asset Creation Date": [
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ]

}


b) Return statistics for the field "Record Name". For each starting character you get the number of records having a field value that starts with this character.
Example Request
http://cip-server:port/CIP/metadata/getfieldstatistics/sample?field=name:%7Baf4b2e00-5f6a-11d2-8f20-0000c0e166dc%7D

Example Response
{
    "name": [
		{
		    "count": 2,
		    "key": "A"
		},
		{
		    "count": 2,
		    "key": "B"
		},
		{
		    "count": 6,
		    "key": "C"
		},
		{
		    "count": 40,
		    "key": "I"
		},
		{
		    "count": 1,
		    "key": "L"
		},
		{
		    "count": 2,
		    "key": "M"
		},
		{
		    "count": 13,
		    "key": "P"
		},
		{
		    "count": 1,
		    "key": "R"
		},
		{
		    "count": 6,
		    "key": "S"
		},
		{
		    "count": 2,
		    "key": "T"
		},
		{
		    "count": 1,
		    "key": "W"
		},
        {
            "count": 9,
            "key": "Z"
        }
    ]
}



2.2.19. metadata/sendcollectionlink

Send collection link per e-mail

The ID of the items are specified using a JSON structure transferred in the request body of a HTTP POST request.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Collection-based:
Parameter Type Description
- There's no path parameters for the collection based operation.
Catalog-based:
catalogstring (required) The catalog alias for the catalog to work with.

Named Parameters

Collection-based:
Parameter Type Description
collectionstring (required) The name of an existing collection in the current session.
startindexinteger (optional) The index (zero-based) to start including the items. Using this parameter you can page through the result list by starting with 0 and then incrementing by a given number. The default is 0 which returns the items starting with the first one.
maxreturnedinteger (optional) The maximum number of items included by this operation. You may use this parameter to limit the size of the resulting collection. When used together with the startindex parameter you can implement paging through the result list. The default is to return all items starting at the one specified by the startindex parameter. Due to changes being encountered in the catalog this operation may return less than the specified number of items if items in the given range have been deleted from the catalog. However, to do proper paging you should start the next getfieldvalues operation at the index you calculate from the given parameters startindex and maxreturned.
Catalog-based:
tablestring (optional) The name of the table to return field values for. The default is "AssetRecords".
trackedboolean (optional) Specify whether the download collection should be tracked. This means that Cumulus will send different download links to each recipient to later track when this recipients opens the collection. Default is true. Since API version 32 (CIP 11.1.2)
linkcollectionstring (required) The name used to store a newly created link collection.
embargodatedate (optional) The link embargo date. Date format is YYYYMMDD (ISO 8601) e.g. 20110520 (20 May 2011)
expirationdatedate (required) The link expiration date. Date format is YYYYMMDD (ISO 8601) e.g. 20110520 (20 May 2011)
linkpasswordstring (optional) The collection link password.
linkbaseurlstring (required) The base URL of the collection link server.
Since API version 21 (CIP 10.2.3) you can obtain a list of configured base web URLs by using user/getinformation.
permitstring array (optional) Specifies the link collection permissions.

Possible values are:

download Recipients can download assets with the provided asset actions. See also options named parameter.
preview Recipients can preview assets.
openinfowindow Recipients can see info window with the metadata.
print Recipients can print assets.
optionsstring (optional) The name of an options set defined in the configuration file. The options are Cumulus-specific such as the Asset handling Set name or Permission Template name to use.
mailfromstring (optional) The sender e-mail address.
mailrecipientsstring array (required) The list of e-mail recipients. Required to send an e-mail.
mailccstring array (optional) The list of e-mail Cc (carbon copy) recipients.
mailbccstring array (optional) The list of e-mail Bcc (blind carbon copy) recipients.
mailsubjectstring (optional) The subject line of the e-mail message.
mailbodystring (optional) The body text of the e-mail message.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Send the first 500 items of the collection "mycoll" extended by the items of ID 137, 138, 139 :
Example Request
http://cip-server:port/CIP/metadata/sendcollectionlink?collection=mycoll&maxreturned=500&permit=download&permit=openinfowindow&permit=print&mailrecipients=user1@host&mailrecipients=user1@host&linkcollection=mylinkcollection&options=myoptions

Example Request Body
    {
        "ids" : [
            137,
            138,
            139
        ]
    }
    


b) Send the items of ID 501, 550, 1000 :
Example Request
http://cip-server:port/CIP/metadata/sendcollectionlink/sample?permit=download&permit=openinfowindow&permit=print&mailrecipients=user1@host&mailrecipients=user2@host&linkcollection=mylinkcollection&options=myoptions

Example Request Body
    {
        "ids" : [
            501,
            550,
            1000
        ]
    }
    



2.2.20. metadata/getrelationtypes

Return a list of all relation types of a catalog.

Available since: 11.1

This operation returns also titles to be used for lists of sub-assets or master assets of a relation type.

Allowed HTTP methods:GET and POST
Available since:10.0.1

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is the list of relation types.

See also:

Examples

a) Get the list of all relation types of the catalog with the alias “mycatalog”:
Example Request
http://cip-server:port/CIP/metadata/getrelationtypes/mycatalog

Example Response
    {
        "assetrelationtypes": [
            {
                "isrestricted": false,
                "name": "Alternates",
                "description": "An alternate for the current file, e.g. a product picture taken from a different perspective.",
                "titleformaster": "Alternate Master",
                "titleforsub": "Alternates",
                "directiontomaster": "Is alternate master",
                "treatasmaster": false,
                "id": "{9ed0887f-40e8-4091-a91c-de356c869251}",
                "directiontosub": "Is alternate"
            },
            {
                "isrestricted": true,
                "name": "Referenced",
                "description": "Files either referencing the current file or referenced by the current file.",
                "titleformaster": "Referencing Assets",
                "titleforsub": "Referenced Assets",
                "directiontomaster": "References",
                "treatasmaster": true,
                "id": "{7c41d1b1-4650-11d2-8f00-0000c0e166dc}",
                "directiontosub": "Is referenced"
            },
            {
                "isrestricted": false,
                "name": "Variants",
                "description": "All variants of a file derive from the same source.",
                "titleformaster": "Variant Source",
                "titleforsub": "Variants",
                "directiontomaster": "Is variant source",
                "treatasmaster": false,
                "id": "{6fe3b22c-390e-44b3-99e5-df25de94893b}",
                "directiontosub": "Is variant"
            },
            {
                "isrestricted": true,
                "name": "Contained",
                "description": "Files either containing the current file or contained in the current file.",
                "titleformaster": "Container Asset",
                "titleforsub": "Contained Assets",
                "directiontomaster": "Contains",
                "treatasmaster": false,
                "id": "{7c41d1b0-4650-11d2-8f00-0000c0e166dc}",
                "directiontosub": "Is contained"
            }
        ]
    }
    



2.2.21. metadata/print

CIP can generate a PDF for you containing a formatted contact sheet of a list of assets. It uses server-side configured print templates that define the layout of the PDF pages.
With this operation you can request either a complete PDF or a pixel image of a single page of that PDF. This pixel image of a page can be used to present the user a small view of what the resulting PDF will look like.

Allowed HTTP methods:GET and POST
Available since:10.1.1

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Source
Parameter Type Description
collectionstring (required) This required parameter specifies the CIP collection which contains the assets you want to include in the print report.
pageinteger (optional) When requesting a pixel image (using a format such as "jpg" or "png") this parameter specifies the page of the resulting PDF to render. A value of 0 represents the first page.
If you specify a number beyond the valid number of pages CIP will return with an HTTP status 500 and the property "error": "page.number.not.valid" in the JSON result.
Default is 0 (first page).
Options
printtemplatestring (required) The ID string of the print template to use.
You can obtain a list of available print templates by calling the configuration/listoptions with the "optiontype" set to com.canto.cumulus.printtemplate.

Available since: 10.2

In previous versions of the API the print template ID parameter was passed as a path parameter instead.
Output
formatstring (optional) The output file format to be used. Possible values are "pdf", "jpeg", "jpg" and "png".
Default is "pdf".
maxsizeinteger (optional) When requesting a pixel image (using a format such as "jpg" or "png") this parameter specifies the maximum size of the resulting image in pixels.
Default is 256 pixels.
qualityinteger (optional) When using a file format that supports a lossy compression method (e.g. "jpeg") you can specify the quality level that you want to be preserved. The value ranges from "1" (least quality, smallest resulting data size) to "10" (best quality, largest resulting data size). Default is 8.
contentdispositionstring (optional) This option is most useful when sending a CIP request from a web browser.
You can specify how the web browser will handle the result by controlling what CIP will put into the response HTTP header as the "Content-Disposition" value.
When calling CIP from a web browser you can decide whether the browser should display the resulting content in a window or start downloading the content to disk.
Default is attachment which will cause the web browser to start downloading the result to disk.

Possible values are:

attachment (Default) Tell the web browser to save the resulting contents to a file.
The suggested file name will contain the print template name and current date and time, e.g. "Report_2016-01-14_10-47-27.pdf".
inline Tell the web browser to display the result in a window.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The HTTP response body will contain the resulting PDF or image data in the requested format.

See also:

Examples

a) Generate a PDF showing metadata of the assets contained in the collection "mycollection" by using the print template "Contact Sheet" and let the browser display the PDF in the window:
Example Request
http://cip-server:port/CIP/metadata/print/mycatalog/Contact+Sheet?collection=mycollection&contentdisposition=inline

Example Response
The PDF content with the HTTP header value of "Content-disposition" being "inline".


b) Return the first page of the PDF report above as a PNG image to fit into a box of 400 pixels:
Example Request
http://cip-server:port/CIP/metadata/print/mycatalog/Contact+Sheet?collection=mycollection&format=png&page=0&contentdisposition=inline

Example Response
The content of a PNG image showing the first page of the PDF.




2.3. Preview Service

2.3.1. preview/image

Return a pixel preview for an asset.

An optional location allows you to store the result in the local file system of the CIP server or on an FTP server instead of downloading the result to the client.

Several options allow specifying the parameters for generating the preview image. The options are applied in the following order:

  1. Cropping (use optional parameters left, top, width, height).
  2. Scale down the image (use optional parameter maxsize or size).
  3. Rotate the image in 90 degree steps (use optional the parameter rotate).
  4. Output file format (use optional parameter format and quality).
To improve the performance of delivering preview images the CIP server caches the generated preview images.
The cache location is configured using the predefined name com.canto.cip.location.previewcache. If the image of the original asset cannot be delivered (e.g. the asset is not accessible) then this operation returns the thumbnail image instead. If even then thumbnail cannot be determined you can specify whether it should return a fallback image or an error instead.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.
previewnamestring (optional) The name of a preview configured in the CIP server. By using named previews you can keep the actual preview parameters separate from the CIP client code. Every parameter that you specify explicitly in the URL replaces a corresponding value from the configured preview.

Named Parameters

Cropping
Parameter Type Description
leftinteger (optional) Specify the number of pixels to crop off the left side in original image space. The default is 0.
topinteger (optional) Specify the number of pixels to crop off the top side in original image space. The default is 0.
widthinteger (optional) Specify the width of the cropping area in original image space. The default is the width of the original image.
heightinteger (optional) Specify the height of the cropping area in original image space. The default is the height of the original image.
cropping
Scaling
maxsizeinteger (optional) Scale the image down so that the longest side fits into the given number of pixels preserving the aspect ratio of the image.
scaling1
sizeinteger (optional) Scale down the image so that the shortest side fits into the square whose size is given in pixels. This option centers the image inside the square and crops away parts of the longer dimension. The resulting image is always square.
scaling2
Rotating
rotateinteger (optional) Rotate the image clockwise by the given degrees. Possible values are 0, 90, 180, and 270. Default is 0.
Output Format
formatstring (optional) The output file format to be used. Possible values are "jpeg" and "png" with the default being "jpeg"
qualityinteger (optional) When using a file format that supports a lossy compression method (e.g. "jpeg") you can specify the quality level that you want to be preserved. The value ranges from "1" (least quality, smallest resulting data size) to "10" (best quality, largest resulting data size).
applyiccprofileboolean (optional) When the output format is "jpeg" and the original asset is a JPEG image and no other options affecting the image are given then CIP may return the original asset. If the JPEG image contains an ICC profile and you would like to get the original asset anyway then you can specify this parameter with a value of "false" to let CIP return the asset for best performance.
Default is "true".

Available since: 11.0

Location
locationstring (optional) The location path of a folder to store the result. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file.
When using a complete URL the protocol (e.g. "file") needs to be activated in the configuration file.
By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service.
When executed the location name is replaced with the configured location string.
namestring (optional) The name of the file to store the result as. This parameter is only used when a "location" is specified.
ifexistsstring (optional) Specify what to do when the result refers to an existing file or directory in the location.

Available since: 8.6

Possible values are:

newuniquename (Default) Generate a unique name for the result.
replace Replace the existing file or directory with the result.
error Do nothing and return an error instead.
Cache Control
usecachestring (optional) Specifies how to use the preview cache.

Possible values are:

true (Default) - Return a cached preview if it exists and matches the asset modification date. Otherwise return a newly generated preview and store it in the cache.
only Only generate the preview to store it in cache. No preview is returned to the caller.
false Do not use the cache at all, return a newly generated preview.
cachecontrolstring (optional) Allow to control client cache policy switch for CIP operation results. This could lead to better performance in case the browser can use cached images.

Available since: 8.6

Possible values are:

no-cache (Default) - Switch off caching of images in the browser
clientdefault Allow caching of images. The cache lifetime depend on constraint com.canto.cip.constraint.clientcachemaxage configuration. The default value is 3600 seconds (1 hour). See configuration section for details.
Fallback Image
fallbackimageonerrorstring (optional) Specifies whether the fallback image should be returned instead of the error message.

Possible values are:

true Return a fallback image instead of error message. The error is logged in the server log only
false (Default) - Do not use the fallback image, return the error message if any problem occurs.
versioninteger (optional) The number of the asset version to generate a preview for. A value of 0 represents the latest version.
You can retrieve the list of available versions for an asset using the asset/getversions operation.
Default is 0 (latest version).
pageinteger (optional) The page to generate a preview for. A value of 0 represents the first page.
You can retrieve the number of pages for the file by getting the value of a virtual field, see NumberOfPagesInAsset:{309a08c0-e70a-470e-9b60-0ec13f44d964}.
Default is 0 (first page).

Available since: 10.0

apiversioninteger (optional) Determine which API version should be used for the request processing. This provides backward compatibility for future releases. A client application created to work with a given API version will continue to work with that same API version when talking to a newer version of CIP. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

Unless you specify "usecache=only" the response body contains:
  1. If you specified a location to store the resulting asset then the response body contains JSON data specifying the exact location.
  2. If you did not specify a location then the response body contains the image data you requested.

See also:

Examples

a) Get the preview of the asset ID 536:
Example Request
http://cip-server:port/CIP/preview/image/mycatalog/536

Example Response
 The binary image data (PNG or JPEG). This can directly be shown in a web browser.


b) Store the preview of the asset ID 536 inside a folder called "images" of the configured location named "mylocation":
Example Request
http://cip-server:port/CIP/preview/image/mycatalog/536?location=mylocation/images

Example Configuration
    <location name="mylocation">
        file://C:/cip
    </location>
    

Example Response
    {
        "location": "mylocation/images/PIC00342956.jpg"
    }
    



2.3.2. preview/purgecache

Purge specific cached preview files from the cache. You can purge all previews generated for a specific asset as well as previews generated with a specific parameter set.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (optional) The ID of the asset in the catalog specified by the first path parameter for which to purge all cache files. If this is not specified the operation purges all cache files for the preview parameters that are specified.

Named Parameters

This operation uses the same named parameters as the preview/image operation but it uses them only to determine the files in the cache that are to be purged. All optional parameters that are missing are replaced internally with their default values to form a complete parameter set.

Result

The result does not have any contents.

See also:

Examples

a) Purge all cached previews for asset ID 724:
Example Request
http://cip-server:port/CIP/preview/purgecache/mycatalog/724


b) Purge all cached previews generated with the parameters "size=100&format=png":
Example Request
http://cip-server:port/CIP/preview/purgecache/mycatalog?size=100&format=png



2.3.3. preview/thumbnail

Return the thumbnail image of an asset. Typically the thumbnail image is a small representation of the asset stored in the catalog itself so retrieving the thumbnail.

An optional location allows you to store the result in the local file system of the CIP server or on an FTP server instead of downloading the result to the client.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Scaling
Parameter Type Description
maxsizeinteger (optional) Scale the image down so that the longest side fits into the given number of pixels preserving the aspect ratio of the image.
scaling1
sizeinteger (optional) Scale down the image so that the shortest side fits into the square whose size is given in pixels. This option centers the image inside the square and crops away parts of the longer dimension. The resulting image is always square.
scaling2
Rotating
rotateinteger (optional) Rotate the image clockwise by the given degrees. Possible values are 0, 90, 180, and 270. Default is 0.
Output Format
formatstring (optional) The output file format to be used. Possible values are "jpeg" and "png" with the default being "jpeg"
qualitystring (optional) When using a file format that supports a lossy compression method (e.g. "jpeg") you can specify the quality level that you want to be preserved. The value ranges from "1" (least quality, smallest resulting data size) to "10" (best quality, largest resulting data size).
showtransparencygridboolean (optional) Apply a transparency grid pattern in the background so that the transparency of the thumbnail gets visible (default is false = white background).
The grid colors and size is defined by the current user's user settings.

Available since: 11.0.2

Location
locationstring (optional) The location path of a folder to store the result. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
namestring (optional) The name of the file to store the result as. This parameter is only used when a "location" is specified.
ifexistsstring (optional) Specify what to do when the result refers to an existing file or directory in the location.

Available since: 8.6

Possible values are:

newuniquename (Default) Generate a unique name for the result.
replace Replace the existing file or directory with the result.
error Do nothing and return an error instead.
Cache Control
cachecontrolstring (optional) Allow to control client cache policy switch for CIP operation results. This could lead to better performance in case the browser can use cached images.

Available since: 8.6

Possible values are:

no-cache (Default) - Switch off caching of images in the browser
clientdefault Allow caching of images. The cache lifetime depend on constraint com.canto.cip.constraint.clientcachemaxage configuration. The default value is 3600 seconds (1 hour). See configuration section for details.
Fallback Image
fallbackimageonerrorstring (optional) Specifies whether the fallback image should be returned instead of the error message.

Possible values are:

true Return a fallback image instead of error message. The error is logged in the server log only
false (Default) - Do not use the fallback image, return the error message if any problem occurs.
version
versioninteger (optional) The number of the asset version to access a thumbnail for. A value of 0 represents the latest version.
You can retrieve the list of available versions for an asset using the asset/getversions operation.
Default is 0 (latest version).
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog
tablestring (optional) The name of a table of the item to return the thumbnail for. The default is AssetRecords. To get the thumbnail of a category specify the table name Categories.

Available since: 9.2.1


Result

If you specified a location to store the thumbnail image then the response body contains JSON data specifying the exact location.

If you did not specify a location then the response body contains the image data you requested.

See also:

Examples

a) Get the thumbnail of asset ID 724:
Example Request
http://cip-server:port/CIP/preview/thumbnail/mycatalog/724

Example Response
 The asset contents (e.g. JPEG data stream).



2.3.4. preview/video

Return web embed code to represent the player to play the video in a browser. Depending on the Video Cloud provider this embed code may look different.
You can specify a maximum width and height to influence the generated embed code.

Allowed HTTP methods:GET and POST
Available since:10.1.3

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
maxwidthinteger (optional) Set the maximum width of the resulting video in pixels for generating the embed code.
Default is 640.
maxheightinteger (optional) Set the maximum height of the resulting video in pixels for generating the embed code.
Default is 360.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog
tablestring (optional) The name of a table of the item to return the thumbnail for. The default is AssetRecords. To get the thumbnail of a category specify the table name Categories.

Available since: 9.2.1


Result

Video player HTML code to be included in a web page to allow the user to play the video.
If the asset is not a video or not available in the Video Cloud this request returns an HTTP status of 404 (Resource Not Found).

See also:

Examples


2.3.5. preview/url

Return URL to get access to the preview.
You can specify rendering parameters to influence the result.

Allowed HTTP methods:GET and POST
Available since:10.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
renderparamsstring (optional) Defines the rendering parameters
Possible values are:
-F Output format

"PNG" - PNG output format
"JPG" - JPEG output format
"GIF" - GIF output format

Default is PNG.
-S Scale in pixels

<width>x<height>

Default is original size.
-C Crop in pixels

<width>x<height>+<left>+<top>

Default is the entire image.
-B Bounding box in pixels
-W Watermark image object ID
-T Format Identifier to the renditions sub-table. If this is specified the scale and crop parameters will be used from the entry in the sub-table
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog
tablestring (optional) The name of a table of the item to return the thumbnail for. The default is AssetRecords. To get the thumbnail of a category specify the table name Categories.

Available since: 9.2.1


Result

URL to the access the preview.
If the asset is not available in the Media Delivery Cloud this request returns an HTTP status of 404 (Resource Not Found).

See also:

Examples

a) Get the URL of asset ID 724 as GIF with a crop area of 10 pixels left, 20 pixels top, 150 pixels width and 100 pixels height:
Example Request
http://cip-server:port/CIP/preview/url/mycatalog/724/-FGIF-C150x100+10+20

Example Response
 The URL for the requested image format.




2.4. Asset Service

The Asset service offers operations that work with the original assets: importing, downloading, checking out, checking in, deleting an asset.

2.4.1. asset/import

You can import an asset either by referencing an existing asset accessible to the CIP server or by uploading the asset along with the request. Optionally you can also set metadata field values when importing the asset.

There are three ways of specifying the asset to be imported:

  1. Specify an existing asset using a URL (using the location parameter).
  2. Specify an existing asset based on a configured location and a relative path (using the location parameter).
  3. Upload the asset in the HTTP request body. This is done by putting the asset contents into the request body and using the HTTP POST method. If no metadata fields are to be set with this request the body only contains the asset contents and you specify the file name to be used in the location parameter. If you want to be able to set metadata fields along with the importing you need to post the request using the MIME type multipart/form-data.
If you also want to set metadata fields for the asset you specify the field values in JSON format in the request body and use the HTTP POST method.
If you want to both upload the asset with the request and set field values the request body needs to have a MIME type of multipart/form-data. This is compatible with the way web browsers upload files to a web server. The asset contents are then embedded in the request body as a part named "file". If you also want to set metadata field values you also include a part named "fields" which contains the JSON structure with the field values similar to the way the metadata/setfieldvalues operation accepts them. Setting the category assignment along with the import will add the specified categories to the record instead of replacing all assigned categories.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.

Named Parameters

Location
Parameter Type Description
locationstring (optional) This is either the asset name if the request body only consists of the asset contents or the location path to an existing asset. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
optionsstring (optional) The name of an options set defined in the configuration file. The individual options are Cumulus specific. Since API version 10 (CIP 10.0) you can instead pass a JSON-formatted string that contains multiple options directly.
For example you can specify the asset handling set and permission template to be used in a value string like this:
{ "com.canto.cumulus.assethandlingset": "Standard", "com.canto.cumulus.permissiontemplate": "Standard" }
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field values for the result. This parameter affects the way language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the "user.language" Java VM parameter when starting the web application server).
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the ID of the imported asset.

Available since: 11.1

If the asset to be imported is a duplicate and was ignored then the ID is missing and instead an array of names of ignored assets is returned.

Available since: 11.1

If the asset to be imported failed due to an error then the ID is missing and instead an array of names of failed assets is returned.

See also:

Examples

a) Import an asset by uploading it with the request and set some metadata. The request needs to use POST method with the request body being of MIME type multipart/form-data. The asset contents is embedded as a part named "file" in the request body. It's MIME type can be application/octet-stream:
Example Request
http://cip-server:port/CIP/asset/import/mycatalog

Example Request Body
    ------------8cd9fcb9f7e5fab
    Content-Disposition: form-data; name="fields"

    {
        "Status" : 0,
        "Rating" : 3,
        "Notes"  : "Some notes on the newly added asset go here"
    }
    ------------8cd9fcb9f7e5fab
    Content-Disposition: form-data; name="file"; filename="MyImage.jpg"
    Content-Type: application/octet-stream

    ... binary contents of the asset ...

    ------------8cd9fcb9f7e5fab--
    

Example Response
    {
        "id" : 2374
    }
    


b) Import an asset by uploading it with the request without any additional metadata. The request needs to use POST method with the asset contents in the request body. The MIME type of the request content can be application/octet-stream:
Example Request
http://cip-server:port/CIP/asset/import/mycatalog?location=MyImage.jpg

Example Request Body
 The binary contents of the asset.

Example Response
    {
        "id" : 2343
    }
    


c) Import a file named "image.jpg" directly from a pre-configured FTP server location "ftp_uploads":
Example Request
http://cip-server:port/CIP/asset/import/mycatalog?location=ftp_uploads/image.jpg

Example Configuration
    <location name="ftp_uploads">
        ftp://myname:mypassword@ftp.mycompany.com:port/uploads
    </location>
    

Example Response
    {
        "id" : 2375
    }
    


d) The following example shows the result for an asset that is ignored because it is a duplicate.
Note that the "id" is missing and intead an "ignored" property contains an array of asset names of ignored assets.
Example Request
http://cip-server:port/CIP/asset/import/mycatalog?location=MyImage.jpg

Example Request Body
The binary contents of the asset.

Example Response
    {
        "ignoredassets": [ "MyImage.jpg" ]
    }
    



2.4.2. asset/update

After you have created an item using the metadata/createitem operation you can assign an asset to this item using this asset/update operation. The operation has parameters similar to importing an asset but instead of adding a new asset to the catalog it updates the asset contents of an existing asset.

There are three ways of specifying the source asset:

  1. Specify an existing asset using a URL (using the location parameter).
  2. Specify an existing asset based on a configured location and a relative path (using the location parameter).
  3. Upload the asset with the HTTP request. This is done by putting the asset contents into the request body and using the HTTP POST method. This request the body only contains the asset contents.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Location
Parameter Type Description
locationstring (optional) The location path for an existing asset. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
optionsstring (optional) The name of an options set defined in the configuration file. The individual options are Cumulus specific. Since API version 10 (CIP 10.0) you can instead pass a JSON-formatted string that contains multiple options directly.
For example you can specify the asset handling set to be used in a value string like this:
{ "com.canto.cumulus.assethandlingset": "Standard" }
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Update an asset contents of the asset with the ID 1234 by uploading it with the request. The request needs to use POST method with the asset contents in the request body. The MIME type of the request content can be application/octet-stream:
Example Request
http://cip-server:port/CIP/asset/update/mycatalog/1234

Example Request Body
The binary contents of the new version of the asset


b) Update an asset reference of the asset with the ID 1234 directly from the pre-configured FTPS server location:
Example Request
http://cip-server:port/CIP/asset/update/mycatalog/1234?location=ftps_checkouts/image.jpg

Example Configuration
    <location name="ftps_checkouts">
        ftps://myname:mypassword@ftps.mycompany.com:port/checkouts
    </location>
    



2.4.3. asset/download

You can download an asset using the "download" operation of the "asset" service. If the asset is available in several versions you can optionally specify the version that you want to download.

Optionally you can convert the asset prior to downloading.

An optional location allows you to store the result in the local file system of the CIP server or on an FTP server instead of downloading the result to the client.

In place of location you can specify e-mail parameters to send the asset as an e-mail attachment.

Since API version 10 (CIP 10.0) CIP also supports the HTTP Range header. This way CIP supports delivering video contents to a browser which is embedding a URL with this operation in an HTML5 <video> tag.

Since API version 10 (CIP 10.0) CIP supports asynchronous download handling. You can start an asynchronous download process which prepares the result in the background. Then you can poll for the current state of this process and can obtain the result once the process is finished. This way you can handle cases where the download takes longer than the response timeout of your client software. Asynchronous handling is supported for all destinations: downloading to the requesting client, sending an email, and storing the result at a specified location.

Since API version 13 (CIP 10.0.3) CIP requires the user to have the "Download Asset" permission to download an asset. Additionally if the request does not specify an Asset Action to be performed the "Show Original Asset" permission is also required.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (optional) The ID of the asset in the catalog specified by the first path parameter.
To download all assets contained in the collection you can omit this parameter and specify the "collection" parameter instead.

Named Parameters

Source
Parameter Type Description
collectionstring (optional) This optional parameter allows to download multiple assets with a single request.
If you specify this parameter you can leave out the path parameter for the asset ID.

Available since: 10.0

Settings
versioninteger (optional) The version of the asset to download. The default is to download the latest version.
optionsstring (optional) The name of a configured option set that contains the conversion options to be applied before downloading. The configuration contains the parameters for the actual conversion.

Since API version 10 (CIP 10.0) you can instead pass a JSON-formatted string that contains multiple options directly.
For example you can specify the asset action to be performed in a value string like this:
{ "com.canto.cumulus.assetaction": "Convert and Compress" }

Since API version 20 (CIP 10.2.2) you can also specify a string to be appended to the asset action name in the "Additional Information" field of the "Asset Usage History" sub-table item for this download event. You can use this to pass the reason for download or any other information.
{ "com.canto.cumulus.assetaction": "Convert and Compress", "com.canto.cumulus.additionalinfo": "\\nTesting purpose" }
Please note that if you want the addition information to be separated from the asset action name by newline you need to escape the newline character using \\n for JSON compatibility.

Since API version 21 (CIP 10.2.3) you can also specify cropping parameters to be applied if the asset action contains cropping. The cropping parameters are added to the options JSON structure as a property named com.canto.cumulus.cropparameters.
The data is an array containing a JSON object for each of the assets being downloaded. The JSON object for each asset contains the asset ID in the property id and the cropping dimensions in a property path. The path is an array of two points specified as JSON object with an x and an y floating point value as coordinates. The coordinates are specified in the range 0.0 to 1.0 each.
Location
locationstring (optional) The location path of a folder to store the result. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
namestring (optional) The name of the file to store the result as. This parameter is only used when a "location" is specified.
ifexistsstring (optional) Specify what to do when the result refers to an existing file or directory in the location.

Available since: 8.6

Possible values are:

newuniquename (Default) Generate a unique name for the result.
replace Replace the existing file or directory with the result.
error Do nothing and return an error instead.
E-mail
mailfromstring (optional) The sender e-mail address.
mailrecipientsstring array (optional) The list of e-mail recipients. Required to send an e-mail.
mailccstring array (optional) The list of e-mail Cc (carbon copy) recipients.
mailbccstring array (optional) The list of e-mail Bcc (blind carbon copy) recipients.
mailsubjectstring (optional) The subject line of the e-mail message.
mailbodystring (optional) The body text of the e-mail message.
Cache Control
cachecontrolstring (optional) Allow to control client cache policy switch for CIP operation results. This could lead to better performance in case the browser can use cached images.

Available since: 8.6

Possible values are:

no-cache (Default) - Switch off caching of images in the browser
clientdefault Allow caching of images. The cache lifetime depend on constraint com.canto.cip.constraint.clientcachemaxage configuration. The default value is 3600 seconds (1 hour). See configuration section for details.
Asynchronous Processing
asyncboolean (optional) Allow to prepare the download result in a background process.
Background process handling is only available when using a session.
If you pass true CIP will start a background process preparing the download result.
You can monitor progress by calling the process/getstate operation.
When the state indicates that the process has finished its work you can request the result by calling the process/getresult operation.
This will then return the same response as the original download operation would have done with async=false.

Available since: 10.0

Default is false.
continueonerrorboolean (optional) Option to allow to continue even on missing permissions for some of the assets.
By using the process/getstate operation you can check how many assets were processed and which of the assets were skipped because of missing permissions.

Available since: 11.1

Default is false.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

See also:

Examples

a) Download the original asset for the asset with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/download/mycatalog/1234

Example Response
The asset contents (e.g. JPEG data stream for a JPEG image).


b) Download the asset with the ID 1234 of the catalog whose alias is "mycatalog" after converting it to a PDF. The example is based on a Cumulus asset action of name “Convert to PDF” to be configured:
Example Request
http://cip-server:port/CIP/asset/download/mycatalog/1234?options=convert2pdf

Example Configuration
    <optionSets>
        ...
        <optionSet name="convert2pdf">
            <option name="com.canto.cumulus.assetaction">Convert to PDF</option>
        </optionSet>
        ...
    </optionSets>
    

Example Response
The PDF that is the result of converting the given asset.


c) Store the asset with the ID 1234 of the catalog whose alias is "mycatalog" to configured location "ftp_downloads":
Example Request
http://cip-server:port/CIP/asset/download/mycatalog/1234?location=ftp_downloads

Example Configuration
    <location name="ftp_downloads">
        ftp://myname:mypassword@ftp.mycompany.com:port/downloads
    </location>
    

Example Response
    {
        "location": "ftp_downloads/myimage.jpg"
    }
    


d) Send the asset with the ID 1234 of the catalog whose alias is "mycatalog" through e-mail to two recipients user1@mail.com and user2@mail.com.
Example Request
http://cip-server:port/CIP/asset/download/mycatalog/1234?mailfrom=cumulus@cumulus.com&mailrecipients=user1@mail.com&mailrecipients=user2@mail.com

Example Response
    {
        "location": "e-mail/myimage.jpg"
    }
    


e) Prepare downloading all assets of the collection called "mycollection" by converting them using the Asset Action "Convert and Compress."
This is started asynchronously. Use theprocess/getstate operation to monitor the progress.
Example Request
http://cip-server:port/CIP/asset/download/mycatalog?async=true&collection=mycollection&options=%7b%22com.canto.cumulus.assetaction%22:%22Convert%20and%20Compress%22%7d

Example Response
    {
        "processid": "{596f3990-64dc-43af-8591-1f27199c26a8}"
    }
    


f) Download the asset with the ID 1234 of the catalog whose alias is "mycatalog" after converting it with cropping the image. The example is based on a Cumulus asset action of name “Crop Action” to be configured for cropping:
Example Request
http://cip-server:port/CIP/asset/download/mycatalog/1234?options=%7B"com.canto.cumulus.assetaction":"Crop Action","com.canto.cumulus.cropparameters":[%7B"id": 1234,"path":[%7B"x":0.6,"y":0.4%7D,%7B"x":0.7,"y":1.0%7D],"outputwidth":600,"outputheight":800%7D]%7D

Example Response
The cropped image that is the result of converting and cropping.



2.4.4. asset/checkout

The checkout operation allows you to lock the asset for further modifications and also to download the latest version of the asset or to store it at a given location. This is typically done to work on a new version of the asset and check this back in later.

An optional location allows you to store the current asset in the local file system of the CIP server or on an FTP server instead of downloading it to the client.

After you have finished modifying the asset you can generate a new version in the catalog by using the asset/checkin operation. To revert to the normal state without checking in a new asset version call the asset/undocheckout operation.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Location
Parameter Type Description
locationstring (optional) The location path of a folder to store the result. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
namestring (optional) The name of the file to store the result as. This parameter is only used when a "location" is specified.
ifexistsstring (optional) Specify what to do when the result refers to an existing file or directory in the location.

Available since: 8.6

Possible values are:

newuniquename (Default) Generate a unique name for the result.
replace Replace the existing file or directory with the result.
error Do nothing and return an error instead.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

See also:

Examples

a) Check out the asset with the ID 1234 in the catalog whose alias is “mycatalog” and download the current asset contents:
Example Request
http://cip-server:port/CIP/asset/checkout/mycatalog/1234

Example Response
The current asset contents


b) Store the asset with the ID 1234 of the catalog whose alias is "mycatalog" to configured location "sftp_downloads":
Example Request
http://cip-server:port/CIP/asset/checkout/mycatalog/1234?location=sftp_checkouts

Example Configuration
    <location name="sftp_checkouts">
        sftp://myname:mypassword@ftp.mycompany.com:port/checkouts
    </location>
    

Example Response
    {
        "location": "sftp_checkouts/myimage.jpg"
    }
    



2.4.5. asset/checkin

After you have checked out an asset using the asset/checkout operation you can check in a new version of the asset using this checkin operation. The operation has parameters similar to importing an asset but instead of adding a new asset to the catalog it adds a new version to an existing asset.

There are three ways of specifying the asset to be checked in:

  1. Specify an existing asset using a URL (using the location parameter).
  2. Specify an existing asset based on a configured location and a relative path (using the location parameter).
  3. Upload the asset with the HTTP request. This is done by putting the asset contents into the request body and using the HTTP POST method. This request the body only contains the asset contents.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Location
Parameter Type Description
locationstring (optional) The location path for an existing asset. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
optionsstring (optional) The name of an options set defined in the configuration file. The individual options are Cumulus specific. Since API version 10 (CIP 10.0) you can instead pass a JSON-formatted string that contains multiple options directly.
For example you can specify the asset handling set and permission template to be used in a value string like this:
{ "com.canto.cumulus.assethandlingset": "Standard", "com.canto.cumulus.permissiontemplate": "Standard" }
commentstring (optional) The comment for this new version of the asset. This comment is available as version-specific metadata.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Check in a new version of the asset with the ID 1234 by uploading it with the request. The request needs to use POST method with the asset contents in the request body. The MIME type of the request content can be application/octet-stream:
Example Request
http://cip-server:port/CIP/asset/checkin/mycatalog/1234

Example Request Body
The binary contents of the new version of the asset


b) Check in a new version of the asset with the ID 1234 directly from the pre-configured FTPS server location:
Example Request
http://cip-server:port/CIP/asset/checkin/mycatalog/1234?location=ftps_checkouts/image.jpg

Example Configuration
    <location name="ftps_checkouts">
        ftps://myname:mypassword@ftps.mycompany.com:port/checkouts
    </location>
    



2.4.6. asset/undocheckout

If you have checked out an asset using the asset/checkout operation you can undo this action by calling this operation.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Undo the checkout operation performed for the asset with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/undocheckout/mycatalog/1234



2.4.7. asset/rollback

You can returns an asset to the previous version by using rollback operation.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.
versioninteger (required) The version number of the asset to be restored as newer one.
You can retrieve the list of available versions for an asset using the asset/getversions operation.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is the newly created version number given to the restored (rolled back) asset.

See also:

Examples

a) Rollback the asset with the ID 1234 to the version number 2 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/rollback/mycatalog/1234/2

Example Response
{
    "version" : 11
}



2.4.8. asset/getversions

You can retrieve the list of available versions for an item.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the item id and a list of available versions described by checkin user, checkin comment, checkin date and version number.

See also:

Examples

a) Retrieve the list of available versions for an asset with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/getversions/mycatalog/1234

Example Response
{
        "id"       : 1234
        "supportsversioning": true,
        "versions" : [
            {
                "versionnumber"  : 1
                "checkincomment" : ""
                "checkindate"    : "/Date(1314866536000)/"
                "checkinuser"    : "cumulus"
            },
            {
                "versionnumber"  : 2
                "checkincomment" : "Improved image"
                "checkindate"    : "/Date(1314876036000)/"
                "checkinuser"    : "cumulus"
            }
        ]
}


b) Retrieve the list of available versions for a not versionable asset with the ID 268 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/getversions/mycatalog/1234

Example Response
{

    "id"        : 268,
    "supportsversioning": false,
    "versions"  : [ ]

}



2.4.9. asset/delete

Delete an item and optionally also the asset that is referenced by this item.

Allowed HTTP method:POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
tablestring (optional) The name of a table for the items to be deleted. The default is "AssetRecords".
withassetstring (optional) This parameter specifies whether you want to delete not just the item but the asset as well.

Possible values are:

false (Default) - Only the item will be deleted. The corresponding asset will be preserved
true The item as well as the corresponding asset will be deleted.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Delete the item with the ID 1234 and corresponding asset in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/delete/mycatalog/1234?withasset=true


b) Delete the sub-table item with the ID 12 in table AssetRecords/{4f1f8461-bd98-4ea2-b45b-5e007257431e} and corresponding asset in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/asset/delete/mycatalog/1234?withasset=true&table=AssetRecords/%7B4f1f8461-bd98-4ea2-b45b-5e007257431e%7D



2.4.10. asset/logusage

Instruct the DAM system to log a given usage for the asset that is referenced by this item.
This is useful if your CIP client application requests the virtual DirectDownloadUrl:{5e15cd1b-2468-4951-9620-945a71ebe7cc} field, gets a valid direct download URL back and you want to let CIP know that the user has actually downloaded the asset.
Otherwise Cumulus will not log the download action in the "Asset Usage History" sub-table.

Allowed HTTP method:POST
Available since:10.1

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.
usagestring (required) The usage to be logged.

Possible values are:

download The user has downloaded the asset with or without conversion. The additional info may contain the conversion option.
preview Your CIP client software presented a preview of the asset to the user.

Named Parameters

Parameter Type Description
infostring (optional) Additional information to be logged. In case of a "download" this is the name of the conversion applied.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Log that the asset for the item with the ID 1234 was downloaded:
Example Request
http://cip-server:port/CIP/asset/logusage/mycatalog/1234/download


b) Log that the asset for the item with the ID 1234 was downloaded applying the conversion named "Create 72dpi JPEGs from Selection":
Example Request
http://cip-server:port/CIP/asset/logusage/mycatalog/1234/download?info=Create+72dpi+JPEGs+from+Selection




2.5. Comments Service

The comments service allow working with user comments (annotations).

2.5.1. comments/get

Return a list of all comments in a structure that has the "User Comment Thread" sub-table items on top level and nested within the "User Comments" sub-table.

Allowed HTTP methods:GET and POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

Return a list of all comments in a structure that has the "User Comment Thread" sub-table items on top level and nested within the "User Comments" sub-table. Since API version 4 (CIP 9.0) the user is returned as a structure containing the user unique ID string as well as a display string. If you want the old behavior of just returning the display string you can specify an older API version using the apiversion named parameter.

See also:

Examples

a) List all comments for the item with the ID 989 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/get/mycatalog/1234

Example Response
{
    "threads": [
        {
            "id": 3,
            "itemid": 989,
            "type": "icon",
            "user": {
                "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                "displaystring" : "cumulus"
            },
            "creationdate": "/Date(1328616117000)/",
            "coordinates": {
                "x": 0.27944711538461536,
                "y": 0.515673511148744
            },
            "comments": [
                {
                    "id": 3,
                    "threadid": 3,
                    "user": {
                        "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                        "displaystring" : "cumulus"
                    },
                    "modificationdate": "/Date(1328616476000)/",
                    "comment": "Hi i am user comment created with the cumulus 8.6"
                }
            ]
        },
        {
            "id": 4,
            "itemid": 989,
            "type": "polygon",
            "user": {
                "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                "displaystring" : "cumulus"
            },
            "creationdate": "/Date(1328616296000)/",
            "coordinates": [
                {
                    "x": 0.6510437710437711,
                    "y": 0.48570225730824096
                },
                {
                    "x": 0.6825589225589226,
                    "y": 0.6166236644362527
                },
                {
                    "x": 0.6534680134680135,
                    "y": 0.6368275852893409
                },
                {
                    "x": 0.652929292929293,
                    "y": 0.6020768414220292
                },
                {
                    "x": 0.6383838383838384,
                    "y": 0.6020768414220292
                }
            ],
            "comments": [
                {
                    "id": 4,
                    "threadid": 4,
                    "user": {
                        "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                        "displaystring" : "cumulus"
                    },
                    "modificationdate": "/Date(1329399392000)/",
                    "comment": "Polygon comment created with the cumulus 8.6"
                }
            ]
        },
        {
            "id": 5,
            "itemid": 989,
            "type": "rectangle",
            "user": {
                "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                "displaystring" : "cumulus"
            },
            "creationdate": "/Date(1328616345000)/",
            "coordinates": {
                "topleft": {
                    "x": 0.14302884615384615,
                    "y": 0.5427193246705312
                },
                "bottomright": {
                    "x": 0.20372596153846154,
                    "y": 0.9087393343320523
                }
            },
            "comments": [
                {
                    "id": 5,
                    "threadid": 5,
                    "user": {
                        "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                        "displaystring" : "cumulus"
                    },
                    "modificationdate": "/Date(1328616476000)/",
                    "comment": "Rectangle comment created with the cumulus 8.6"
                }
            ]
        }
    ]
}



2.5.2. comments/getthread

Return a list of all comments from "User Comments" sub-table for the specified "User Comment Thread"

Allowed HTTP methods:GET and POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the user comment thread.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

Return a list of all comments from "User Comments" sub-table for the specified "User Comment Thread"

See also:

Examples

a) List all comments for the comment thread with the ID 7 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/getthread/mycatalog/7

Example Response
{
    "id": 7,
    "itemid": 162,
    "type": "icon",
    "user": {
        "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
        "displaystring" : "cumulus"
    },
    "creationdate": "/Date(1328617037000)/",
    "coordinates": {
        "x": 0.5411111111111111,
        "y": 0.718801996672213
    },
    "comments": [
        {
            "id": 7,
            "threadid": 7,
            "user": {
                "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                "displaystring" : "cumulus"
            },
            "modificationdate": "/Date(1328617075000)/",
            "comment": "sticky note comment cumulus 8.0.1"
        },
        {
            "id": 18,
            "threadid": 7,
            "user": {
                "id" : "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample",
                "displaystring" : "Sample User"
            },
            "modificationdate": "/Date(1329303881000)/",
            "comment": "go ahead"
        }
    ]
}



2.5.3. comments/add

Add a new item to the "User Comment Thread" sub-table and an additional item to the "User Comments" sub-table.
Request Body: JSON structure containing coordinates, type (icon, rectangle, polygon, timesegment, discussion), comment and optionally creationdate.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the ID of the created "User Comment Thread" item.

See also:

Examples

a) Add a new user comments thread of the icon type to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/add/mycatalog/1234

Example Request Body
{
    "coordinates": {
        "x": 0.5411111111111111,
        "y": 0.718801996672213
    },
    "type": "icon",
    "comment": "My first comment",
    "creationdate": "/Date(1329820826270)/"
}

Example Response
    {
        "id" : 3312
    }
    


b) Add a new user comments thread of the rectangle type to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/add/mycatalog/1234

Example Request Body
{
    "coordinates": {
        "topleft": {
            "x": 0.14302884615384615,
            "y": 0.5427193246705312
        },
        "bottomright": {
            "x": 0.20372596153846154,
            "y": 0.9087393343320523
        }
    },
    "type": "rectangle",
    "comment": "my first rectangle comment",
    "creationdate": "/Date(1329820828972)/"
}

Example Response
    {
        "id" : 3313
    }
    


c) Add a new user comments thread of the polygon type to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/add/mycatalog/1234

Example Request Body
{
    "coordinates": [
        {
            "x": 0.6510437710437711,
            "y": 0.48570225730824096
        },
        {
            "x": 0.6825589225589226,
            "y": 0.6166236644362527
        },
        {
            "x": 0.6534680134680135,
            "y": 0.6368275852893409
        },
        {
            "x": 0.652929292929293,
            "y": 0.6020768414220292
        },
        {
            "x": 0.6383838383838384,
            "y": 0.6020768414220292
        }
    ],
    "type": "polygon",
    "comment": "my first polygon comment",
    "creationdate": "/Date(1329820835749)/"
}

Example Response
    {
        "id" : 3314
    }
    



2.5.4. comments/addcomment

Add a new item to the "User Comments" sub-table.
Request Body: JSON structure containing comment and optionally creationdate.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the comments thread in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the ID of the created "User Comments" item.

See also:

Examples

a) Add a new comment to the user comments thread with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/addcomment/mycatalog/1234

Example Request Body
{
    "comment": "my new comment",
    "creationdate": "/Date(1329820832410)/"
}

Example Response
    {
        "id" : 4312
    }
    



2.5.5. comments/adddiscussion

Add a new discussion type item to the "User Comment Thread" sub-table and an additional item to the "User Comments" sub-table.
Request Body: JSON structure containing comment and optionally creationdate.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the asset in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is returned in JSON format and consists of the ID of the created "User Comment Thread" item.

See also:

Examples

a) Add a new comment to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/adddiscussion/mycatalog/1234

Example Request Body
{
    "comment": "my first discussion comment",
    "creationdate": "/Date(1329820833669)/"
}

Example Response
    {
        "id" : 5431
    }
    



2.5.6. comments/updatecoordinates

Update a user comments thread's coordinates
Request Body: JSON structure containing coordinates and type (icon, rectangle, polygon, timesegment, discussion).

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of user comments thread in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Update a user comments thread coordinates of the icon type to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/updatecoordinates/mycatalog/1234

Example Request Body
{
    "coordinates": {
        "x": 0.5411111111111111,
        "y": 0.718801996672213
    },
    "type": "icon"
}


b) Update a user comments thread coordinates of the rectangle type to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/updatecoordinates/mycatalog/1234

Example Request Body
{
    "coordinates": {
        "topleft": {
            "x": 0.14302884615384615,
            "y": 0.5427193246705312
        },
        "bottomright": {
            "x": 0.20372596153846154,
            "y": 0.9087393343320523
        }
    },
    "type": "rectangle"
}


c) Update a user comments thread coordinates of the polygon type to the item with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/updatecoordinates/mycatalog/1234

Example Request Body
{
    "coordinates": [
        {
            "x": 0.6510437710437711,
            "y": 0.48570225730824096
        },
        {
            "x": 0.6825589225589226,
            "y": 0.6166236644362527
        },
        {
            "x": 0.6534680134680135,
            "y": 0.6368275852893409
        },
        {
            "x": 0.652929292929293,
            "y": 0.6020768414220292
        },
        {
            "x": 0.6383838383838384,
            "y": 0.6020768414220292
        }
    ],
    "type": "polygon"
}



2.5.7. comments/updatecomment

Update a comment text in the "User Comments" sub-table.
Request Body: JSON structure containing comment and optionally modificationdate.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the user comment the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Update a comment text for the comment with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/updatecomment/mycatalog/1234

Example Request Body
{
    "comment": "my first discussion comment",
    "modificationdate": "/Date(1329820833669)/"
}



2.5.8. comments/updatediscussion

Update a discussion comment text in the "User Comments" sub-table.
Request Body: JSON structure containing comment and optionally modificationdate.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the user comment the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Update a discussion comment text for the comment with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/updatecomment/mycatalog/1234

Example Request Body
{
    "comment": "my new discussion comment",
    "modificationdate": "/Date(1329820835749)/"
}



2.5.9. comments/deletethread

Delete an item from the "User Comment Thread" sub-table and the corresponding items from the "User Comments" sub-table.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the user comment thread in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Delete the thread with the ID 1234 and the corresponding comments in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/deletethread/mycatalog/1234



2.5.10. comments/deletecomment

Delete an item from the "User Comments" sub-table.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the comments thread in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Delete a comment with the ID 1234 in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/deletecomment/mycatalog/1234



2.5.11. comments/deletediscussion

Delete a discussion item from the "User Comment Thread" sub-table and the corresponding items from the "User Comments" sub-table.

Allowed HTTP method:POST
Available since:8.6

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the discussion user comment thread in the catalog specified by the first path parameter.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result does not have any contents.

See also:

Examples

a) Delete the discussion thread with the ID 1234 and the corresponding comments in the catalog whose alias is "mycatalog":
Example Request
http://cip-server:port/CIP/comments/deletediscussion/mycatalog/1234




2.6. Location Management Service

The location management services offer operation to manipulate files and folders in the file system of the CIP server or on FTP servers. In order to control who is allowed to perform the operations the user needs to have specific permissions.

The following list shows the server permissions required to perform location management operations:

The locations can be specified either by a complete URL starting with "ftp:", "sftp", "ftps", or "file" or they can be starting with the name of a configured location.

When specifying a complete URL the corresponding protocol (e.g. "file") needs to be activated in the configuration file.

In order to be able to check the permission you need to specify the user, password, and server address in the request or use a session that contains these parameters.

2.6.1. location/list

Lists files and directories found in the requested location. This operation can be used to check whether a given file or directory exists.

The user specified in the request needs the server permission $CanListFiles to perform this action.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Named Parameters

Parameter Type Description
locationstring (required) The complete location path of the directory or file to list. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

A list of locations for all files/directories contained.

See also:

Examples

a) List contents of a directory "test" from the pre-configured FTPS server location "ftpsupload":
Example Request
http://cip-server:port/CIP/location/list?location=ftpsupload/test

Example Configuration
    <location name="ftpsupload">
        ftps://myname:mypassword@ftps.mycompany.com:port/uploads
    </location>
    

Example Response
    {
        "location" : "ftpsupload/test",
        "listing"  : [
            {
                "path" : "test1",
                "type" : "directory"
            },
            {
                "path" : "desktop.ini",
                "type" : "file"
            },
            {
                "path" : "Desert.jpg",
                "type" : "file"
            },
            {
                "path" : "Reichstag.jpg",
                "type" : "file"
            }
        ]
    }
    


b) List a single file "test/Desert.jpg" from the pre-configured FTPS server location "ftpsupload":
Example Request
http://cip-server:port/CIP/location/list?location=ftpsupload/test/Desert.jpg

Example Configuration
    <location name="ftpsupload">
        ftps://myname:mypassword@ftps.mycompany.com:port/uploads
    </location>
    

Example Response
    {
        "location" : "ftpsupload/test/Desert.jpg",
        "type"     : "file"
    }
    



2.6.2. location/createdir

Create a new directory specified in the location parameter.

The user specified in the request needs the server permission $CanCreateDirectories to perform this action.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
locationstring (required) The complete location path of the directory to create. All missing directories are created. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The newly created location.

See also:

Examples

a) Create a new directory "pictures" in the pre-configured location "ftps_checkouts":
Example Request
http://cip-server:port/CIP/location/createdir?location=ftps_checkouts/pictures

Example Configuration
    <location name="ftps_checkouts">
        ftps://myname:mypassword@ftps.mycompany.com:port/checkouts
    </location>
    

Example Response
    {
        "location" : "ftps_checkouts/pictures"
    }
    


b) Create a new directory "pictures" in the file system of the CIP server:
Example Request
http://cip-server:port/CIP/location/createdir?location=file://C:/pictures

Example Configuration
    <locations>
    ...
        <enableProtocol>file</enableProtocol>
    ...
    <locations>
    

Example Response
    {
        "location" : "file://C:/pictures"
    }
    



2.6.3. location/copy

Copy a file or directory.

The user specified in the request needs the server permission $CanCopyFiles to perform this action.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
fromstring (required) The location path of the file or directory to copy. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
tostring (required) The location path for the destination. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
  • If "to" is an existing directory then the "from" file/dir is copied there
  • If "to" does not exist then the "from" file/directory is copied to the parent of "to" which needs to be an existent dir and the copy gets the name specified in "to"
  • If "to" is an existing file and "from" is a file too the parameter ifexists controls how to handle this case.
ifexistsstring (optional) Specify what to do when the parameter to refers to an existing file or directory.

Possible values are:

newuniquename (Default) Generate a unique name for the target and copy the source there.
replace Replace the existing file or directory with the copied one.
error Do nothing and return an error instead.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The location of the copy.

See also:

Examples

a) Copy the local file "c:/pictures/IMG11223.jpg" to "c:/target/sample.jpg":
Example Request
http://cip-server:port/CIP/location/copy?from=file://c:/pictures/IMG11223.jpg&to=file://c:/target/sample.jpg

Example Configuration
    <locations>
    ...
        <enableProtocol>file</enableProtocol>
    ...
    <locations>
    

Example Response
    {
        "location" : "file://c:/target/sample.jpg"
    }
    


b) Copy a directory specified by the URL ftps://myname:mypassword@ftps.mycompany.com:port/checkouts/pictures directly from the pre-configured FTPS server location to the local location c:/stuff:
Example Request
http://cip-server:port/CIP/location/copy?from=ftps_checkouts/pictures/IMG22113.jpg&to=file://c:/stuff

Example Configuration
    <locations>
    ...
        <enableProtocol>file</enableProtocol>

        <location name="ftps_checkouts">
            ftps://myname:mypassword@ftps.mycompany.com:port/checkouts
        </location>
    ...
    <locations>
    

Example Response
    {
        "location" : "file://c:/target/sample.jpg"
    }
    



2.6.4. location/move

Move a file or directory. This works the same as first calling location/copy and then location/delete but is just faster because it does it in one step.
This can also be used to rename a file or directory.

The user specified in the request needs the server permission $CanMoveFiles to perform this action.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
fromstring (required) The location path of the file or directory to move. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
tostring (required) The location path for the destination. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
  • If "to" is an existing directory then the "from" file/dir is copied there
  • If "to" does not exist then the "from" file/directory is copied to the parent of "to" which needs to be an existent dir and the copy gets the name specified in "to"
  • If "to" is an existing file and "from" is a file too an
ifexistsstring (optional) Specify what to do when the parameter to refers to an existing file or directory.

Possible values are:

newuniquename (Default) Generate a unique name for the target and move the source there.
replace Replace the existing file or directory with the moved one.
error Do nothing and return an error instead.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The location of the moved file / directory.

See also:

Examples

a) Rename the local file "c:/pictures/IMG11223.jpg" to "c:/target/sample.jpg":
Example Request
http://cip-server:port/CIP/location/move?from=file://c:/pictures/IMG11223.jpg&to=file://c:/target/sample.jpg

Example Configuration
    <locations>
    ...
        <enableProtocol>file</enableProtocol>
    ...
    <locations>
    

Example Response
    {
        "location" : "file://c:/target/sample.jpg"
    }
    


b) Move a directory specified by the URL ftps://myname:mypassword@ftps.mycompany.com:port/checkouts/pictures directly from the pre-configured FTPS server location to the local locationc:/stuff:
Example Request
http://cip-server:port/CIP/location/move?from=ftps_checkouts/pictures/IMG22113.jpg&to=file://c:/stuff

Example Configuration
    <locations>
    ...
        <enableProtocol>file</enableProtocol>

        <location name="ftps_checkouts">
            ftps://myname:mypassword@ftps.mycompany.com:port/checkouts
        </location>
    ...
    <locations>
    

Example Response
    {
        "location" : "file://c:/target/sample.jpg"
    }
    



2.6.5. location/delete

Delete a file or directory

The user specified in the request needs the server permission $CanDeleteFiles to perform this action.

Allowed HTTP method:POST
Available since:8.5.2

Named Parameters

Parameter Type Description
locationstring (required) The complete location path of the directory or file to delete. The path is either a complete URL that starts with a URL protocol like “ftp”, “sftp”, “ftps”, “file” or is based on a location defined in the configuration file. By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service. When executed the location name is replaced with the configured location string.
recursivestring (optional) When deleting a directory this parameter controls whether to delete all the contents of the directory also.

Possible values are:

false (Default) Only delete the directory if it is empty. Return an error otherwise.
true Delete the specified directory and all of its contents.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result does not have any contents.

See also:

Examples

a) Delete the local file "c:/pictures/IMG11223.jpg":
Example Request
http://cip-server:port/CIP/location/delete?location=file://c:/pictures/IMG11223.jpg

Example Configuration
    <locations>
    ...
        <enableProtocol>file</enableProtocol>
    ...
    <locations>
    


b) Delete the file specified by the URL ftps://myname:mypassword@ftps.mycompany.com:port/checkouts/pictures/IMG22113.jpg directly from the pre-configured FTPS server location:
Example Request
http://cip-server:port/CIP/location/delete?location=ftps_checkouts/pictures/IMG22113.jpg

Example Configuration
    <location name="ftps_checkouts">
        ftps://myname:mypassword@ftps.mycompany.com:port/checkouts
    </location>
    




2.7. Process Service

The process service offers operations to monitor and control background processes running in the CIP server.
It requires the use of a session to keep the processes and their state.
You can start a background process calling the asset/download operation passing the optional async parameter with a value of true. Instead of responding with the download result the operation will instead start a background process and the response will contain the ID of this process for later checking its state.
Then you can monitor the progress this process makes by calling the process/getstate operation until the process indicates that it is finished.
you can also cancel a running process by calling the process/cancel operation.
If you want to get the result of a successfully finished process call process/getresult operation. It will return the same response as the initial operation (e.g. asset/download).

2.7.1. process/getstate

Get the current state for the background process specified by the processid parameter.
The response indicates whether the process has finished or was canceled or failed and contains the current progress as a percentage value.
Once the process is finished you can obtain the result by calling the process/getresult operation.
In case of an error this operation will succeed indicating the error and the process/getresult operation will return an HTTP state 500.

Allowed HTTP methods:GET and POST
Available since:10.0

Path Parameters

Parameter Type Description
processidstring (required) The ID of the process to get the state for.

Result

The result is a JSON structure containing state information for the given process.

Available since: 11.1

When you started the asset/download operation with the continueonerror=true option CIP will return more detailed information: a list of failed assets and the number of processed assets (see example below).

See also:

Examples

a) Get the current state of a download process with the ID {596f3990-64dc-43af-8591-1f27199c26a8}:
Example Request
http://cip-server:port/CIP/process/getstate/%7b596f3990-64dc-43af-8591-1f27199c26a8%7d

Example Response
    {
        "processid": "{596f3990-64dc-43af-8591-1f27199c26a8}",
        "progress": 100,
        "canceled": false,
        "finished": true,
        "failed": false
    }
}


b) Get the current state of a download process with the ID {596f3990-64dc-43af-8591-1f27199c26a8} with the option to skip assets where the user is missing permissions.
In the example shown is a download of 5 assets where 3 were processed successfully but 2 were skipped.
Example Request
http://cip-server:port/CIP/process/getstate/%7b596f3990-64dc-43af-8591-1f27199c26a8%7d

Example Response
    {
        "processid": "{596f3990-64dc-43af-8591-1f27199c26a8}",
        "progress": 100,
        "canceled": false,
        "finished": true,
        "failed": false,
        "failedassets": [
            {
                "error": "permission.denied",
                "errormessage": "The user does not have the permission to download the assets with conversion",
                "name": "IMG_2018-06-12_11-18-03.jpg",
                "id": 2687349
            },
            {
                "error": "permission.denied",
                "errormessage": "The user does not have the permission to download the assets with conversion",
                "name": "IMG_2018-06-12_11-20-56.jpg",
                "id": 725483
            }
        ],
        "processedassets": 3
    }
}



2.7.2. process/cancel

Cancel the background process specified by the processid parameter.
The response of this request will contain the current state information of the process.
After canceling a background process the process is no longer accessible.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
processidstring (required) The ID of the process to cancel.

Result

The result is a JSON structure containing state information for the given process.

See also:

Examples

a) Cancel the download process with the ID {596f3990-64dc-43af-8591-1f27199c26a8}:
Example Request
http://cip-server:port/CIP/process/cancel/%7b596f3990-64dc-43af-8591-1f27199c26a8%7d

Example Response
    {
        "processid": "{596f3990-64dc-43af-8591-1f27199c26a8}",
        "progress": 100,
        "canceled": true,
        "finished": true,
        "failed": false
    }
}



2.7.3. process/getresult

Get the result of the background process specified by the processid parameter.
The response of this request will be the same as for a synchronous execution of the operation that started the process.
Calling this for a process that is not yet finished or canceled will respond with an error.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
processidstring (required) The ID of the process to get the result for.

Result

The result is a JSON structure containing state information for the given process.

See also:

Examples

a) Get the current state of a download process with the ID {596f3990-64dc-43af-8591-1f27199c26a8}:
Example Request
http://cip-server:port/CIP/process/getresult/%7b596f3990-64dc-43af-8591-1f27199c26a8%7d

Example Response
 The asset contents (e.g. JPEG data stream).




2.8. Developer Service

The developer service offers operations that can be used by developers writing client-side code.

2.8.1. developer/describe

Generate C# or Java wrapper class source code for the specified catalog and optionally a view.

The class is always derived from the Canto.Cip.Lib.DamItem class and is named according to the view it was generated for. The package name is always Canto.Cip.Client.Views.

C# programmers can use the class by initializing the CIPManager instance with the package name where these generated view wrapper classes are defined for:

    cipManager = new CIPManager(BaseUrl, "Canto.Cip.Client.Views");
                    
Then CIPManager functions like GetFieldValues() will return an instance of this wrapper class instead of the generic DamItem class. Assume you have generated the code for a wrapper class for the configured view named "fields" (see example below). Then you can use the class like this:
        FieldsView item = cipManager.GetFieldValues (session, Catalog, "fields", id) as FieldsView;
        Console.WriteLine("Name: \"{1}\", Date: {2}, Status: {3}",
                           item.Name, item.RecordModificationDate, item.Status);
                    
The variable and function names generated are stripped to meet the requirements of C# naming so every special character that occurs in field names or values is replaced.

Allowed HTTP methods:GET and POST
Available since:8.5.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to use. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.

Named Parameters

Parameter Type Description
languagestring (optional) The target programming language for the generated source code.

Available since: 8.6

Possible values are:

csharp (Default up to: 11.0.1) Generate C# wrapper class source code.
java (Default since: 11.0.2) Generate java wrapper class source code.
tablestring (optional) You may want to specify the table to generate C# wrapper class for. The default is "AssetRecords".
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field names and values for the result. This parameter affects the way field names and language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since: 8.6

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for later catalog access e.g. Sample Catalog

Result

The result is the generated C# or Java wrapper source.

See also:

Examples

a) Generate C# wrapper class for the catalog with the alias "mycatalog" and the configured view named "fields":
Example Request
http://cip-server:port/CIP/developer/describe/mycatalog/fields?locale=en&language=csharp

Example Configuration
    <catalogs>
        ...
        <catalog aliasName="mycatalog">
            <serverAddress>localhost</serverAddress>
            <userName>sample</userName>
            <password>sample</password>
            <catalogName>TestCatalog</catalogName>
        </catalog>
        ...
    </catalogs>

    <views>
        ...
        <view name="fields">
            <field>Status</field>
            <field>Asset Reference</field>
            <field>Asset Reference/Windows</field>
            <field>Asset Reference/ZIP</field>
            <field>Record Name</field>
            <field>Categories</field>
            <field>Record Modification Date</field>
            <field>Asset Name</field>
            <field>Image Width</field>
        </view>
        ...
    </views>
    

Example Response
    using System;
    using System.Collections.Generic;
    using Canto.Cip.Lib;
    using Canto.Cip.Lib.Entities;

    using Newtonsoft.Json;

    namespace Canto.Cip.Client.Views
    {
        [JsonObject(MemberSerialization.OptIn)]
        public class FieldsView : DamItem
        {
            public const string ViewName = "fields";


            private const string StatusKey = "Status";
            private const string AssetReferenceWindowsKey = "Asset Reference/Windows";
            private const string RatingKey = "Rating";
            private const string RecordNameKey = "Record Name";
            private const string AssetReferenceZIPKey = "Asset Reference/ZIP";
            private const string AssetReferenceKey = "Asset Reference";
            private const string ImageWidthKey = "Image Width";
            private const string CategoriesKey = "Categories";
            private const string AssetNameKey = "Asset Name";
            private const string RecordModificationDateKey = "Record Modification Date";

            private DamStringListValue _Status;
            private string _AssetReferenceWindows;
            private DamRatingValue _Rating;
            private string _RecordName;
            private string _AssetReferenceZIP;
            private IList<DamBinaryValue> _AssetReference;
            private double? _ImageWidth;
            private IList<DamCategoryValue> _Categories;
            private string _AssetName;
            private DateTime? _RecordModificationDate;


            [JsonProperty (PropertyName = StatusKey)]
            public DamStringListValue Status
            {
                get { return _Status; }
                set { _Status = value; }
            }


            [JsonProperty (PropertyName = AssetReferenceWindowsKey)]
            public string AssetReferenceWindows
            {
                get { return _AssetReferenceWindows; }
                set { _AssetReferenceWindows = value; }
            }


            [JsonProperty (PropertyName = RatingKey)]
            public DamRatingValue Rating
            {
                get { return _Rating; }
                set { _Rating = value; }
            }


            [JsonProperty (PropertyName = RecordNameKey)]
            public string RecordName
            {
                get { return _RecordName; }
                set { _RecordName = value; }
            }


            [JsonProperty (PropertyName = AssetReferenceZIPKey)]
            public string AssetReferenceZIP
            {
                get { return _AssetReferenceZIP; }
                set { _AssetReferenceZIP = value; }
            }


            [JsonProperty (PropertyName = AssetReferenceKey)]
            public IList<DamBinaryValue> AssetReference
            {
                get { return _AssetReference; }
                set { _AssetReference = value; }
            }


            [JsonProperty (PropertyName = ImageWidthKey)]
            public double? ImageWidth
            {
                get { return _ImageWidth; }
                set { _ImageWidth = value; }
            }


            [JsonProperty (PropertyName = CategoriesKey)]
            public IList<DamCategoryValue> Categories
            {
                get { return _Categories; }
                set { _Categories = value; }
            }


            [JsonProperty (PropertyName = AssetNameKey)]
            public string AssetName
            {
                get { return _AssetName; }
                set { _AssetName = value; }
            }


            [JsonProperty (PropertyName = RecordModificationDateKey)]
            public DateTime? RecordModificationDate
            {
                get { return _RecordModificationDate; }
                set { _RecordModificationDate = value; }
            }


            public override void OnDeserialized ()
            {
                base.OnDeserialized ();
                Status = getStringListFieldValue (StatusKey);
                AssetReferenceWindows = getStringFieldValue (AssetReferenceWindowsKey);
                Rating = getRatingFieldValue (RatingKey);
                RecordName = getStringFieldValue (RecordNameKey);
                AssetReferenceZIP = getStringFieldValue (AssetReferenceZIPKey);
                AssetReference = getBinaryListFieldValue (AssetReferenceKey);
                ImageWidth = getDoubleFieldValue (ImageWidthKey);
                Categories = getCategoriesFieldValue (CategoriesKey);
                AssetName = getStringFieldValue (AssetNameKey);
                RecordModificationDate = getDateTimeFieldValue (RecordModificationDateKey);
            }


            public override void OnSerializing ()
            {
                setStringListFieldValue (StatusKey, Status);
                setStringFieldValue (AssetReferenceWindowsKey, AssetReferenceWindows);
                setRatingFieldValue (RatingKey, Rating);
                setStringFieldValue (RecordNameKey, RecordName);
                setStringFieldValue (AssetReferenceZIPKey, AssetReferenceZIP);
                setBinaryListFieldValue (AssetReferenceKey, AssetReference);
                setDoubleFieldValue (ImageWidthKey, ImageWidth);
                setCategoriesFieldValue (CategoriesKey, Categories);
                setStringFieldValue (AssetNameKey, AssetName);
                setDateTimeFieldValue (RecordModificationDateKey, RecordModificationDate);
                base.OnSerializing ();
            }

            public enum StatusEnum : long
            {
                Approved = 0,
                NeedsApproval = 1,
                Rejected = 2
            }

        }
    }


b) Generate Java wrapper class for the catalog with the alias "mycatalog" and the configured view named "fields":
Example Request
http://cip-server:port/CIP/developer/describe/mycatalog/fields?locale=en&language=java

Example Configuration
    <catalogs>
        ...
        <catalog aliasName="mycatalog">
            <serverAddress>localhost</serverAddress>
            <userName>sample</userName>
            <password>sample</password>
            <catalogName>TestCatalog</catalogName>
        </catalog>
        ...
    </catalogs>

    <views>
        ...
        <view name="fields">
            <field>Record Name</field>
            <field>Record Modification Date</field>
            <field>File Format</field>
            <field>Status</field>
            <field>Caption</field>
            <field>Rating</field>
            <field>Notes</field>
            <field>Categories</field>
            <field>Asset Data Size (Long)</field>
            <field>Asset Modification Date</field>
        </view>
        ...
    </views>
    

Example Response
package com.canto.cip.client.views;

import java.util.*;

import com.canto.cip.client.DamItem;
import com.canto.cip.client.dam.entities.*;


public class FieldsView extends DamItem
{
	public static final String VIEW_NAME = "fields";


	private static final String RecordNameKey = "Record Name";
	private static final String RecordModificationDateKey = "Record Modification Date";
	private static final String FileFormatKey = "File Format";
	private static final String StatusKey = "Status";
	private static final String CaptionKey = "Caption";
	private static final String RatingKey = "Rating";
	private static final String NotesKey = "Notes";
	private static final String CategoriesKey = "Categories";
	private static final String AssetDataSizeLongKey = "Asset Data Size (Long)";
	private static final String AssetModificationDateKey = "Asset Modification Date";

	private String recordName;
	private Date recordModificationDate;
	private String fileFormat;
	private DamStringListValue status;
	private String caption;
	private DamRatingValue rating;
	private String notes;
	private List<DamCategoryValue> categories;
	private DamDataSizeValue assetDataSizeLong;
	private Date assetModificationDate;



	public String getRecordName ()
	{
		return recordName;
	}

	public void setRecordName (String recordName)
	{
		this.recordName = recordName;
	}



	public Date getRecordModificationDate ()
	{
		return recordModificationDate;
	}

	public void setRecordModificationDate (Date recordModificationDate)
	{
		this.recordModificationDate = recordModificationDate;
	}



	public String getFileFormat ()
	{
		return fileFormat;
	}

	public void setFileFormat (String fileFormat)
	{
		this.fileFormat = fileFormat;
	}



	public DamStringListValue getStatus ()
	{
		return status;
	}

	public void setStatus (DamStringListValue status)
	{
		this.status = status;
	}



	public String getCaption ()
	{
		return caption;
	}

	public void setCaption (String caption)
	{
		this.caption = caption;
	}



	public DamRatingValue getRating ()
	{
		return rating;
	}

	public void setRating (DamRatingValue rating)
	{
		this.rating = rating;
	}



	public String getNotes ()
	{
		return notes;
	}

	public void setNotes (String notes)
	{
		this.notes = notes;
	}



	public List<DamCategoryValue> getCategories ()
	{
		return categories;
	}

	public void setCategories (List<DamCategoryValue> categories)
	{
		this.categories = categories;
	}



	public DamDataSizeValue getAssetDataSizeLong ()
	{
		return assetDataSizeLong;
	}

	public void setAssetDataSizeLong (DamDataSizeValue assetDataSizeLong)
	{
		this.assetDataSizeLong = assetDataSizeLong;
	}



	public Date getAssetModificationDate ()
	{
		return assetModificationDate;
	}

	public void setAssetModificationDate (Date assetModificationDate)
	{
		this.assetModificationDate = assetModificationDate;
	}

	@Override
	public void onDeserialized ()
	{
		super.onDeserialized ();
		recordName = getStringFieldValue (RecordNameKey);
		recordModificationDate = getDateTimeFieldValue (RecordModificationDateKey);
		fileFormat = getStringFieldValue (FileFormatKey);
		status = getStringListFieldValue (StatusKey);
		caption = getStringFieldValue (CaptionKey);
		rating = getRatingFieldValue (RatingKey);
		notes = getStringFieldValue (NotesKey);
		categories = getCategoriesFieldValue (CategoriesKey);
		assetDataSizeLong = getDataSizeFieldValue (AssetDataSizeLongKey);
		assetModificationDate = getDateTimeFieldValue (AssetModificationDateKey);
	}

	@Override
	public void onSerializing ()
	{
		setStringFieldValue (RecordNameKey, recordName);
		setDateTimeFieldValue (RecordModificationDateKey, recordModificationDate);
		setStringFieldValue (FileFormatKey, fileFormat);
		setStringListFieldValue (StatusKey, status);
		setStringFieldValue (CaptionKey, caption);
		setRatingFieldValue (RatingKey, rating);
		setStringFieldValue (NotesKey, notes);
		setCategoriesFieldValue (CategoriesKey, categories);
		setDataSizeFieldValue (AssetDataSizeLongKey, assetDataSizeLong);
		setDateTimeFieldValue (AssetModificationDateKey, assetModificationDate);
		super.onSerializing ();
	}

	public enum StatusEnum
	{
		Approved (0L),
		NeedsApproval (1L),
		Rejected (2L);

		private long id;

		private StatusEnum (long id)
		{
			this.id = id;
		}

		public long getId ()
		{
			return id;
		}
	}

}




2.9. Workflow Service

This service offers operations that retrieve information about workflows or applies workflow activities on items.

2.9.1. workflow/info

Get information about workflows.

Allowed HTTP methods:GET and POST
Available since:9.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
workflowIDstring (optional) The id of a specific workflow to return information for.
workflowPropertystring (optional) When querying information about a specific workflow you can optionally get even more detailed information about specific states or activities.

Supported values:

state Provide information about a given state.
activity Provide information about a given activity.
entityIDinteger (optional) When querying information about a specific workflow you can optionally get even more detailed information about specific states or activities. This property specifies either the state ID or the activity ID, depending on the value of the workflowProperty given.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:9.2

For supported values see API Versions

localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field names and values for the result. This parameter affects the way field names and language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is some workflow information.

See also:

Examples

a) Get the workflows available on a catalog, including the available activities and states.
Example Request
http://cip-server:port/CIP/workflow/info/mycatalog

Example Response
{
    "workflows": {
        "{5f714154-2443-497b-a567-c117a3815f46}": {
            "states": [
                1000000005,
                1000000006,
                1000000001,
                1000000014,
                1000000008,
                1000000009
            ],
            "activities": [
                1000000004,
                1000000001,
                1000000002,
                1000000003,
                1000000010,
                1000000011
            ],
            "description": "Workflow Description",
            "name": "Workflow Name"
        },
        "{c785b8fd-f944-43d0-a504-df23982ef471}": {
            "states": [
                1000000005,
                1000000006,
                1000000001,
                1000000014,
                1000000008,
                1000000009
            ],
            "activities": [
                1000000004,
                1000000001,
                1000000002,
                1000000003,
                1000000010,
                1000000011
            ],
            "description": "Workflow Description",
            "name": "Another Workflow Name"
        }
    }

}


b) Get some information about a specific workflow available on a catalog. The response lists the name, the description, all available states and all available activities of the workflow.
Example Request
http://cip-server:port/CIP/workflow/info/mycatalog/%7Bc785b8fd-f944-43d0-a504-df23982ef471%7D

Example Response
{
    "states": [
        1000000005,
        1000000006,
        1000000001,
        1000000014,
        1000000008,
        1000000009
    ],
    "activities": [
        1000000004,
        1000000001,
        1000000002,
        1000000003,
        1000000010,
        1000000011
    ],
    "description": "Workflow Description",
    "name": "Workflow Name"

}


c) Get detailed information about a specific workflow activity. The response lists the name, the description, all available destination states when applying the activity and whether the activity requires a dynamic assignment. Activities configured for a dynamic assignment require a list of resulting assignment user or role uids being provided when applying the activity. Also if the activity has multiple destination states available, the caller must specify the wanted destination state when applying the activity.
Example Request
http://cip-server:port/CIP/workflow/info/mycatalog/%7Bc785b8fd-f944-43d0-a504-df23982ef471%7D/activity/1000000003

Example Response
{
    "states": [
        1000000008,
        1000000009,
        1000000007
    ],
    "description": "Activity Description",
    "dynamicAssignment": true,
    "name": "Activity Name"

}


d) Get detailed information about a specific workflow state. The response lists the name and the description of the state.
Example Request
http://cip-server:port/CIP/workflow/info/mycatalog/%7Bc785b8fd-f944-43d0-a504-df23982ef471%7D/state/1000000001

Example Response
{
    "description": "State description",
    "name": "State name"

}



2.9.2. workflow/todo

Get query string to find all records the user account used for the connection is assigned to in a workflow.

Allowed HTTP methods:GET and POST
Available since:9.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:9.2

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is a query string.

See also:

Examples

a) Get the query.
Example Request
http://cip-server:port/CIP/workflow/todo/mycatalog

Example Response
{
    "query": "(((\"{7faa16e7-68dd-3535-9ff8-8a0ba19cc85a}/{da7fd65c-ea26-49f8-b7b8-a6871727d0bb}\" == \"U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:myuser\") || (\"{7faa16e7-68dd-3535-9ff8-8a0ba19cc85a}/{da7fd65c-ea26-49f8-b7b8-a6871727d0bb}\" == \"R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:myrole\"))) || (((\"{dd2222b5-8bd7-3540-ae20-da3e90387ae9}/{da7fd65c-ea26-49f8-b7b8-a6871727d0bb}\" == \"U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:myuser\") || (\"{dd2222b5-8bd7-3540-ae20-da3e90387ae9}/{da7fd65c-ea26-49f8-b7b8-a6871727d0bb}\" == \"R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:myrole\")))"

}



2.9.3. workflow/item

Manage items in a workflow.

Allowed HTTP methods:GET and POST
Available since:9.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
itemIDlong (required) The id of the item to process or query.
workflowIDstring (optional) The id of a specific workflow in case you want to apply an activity or to reset the workflow.
activityIDinteger (optional) The activity ID of the workflow activity which should be applied on the given item.
resetstring (optional) The operation to reset the workflow.

Named Parameters

Parameter Type Description
stateinteger (optional) If the given activity accepts multiple destination states you must provide the wanted resulting state using this parameter.
assignstring (optional) If the given activity is configured as a activity using dynamic assignment you must provide at least value for this parameter specifying a user or role by uid who should be assigned. Multiple values are allowed and result in multiple assignments.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:9.2

For supported values see API Versions

localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field names and values for the result. This parameter affects the way field names and language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is either the workflow information for the given item or applies an activity on the given item.

See also:

Examples

a) Get the workflow information for an item (for example with id 4711). The response lists all activities that can be applied on the given record for each available workflow and also all states the item is in for started workflows.
Example Request
http://cip-server:port/CIP/workflow/item/mycatalog/4711

Example Response
{
    "activities": {
        "{5f714154-2443-497b-a567-c117a3815f46}": [
            1000000001
        ],
        "{c785b8fd-f944-43d0-a504-df23982ef471}": [
            1000000001
        ]
    },
    "states": {
        "{5f714154-2443-497b-a567-c117a3815f46}": 1000000009
    }
}


b) Apply an activity and also specify the resulting assignment and destination state.
Example Request
http://cip-server:port/CIP/workflow/item/mycatalog/4711/%7Bc785b8fd-f944-43d0-a504-df23982ef471%7D/1000000001/?assign=U:%7B98ca1422-0171-4d1d-8b84-8cdda4ab70ae%7D:assignee&state=1000000009

Example Response
{ }


c) Reset a workflow.
Example Request
http://cip-server:port/CIP/workflow/item/mycatalog/4711/%7Bc785b8fd-f944-43d0-a504-df23982ef471%7D/reset

Example Response
{ }




2.10. Subscription Service

This service offers operations that retrieve information about subscriptions and subscribes to or un-subscribes from items.

2.10.1. subscription/item

Manage subscription for a single item.

Allowed HTTP methods:GET and POST
Available since:9.2

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
itemIDlong (required) The id of the item to process.
actionstring (optional) The name of an action to apply.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:9.2

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is the current subscription state or a list of all subscribed users.

See also:

Examples

a) Get the subscription state for an item (for example with id 4711). The response returns true in case the current user is already subscribed to the given record.
Example Request
http://cip-server:port/CIP/subscription/item/mycatalog/4711

Example Response
{
    "status": true
}


b) Add a subscription for an item (for example with id 4711). The response should return true, indicating that the subscription has been made.
Example Request
http://cip-server:port/CIP/subscription/item/mycatalog/4711/add

Example Response
{
    "status": true
}


c) Removes the subscription for an item (for example with id 4711). The response should return false, indicating that the subscription has been removed.
Example Request
http://cip-server:port/CIP/subscription/item/mycatalog/4711/remove

Example Response
{
    "status": false
}


d) List all users subscribed to the given record.
Example Request
http://cip-server:port/CIP/subscription/item/mycatalog/4711/list

Example Response
{
    "ids": [
        "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:user1",
        "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:user2"
    ]
}




2.11. Collection Service

This service offers operations on collections stored at the Cumulus server.
The Cumulus server can persistently store collections of asset records at the server side. Each collection is identified by a unique name acting as an "id" of the collection.
See the Collection Type field documentation for the different types of collections.

2.11.1. collection/list

Get a list of server-side collections. You can specify a query to filter out the collections you want, sort the list by any number of fields and let CIP return field values for each of the collections.

Allowed HTTP methods:GET and POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to return. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.

Named Parameters

Parameter Type Description
querynamestring (optional) The name of a query defined in the CIP configuration file. The defined query may be configured using a query string with placeholders. See the configuration file section for details on how to define queries.
querystringstring (optional) The query string as expected by Cumulus. You need to make sure all special characters are correctly escaped if you want to pass this parameter in an HTTP request URL. It is recommended to pass the parameter in the body of the request instead.
You can use any of the collection fields in the query.

If this parameter is missing the operation will return all available collections.

hideemptystring (optional) Specify whether CIP should hide collections that do not contain any asset for the catalogs specified.
Default is false which will list all collections regardless whether they contain assets of the given catalogs.

Available since:10.1

sortbystring array (optional) A field name or field ID with optional sort direction separated by colon (e.g. ID:descending or ID) to specify the fields to be used for sorting the result. The default is that the result is not sorted by any field.

Supported values for sort direction:

ascending (Default)
descending
startindexinteger (optional) The index (zero-based) to start returning the collections. The default is 0 which returns the items starting with the first one.
maxreturnedinteger (optional) The maximum number of collections returned by this operation. You may use this parameter to limit the size of the resulting JSON data. The default is to return all collections starting at the one specified by the startindex parameter.
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
If no field is specified this operation returns an array of collection names which are used as their IDs. Otherwise the result contains the requested fields.

Please see the section Field Specifiers for details about how to specify a field.

apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains a list of collections with the requested field values.

See also:

Examples

a) Get all my private collections.
Example Request
http://cip-server:port/CIP/collection/list/sample?querystring=%7B1cad7152-d5d7-4802-b2d1-b41d573d9b70%7D+%3d%3d+2

Example Response
{

    "totalcount": 6,
    "collections":
    [
        "Oct 27, 2014",
        "My Favorites",
        "Nov 10, 2014",
        "Nov 20, 2014",
        "Nov 24, 2014",
        "Dec 15, 2014"
    ]
}


b) Get all shared collections that were modified between 2014-12-01 and 2015-01-01 and sort them descending by modification date. Return the fields configured for the view "collections."
Example Request
http://cip-server:port/CIP/collection/list/sample/collections?querystring=%7B1cad7152-d5d7-4802-b2d1-b41d573d9b70%7D+%3d%3d+3+%26%26+%7Baf4b2e02-5f6a-11d2-8f20-0000c0e166dc%7D+%3e+2014-11-01+%26%26+%7Baf4b2e02-5f6a-11d2-8f20-0000c0e166dc%7D+%3c+2015-01-01&sortby=%7Baf4b2e02-5f6a-11d2-8f20-0000c0e166dc%7D:descending

Example Response
{

    "totalcount": 28,
    "collections":
    [
        {
            "id": "Shared-Collection-494",
            "name": "Shared-Collection-494",
            "modified": "/Date(1416995305000)/"
        },
        {
            "id": "Shared-Collection-496",
            "name": "Shared-Collection-496",
            "modified": "/Date(1416928817000)/"
        },
        {
            "id": "Common Assets",
            "name": "Common Assets",
            "modified": "/Date(1416914923000)/"
        },
        ...
    ]
}


c) Get the shared collection with a given ID of "{074303bc-d549-4bc8-bfad-0e9ab2dcfa64}" and return the fields configured for the view "collections."
Example Request
http://cip-server:port/CIP/collection/list/sample/collections?querystring=ID+%3d%3d+%7B074303bc-d549-4bc8-bfad-0e9ab2dcfa64%7D

Example Response
{

    "totalcount": 1,
    "collections":
    [
        {
            "id": "{074303bc-d549-4bc8-bfad-0e9ab2dcfa64}",
            "recipients":
            [
                {
                    "email": "\"John\" <john@somedomain.com>",
                    "lastaccessdate": null,
                    "user":
                    {
                        "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:johnl",
                        "displaystring": "John L. McGovern"
                    }
                }

            ],
            "created": "/Date(1415573928000)/",
            "expirationdate": "/Date(1416697200000)/",
            "description": null,
            "embargodate": "/Date(1415401200000)/",
            "name": "download 09.11.2014",
            "catalogs":
            {
                "id": "7"
                "location": "C:\\Program Files\\Canto\\Cumulus Enterprise Server\\catalogs\\imagedatabase.ccf"
            },
            "type":
            {
                "id": 1,
                "displaystring": "download"
            },
            "creator":
            {
                "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:cumulus",
                "displaystring": "cumulus"
            },
            "modified": "/Date(1415574018000)/"
        }
    ]
}



2.11.2. collection/getfieldvalues

Get field values of a server-side collections.

Allowed HTTP methods:GET and POST
Available since:11.1

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
viewstring (optional) The name of a view definition from the configuration file which defines a list of fields to return. See the configuration section on details on how to define views. The field list can be extended with additional fields specified in named request parameters.

Named Parameters

Parameter Type Description
collectionidstring (required) The ID (internal name) of the server-side collection.
You can retrieve a list of accessible collections with their IDs using the collection/list operation.
This parameter is required.
fieldstring array (optional) You can select the fields that should be returned by specifying one or more of these named parameters.
The value for this parameter has the same format as the field specification in the view configuration.
It is preferable to specify the field using the field UID and optionally the field name and an alias name.
When also specifying a configured view as a path parameter you can extend the view fields with the ones specified in the request.
By configuring an empty view you can let CIP return only the fields that are specified in the request.
If no field is specified this operation returns an array of collection names which are used as their IDs. Otherwise the result contains the requested fields.

Please see the section Field Specifiers for details about how to specify a field.

apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains a "collection" property with the requested field values.

See also:

Examples

a) Get just the ID of a download collection.
Example Request
http://cip-server:port/CIP/collection/getfieldvalues/sample?collectionid=%7B4f446920-3538-43f3-a305-d8dcfb6de98c%7D

Example Response
{
    "collection": "{4f446920-3538-43f3-a305-d8dcfb6de98c}"
}


b) Get some fields of a download collection. Return the fields configured for the view "collections."
Example Request
http://cip-server:port/CIP/collection/list/sample/collections?collectionid=%7B4f446920-3538-43f3-a305-d8dcfb6de98c%7D

Example Response
{
    "collection": {
        "id": "{4f446920-3538-43f3-a305-d8dcfb6de98c}",
        "type": {
            "displaystring": "download",
            "id": 2
        },
        "creator": {
            "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:johnl",
            "displaystring": "John L. McGovern"
        },
        "created": "/Date(1451915027000)/",
        "catalogs": [
            {
                "location": "C:\\catalogs\\Archive Images.ccf",
                "id": 8
            }
        ],
        "recipients": [
            {
                "lastaccessdate": null,
                "user": {
                    "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample",
                    "displaystring": "Sample User",
                },
                "email": "sample@mycompany.com"
            }
        ],
        "name": "Favorite Images to Download",
        "description": null,
        "modified": "/Date(1451915027000)/",
        "embargodate": "/Date(1451775600000)/",
        "expirationdate": "/Date(1735686000000)/"
    }
}



2.11.3. collection/load

Load the contents of a server-side collection and store the asset IDs in a CIP collection to retrieve the IDs or field values later.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
collectionidstring (required) The ID (name) of the server-side collection to load.
You can retrieve a list of accessible collections with their IDs using the collection/list operation.
This parameter is required.
collectionstring (optional) The name of a collection to save the resulting list of IDs. If you specify this parameter but leave the value empty then CIP will create a unique collection name for you and will return this name in the result. This can be used for a temporary collection to make sure the name is unique in the session. When also using the parameter combine you can combine the existing collection contents with the contents of the server-side collection.
combinestring (optional) This parameter specifies how the contents of the server-side collection is combined with the contents of the collection specified. If not specified the collection is created from the contents of the server-side collection.

Supported values:

new Default, do not use the previous contents of the specified collection but store the contents of the server-side collection in the collection
narrow Only keep items in the collection that are also in the contents of the server-side collection.
broaden Add all items of the contents of the server-side collection to the collection (if not contained already).
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains the number of assets in the collection as well as the CIP collection name.

See also:

Examples

a) Load the asset IDs of the server-side collection with the ID "Dec 15, 2014" into a CIP collection named "shared_assets."
Example Request
http://cip-server:port/CIP/collection/load/sample?collectionid=Dec+15,+2014&collection=shared_assets

Example Response
{

    "totalcount": 6,
    "collection": "shared_assets"
}



2.11.4. collection/store

Store the contents of a CIP collection to a new or existing server-side collection.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
collectionidstring (required) The ID (name) to give the server-side collection when storing.
You can retrieve a list of accessible collections with their IDs using the collection/list operation.
This parameter is required.
collectionstring (required) The name of a collection to store.
ifexistsstring (optional) Specify what to do when the result refers to an existing server-side collection.

Possible values are:

newuniquename (Default) Generate a new unique ID for the server-side collection.
replace Replace the existing server-side collection content with the collection content.
error Do nothing and return an error instead.
typestring (optional) Specify the type in case a new collection is created.

Possible values are:

private (Default) A private collection that is accessible to the creating user only.
shared A shared collection. If no is accessible to everyone
sharewithstring array (optional) If a newly created shared collection is shared to a limited number of users then this parameter specifies the user UIDs to share it with.
The creating user will always be added to assure access to the collection.
If this parameter iss not specified the collection will be shared with all users.
namestring (optional) A user-readable name for the collection. If you do not specify a name the collection ID string will be taken instead.
descriptionstring (optional) A user-readable description for the collection.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains the number of assets in the collection as well as the ID of the server-side collection.

See also:

Examples

a) Store the contents of the CIP collection named "mycollection" in the server-side shared collection with the ID "Favorite Assets" and fail if the collection exists at the server
Example Request
http://cip-server:port/CIP/collection/store/sample?collection=mycollection&collectionid=Favorite+Assets&ifexists=error&type=shared

Example Response
{

    "totalcount": 6,
    "collectionid": "Favorite Assets"
}



2.11.5. collection/delete

Delete a server-side collection.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.

Named Parameters

Parameter Type Description
collectionidstring (required) The ID (name) of the server-side collection to delete.
You can retrieve a list of accessible collections with their IDs using the collection/list operation.
This parameter is required.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result does not have any contents.

See also:

Examples

a) Delete the server-side collection with the ID "Dec 15, 2014".
Example Request
http://cip-server:port/CIP/collection/delete/sample?collectionid=Dec+15,+2014



2.11.6. collection/add

Add an item to a CIP collection.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the item to add to the collection.

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to add the item to.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains the resulting number of items in the collection and the collection name.

See also:

Examples

a) Add the item with the ID 151 to the contents of the CIP collection named "mycollection."
Example Request
http://cip-server:port/CIP/collection/add/sample/151?collection=mycollection

Example Response
{

    "totalcount": 10,
    "collection": "mycollection"
}



2.11.7. collection/remove

Remove an item from a CIP collection.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
idlong (required) The ID of the item to remove from the collection.

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to remove the item from.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains the resulting number of items in the collection and the collection name.

See also:

Examples

a) Remove the item with the ID 151 from the contents of the CIP collection named "mycollection."
Example Request
http://cip-server:port/CIP/collection/remove/sample/151?collection=mycollection

Example Response
{

    "totalcount": 9,
    "collection": "mycollection"
}



2.11.8. collection/sort

Sort a CIP collection.

Allowed HTTP method:POST
Available since:10.0.1

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to remove the item from.
sortbystring array (required) A field name or field ID with optional sort direction separated by colon (e.g. ID:descending orID) to specify the fields to be used for sorting the collection.

Supported values for sort direction:

ascending (Default)
descending
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains the resulting number of items in the collection and the collection name.

See also:

Examples

a) Sort the CIP collection named "mycollection" by item modification date descending.
Example Request
http://cip-server:port/CIP/collection/sort?collection=mycollection&sortby=%7Baf4b2e02-5f6a-11d2-8f20-0000c0e166dc%7D:descending

Example Response
{

    "totalcount": 9,
    "collection": "mycollection"
}



2.11.9. collection/getfilterstate

Get the current state for all filters added to a CIP collection.

Allowed HTTP methods:GET and POST
Available since:10.0

Path Parameters

Parameter Type Description

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to return the filter state for.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains the number of items found, the current filter state ID and a list of currently active filters.
Each filter state information contains an ID, name, description, type, and the options available for this filter.
Depending on the type the state also lists the options available for the current collection contents. Options currently selected by the user are indicated by a "selected" property having a value of true.
Filters being based on Label or Rating fields also specify a "subtype" of "Label" and "Rating" to give a hint for rendering the UI.
Each selectable option has a "value" property with the option's value that can later be passed in a collection/selectfilteroption operation.

See also:

Examples

a) Get the current filter state for the collection named "mycollection"
Example Request
http://cip-server:port/CIP/collection/getfilterstate/?collection=mycollection

Example Response
{
    "totalcount": 1256,
    "id": 1,
    "filters": [
        {
            "id": "{af4b2e0d-5f6a-11d2-8f20-0000c0e166dc}",
            "description": "Find all files where the file format name contains the text entered",
            "name": "File Format Filter",
            "collapsed": true,
            "type": "input",
            "subtype": "String"
        },
        {
            "id": "{a7a2c7da-8a28-4558-b91e-d716d4c4ebfd}",
            "description": "Filter by given file sizes",
            "name": "File Size",
            "type": "multi",
            "options": [
                {
                    "description": "Files up to 100 kB",
                    "name": "Tiny",
                    "value": 0
                },
                {
                    "description": "File sizes between 100 kB and 500 kB",
                    "name": "Small",
                    "value": 1
                },
                {
                    "description": "File sizes between 500 kB and 1 MB",
                    "name": "Medium",
                    "value": 2
                },
                {
                    "description": "File sizes above 1 MB",
                    "name": "Large",
                    "value": 3
                }
            ]
        }
    ]
}



2.11.10. collection/addfilter

Add a new filter to a CIP collection. The collection will be limited to only contain items that match the filter being added. The filter can be based on a quicksearch string, a query string, a configured query, or on the contents of a server-side collection. You can either add a filter being based on a collection or on a combination of quicksearchstring, querystring, and queryname.

Allowed HTTP method:POST
Available since:10.0

Named Parameters

Parameter Type Description
collectionidstring (optional) The ID of a server-side collection to use as a filter.
If this parameter is missing one of the named parameters for a quicksearchstring, querystring, or queryname needs to be specified.
quicksearchstringstring (optional) The quicksearch string to use for filtering. You can combine this with a querystring or queryname.
querystringstring (optional) The query string to use for filtering. You can combine this with a quicksearchstring or queryname.
Available since 10.2: If the query string contains the placeholder ${MASTERS_ONLY} then this is replaced by an actual query fragment that finds master assets only.
querynamestring (optional) The name of a configured query to use for filtering. You can combine this with a quicksearchstring or querystring.
collectionstring (required) The name of a collection to add the filter to.
localestring (optional) The two-letter language code (ISO 639-1) to be used for parsing the query string, important for correct language-dependent date value interpretation. For example you can specify “fr” to be able to specify a date value in French format. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the generated unique ID for this filter. This ID will then be used when listing this filter in a filter state.

See also:

Examples

a) Add a filter to only allow assets in the collection named "mycollection" that are contained in the server-side collection with the ID "Favorite Assets"
Example Request
http://cip-server:port/CIP/collection/addfilter?collectionid=Favorite+Assets&collection=mycollection

Example Response
{
    "id": "{fbab4d8d-5e39-4bb9-88f5-7e65b0e242e9}"
}



2.11.11. collection/removefilter

Remove a filter from a CIP collection. The collection will be updated to match only contain items that match the remaining filters.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
filteridstring (required) The ID of the filter to remove.

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to remove the filter from.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the filter ID you passed in.

See also:

Examples

a) Remove the filter with the ID "{fbab4d8d-5e39-4bb9-88f5-7e65b0e242e9}" from the collection named "mycollection."
Example Request
http://cip-server:port/CIP/collection/removefilter/%7Bfbab4d8d-5e39-4bb9-88f5-7e65b0e242e9%7D?collection=mycollection

Example Response
{
    "id": "{fbab4d8d-5e39-4bb9-88f5-7e65b0e242e9}"
}



2.11.12. collection/addfilterset

Add a list of configured filters to a CIP collection.
The filter list is configured in cip-config.xml.
The filters don't have any option selected so the collection is unchanged.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
filtersetstring (required) The name of the filter set configuration to add.

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to add the filters to.
localestring (optional) The two-letter language code (ISO 639-1) to be used for the filter names and descriptions. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the current filter state after updating the collection contents.

See also:

Examples

a) Add a filter set named "myfilters" to the collection named "mycollection" and return the filter state. Please note that none of the the filter options is selected so no filtering is active.
Example Request
http://cip-server:port/CIP/collection/addfilterset/myfilters?collection=mycollection

Example Response
{
    "totalcount": 345,
    "id": 162,
    "filters": [
        {
            "id": "{af4b2e0d-5f6a-11d2-8f20-0000c0e166dc}",
            "description": "Find all files where the file format name contains the text entered",
            "name": "File Format Filter",
            "collapsed": true,
            "type": "input",
            "subtype": "String"
        },
        {
            "id": "{a7a2c7da-8a28-4558-b91e-d716d4c4ebfd}",
            "description": "Filter by given file sizes",
            "name": "File Size",
            "type": "multi",
            "options": [
                {
                    "description": "Files up to 100 kB",
                    "name": "Tiny",
                    "value": 0
                },
                {
                    "description": "File sizes between 100 kB and 500 kB",
                    "name": "Small",
                    "value": 1
                },
                {
                    "description": "File sizes between 500 kB and 1 MB",
                    "name": "Medium",
                    "value": 2
                },
                {
                    "description": "File sizes above 1 MB",
                    "name": "Large",
                    "value": 3
                }
            ]
        },
        {
            "id": "{af4b2e06-5f6a-11d2-8f20-0000c0e166dc}",
            "description": "Filter the files by modification date.",
            "name": "Asset Modification Date",
            "type": "single",
            "subtype": "DateTime",
            "options": [
                {
                    "items": 87,
                    "value": 0,
                    "name": "Asset Modification Date",
                    "options": [
                        {
                            "items": 2,
                            "value": 1,
                            "name": "1996",
                            "expandable": true
                        },
                        {
                            "items": 12,
                            "value": 2,
                            "name": "1999",
                            "expandable": true
                        },
                        {
                            "items": 3,
                            "value": 3,
                            "name": "2000",
                            "expandable": true
                        },
                        {
                            "items": 30,
                            "value": 4,
                            "name": "2006",
                            "expandable": true
                        },
                        {
                            "items": 1,
                            "value": 5,
                            "name": "2008",
                            "expandable": true
                        },
                        {
                            "items": 29,
                            "value": 6,
                            "name": "2009",
                            "expandable": true
                        },
                        {
                            "items": 10,
                            "value": 7,
                            "name": "2013",
                            "expandable": true
                        }
                    ],
                    "expandable": true
                }
            ]
        },
        {
            "id": "{ceb27bb1-c6fe-449e-9e23-38ca7c31ec27}",
            "collectionid": "SamCollection",
            "type": "collection"
        },
        {
            "id": "{3441d25f-fb6b-4074-af63-2d7cb9843773}",
            "querystring": "ID *",
            "quicksearchstring": "zebra",
            "type": "query"
        }
    ]
}



2.11.13. collection/removefilterset

Remove a list of configured filters from a CIP collection.
The filter list is configured in cip-config.xml.
The collection is updated to reflect the new list of active filters.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
filtersetstring (required) The name of the filter set configuration to remove.

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to remove the filters from.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the current filter state after updating the collection contents.

See also:

Examples

a) Remove a filter set named "myfilters" from the collection named "mycollection" and return the filter state.
In this example we assume that the only filters added were the ones from the filter set so no filter is left.
Example Request
http://cip-server:port/CIP/collection/removefilterset/myfilters?collection=mycollection

Example Response
{
    "totalcount": 1256,
    "id": 163,
    "filters": []
}



2.11.14. collection/selectfilteroption

Select one of the options of a filter configured in a filter set.
In the filter state data each filter is identified by ID and each option by a "value".
By specifying the ID and value you can instruct CIP to filter by the selected option.
If you only specify the ID but no value you can reset the filter.
The CIP collection you are working on will be filtered to only contain items matching the selected option.
CIP will return the new filter state with the updated filter options.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
filteridstring (required) The ID of the filter.
valuestring (optional) The value of the filter option to select.
For filters of type input and sub-type String you pass the text to filter by.
For filters of type input and sub-type Vocabulary you pass the vocabulary item ID as the value to filter by.
Omitting this parameter resets the specified filter (deselecting all options).

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to work with.
fromstring (optional) For a range filter the value is specified using "from" and "to" named parameters. In this case the path parameter "value" is omitted.
This parameter specifies the beginning of the range to filter.
tostring (optional) For a range filter the value is specified using "from" and "to" named parameters. In this case the path parameter "value" is omitted.
This parameter specifies the end of the range to filter.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the current filter state after updating the collection contents.

See also:

Examples

a) Select the filter option with the value "1" for the filter with the filter ID {a7a2c7da-8a28-4558-b91e-d716d4c4ebfd}. The filter is from the example above for collection/addfilterset and is a filter by file size with the option "1" meaning "Small."
Note that the new filter state shows the option as "selected."
Example Request
http://cip-server:port/CIP/collection/selectfilteroption/%7Ba7a2c7da-8a28-4558-b91e-d716d4c4ebfd%7D/1?collection=mycollection

Example Response
{
    "totalcount": 345,
    "id": 162,
    "filters": [
        {
            "id": "{af4b2e0d-5f6a-11d2-8f20-0000c0e166dc}",
            "description": "Find all files where the file format name contains the text entered",
            "name": "File Format Filter",
            "collapsed": true,
            "type": "input",
            "subtype": "String"
        },
        {
            "id": "{a7a2c7da-8a28-4558-b91e-d716d4c4ebfd}",
            "description": "Filter by given file sizes",
            "name": "File Size",
            "type": "multi",
            "options": [
                {
                    "description": "Files up to 100 kB",
                    "name": "Tiny",
                    "value": 0
                },
                {
                    "description": "File sizes between 100 kB and 500 kB",
                    "name": "Small",
                    "value": 1,
                    selected: true
                },
                {
                    "description": "File sizes between 500 kB and 1 MB",
                    "name": "Medium",
                    "value": 2
                },
                {
                    "description": "File sizes above 1 MB",
                    "name": "Large",
                    "value": 3
                }
            ]
        },
        {
            "id": "{af4b2e06-5f6a-11d2-8f20-0000c0e166dc}",
            "description": "Filter the files by modification date.",
            "name": "Asset Modification Date",
            "type": "single",
            "subtype": "DateTime",
            "options": [
                {
                    "items": 87,
                    "value": 0,
                    "name": "Asset Modification Date",
                    "options": [
                        {
                            "items": 1,
                            "value": 1,
                            "name": "2008",
                            "expandable": true
                        },
                    ],
                    "expandable": true
                }
            ]
        },
        {
            "id": "{ceb27bb1-c6fe-449e-9e23-38ca7c31ec27}",
            "collectionid": "SamCollection",
            "type": "collection"
        },
        {
            "id": "{3441d25f-fb6b-4074-af63-2d7cb9843773}",
            "querystring": "ID *",
            "quicksearchstring": "zebra",
            "type": "query"
        }
    ]
}



2.11.15. collection/restorefilterstate

Restore the filter state to an older state. Each time CIP updates the collection it generates a new state for all filters. You can switch back to a previous state by calling the operation providing the ID of the old state.
Because of changes being made to the items the resulting collection contents may differ from the contents that was created by the previous state.
The old state will be added as the new current state with a newly generated state ID.

Allowed HTTP method:POST
Available since:10.0

Path Parameters

Parameter Type Description
filterstateidstring (required) The ID of the old filter state.

Named Parameters

Parameter Type Description
collectionstring (required) The name of a collection to work with.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is the current filter state after restoring the old state and updating the collection contents.

See also:

Examples



2.12. User Service

This service offers operations that retrieve information about the user being logged in.

2.12.1. user/getinformation

Get information about the current user.

Allowed HTTP methods:GET and POST
Available since:9.2.1

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains information about the user. See the example below for details.
Since API version 18 (CIP 10.2) the result also contains a "permissions" property which is an array of strings for the server-wide permissions this user has.
Possible permission string values are: Since API version 21 (CIP 10.2.3) the result also contains a "baseweburls" property which is an array of configured base URLs for sending collection links.
each configured base web URL contains a user-readable name, a type and the actual URL. Possible "type" values are One of these web URLs can be specified using the "linkbaseurl" parameter when sending a collection link, see metadata/sendcolllection.

See also:

Examples

a) Get the information about the sample user.
Example Request
http://cip-server:port/CIP/user/getinformation?serveraddress=localhost&user=sample&password=sample

Example Response
{
    "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample",
    "displaystring": "Sample User",
    "firstname": "Sample",
    "middlename": null,
    "lastname": "User",
    "email": "sample@example.com",
    "phone": null,
    "roles": [
        {
            "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample"
            "displaystring": "sample"
        },
        {
            "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:editor"
            "displaystring": "editor"
        }
    ],
    "permissions": [
        "collection.private.delete",
        "collection.upload.delete",
        "collection.shared.modify",
        "collection.download.create",
        "collection.upload.create",
        "collection.private.create",
        "collection.shared.delete",
        "collection.download.modify",
        "collection.upload.modify",
        "collection.shared.create",
        "collection.download.delete",
        "collection.private.modify",
        "user.search"
    ],
    "baseweburls": [
        {
            "name": "Portals",
            "type": "portals",
            "url": "http://192.168.0.2/portals"
        },
        {
            "name": "Web Client",
            "type": "webclient",
            "url": "http://192.168.0.2/"
        },
        {
            "name": "Sites",
            "type": "sites",
            "url": "http://192.168.0.2/sites"
        }
    ]
}



2.12.2. user/sendresetpasswordrequest

Send an e-mail to a user specified by login name to allow this user to reset the password.
This operation can be used if a user who forgot his password and wants to reset it. CIP sends an e-mail to the e-mail address of the given user. The e-mail will contain a link to a web landing page. The landing page base URL is specified as a parameter. The URL will also contain a newly generated token that identifies the reset password request. This token is valid for 24 hours.
The landing page should extract the token an pass it to a CIP request of user/resetpassword operation along with the new password.

Allowed HTTP method:POST
Available since:10.1.1

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases. The catalog alias should be configured with a user that is allowed to search for users (it needs to find the given user and get the e-mail address for it.
For maximum security this catalog alias should lock down user name, password, server address and catalogs and should also restrict the operations to only allow the operations user/sendresetpasswordrequest and user/resetpassword.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

loginnamestring (required) The login name of the user who wants to reset the password.
linkbaseurlstring (required) The base URL of the landing page of a web application for resetting the password.
CIP will append the generated reset password token to the end of the URL and embed this in the e-mail being sent. If you need to insert the token in the middle of the URL you can insert {0} and CIP will instead replace this with the token.
userstring (optional) The user name to log in to Cumulus.
For maximum security you should not use this parameter but rely on the catalog alias being configured so that you avoid sending user credentials with the request.
passwordstring (optional) The password for login to the Cumulus server..
For maximum security you should not use this parameter but rely on the catalog alias being configured so that you avoid sending user credentials with the request.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2.
For maximum security you should not use this parameter but rely on the catalog alias being configured.

Result

If you passed all parameters correctly this operation returns an HTTP status of 200.
For security reasons there is no way to detect any problem, e.g. wrong login name, user without e-mail address, user is not allowed to change password.

See also:

Examples

a) Send a mail to the user with the login name "paula".
The e-mail will contain a link like the following:
https://my.company.com/website/resetpassword?token=%7Bfa1021d3-b1ea-4a14-962e-a05fc049b48d%7D
Example Request
https://cip-server:port/CIP/user/sendresetpasswordrequest/changepassword-alias?loginname=paula&linkbaseurl=https://my.company.com/website/resetpassword?token=

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="changepassword-alias">
            <serverAddress>10.10.0.22</serverAddress>
            <userName>adminUser</userName>
            <password>adminPassword</password>
            <constraints>
                <no-overwrite>serverAddress</no-overwrite>
                <no-overwrite>userName</no-overwrite>
                <no-overwrite>password</no-overwrite>
                <no-overwrite>catalogName</no-overwrite>
                <operation-pattern>user/sendresetpasswordrequest</operation-pattern>
                <operation-pattern>user/resetpassword</operation-pattern>
            </constraints>
        </catalog>
    ...
    </catalogs>
...
</config>



2.12.3. user/resetpassword

Reset a user's password by passing a token generated by a previous call to user/sendresetpasswordrequest as well as the new password. The token determines the user who's password to reset.

Allowed HTTP method:POST
Available since:10.1.1

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases. The catalog alias should be configured with a user that is allowed to search for users (it needs to find the given user and get the e-mail address for it.
For maximum security this catalog alias should lock down user name, password, server address and catalogs and should also restrict the operations to only allow the operations user/sendresetpasswordrequest and user/resetpassword.
tokenstring (required) The token generated by a previous call to user/sendresetpasswordrequest and received in a link URL of the e-mail sent.

Named Parameters

Parameter Type Description
newpasswordstring (required) The new password to be set.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

userstring (optional) The user name to log in to Cumulus.
For maximum security you should not use this parameter but rely on the catalog alias being configured so that you avoid sending user credentials with the request.
passwordstring (optional) The password for login to the Cumulus server..
For maximum security you should not use this parameter but rely on the catalog alias being configured so that you avoid sending user credentials with the request.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2.
For maximum security you should not use this parameter but rely on the catalog alias being configured.

Result

If you passed all parameters correctly this operation returns an HTTP status of 200.
In case the token is wrong or expired you will receive an HTTP status of 500 and the error code reset.password.token.not.found.

See also:

Examples

a) Reset the password using the token obtained from an e-mail. See the example for user/sendresetpasswordrequest above. https://my.company.com/website/resetpassword?token=%7Bfa1021d3-b1ea-4a14-962e-a05fc049b48d%7D
Example Request
https://cip-server:port/CIP/user/resetpassword/changepassword-alias/%7Bfa1021d3-b1ea-4a14-962e-a05fc049b48d%7D?newpassword=Ghd53#F$a21

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="changepassword-alias">
            <serverAddress>10.10.0.22</serverAddress>
            <userName>adminUser</userName>
            <password>adminPassword</password>
            <constraints>
                <no-overwrite>serverAddress</no-overwrite>
                <no-overwrite>userName</no-overwrite>
                <no-overwrite>password</no-overwrite>
                <no-overwrite>catalogName</no-overwrite>
                <operation-pattern>user/sendresetpasswordrequest</operation-pattern>
                <operation-pattern>user/resetpassword</operation-pattern>
            </constraints>
        </catalog>
    ...
    </catalogs>
...
</config>



2.12.4. user/search

Find users matching a given string.

Allowed HTTP methods:GET and POST
Available since:10.0

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

For supported values see API Versions

quicksearchstringstring (required) The string to match. Specify a sub-string contained in the following fields: the first name, middle name, last name, e-mail address.
You can also specify a complete user UID string to get information about a specific user (e.g. get a displayable name for a user you know by user UID).
You can also specify the complete e-mail address to find the user having this email.
requiresarray (optional) This parameter can be specified to filter the resulting user list and can contain one of the following values:
email Only return users that have a known e-mail address
login Only return users that are able to log in to the system
userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2

Result

The result is an object that contains information about the user. See the example below for details.

See also:

Examples

a) Get a list of users that match the string "George".
Example Request
http://cip-server:port/CIP/user/search?serveraddress=localhost&user=sample&password=sample&quicksearchstring=George

Example Response
{
    "totalcount": 2,
    "users": [
        {
            "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:george_fitz",
            "displaystring": "George M. Fitzgerald",
            "firstname": "George",
            "middlename": "Martin",
            "lastname": "Fitzgerald",
            "email": "george@example.com",
            "phone": null,
            "roles": [
                {
                    "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample"
                    "displaystring": "sample"
                },
                {
                    "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:editor"
                    "displaystring": "editor"
                }
            ]
        },
        {
            "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:manfred_george",
            "displaystring": "Manfred George",
            "firstname": "Manfred",
            "middlename": null,
            "lastname": "George",
            "email": null,
            "phone": null,
            "roles": [
                {
                    "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample"
                    "displaystring": "sample"
                }
            ]
        }
}


b) Get a list of users that match the string "joan" and have a valid e-mail address.
Example Request
http://cip-server:port/CIP/user/search?serveraddress=localhost&user=sample&password=sample&quicksearchstring=joan&requires=email

Example Response
{
    "totalcount": 2,
    "users": [
        {
            "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:joanm",
            "displaystring": "Joan Marshall",
            "firstname": "Joan",
            "middlename": null,
            "lastname": "Marshall",
            "email": "joanm@example.com",
            "phone": null,
            "roles": [
                {
                    "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample"
                    "displaystring": "sample"
                }
            ]
        },
        {
            "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:joannas",
            "displaystring": "Joanna Sikorski",
            "firstname": "Joanna",
            "middlename": null,
            "lastname": "Sikorski",
            "email": "jsikorski@example.com",
            "phone": null,
            "roles": [
                {
                    "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample"
                    "displaystring": "sample"
                }
            ]
        }
}


c) Get information about the user having the unique ID "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:joanm".
Example Request
http://cip-server:port/CIP/user/search?serveraddress=localhost&user=sample&password=sample&quicksearchstring=U:%7B98ca1422-0171-4d1d-8b84-8cdda4ab70ae%7D:joanm

Example Response
{
    "totalcount": 1,
    "users": [
        {
            "id": "U:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:joanm",
            "displaystring": "Joan Marshall",
            "firstname": "Joan",
            "middlename": null,
            "lastname": "Marshall",
            "email": "joanm@example.com",
            "phone": null,
            "roles": [
                {
                    "id": "R:{98ca1422-0171-4d1d-8b84-8cdda4ab70ae}:sample"
                    "displaystring": "sample"
                }
            ]
        }
}




2.13. Configuration Service

This service offers operations that retrieve information about the CIP server system configuration.

2.13.1. configuration/getclientconfiguration

Access client custom configuration stored in the CIP configuration

Allowed HTTP methods:GET and POST
Available since:8.6

Path Parameters

Parameter Type Description
namestring (required) The name of the client configuration.

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:8.6

For supported values see API Versions


Result

The result is the configuration of the client.

See also:

Examples

a) Get the client configuration for the namecom.canto.cumulus.mobile.client:
Example Request
http://cip-server:port/CIP/configuration/getclientconfiguration/com.canto.cumulus.mobile.client

Example Configuration
    <clientConfigurations>
        ...
        <clientConfiguration name="com.canto.cumulus.mobile.client">
            <value name="timeout">3600</value>
            <list name="mydata">
                <value>1234</value>
                <value>647836</value>
                <record>
                    <value name="login">guest</value>
                    <value name="password">guest</value>
                    <record name="Status">
                        <value name="1">approved</value>
                        <value name="2">OK</value>
                        <value name="3">Rejected</value>
                    </record>
                    <value name="port">3333</value>
                    <list name="format">
                        <value>png</value>
                        <value>jpeg</value>
                        <value>gif</value>
                    </list>
                </record>
            </list>
            <list name="assetactions">
                <value>Standard</value>
                <value>Convert</value>
            </list>
            <value name="last">2012.02.20</value>
        </clientConfiguration>
        ...
    </clientConfigurations>
    

Example Response
{

    "timeout": "3600",
    "mydata": [
        "1234",
        "647836",
        {
            "login": "guest",
            "password": "guest",
            "Status": {
                "1": "approved",
                "2": "OK",
                "3": "Rejected"
            },
            "port": "3333",
            "format": [
                "png",
                "jpeg",
                "gif"
            ]
        }
    ],
    "assetactions": [
        "Standard",
        "Convert"
    ],
    "last": "2012.02.20"

}



2.13.2. configuration/getview

Return a view configuration stored in the Cumulus server.

Allowed HTTP methods:GET and POST
Available since:9.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
namestring (required) The name of the view definition in Cumulus.
variantstring (optional) The name the variant of the view definition. The view definition may provide different variants for different usages, e.g. one for a "thumbnail view", another variant for the "details view."

The following values are supported:

com.canto.recordviewsets.views.ThumbnailView (Default) The "Thumbnail View" variant
com.canto.recordviewsets.views.InfoView The "Info View" variant
com.canto.recordviewsets.views.InfoWindow The "Asset Info Window" variant
com.canto.recordviewsets.views.ReportView The "Report View" variant
com.canto.recordviewsets.views.DetailsView The "Details View" variant
com.canto.recordviewsets.views.PaletteMode The "Palette Mode" variant
com.canto.recordviewsets.views.PreviewView The "Preview View" variant
com.canto.recordviewsets.views.PreviewWindow The "Preview Window" variant
com.canto.recordviewsets.views.CalendarPane The "Calendar Pane" variant

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:8.6

For supported values see API Versions

tablestring (optional) You may want to specify the table to return the view definition for. The default is "AssetRecords".
propertystring array (optional) You can select the properties that should be returned for each view field by specifying one or more of these named parameters. Limiting the properties returned by the request can minimize the data that is returned.
Available since 11.0:

Possible values are:

name The localized name of the field. This is just for displaying a field name in case the layout does not contain this field.
key The unique ID for this field.
details For fields of type "Vocabulary" or "MultiVocabulary" this property specifies the name of the view set to be used for displaying vocabulary item fields.
font The name of the font to be used for displaying textual fields.
size The size of the font to be used for displaying textual fields.
color The color to be used for displaying textual fields.
style An integer containing the style bits to be used for displaying textual fields.
lines An integer specifying the number of lines to be used for displaying textual fields.
rawFormat Available since 11.0.3:A boolean specifying whether to display the value of 'integer' and 'long' fields in raw format instead of the locale format.
type Available since 11.0.4:The type of this entry. This is either a field type or the virtual type "Separator."
querystring Available since 11.0.4:The optional query string to match records where this field or separator should be shown. If a separator has an attached query string then this should be applied to all fields following this up to the next separator. If also one of the fields following such a separator then the AND-combined query of both should be applied to the field.
localestring (optional) The two-letter language code (ISO 639-1) to be used for the metadata field names and values for the result. This parameter affects the way field names and language-dependent metadata values are returned. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is the view definition.
The resulting view only contains fields that the specified catalog contains.
Since 11.0.4 it also contains separators being configured. A separator has the properties "name", "key", and "type" where the key is a unique ID and the type is "Separator."
For fields of type Vocabulary a property named details contains the list of fields to be displayed if the CIP client wants to show more information about a vocabulary item. These fields are taken from the Category View Set configured for the field.

See also:

Examples

a) Get the "Thumbnail View" definition of the Record View Set named Standard and limit the fields to what is available in the configured catalog with the catalog aliasmycatalog.
The example shows a separator called "My Separator" which is only shown for images followed by the fields for the horizontal pixels and vertical pixels which also are onyl shown for images.
Example Request
http://cip-server:port/CIP/configuration/getview/mycatalog/Standard

Example Response
{
    "fields": [
        {
            "key": "{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}",
            "name": "Record Name",
            "type": "String",
            "font": "Sans Serif",
            "size": 9,
            "color": "#000000",
            "style": 0,
            "lines": 1
        },
        {
            "key": "{af4b2e0a-5f6a-11d2-8f20-0000c0e166dc}",
            "name": "Thumbnail",
            "type": "Picture",
            "size": "medium"
        },
        {
            "key": "{af4b2e0d-5f6a-11d2-8f20-0000c0e166dc}",
            "name": "File Format",
            "type": "String",
            "font": "Sans Serif",
            "size": 9,
            "color": "#000000",
            "style": 0,
            "lines": 1
        },
        {
            "key": "{1e29ca59-4022-43f3-9448-539a3da4097c}",
            "name": "Rating",
            "type": "Rating"
        },
        {
            "key": "{90ef1615-815f-4e77-a7bf-c470f82cb945}",
            "name": "My Separator",
            "type": "Separator",
            "querystring": "{6ad999a4-43db-435e-b222-ac0f692861b1} == 1000000000"
        },
        {
            "key": "{05f6f3f0-833a-45a0-ade4-8e48542f37ef}",
            "name": "Horizontal Pixels",
            "type": "Integer",
            "rawFormat": false,
            "font": "Segoe UI",
            "size": 9,
            "color": "#000000",
            "style": 0,
            "lines": 1
        },
        {
            "key": "{a89e881e-df7a-4c7c-9bf7-840bf3df707e}",
            "name": "Vertical Pixels",
            "type": "Integer",
            "rawFormat": false,
            "font": "Segoe UI",
            "size": 9,
            "color": "#000000",
            "style": 0,
            "lines": 1
        }
    ],
}



2.13.3. configuration/listoptions

Return a list of server-side options.

Allowed HTTP methods:GET and POST
Available since:10.0

Path Parameters

Parameter Type Description
catalogstring (required) The name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases.
optiontypestring (required) The type of options that should be listed.
com.canto.cumulus.assetaction Asset actions that can be applied when downloading an asset.
Since API version 20 (CIP 10.2.2) the result contains information about whether the asset action is configured to crop the asset or not (see the "iscropping" property of each asset action).
com.canto.cumulus.assethandlingset Asset handling sets that define how Cumulus operates with assets.
com.canto.cumulus.permissiontemplate Permission templates that can be applied when importing assets.
com.canto.cumulus.viewset View configuration sets that define which metadata fields should be displayed.
You can select the sub-type by passing it in an additional parameter (see below).
com.canto.cumulus.query Queries stored at the Cumulus server that can be referenced when searching.
You can select the sub-type by passing it in an additional parameter (see below).
com.canto.cumulus.printtemplate Print templates stored at the Cumulus server that can be used when getting a printable report of asset.
Only Print Templates having the option "Advanced print settings define layout" selected and having the "Allow PDF Printing" enabled in "PDF Options" are returned.
See the metadata/print operation for generating a printable report.
subtypestring (optional) The name the sub-type to be listed.
com.canto.cumulus.recordviewset Available for option type com.canto.cumulus.viewset. (Default) The view sets defined for displaying asset records.
com.canto.cumulus.categoryviewset Available for option type com.canto.cumulus.viewset. The view sets defined for displaying categories.
com.canto.cumulus.recordquery Available for option type com.canto.cumulus.query. (Default) Queries defined for asset search.
com.canto.cumulus.categoryquery Available for option type com.canto.cumulus.query. Queries defined for seaching categories.
idlong (optional) The ID of an asset to only return asset actions that can be applied to this asset.
If you want to check against a list of assets use the collection named parameter.

Named Parameters

Parameter Type Description
collectionstring (optional) The name of a collection that contains the assets that should be used to only return asset actions that can be applied to these assets.
If an asset action is configured to only be applied to assets of specific file formats the action is only returned if it covers the file formats of all assets in the collection.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:8.6

For supported values see API Versions

localestring (optional) The two-letter language code (ISO 639-1) to be used for the name and description values in the result. For example you can specify “fr” to return all values suitable for French users. The default is the default locale the CIP server is running in (may be controlled using the “user.language” Java VM parameter when starting the web application server).
userstring (optional) The user name to log in to Cumulus.
passwordstring (optional) The password for login to the Cumulus server.
serveraddressstring (optional) The Cumulus server IP address e.g. localhost, 192.168.0.2
catalognamestring (optional) The catalog name for catalog access e.g. Sample Catalog

Result

The result is the view definition.
The resulting view only contains fields that the specified catalog contains.

See also:

Examples

a) Get a list of all record view sets with their internal IDs and the display names.
Example Request
http://cip-server:port/CIP/configuration/listoptions/mycatalog/com.canto.cumulus.viewset

Example Response
{
    "totalcount": 5,
    "items": [
        {
            "id": "Standard",
            "isdefault": true,
            "description": null,
            "displaystring": "Standard"
        },
        {

            "id": "Images",
            "isdefault": false,
            "description": null,
            "displaystring": "Images"
        },
        {

            "id": "Documents",
            "isdefault": false,
            "description": null,
            "displaystring": "Documents"
        },
        {

            "id": "Web Client",
            "isdefault": false,
            "description": null,
            "displaystring": "Web Client"
        },
        {

            "id": "Show Case",
            "isdefault": false,
            "description": null,
            "displaystring": "Show Case"
        }
    ]
}


b) Get a list of all category queries that are available on the Cumulus server.
Example Request
http://cip-server:port/CIP/configuration/listoptions/mycatalog/com.canto.cumulus.query/com.canto.cumulus.categoryquery

Example Response
{
    "totalcount": 1,
    "items": [
        {
            "id": "Find abc categories",
            "querystring": "{5251a740-727c-11d2-a73d-0000c000cdd3}:Category Name\t?\tabc",
            "description": "Find all categories whose name contains \"abc\"",
            "displaystring": "Find abc categories"
        }
    ]
}



2.13.4. configuration/listplugins

Return a list of CIP client plug-ins installed at the CIP server.
This operation allows to get a list of all plug-ins that are installed, optionally filtered by plug-in type.

Allowed HTTP methods:GET and POST
Available since:10.1.1

Named Parameters

Parameter Type Description
typestring (optional) When specified this parameter causes the resulting list to only contain plugins of the given plugin type.
If missing CIP will return a list of all plug-ins.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:10.1.1

For supported values see API Versions


Result

The result is a list of plugin information.

See also:

Examples

a) Get a list of all installed CIP client plug-ins.
Example Request
http://cip-server:port/CIP/configuration/listplugins

Example Response
{
    "plugins": [
        {
            "id": "com.canto.cumulus.portals.maps",
            "name": "Portals Map Plug-In",
            "type": "com.canto.cumulus.portals",
            "version": "1.0"
        },
        {
            "id": "com.canto.cumulus.portals.print",
            "name": "Portals Print Plug-In",
            "type": "com.canto.cumulus.portals",
            "version": "1.1"
        },
        {
            "id": "com.mycompany.cipclient.fancy",
            "name": "My fancy Plug-In",
            "type": "com.mycompany.cipclient",
            "version": "3.2.1"
        }
    ]
}



2.13.5. configuration/getpluginresource

Return the content of a resource file of a CIP client plug-in installed at the CIP server.
This operation allows to get any file contained in a plug-in using a relative path similar to getting a static resource from a normal HTTP server.

Allowed HTTP methods:GET and POST
Available since:10.1.1

Named Parameters

Parameter Type Description
pluginidstring (required) The ID of the plug-in.
pathstring (required) The relative path to the resource inside the plug-in using "/" as a folder separator.
versionstring (optional) The version of the installed plug-in to use.
If this parameter is missing then CIP will take any version of the installed plug-in. This may be useful if you are sure that there is only one version of the plug-in installed and your client code does not require a specific version.
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:10.1.1

For supported values see API Versions


Result

The result is the content of the specified resource.

See also:

Examples

a) Get the "manifest.json" resource which is mandatory for CIP plug-ins.
Example Request
http://cip-server:port/CIP/configuration/getpluginresource?pluginid=com.canto.cumulus.portals.maps&version=1.0&path=manifest.json

Example Response
{
    "com.canto.cip.client.plugin.type": "com.canto.cumulus.portals",
    "com.canto.cip.client.plugin.id": "com.canto.cumulus.portals.maps",
    "com.canto.cip.client.plugin.name": "Portals Map Plug-In",
    "com.canto.cip.client.plugin.version": "1.0",

    "scripts": ["app.js"],
    "pluginPort": ["assetactionButtons"]
}


b) Get the logo file that is part of the plug-in contents. The URL can directly be used as the src attribute value of an HTML <img> element.
Example Request
http://cip-server:port/CIP/configuration/getpluginresource?pluginid=com.canto.cumulus.portals.maps&path=images/logo.png

Example Response
The PNG content of the logo file



2.13.6. configuration/reload

Reload the cip-config.xml file to make changes effective immediately.

Allowed HTTP methods:GET and POST
Available since:10.0


Result

There is no text in the result. You ay check the HTTP status to be 200 (OK).

See also:

Examples

a) Let CIP reload a modified cip-config.xml file.
Example Request
http://cip-server:port/CIP/configuration/reload



2.13.7. configuration/getclienthttpheader

Return some data from the HTTP request header that the client side sent in this request.
This operation is useful when your client code is JavaScript running in a browser which does not support accessing the configured list of languages (e.g. MSIE).
The following HTTP header values are supported by this operation:

Allowed HTTP methods:GET and POST
Available since:10.1


Result

The result is a JSON object containing HTTP header values if present.

See also:

Examples

a) Get the browser's HTTP header values
Example Request
http://cip-server:port/CIP/configuration/getclienthttpheader

Example Response
{
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en,de-DE;q=0.8,en-US;q=0.6,fr;q=0.4,it;q=0.2",
    "Accept-Encoding": "gzip, deflate"

}




2.14. System Information Service

This service offers operations that retrieve information about the CIP server system.

2.14.1. system/getversion

Return the current version of the following service components:

Allowed HTTP methods:GET and POST
Available since:8.5.2


Result

The result is the version of the service components.

See also:

Examples

a) Get the current version of the CIP server:
Example Request
http://cip-server:port/CIP/system/getversion

Example Response
{
    "version": {
        "cip": {
            "name": "Canto Integration Platform",
            "version": "8.6.1"
        },
        "dam": {
            "name": "Cumulus Java Classes",
            "version": "8.6.1"
        },
        "java": {
            "name": "Java HotSpot(TM) 64-Bit Server VM",
            "version": "1.7.0_09",
            "vendor": "Oracle Corporation"
        },
        "os": {
            "name": "Windows 7",
            "version": "6.1",
            "arch": "amd64"
        },
        "server": {
            "name": "Apache Tomcat/7.0.26",
            "version": "3.0"
        }
    }
}



2.14.2. system/sendmail

Sends an email.

Allowed HTTP methods:GET and POST
Available since:9.2

Named Parameters

Parameter Type Description
apiversioninteger (optional) Determine which API version should be used for the request processing. It's guarantee backwards compatibility for future releases. An application created to work with a given API version will continue to work with that same API version. If this parameter is not present then the newer API version will be used.

Available since:9.2

For supported values see API Versions

userstring (required) The user name to log in to Cumulus.
passwordstring (required) The password for login to the Cumulus server.
serveraddressstring (required) The Cumulus server IP address e.g. localhost, 192.168.0.2
mailfromstring (optional) The sender e-mail address.
mailrecipientsstring array (required) The list of e-mail recipients. Required to send an e-mail.
mailccstring array (optional) The list of e-mail Cc (carbon copy) recipients.
mailbccstring array (optional) The list of e-mail Bcc (blind carbon copy) recipients.
mailsubjectstring (optional) The subject line of the e-mail message.
mailbodystring (optional) The body text of the e-mail message.
mailtemplatestring (optional) Uses a mail template for subject and body instead of using the named parameters "mailbody" and "mailsubject".

Result

No explicit result.

See also:

Examples

a) Sends an email with a given subject and body:
Example Request
http://cip-server:port/CIP/system/sendmail?user=myuser&password=mypassword&serveraddress=localhost&mailfrom=senderemail&mailrecipients=recipient&mailbody=bodytext&mailsubject=subjecttext


b) Sends an email using an existing mail template and providing some values for placeholders defined in the mail template:
Example Request
http://cip-server:port/CIP/system/sendmail?user=myuser&password=mypassword&serveraddress=localhost&mailfrom=senderemail&mailrecipients=recipient&mailtemplate=templateid

Example Request Body
    {
        "placeholderKey1" : "placeholderValue1",
        "placeholderKey2" : "placeholderValue2",
    ...
    }
    




2.15. Media Delivery Service

This service offers operations to deliver renditions of images or original assets. To use this service the image and/or original asset must be published in "Media Delivery On Premise".

2.15.1. mediadelivery/rendition

Return the rendition of an item. If no rendering parameter is specified, the operation returns the original asset if it is published.

Allowed HTTP methods:GET and POST
Available since:11.0.1

Path Parameters

Parameter Type Description
catalog_item_assetversionstring (optional) Identifier to specify a catalog, an item id and optional an asset version.
The catalog part specifies the name of a catalog alias definition from the configuration file. See the configuration section for details on how to define catalog aliases. If you specify a catalog alias this operation will list all catalogs configured in the configuration.
The item part specifies the item ID in the catalog.
The optional assetversion part specifies a specific version of the asset.
imageidstring (optional) Identifier to specify an item in a catalog.
The field "Media Delivery Cloud Image ID" of the item must contain the imageid value. To use it, it is required that the catalog alias is configured in the "Media Delivery" section of the CIP configuration.

Available since: 11.0.3

For supported values see API Versions

assetidstring (optional) Identifier to specify an item in a catalog to download the entire asset.
The field "Media Delivery Cloud Asset ID" of the item must contain the assetid value. To use it, it is required that the catalog alias is configured in the "Media Delivery" section of the CIP configuration.

Available since: 11.0.3

For supported values see API Versions

renderingparametersstring (optional) Specify the options that are used to convert the image. Each operation is preceded by a dash and an operation character (case sensitive), e.g. "-FPNG-S100x100" means: Format: PNG, Size: 100x100 pixels.

Possible values are:

  • OP-CodeDescriptionParameters
    FOutput formatJPG | PNG | TIF | GIF
    SScale to fit in given width & height{width}x{height}
    BScale to fit into square box of given size{size}
    CCrop to given target size using x and y offsets
    < 11.0.3: only pixel values are accepted
    >= 11.0.3: also percentage values are accepted (remember to escape the "%" as "%25" in the URL)
    {width}x{height},{x},{y}
    T"Rendition Identifier" in the "Media Delivery Cloud Rendition Parameters" table.
    If a paramSet with this name exists for the image then the value of the paramSet is replacing the "-T" parameter.
    Otherwise the name is looked up in the configured Crop Templates to find a focus area crop template of this name.
    If this is found then the "roi" property of the image metadata is used as the region of interest to dynamically calculate cropping and scaling parameters to replace the "-T" parameter.
    {paramSet name}
    or
    {cropTemplate name}
filenamestring (optional) Specifies a file name for the requested item. If specified, it must be the last path parameter.

Named Parameters

Parameter Type Description
contentdispositionstring (optional) This option is most useful when sending a CIP request from a web browser.
You can specify how the web browser will handle the result by controlling what CIP will put into the response HTTP header as the "Content-Disposition" value.
When calling CIP from a web browser you can decide whether the browser should display the resulting content in a window or start downloading the content to disk.
Default for renditions is inline which will cause the web browser to display the resulting content in a window.
When the original asset is requested always attachment is used which will cause the web browser to start downloading the result to disk.

Possible values are:

attachment Tell the web browser to save the resulting contents to a file.
inline (Default for renditions) Tell the web browser to display the result in a window.
usecachestring (optional) Specifies how to use the preview cache.

Possible values are:

true (Default) - Return a cached preview if it exists and the cache timeout has not been exceeded or it was not changed. Otherwise return a newly generated preview and store it in the cache.
false Do not use the cache at all, return a newly generated preview.

Result

The result is the requested rendition of the item or the original asset.

See also:

Examples

a) Returns an 100x100 pixels scaled rendition of the item with the ID 4 of the catalog alias "100" with a Content-Disposition attachment:
Example Request
http://cip-server:port/CIP/mediadelivery/rendition/100_4/-S100x100-FPNG?contentdisposition=attachment


b) Returns the original asset of the item with the ID 4 of the catalog alias "100" with the name "myname.jpg":
Example Request
http://cip-server:port/CIP/mediadelivery/rendition/100_4/myname.jpg



2.15.2. mediadelivery/asset

Return the original asset if it is published.

Allowed HTTP methods:GET and POST
Available since:11.0.3

Path Parameters

Parameter Type Description
assetidstring (required) Identifier to specify an item in a catalog to download the entire asset.
The field "Media Delivery Cloud Asset ID" of the item must contain the assetid value. To use it, it is required that the catalog alias is configured in the "Media Delivery" section of the CIP configuration.
filenamestring (optional) Specifies a file name for the requested item. If specified, it must be the last path parameter.

Result

The result is the original asset.

See also:

Examples

a) Returns the original asset of the item with a value of "123456789ABCDEF00123456789ABCDEF" in the "Media Delivery Cloud Asset ID" field with the name "myname.jpg":
Example Request
http://cip-server:port/CIP/mediadelivery/asset/123456789ABCDEF00123456789ABCDEF/myname.jpg



2.15.3. mediadelivery/deleterendition

Delete cached renditions of an item. The path parameters are the same as for the "mediadelivery/rendition" operation.

Allowed HTTP methods:GET and POST
Available since:11.0.1


Result

None.

See also:

Examples

a) Deletes the 100x100 pixels scaled rendition of the item with the ID 4 of the catalog alias "100":
Example Request
http://cip-server:port/CIP/mediadelivery/deleterendition/100_4/-S100x100


b) Deletes all cached renditions of the item with the ID 4 of the catalog alias "100":
Example Request
http://cip-server:port/CIP/mediadelivery/deleterendition/100_4



2.15.4. mediadelivery/deleteasset

Delete cache of the original asset if it is published.

Allowed HTTP methods:GET and POST
Available since:11.0.3

Path Parameters

Parameter Type Description
assetidstring (required) Identifier to specify an item in a catalog for the entire asset.
The field "Media Delivery Cloud Asset ID" of the item must contain the assetid value. To use it, it is required that the catalog alias is configured in the "Media Delivery" section of the CIP configuration.

Result

None.

See also:

Examples

a) Deletes the cache of the original asset of the item with a value of "123456789ABCDEF00123456789ABCDEF" in the "Media Delivery Cloud Asset ID" field:
Example Request
http://cip-server:port/CIP/mediadelivery/deleteasset/123456789ABCDEF00123456789ABCDEF


3. CIP configuration

The CIP server is configured using the /WEB-INF/conf/cip-config.xml file.
You can modify cip-config.xml file with a text editor that is capable of handling UTF-8 encoding correctly.
Changes to the cip-config.xml file are effective within 60 seconds after saving the file.
To force CIP to reload the cip-config.xml file immediately you can send a configuration/reload request.


3.1. Configure the CIP System

The CIP system configuration

3.1.1. Configure CIP runtime parameters

Define runtime parameters for working with the Canto Integration Platform.
Each parameter is configured inside the <system> node.
For the Cumulus implementation following parameters are used to configure the connection pool.
Using a pool with Cumulus requires an additional serial number to be activated at the Cumulus server. Please read the pooling section in the introduction on how to use connection pooling with Cumulus.
You can also specify pool parameters for a specific client product by adding the client product ID in lower case to the parameter name.
An example is given below.

Parameters

Parameter Type Description
com.canto.cip.extended.system.versionboolean (optional) Specify whether you want CIP to return extended system version information for the system/getversion operation and in the error response data.
Default is false witch will only return the CIP version number.
Available since:10.0
com.canto.cip.extended.error.informationboolean (optional) Specify whether you want CIP to return extended error information such as Java stack traces.
Default is false witch will only return an error message and an error code if available.
Available since:10.0
com.canto.cip.allow.get.for.postboolean (optional) Specify whether you want CIP to also allow sending GET requests for operations that require using the POST method. This will allow you to test some requests by typing a URL into a web browser.
Default is false which lets CIP be strict about using the POST method.
Available since:10.0
com.canto.cip.support.starting.http.basic.access.authenticationboolean (optional) Specify whether you want CIP to initiate HTTP basic access authentication as a last attempt to get user credentials.
Default is false which prevents CIP from doing this.
Available since:10.0
com.canto.cumulus.pool.maxsizeinteger (required) Define maximal pool size. Default : 0 (do not use a pool).
Specify a number for the size or "unlimited" to not limit the size of a pool.
com.canto.cumulus.pool.minsizeinteger (required) Define minimal pool size. Default : 1
com.canto.cumulus.pool.maxclonecountinteger (required) Define maximal clone count of the pool objects. Default : 10
com.canto.cumulus.pool.maxtimetoliveinteger (required) Define maximal inactivity time in seconds. Default : 720

See also:

Examples

a) Set the Cumulus pool properties:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
    <dam>
    ...
        <parameter name="com.canto.cumulus.pool.maxsize">5</parameter>
        <parameter name="com.canto.cumulus.pool.minsize">1</parameter>
        <parameter name="com.canto.cumulus.pool.maxclonecount">10</parameter>
        <parameter name="com.canto.cumulus.pool.maxtimetolive">720</parameter>
        <!-- Here is an example that sets the maximum pool size to be used by a client product with the ID 12AC0
             (note that the client product ID is added to the parameter name in lower case) -->
        <parameter name="com.canto.cumulus.pool.maxsize.12ac0">5</parameter>
    </dam>
...
</config>



3.2. Configure catalogs

You can configure the access parameters for one or more catalogs for use with the CIP.
Each configuration gets an alias name which can be specified in many of the CIP operations.
The catalogs can be located on different servers.
Each parameter can be overwritten by specifying a request parameter of the same name.
This allows to have either a completely pre-configured catalog access or to pick some of the parameters from the cionfiguration (e.g. the user name, password, and server address) and specify others (e.g. the catalog name) in each request.
You can configure as many catalog aliases as you like as long as each has a unique alias name.
Since API version 10 (CIP 10.0) you can configure multiple catalogs to be opened with a catalog alias. See the section Accessing Multiple Catalogs for details about how to work with multiple catalogs in CIP.

3.2.1. Configure a catalog definition

Catalog alias definition

Parameters

Parameter Type Description
aliasNamestring (required) The alias name of the catalog definition. e.g. sample
User can define one or more catalogs to easy access it via alias.
The location service require catalog with the alias name com.canto.cip.catalog.serverpermissions for the permission checking
serverAddressstring (optional) The Cumulus server IP address. e.g. localhost or 192.168.0.2
userNamestring (optional) The user name for login to the server. e.g. cumulus
passwordstring (optional) The password for login to the Cumulus server.
catalogNamestring (optional) The catalog name. e.g. Sample Catalog

Since API version 10 (CIP 10.0) you can configure multiple catalogs to be opened with a catalog alias. See the section Accessing Multiple Catalogs for details about how to work with multiple catalogs in CIP.

Since API version 28 (CIP 11.0.3) you can configure whether a catalog is required to be available to the current user or not. CIP returns an error if the user is not able to open all catalog configured as required. If no catalog is required then the user needs to open at least one of the catalogs.

constraintselement (optional) An optional list of constraints to apply to any request using this catalog alias definition.

See also:

Examples

a) Configure a custom catalog with the alias name sample:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="sample">
            <serverAddress>10.10.0.22</serverAddress>
            <userName>sampleUser</userName>
            <password>samplePassword</password>
            <catalogName>Sample Catalog</catalogName>
        </catalog>
    ...
    </catalogs>
...
</config>

b) Configure a list of catalogs including required catalogs with the alias name multi:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="multi">
            <serverAddress>10.10.0.22</serverAddress>
            <userName>sampleUser</userName>
            <password>samplePassword</password>
            <catalogName required="true">Sample Catalog</catalogName>
            <catalogName required="true">Image Archive</catalogName>
            <catalogName>Advanced Imaging</catalogName>
        </catalog>
    ...
    </catalogs>
...
</config>


3.2.2. Configure catalog constraints

This list of constraints can be part of a catalog alias definition and defines the constraints to apply to all requests using this catalog alias.

Available since: 10.0

Parameters

Parameter Type Description
no-overwritestring (optional) Add this element to prevent any request from overwriting the configured values for server address, user name, password, and catalog name.
Possible values are:
  • serverAddress prevent the configured server address from overwriting in any request.
  • userName prevent the configured user name from overwriting in any request.
  • password prevent the configured password from overwriting in any request.
  • catalogName prevent the configured catalog name(s) from overwriting in any request.

This constraint can be configured multiple times to specify each configuration value that should not be overwritten.
token-typestring (optional) The type of token to be passed when opening a session using this catalog alias.
This constraint can be configured multiple times to allow more than one token type.
Possible values are:
downloadCollectionId The token has to be a valid GUID of a collection link sent out for a download collection.
uploadCollectionId The token has to be a valid GUID of a collection link sent out for a upload collection.
operation-patternstring (optional) A regular expression pattern to match the service/operation part of the URL. A request is only permitted if the service/operation string matches this pattern.
This constraint can be configured multiple times to specify all allowed operations.

See also:

Examples

a) Configure the constraints for a catalog alias with the name downloadCollection to only allow specific operations and force using the configured server address, user name, password and catalog:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <catalogs>
    ...
        <catalog aliasName="downloadCollection">
            <serverAddress>10.10.0.22</serverAddress>
            <userName>sampleUser</userName>
            <password>samplePassword</password>
            <catalogName>Sample Catalog</catalogName>
            <constraints>
                <no-overwrite>serverAddress</no-overwrite>
                <no-overwrite>userName</no-overwrite>
                <no-overwrite>password</no-overwrite>
                <no-overwrite>catalogName</no-overwrite>
                <token-type>downloadCollectionId</token-type>
                <operation-pattern>asset/download</operation-pattern>
                <operation-pattern>configuration/getclientconfiguration</operation-pattern>
                <operation-pattern>configuration/getview</operation-pattern>
                <operation-pattern>configuration/listoptions</operation-pattern>
                <operation-pattern>collection/addfilter</operation-pattern>
                <operation-pattern>collection/addfilterset</operation-pattern>
                <operation-pattern>collection/getfilterstate</operation-pattern>
                <operation-pattern>collection/load</operation-pattern>
                <operation-pattern>collection/removefilter</operation-pattern>
                <operation-pattern>collection/removefilterset</operation-pattern>
                <operation-pattern>collection/restorefilterstate</operation-pattern>
                <operation-pattern>collection/selectfilteroptions</operation-pattern>
                <operation-pattern>metadata/getcategories</operation-pattern>
                <operation-pattern>metadata/getfieldvalues</operation-pattern>
                <operation-pattern>metadata/getlayout</operation-pattern>
                <operation-pattern>metadata/getrelatedassets</operation-pattern>
                <operation-pattern>metadata/search</operation-pattern>
                <operation-pattern>preview/image</operation-pattern>
                <operation-pattern>preview/thumbnail</operation-pattern>
                <operation-pattern>process/getresult</operation-pattern>
                <operation-pattern>process/getstate</operation-pattern>
                <operation-pattern>session/open</operation-pattern>
                <operation-pattern>session/close</operation-pattern>
            </constraints>
        </catalog>
    ...
    </catalogs>
...
</config>



3.3. Configure views

You can configure as many views as you like as long as each has a unique name.
These views are simple lists of fields of catalogs used to determine the fields that an operation returns.

It is also possible to include server view set to the view:

Standard/ReportView

3.3.1. Configure a view definition

Define a view with selected fields

Parameters

Parameter Type Description
namestring (required) The alias name of the view definition. e.g. default
fieldarray (optional) To define a view you must select fields for it.

Please see the section Field Specifiers for details about how to specify a field.

serverviewnamearray (optional) or you can select one of the Record View Sets stored at the Cumulus server and an adequate view, e.g. Standard/InfoView
  • Standard is the name of the Record View Set
  • InfoView is the name of a view belonging to that Record View Set
The following views are defined in each Record View Set at the Cumulus server:
ThumbnailView Thumbnail View
ReportView Report View
DetailsView Details View
InfoView Info View
InfoWindow Asset Info Window
PaletteMode Palette Mode
PreviewWindow Preview Window

See also:

Examples

a) Define a view with the name "default":

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <views>
    ...
        <view name="default">
            <field>{af4b2e07-5f6a-11d2-8f20-0000c0e166dc}:Status</field>
            <field>{af4b2e16-5f6a-11d2-8f20-0000c0e166dc}:Asset Reference/Windows</field>
            <field>{af4b2e16-5f6a-11d2-8f20-0000c0e166dc}:Asset Reference/ZIP</field>
            <field>{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}:Record Name</field>
            <field>{af4b2e0c-5f6a-11d2-8f20-0000c0e166dc}:Categories</field>
            <field>{af4b2e02-5f6a-11d2-8f20-0000c0e166dc}:Record Modification Date</field>
            <field>{af4b2e69-5f6a-11d2-8f20-0000c0e166dc}:Asset Name</field>
            <field>{af4b2e11-5f6a-11d2-8f20-0000c0e166dc}:Image Width</field>
        </view>
    ...
    </views>
...
</config>

b) Define a view with the name "serverview" based on server view Standard/DetailsView extended by four fields:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <views>
    ...
        <view name="serverview">
            <serverviewname>Standard/DetailsView</serverviewname>
            <field>Status</field>
            <field>Caption</field>
            <field>Rating</field>
            <field>Notes</field>
        </view>
    ...
    </views>
...
</config>



3.4. Configure queries

You can configure queries that you can then use by using their name in a search operation.
You can configure as many queries as you like as long as each has a unique name.

3.4.1. Configure a query

The configuration of a query can be based on a query string or a query stored in the Cumulus server.
For queries based on a query string you can use placeholders in the query string that are later replaced by request parameters of the same name.
Each query configuration must contain either <querystring> or <serverqueryname>.

Parameters

Parameter Type Description
querystringstring (optional) Use this instead of <serverqueryname> if you want to define the query by specifying a complete query string in the syntax used by Cumulus. e.g. Status == approved
The query string itself can contain named placeholders in the form ${name}.
Each placeholder is replaced by the request parameter of the same name, therefore we recommend that placeholder names start with an underscore to avoid conflicts with other named request parameters in the future.
Available since 10.2: If the query string contains the placeholder ${MASTERS_ONLY} then this is replaced by an actual query fragment that finds master assets only.
serverquerynamestring (optional) Use this instead of <querystring> to base the query on a query stored in the Cumulus server. The name of the predefined query is specified in the body of this element.

See also:

Examples

a) Define a query by referencing a server-side query named "MyApprovedQuery":

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <queries>
    ...
        <query name="approvedquery">
            <serverqueryname>MyApprovedQuery</serverqueryname>
        </query>
    ...
    </queries>
...
</config>

b) Define a query by query string:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <queries>
    ...
        <query name="approvedquery">
            <querystring>Status == approved</querystring>
        </query>
    ...
    </queries>
...
</config>

c) Define a query by query string using placeholders. In this example the two placeholders are named "_status" and "_imagenumber" and are replaced in the metadata/search operation request with parameters of the same name.

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <queries>
    ...
        <query name="parameterquery">
            <querystring>Status == ${_status} && "Record Name" ? "IMG_${_imagenumber}"</querystring>
        </query>
    ...
    </queries>
...
</config>

Example Request
http://cip-server:port/CIP/metadata/search?queryname=parameterquery&_status=approved&_imagenumber=54637



3.5. Configure constraints

You can limit maximum number of items returned by the CIP metadata/search and collection based metadata/getfieldsvalue operations.

3.5.1. Configure the constraint

Constraint definition. This element defines some limits to be applied by CIP.

Parameters

Parameter Type Description
namestring (required) The alias name of the constraint definition.
Supported value:
com.canto.cip.constraint.searchmaxresults Limit a maximum number of items returned by the CIP search operations e.g. 1000
com.canto.cip.constraint.clientcachemaxage Maximum time in seconds to specify age of the cached elements used when the named parameter cachecontrol is set to the "clientdefault" value e.g. 1800
com.canto.cip.constraint.directdownloadurlmaxage Maximum time in seconds a generated direct download URL is valid. Default 60
See the virtual field DirectDownloadUrl:{5e15cd1b-2468-4951-9620-945a71ebe7cc}
com.canto.cip.constraint.directaccessurlmaxage Maximum time in seconds a generated direct access URL is valid. Default 60
See the virtual field DirectAccessUrl:{be9f4528-6f5f-4d9d-883e-9017fc3b14dd}

See also:

Examples

a) Configure a constraint with the alias name com.canto.cip.constraint.searchmaxresults for the search and getfieldvalues operations:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <constraints>
        <constraint name="com.canto.cip.constraint.searchmaxresults">1000</constraint>
    </constraints>
...
</config>



3.6. Configure locations

You can configure several predefined locations and enable url based protocols for using complete URLs for locations.
The benefit in using configured locations is that you can hide credentials in the configuration file.
You can also change pre-configured locations without the need to change client-side applications.
You can configure as many locations as you like as long as each has a unique name.

3.6.1. Enabling url based protocols

In some operations you can specify a location as a URL (e.g. "file://C:/images"). CIP supports the following url protocols: The usage of such URL locations can be disabled by protocol type for higher security. For example you may not want client-side applications to be able to specify file:// URL locations directly. By default all protocols are disabled. You do not need to enable a protocol when using configured locations (see below).

See also:

Examples

a) Enable url based protocols for ftp, sftp, ftps, file:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <locations>
        <enableProtocol>ftp</enableProtocol>
        <enableProtocol>ftps</enableProtocol>
        <enableProtocol>sftp</enableProtocol>
        <enableProtocol>file</enableProtocol>
    ...
    </locations>
...
</config>


3.6.2. Configure a location

You can define one or more pre-configured locations.
By using a configured location and a relative path you can hide details such as FTP passwords from the user of the service.
When executed the location name is replaced with the configured location string.
For example you can define a location called "ftpupload" and then specify a location in a request by using this name as the start of the path: "ftpupload/myfolder/image.jpg".

Parameters

Parameter Type Description
namestring (required) The alias name of the location definition. e.g. ftpupload
Some names are predefined by CIP and are required for proper operation of the CIP service:
com.canto.cip.location.previewcache The location that is used to store the cached previews for the preview/image operation.
com.canto.cip.location.tempdir Temporary directory used for various operations.
com.canto.cip.location.checkout Location to check out assets to.
com.canto.cip.location.storage Default storage location used by the asset/import and asset/update operations in case the asset is imported into a catalog without a central asset location.

See also:

Examples

a) Configure the system locations needed by the CIP service:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <locations>
...
        <location name="com.canto.cip.location.previewcache">c:/temp/cache/</location>
        <location name="com.canto.cip.location.tempdir">c:/temp/</location>
        <location name="com.canto.cip.location.checkout">c:/test/</location>
        <location name="com.canto.cip.location.storage">c:/test/storage/</location>
...
    </locations>
...
</config>

b) Define custom user location with aliases ftpsupload, ftpupload, and localdownloads:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <locations>
    ...
        <location name="ftpsupload">ftps://test:testtest@localhost/ftps_uploads</location>
        <location name="ftpupload">ftp://test:testtest@ftpserver/ftp_uploads</location>
        <location name="localdownloads">c:/temp/localdownloads/</location>
    ...
    </locations>
...
</config>



3.7. Option Sets

Option sets contain options for Cumulus to be used for certain operations. Each option set contains one or more named options that affect the operations.
Typical options include asset handling options, asset conversion options, etc. You can define one or more named option sets depending on your requirements.
The name of the set is specified in some of the operation request (e.g. asset/import) to select the options to be used. You can configure as many option sets as you like as long as each has a unique name.

3.7.1. Configure an option set

An option set is a list of options given by name and value.
All options have names that start with "com.canto.cumulus."
An operation may use only one of the options of a set. It is up to you whether you want to bundle several options under a given name or define separate option sets for each option.

Parameters

Parameter Type Description
namestring (required) The name of this option set.
optionstring (required) A single option that contains a name and a value. The following options are defined for Cumulus:
com.canto.cumulus.assethandlingset The name of a Cumulus Asset Handling Set to be used for the operation.
An Asset Handling Set affects how Cumulus deals with your assets – during the cataloging process and when accessing assets.
Please read the Cumulus documentation about how to modify an Asset Handling Set.
com.canto.cumulus.assetaction The name of a Cumulus Asset Action to be applied in the operation.
An Asset Action defines how assets are converted or processed.
Please read the Cumulus documentation about how to set up an Asset Action.
com.canto.cumulus.permissiontemplate The name of a Cumulus Permission Template to be used for the operation.
Permissions templates enable you to assign, remove or explicitly set individual asset or category permissions for users or entire groups at once.
Please read the Cumulus documentation about how to set up a Permission Template.

See also:

Examples

a) Configure an option set that specifies to use the Cumulus Asset Handling Set "Standard" and the Asset Action "Convert and Compress":

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <optionsets>
    ...
        <optionset name="myoptions">
            <option name="com.canto.cumulus.assethandlingset">Standard</option>
            <option name="com.canto.cumulus.assetaction">Convert and Compress</option>
        </optionset>
    ...
    </optionsets>
...
</config>



3.8. Filter Sets

Filter sets contain filters that can be applied to CIP collections using the operation collection/addfilterset.
Each filter set contains one or more filters.

3.8.1. Configure a Filter Set

A filter set is a list of filters of various type and configuration options.
The filter configuration has a unique ID and a type and contains names and descriptions in various languages to be presented to the user by a client software.

Parameters

Parameter Type Description
idstring (required) The unique ID for this filter. See the documentation about the different filter types below for details about the ID.
typestring (required) A type of the filter.
input A filter that should be rendered to the user as a text field where the user can enter a string.
The ID of this filter is the GUID of the metadata field that the filter uses.
query A filter based on a list of options with query strings to be applied if the option is selected.
standard A filter based on a metadata field where the options are generated dynamically depending on the items contained in the CIP collection.
The ID of this filter is the GUID of the metadata field that the filter uses.
initiallyCollapsedstring (required) A value of true indicates that the UI should render this filter as being "collapsed" meaning that the options are initially not visible to the user. A value of false indicates that initially all options should be presented to the user.

See also:

Examples


3.8.2. Configure a Name or Description

Each name and description can be specified for each languages separately.
A name and description is stored in sub-elements <name> and <description> respectively.
Each <name> and <description> contains <value> sub-elements with a "locale" attribute specifying the language the body text is for.

Parameters

Parameter Type Description
localestring (required) The two-letter language code (ISO 639-1) specifying the language of the element's body text.

See also:

Examples


3.8.3. Configure an Input Filter

A configuration for a filter of type "input" has all the attributes and sub-elements that are common to all filter types but in addition contain the following attributes:

Parameters

Parameter Type Description
comparisonOperatorstring (required) A type of the filter.
less_than The filter only matches items where the field value is less than what the user entered.
less_equal The filter only matches items where the field value is less than or the same as the value the user entered.
equal The filter only matches items where the field value is what the user entered.
not_equal The filter only matches items where the field has a value which is not what the user entered.
greater_equal The filter only matches items where the field value is greater than or the same as the value the user entered.
greater_than The filter only matches items where the field value is greater than what the user entered.
starts_with The filter only matches items where the field value starts with the text the user entered.
does_not_start_with The filter only matches items where the field has a value that does not start with the text the user entered.
contains The filter only matches items where the field value contains what the user entered.
does_not_contain The filter only matches items where the field has a value that does not contain what the user entered.

See also:

Examples

a) Configure an input filter based on the field "File Format" (GUID {af4b2e0d-5f6a-11d2-8f20-0000c0e166dc}) which allows the user to type a sub-string of a file format to match items:

Example Configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    ...
        <filterSets>
            <filterSet name="myfilters">
            ...
                <filter type="input" id="{af4b2e0d-5f6a-11d2-8f20-0000c0e166dc}" initiallyCollapsed="true"
                        comparisonOperator="contains">
                    <name>
                        <value locale="ja">ファイルフォーマット</value>
                        <value locale="en">File Format Filter</value>
                        <value locale="fr">Format de Fichier</value>
                        <value locale="de">Dateiformat</value>
                    </name>
                    <description>
                        <value locale="en">Find all files where the file format name contains the text entered</value>
                    </description>
                </filter>
            ...
            </filterSet>
        </filterSets>
    ...
    </config>
    


3.8.4. Configure a Range Filter

A configuration for a filter of type "range" has all the attributes and sub-elements that are common to all filter types.
The filter id is the GUID of the field to filter by. It can be used to let the user enter a "from" and "to" value for a date field.
The user should be able to fill in a "from" and a "to" value or both to specify the lower and upper range for the filtering.

See also:

Examples

a) Configure a query filter where all selected options are combined using OR:

Example Configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    ...
        <filterSets>
            <filterSet name="myfilters">
            ...
                <filter type="range" id="{af4b2e06-5f6a-11d2-8f20-0000c0e166dc}" initiallyCollapsed="false">
                    <name>
                        <value locale="en">Asset Modification Date</value>
                    </name>
                    <description>
                        <value locale="en">Filter by asset modification date. Specify a "from" or "to" date or both, optionally including the time of day.</value>
                    </description>
                </filter>
            ...
            </filterSet>
        </filterSets>
    ...
    </config>
    


3.8.5. Configure a Query Filter

A configuration for a filter of type "query" has all the attributes and sub-elements that are common to all filter types but in addition contains a sub-element name <options> with the following attributes:

Parameters

Parameter Type Description
combineWithAndstring (required) Specifies how multiple selected options are combined to a query that filters the items. Possible values are:
false (Default) Multiple selected options are combined using OR.
true Multiple selected options are combined using AND.

See also:

Examples

a) Configure a query filter where all selected options are combined using OR:

Example Configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    ...
        <filterSets>
            <filterSet name="myfilters">
            ...
                <filter type="query" id="{a7a2c7da-8a28-4558-b91e-d716d4c4ebfd}" initiallyCollapsed="false">
                    <options combineWithAnd="false">
                    ...
                    </options>
                    <name>
                        <value locale="en">File Size</value>
                    </name>
                    <description>
                        <value locale="en">Filter by given file sizes</value>
                    </description>
                </filter>
            ...
            </filterSet>
        </filterSets>
    ...
    </config>
    


3.8.6. Configure a Query Filter Option

Each option of a query filter is configured using a <option> sub-element which contains the <name> and <description> sub-elements giving this option a name and description in different languages.
It also contains a <query> sub-element whose body text is the query string to be executed to match the items for this filter option.

See also:

Examples

a) Configure a query filter with options that match certain asset size ranges: ("Tiny": 0 to 100kB, "Small": 100 kB to 500 kB, "Medium": 500 kB to 1 MB, "large": larger than 1 MB)

Example Configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    ...
        <filterSets>
            <filterSet name="myfilters">
            ...
                <filter type="query" id="{a7a2c7da-8a28-4558-b91e-d716d4c4ebfd}" initiallyCollapsed="false">
                    <options combineWithAnd="false">
                        <option>
                            <name>
                                <value locale="en">Tiny</value>
                            </name>
                            <description>
                                <value locale="en">Files up to 100 kB</value>
                            </description>
                            <query>"{b2a84783-86a0-4360-af0a-dcbc2a5a3d8e}:Asset Data Size (Long)" &lt;= "100 kB"</query>
                        </option>
                        <option>
                            <name>
                                <value locale="en">Small</value>
                            </name>
                            <description>
                                <value locale="en">File sizes between 100 kB and 500 kB</value>
                            </description>
                            <query>"{b2a84783-86a0-4360-af0a-dcbc2a5a3d8e}:Asset Data Size (Long)" &gt; "100 kB"
                                and "{b2a84783-86a0-4360-af0a-dcbc2a5a3d8e}:Asset Data Size (Long)" &lt;= "500 KB"
                            </query>
                        </option>
                        <option>
                            <name>
                                <value locale="en">Medium</value>
                            </name>
                            <description>
                                <value locale="en">File sizes between 500 kB and 1 MB</value>
                            </description>
                            <query>("{b2a84783-86a0-4360-af0a-dcbc2a5a3d8e}:Asset Data Size (Long)" &gt; "500 kB")
                                and ("{b2a84783-86a0-4360-af0a-dcbc2a5a3d8e}:Asset Data Size (Long)" &lt;= "1 MB")
                            </query>
                        </option>
                        <option>
                            <name>
                                <value locale="en">Large</value>
                            </name>
                            <description>
                                <value locale="en">File sizes above 1 MB</value>
                            </description>
                            <query>"{b2a84783-86a0-4360-af0a-dcbc2a5a3d8e}:Asset Data Size (Long)" &gt; "1 MB"</query>
                        </option>
                    </options>
                    <name>
                        <value locale="en">File Size</value>
                    </name>
                    <description>
                        <value locale="en">Filter by given file sizes</value>
                    </description>
                </filter>
            ...
            </filterSet>
        </filterSets>
    ...
    </config>
    


3.8.7. Configure a Standard Filter

A configuration for a filter of type "standard" has all the attributes and sub-elements that are common to all filter types but in addition contain the following attributes:

Parameters

Parameter Type Description
generateHierarchyboolean (optional) Specify whether the CIP server should generate options in a tree-like structure. This structure is applicable to fields of type Date, String, Integer, and Real.
CIP will generate the list of options below the option selected by the user dynamically according to the contents of the CIP collection this filter is added to.
false Let CIP generate a flat list of options according to field values available in the CIP collection.
As long as the user has not yet selected any of the options the list is re-generated reflecting the current collection content.
true (Default) Let CIP generate a tree structure of options where the user can select any option and let CIP generate all available options underneath.
With a tree-like structure the user can only select a single option.
allowSelectingMultipleOptionsboolean (optional) Specify whether the user should be able to select multiple options available. This is only possible if the "generateHierarchy" attribute is "false."
false When the user selects one option the previously selected option is automatically deselected.
true (Default) Allow the user to select multiple options at the same time.
The attribute "combineWithAnd" specifies how these multiple options are then combined for filtering items.
combineWithAndboolean (optional) Specifies how multiple selected options are combined to filter the items. Possible values are:
false (Default) Multiple selected options are combined using OR.
true Multiple selected options are combined using AND.
showMostCommonFirstboolean (optional) Specifies for a flat list of options whether CIP should sort the options by the number of matching items with the most common options first.
false (Default) Sort the options by value, not by the number of matching items.
true Sort the options by the number of matching items with the one with the most matches first.
In addition you can specify the number of "common" options that should be shown immediately with the rest of the options classified as "uncommon" that the user will see after clicking a "more..." button.
numberOfMostCommonOptionsinteger (optional) Specifies for a flat list of options where CIP should sort by most matching options how many options are classified as "common."
The default is 5.

See also:

Examples

a) Configure a standard filter based on the field "Asset Modification Date" (GUID {af4b2e06-5f6a-11d2-8f20-0000c0e166dc}). CIP should generate a tree of options.

Example Configuration
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    ...
        <filterSets>
            <filterSet name="myfilters">
            ...
                <filter type="standard" id="{af4b2e06-5f6a-11d2-8f20-0000c0e166dc}" initiallyCollapsed="false"
                        generateHierarchy="true">
                    <name>
                        <value locale="ja">アセット修正日</value>
                        <value locale="en">Asset Modification Date</value>
                        <value locale="fr">Date de Modification de l'Asset</value>
                        <value locale="de">Asset-Änderungsdatum</value>
                    </name>
                    <description>
                        <value locale="en">Filter the files by modification date.</value>
                    </description>
                </filter>
            ...
            </filterSet>
        </filterSets>
    ...
    </config>
    



3.9. Previews

When generating a preview using the preview/image operation you can either specify all parameters in the request or specify a preview configuration name.
In the configuration file you can define several previews and specify which parameters should be used for this kind of preview.
You can configure as many previews as you like as long as each has a unique name.

3.9.1. Configure a preview

A preview with specific parameters.

Parameters

Parameter Type Description
namestring (required) The name of this preview configuration.
optionstring (required) A single option that contains a name and a value. Specify one of the following preview parameters as the option name:
  • left
  • top
  • width
  • height
  • maxsize
  • size
  • rotate
  • format
  • quality
  • usecache

Please read the documentation of the preview/image operation for details about these parameters and their values.

See also:

Examples

a) Configure a small preview that returns a JPEG image of max. 100 pixels:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <previews>
    ...
        <preview name="small">
            <option name="maxsize">100</option>
            <option name="format">jpeg</option>
            <option name="quality">4</option>
        </preview>
    ...
    </previews>
...
</config>



3.10. Configure fallback information

You can define a static fallback image for use with the CIP preview/image operation that is delivered in case of error.
It will be returned to the client instead of an error message.

3.10.1. Configure the fallback image

Fallback image definition

Parameters

Parameter Type Description
namestring (required) The alias name of the fallback definition.
Supported value:
image used by the preview operations e.g. /pictures/FallbackImage.png

See also:

Examples

a) Configure a fallback with the alias name image for the preview operations:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <fallbacks>
        <fallback name="image">/pictures/FallbackImage.png</fallback>
    </fallbacks>
...
</config>



3.11. Configure cache

Configure the preview cache.

3.11.1. Configure a cache auto purge

Cache auto purge configuration. A background task automatically purges the oldest entries in the cache if a certain limit size is exceeded. The automatic purging stops as soon as the total cache size is below the target size.

Parameters

Parameter Type Description
purgeEnabledstring (required) Determine whether this service is enabled or not.
Possible values:
true enabled
false disabled
purgeIntervalstring (required) The interval in seconds between purge cache check e.g. 600 (10 minutes)
targetSizestring (required) The target cache size reached after a run of an automatic purging. It must be less then purgeThreshold. An integer value with the optional unit descriptor.
The unit descriptor can one of the:
K Kilobytes e.g. 12K (12 KB)
M Megabytes e.g. 100M (100 MB)
G Gigabytes e.g. 40G (40 GB)
T Terabytes e.g. 2T (2 TB)
If no unit descriptor was provided the value will be interpreted as bytes.
limitSizestring (required) The cache size that triggers an automatic purging of the cache. This value must be greater then targetSize An integer value with the optional unit descriptor.
The unit descriptor can one of the:
K Kilobytes e.g. 12K (12 KB)
M Megabytes e.g. 100M (100 MB)
G Gigabytes e.g. 40G (40 GB)
T Terabytes e.g. 2T (2 TB)
If no unit descriptor was provided the value will be interpreted as bytes.

See also:

Examples

a) Configure a purge cache:

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
    <cache>
        <purgeEnabled>true</purgeEnabled>
        <purgeInterval>600</purgeInterval>
        <targetSize>768M</targetSize>
        <limitSize>1G</limitSize>
    </cache>
...
</config>



3.12. Configure CORS

Configure Cross-Origin Resource Sharing (CORS) support.
Available since: 10.1.2

3.12.1. Configure CORS Support

You can specify which origins are allowed for CORS responses of CIP, whether the browser should use cookies and also for how long the browser may cache responses.

Parameters

Parameter Type Description
com.canto.cip.cors.allow.origin.patternstring (optional) Limit the CORS access to come from an origin that matches the following regular expression pattern.
If this is missing then a request may come from any origin.
com.canto.cip.cors.allow.credentialsstring (optional) Allow using cookies in the browser.
The default is "true" to allow the browser to use cookies.
com.canto.cip.cors.max.agestring (optional) Specify the number of seconds that the browser is allowed to cache the CORS response for improved performance.
The default is to allow caching for 3600 seconds.

See also:

Examples



3.13. Custom Client Configurations

You can store configuration data for your CIP client application code within the CIP server's configuration file. Each client configuration has a unique name and can be retrieved by the client using the "configuration/getclientconfiguration" operation.
The client configuration data consists of named values. Each value can itself be a string, a list of values or a record of named values. This allows you to give your configuration data almost any custom structure.

3.13.1. Sample client configurations

The following examples show how you can structure your client configuration data.
A more complex example can be found in the "configuration/getclientconfiguration" operation (click the "Get a client configuration" link below).

See also:

Examples

a) A client configuration with the name com.canto.cumulus.client.sample.1. It only contains three values named "timeout", "address", and "max."

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
    ...
    <clientConfigurations>
        ...
        <clientConfiguration name="com.canto.cumulus.client.sample.1">
            <value name="timeout">3600</value>
            <value name="address">192.168.0.1</value>
            <value name="max">32</value>
        </clientConfiguration>
    </clientConfigurations>
...
</config>

Example Request
http://cip-server:port/CIP/configuration/getclientconfiguration/com.canto.cumulus.client.sample.1

Example Response
{

    "timeout": "3600",
    "address": "192.168.0.1",
    "max": "32"

}

b) A client configuration with the name com.canto.cumulus.client.sample.2. It only contains two values named "timeout" and "regions" where the value of "regions" is itself a list of values.

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
    ...
    <clientConfigurations>
        ...
        <clientConfiguration name="com.canto.cumulus.client.sample.2">
            <value name="timeout">3600</value>
            <list name="regions">
                <value>America</value>
                <value>Europe</value>
                <value>Asia</value>
            </list>
        </clientConfiguration>
    </clientConfigurations>
...
</config>

Example Request
http://cip-server:port/CIP/configuration/getclientconfiguration/com.canto.cumulus.client.sample.2

Example Response
{
    "timeout": "3600",
    "regions": [
        "America",
        "Europe",
        "Asia"
    ]
}

c) A client configuration with the name com.canto.cumulus.client.sample.3. It only contains two values named "timeout" and "regions" where the value of "regions" is itself a record of named values with each value being a number.

Example Configuration
<?xml version="1.0" encoding="UTF-8"?>
<config>
    ...
    <clientConfigurations>
        ...
        <clientConfiguration name="com.canto.cumulus.client.sample.3">
            <value name="timeout">3600</value>
            <record name="regions">
                <value name="America">52382</value>
                <value name="Europe">23623745</value>
                <value name="Asia">5373</value>
            </record>
        </clientConfiguration>
    </clientConfigurations>
...
</config>

Example Request
http://cip-server:port/CIP/configuration/getclientconfiguration/com.canto.cumulus.client.sample.3

Example Response
{
    "timeout": "3600",
    "regions": {
        "America": "52382",
        "Europe": "23623745",
        "Asia": "5373"
    }
}