Catalog Format

The catalog is a file which is automatically generated, and must not be manually modified. It contains the applications database and specifies the following properties, for each application, using the JavaScript Object Notation (JSON), specified by RFC 7159. The lapptrack script uses this database to build the input files used by the lappdeploy script.

The constant lapptrack.CATALOG_FNAME specifies the file name of the catalog and it’s located in the ‘store’ folder (see item store in the Core Section of the lapptrack configuration file).

The catalog contains several level of nested objects. The root level contains the metadata of the database and the main object.

__version__

is the version number of the catalog scheme.

__warning__

is a warning message reminding that the content must not be modified.

modified

is the date of the latest modification expressed in the RFC 3339 format.

products

is an object specifying the list of handled application as described in the configuration file (see --configfile).

Each item of the products list is a 3-tuple specifying the deployment state of the application.

pulled

indicate that the editor of the application has published an update or a new major version.

fetched

indicate that an update or a new major version of the application has been fetched. At this step, the system administrator must approved the version before its deployment (see --approve)

approved

indicate that the system administrator approved the deployment of the update or the new version. This version will be added in the applist file (see --make) to be deployed.

Each item of the 3-tuple is an object containing the attributes of the application as described in BaseProduct.

Example

{
    "__version__": "0.2.0",
    "__warning__": "This file is automatically generated, and must not be
        manually modified. It contains the applications database and
        specifies for each application its properties. Appdownload script
        uses this database to build the applist files used by lappdeploy
        script.",
    "modified": "2016-02-28T19:30:00",
    "products": {
        "dummy": {
            "approved": {
                "announce_location": "http://www.example.com/news.txt",
                "change_summary": "<ul><li>version 1.0.0 published on
                    2016-02-02</li><ul><li>a dummy feature</li><li>Small
                    miscellaneous improvements and bugfixes</li></ul>
                    <li>version 0.1.0 published on 2015-02-02</li><ul>
                    <li>initial commit</li></ul></ul>",
                "description": "This dummy module is a trivial example
                    of a Product class implementation. ",
                "display_name": "Dummy Product v1.0.1",
                "editor": "Example. inc",
                "feed_location": "http://www.example.com/feed.rss",
                "file_size": 0,
                "icon": "",
                "installer": "..\\~store\\app\\dummy\\Dummy Product_1.0.1.html",
                "location": "http://www.example.com/dist.zip",
                "name": "Dummy Product",
                "published": "2016-10-27T17:01:30",
                "release_note_location": "http://www.example.com/release_note.txt",
                "secure_hash": null,
                "silent_inst_args": "/silent",
                "std_inst_args": "",
                "target": "unified",
                "version": "1.0.1",
                "web_site_location": "http://www.example.com/"
            },
            "fetched": {},
            "pulled": {}
        }
    }
}