29. Libraries

    A library is a redistributable package containing reusable graphs, subgraphs, jobflows, data services or metadata. It can be developed in CloverDX Designer and then deployed to CloverDX Server. It allows comfortable sharing of CloverDX elements.

    Development and Installation

    Libraries are developed as regular projects. When the development is finished, the developer can use CloverDX Designer to export the whole project into a package. During the export, the author selects which elements are public – meant to be used by others. We call these elements the public interface of the library. They will be visible to all users. Libraries may contain other (internal) elements, which may be used as sub-routines in the public ones.

    The export creates a single file with “.clib” extension. This file can be uploaded to CloverDX Server in the Libraries section. Alternatively, it can be uploaded to some repository where other users can install it from. Installing or deleting libraries requires the “Libraries administration” permission.

    During the installation process, you can set a library ID specific for the particular library instance. This way, you can install the same library version multiple times. Another item which can be filled in is the label. If filled, it replaces the original library name and will be displayed in all the places where this library is used. You can also choose using a switch whether a library after installation will be enabled or disabled (default is disabled). If a library is disabled it cannot be used in CloverDX Designer and CloverDX Wrangler (is not visible there). The state of the library (enabled/disabled) can be changed at any time in the list of installed libraries by a user with “Libraries administration” permission. Once installed and enabled, public elements from the library may be used by all authenticated users of the Server.

    library installation settings
    Figure 109. Library installation

    Installed libraries may be seen as a special type of public shared sandbox with read-only permissions. Internally, the packages are unpacked into the ${libraries.home} directory. By default, it points to “libraries” sub-directory located in ${sandboxes.home}.


    Graphs, Jobflows

    When creating a new schedule or event listener on the CloverDX Server, public graphs and jobflows from installed libraries can be used.


    When developing new graphs in a Server project in CloverDX Designer, public subgraphs from installed libraries are shown in the Palette. They are also available in the Add Component dialog.

    Data Connectors

    Data Connectors are the special subgraphs which meet some conditions. They are determined, selected and exported during Export as Library action in the CloverDX Designer.

    On the server, each data source connector can be assigned two permissions:

    • The read permission determines who can see the connector in CloverDX Data Catalog. By default, this permission is granted to user group Everyone (if it exists).

    • The execute permission specifies who can use the connector in CloverDX Wrangler. Nobody has this permission by default.

    Data Services

    Data services from installed libraries can be deployed on the CloverDX Server.


    When developing new graphs in CloverDX Designer, public metadata from installed libraries can be linked as shared metadata by opening context menu on the Metadata group in the outline and selecting New metadata  Link shared definition from library.

    Updating a Library

    You can have multiple instances of the same library, differentiated by version number or library ID.

    The library is only updated if the user checks the “Overwrite already installed libraries” option and all the name, the version, and the library ID match. Without “Overwrite”, the matching (already installed) libraries are skipped.

    Figure 110. Administration of libraries

    Library Documentation

    The library documentation contains additional detailed information about the library. To be visible, it must be in a separate file placed in the root of the source project before exporting the library. We support three file names (case insensitive, in the preferred order):​

    • – rendered Markdown – a visage like in the CloverDX Marketplace

    • readme.txt – plain text​

    • readme – plain text​

    The documentation is displayed in the library detail in a separate tab (the first one) next to the Overview, and it is optional – if not present, then the tab is hidden​. It is displayed for both the installed libraries and the libraries available in repositories.

    library documentation tab
    Figure 111. Library Documentation tab

    Library Overview

    The Overview tab displays the basic information about the selected library and list of resources the library offers.

    library overview tab
    Figure 112. Library Overview tab

    Library Editing

    Click the Edit button in the upper right corner of the Overview tab to modify the label and custom description of the library.

    library edit tab
    Figure 113. Library editing

    Library Configuration

    Only the users with “Libraries administration” permission are allowed to configure the installed libraries.

    When exporting a library in CloverDX Designer, you can select one job which you may use as an initialization job for your library. If the library has such a job, it is indicated by a bullseye icon in the libraries list.

    Figure 114. Library can be configured

    You can run this initialization job by clicking on Initialize library button in the configuration bookmark. This job can be executed as many times as necessary.

    Figure 115. Configuration bookmark

    It is possible to configure your libraries with parameters. When exporting a library in CloverDX Designer, you can add a library.prm file into it and define parameters which will be configurable on CloverDX Server. If the library has such a file, it is indicated by a wrench icon in the libraries list.

    Figure 116. Library has configurable parameters

    The supported parameter types are String, Secure String, Boolean, Integer, Decimal, and Enumeration. The parameter’s description is shown as an “i” icon with a tooltip.

    Figure 117. Library parameters

    If the library depends on other libraries, the configuration tab shows the dependencies in a separate table. If the referenced library is installed under the same name, it is linked automatically; otherwise, you must resolve the dependency manually. Libraries with unresolved dependencies are marked with a red “hierarchy” icon.

    library dependencies
    Figure 118. Library dependencies

    Library Repository

    Library repositories allow you to share your libraries. A repository is a local or remote directory with “.clib” archives, each containing one library.

    Currently, we support the following remote protocols: FTP, SFTP, Amazon S3, Azure Blob Storage, SMB and SMB2.

    In CloverDX Server, you can add one or more repositories and then browse the repository and install selected libraries.

    Our CloverDX Marketplace, which includes a collection of CloverDX libraries that implement various functionalities, is automatically added during CloverDX Server installation with an empty database. For existing Server installations, the CloverDX Marketplace repository can be added by clicking on the Add CloverDX Marketplace button. After performing this step, the button will become disabled and will indicate that the repository has already been added. The CloverDX Marketplace repository (its URL is az-blob:// can be located in the Repository dropdown.

    library repository
    Figure 119. Library repository

    Library Export

    When you export configuration, these items are exported: original name, label, version, library ID, custom description, enabled/disabled, dependencies and parameters (Base64 encoded).

    Library Import

    When you import configuration, CloverDX Server tries to find imported libraries in the list of installed libraries. If they are found they will be updated, otherwise they will be installed from the available repositories (if available). Libraries are matched according to their original name, version and library ID.