Manifest

Full reference of Manifest file.

Manifest is a simple JSON file that describes your App behavior and its possibilities.

To refresh the App Manifest, it has to be changed and reapplied - just like on App registration. Ergonode does not refresh it automatically.

Remember also, on refreshment, to raise the version - otherwise, changes won't be applied as described in the version restrictions description.

Contained fields:

name

A simple text describing under what name your app is visible in the Ergonode available Apps tab.

This value should allow easy identification of what your App does.

Restrictions:

  • has to exist and not be empty

  • the length of the name is limited to 30 chars and should be no less than 3 chars.

description

A simple text describing the purpose fulfilled by the App.

Restrictions:

  • has to exist and not be empty

  • the length of the name is limited to 200 chars and should be no less than 20 chars.

version

A semantic version of your manifest. It does not necessarily need to address your application version but rather the content of the Manifest file.

Restrictions:

  • has to exist and not be empty

  • when reapplying the Manifest for App update the changes may only be applied when the new version is higher than the existing ones - otherwise, changes will not take effect.

compatible

A semantic version that the current version of the Manifest is compatible with.

This allows Apps Engine to determine whether an App administrator should take action and reconfigure the App for the new needs - fill out previously not existing configuration fields etc.

So for instance if, on the App update, the compatible field is higher than the last version(i.e. compatible = 1.1.0 and last version = 1.0.0) of the App installations will be set in Configuration required status - implicating the need for action and disallowing following actions with an App.

Restrictions:

  • has to exist and not be empty

  • the value cannot be greater than the version field

configuration_schema

A list of JSON schemas to allow building simple or multi-step configuration forms.

Detailed reference can be found here.

features

A list of predefined features App utilizes:

synchronization

Enables the ability to run synchronization via the App.

The synchronization is always run as delta via this feature - meaning only changes from the last synchronization will be sent to the App.

  • on first synchronization, all data state is being transferred to an App

  • on every following synchronization, the App receives only data that has changed from the previous execution

synchronization_full

Enables the ability to run full synchronization via the App.

All configured within App data is synchronized via this feature disregarding delta - which means the entire data state is transferred to the App on every synchronization.

This feature is always a secondary option in the Run synchronization split button if enabled together with synchronization.

synchronization_file_download

Claims that the App generates a file as the result of the synchronization - for the enabled feature every finished synchronization will receive a file download button within the right-hand menu as well as a Download last synchronization button in the main App menu

When this feature is enabled follow the File download endpoint reference.

synchronization_file_download_latest

This feature enables Copy feed URL button. This URL is publicly available, with no need for authorization.

When this feature is enabled follow the File download endpoint reference as for synchronization_file_download feature.

events

Events the App subscribes to. Available:

app_installed

App installed by the user in the Ergonode interface.

app_uninstalled

App uninstalled by the user in the Ergonode interface.

attribute_created

Attribute created.

Currently available only in the synchronization context.

In the synchronization context, the event also contains detailed updated payloads.

attribute_updated

Attribute updated.

Currently available only in the synchronization context.

attribute_deleted

Attribute deleted.

Currently available only in the synchronization context.

category_created

Category created.

Currently available only in the synchronization context.

In the synchronization context, the event also contains detailed updated payloads.

category_updated

Category updated.

Currently available only in the synchronization context.

category_deleted

Category deleted.

Currently available only in the synchronization context.

product_created

Product created.

Currently available only in the synchronization context.

In the synchronization context, the event also contains detailed updated payloads. It also represents the access granted event i.e. when the product is added to a segment.

product_updated

Product updated.

Currently available only in the synchronization context.

product_deleted

Product deleted.

Currently only available in the synchronization context.

In the synchronization context, it also represents the access revoked event i.e. when the product is removed from a segment.

synchronization_started

The new synchronization process started.

synchronization_ended

The synchronization process ended.

write_access

Claims that the App requires the write access to fulfill its purpose.

A user is notified of the request on App installation.

When installed the App can use Ergonode API write capabilities to manipulate the data.

Restrictions:

  • currently the field cannot be changed after the initial App registration

icon

Icon allows easy identification of the App within available and installed Apps.

Restrictions:

  • value has to be represented as a Base64 image i.e. data:image/jpeg;base64,*

  • value cannot be greater than 10 KB

url

Base URL under which the App is available. When not provided a host of the Manifest Url is taken as this parameter.

Restrictions:

  • a valid URL string

  • currently, the value of the field cannot be changed after the initial App registration

Example Manifest

{
    "name": "My custom App",
    "version": "0.1.0",
    "compatible": "0.0.0",
    "configuration_schema": [
        {
            "title": "Connection",
            "type": "object",
            "properties": {
                "apiKey": {
                    "type": "string",
                    "title": "API key",
                    "propertyOrder": 1
                }
            },
            "required": [
                "apiKey"
            ]
        },
        {
            "title": "Settings",
            "type": "object",
            "properties": {
                "setting": {
                    "type": "string",
                    "title": "Specific app setting",
                    "propertyOrder": 1
                }
            },
            "required": [
                "setting"
            ]
        }
    ],
    "features": [
        "synchronization",
        "synchronization_full",
        "synchronization_file_download",
        "synchronization_file_download_latest"
    ],
    "events": [
        "product_created",
        "product_updated",
        "product_deleted",
        "synchronization_ended",
        "app_uninstalled"
    ],
    "icon": "data:image/webp;base64,UklGRsAFAABXRUJQVlA4ILQFAACwLQCdASoIAQgBPpFIoEulpKMhpFb4OLASCWVu4XSZz39d84G2/0j8LdH4ePpu0QehvzAP0K/3n9P6yHmF/mHTO/2XqHf9XqQPQg6WT9h8I9/zM4Xvm7T3+A3tolr1x1F/0Vg126lTUDoHQOgdA6B0DoHQOgdA6B0DoHQOgdA6B0DoHQOgdA6B0DoHQOgdA5YhX87OLqYej4fP5yIn49Vg7edLvNQxEgQalakkLTjaZWmeCj7XffMI5IYlK0H7LlDHGTFhS6vTeEXq852czXpeRmXsxCi0hiYJG9C0UX9wFkJ6wZ03+QSxDeEXuSwN4yHW16ggnSEcEzOCjkjao/OEhI842ptUF9WjpAQeuoViARullbWalo2TJGbhF7ozRavokygEYnRBuOaQQEt+I8zEZWgn7Saf6ji042l91UXREER4l7n0b5uWuySXuk6B0DrCpKm1NqbU2ptTam1NqbU2ptTam1NqbU2ptTam1NqbU2ptTalgAAD+9lD2Zb//9dx/53H/ncZmgmWCEYsIAAAABy+r8RtwslSEv0snvKmjf+wInhYkZ69wA2wOi6vvlXllaLZ/sfosQCfzDV3EhuLH28SIxv98IkoczaEb3+Pl/8lD7E5cjhfvtAqKX91uhXb/8+/jjTWZYnNDQcQpn7Qffa8BGDhmqHf/M7cbE1vw/J5Kvr6Ds9cY1vA/6oJs/W/ARFbYq46Wx7Cmni4CYRb9V7U2kNsAddu0pNKwqOmkJpIX91ey5qNB4dRRyvDmAMF8ftrTHLXBJXZvtFHIIQOWL8iyHGTBt7DyAeLbHpUatyM+BJPKf8P1fA/HxZ9ats9DiutJzmji9J0V68O26e8IJEfNt7aZe2yLrDPDpGUk/2hf+HncO7gxhdoMOUgx2pMGdkYG4lVEZM0RL3QQcS4F1rN5z+6DmeJ5QhrmEbZuomukKdaYrwLcEQOV4RJ2exJt2rh6tC7Vn1ghzf8Ju3d+zm0AU79dzF3aVBmQMgP7MJ+Jxyb3ZCnuWtoG+o1hIs3/UTjIAYfTcrU2YC0/tamgX46tYj/3wTjU73Foj+ihuOQfk0Jo1GjTBMU8mnJ4A2JMmrIPKskquNRO09Kyo64HIvPDuggb8efQoVvLEyvn1wKzChX5nmvAENOVMBlHEsM+1b4h+8+v+W9Drw9X8o1wL04LfPxnBlY/8hYE3j1tlvjbo0J3YuV4Ih8vfSb63IcJmPYhRdHXavcpv+WMVV//86gH9wjqzpqdZG+Twfz722biI4aGAxGfeH/O/CILnplEgyXU0eySpNflC2JJso1d5Eyiue8eMje4XM65KS/8Kz16F2wYJgGfjlC+YgYXnlaX8x29FYeIiWivNG3zvahM5k3LTiE90cgsZnPH0rCLRe8OuHIFGfeWCv7exWhddIf3YekuFg4n+HY999JzYmmgFBwooH/lM16Z/MdSU7JG9ahFC4ywu0MxIfhQyOSvt05rW6ts7L6QmJ+gFjKsod3FudEjADbQHjhVN/Gb1KtyknKXXrTr6hmgEuFb3TD0tyv4MXxJuoTaeiWcygV7WMVtJWfb80UcJ4f+NQe7OJp5P7H7w5e4jMSIMbQFGEkyOzi0xw+FFdOso6ZQaqqBdqeCB9Z9TdrQDwdfihNr4H+BGO4xrdLk3jAGRACNjN+yBZx5TYeRjWTDFZXpnnUlECHlvCzRtWAuZf19qOKzDsy4ypJ/N28ilq4e9TEykVocV5tnf5pGcHSza3EAWyBrWTEPj7k3JetvhbuASW2M2BRBZk+GtI3RsTSYQnWV77fANxGp1vIufGmRj/QxF9w1umS/BUIpkt9TAArXG6USpH7V9AFA377J8BS6p8wMUmcsHCymFOuM1l0BnEnGP+o13bk9uwHkx2k4g6AMXR6ZnnzdQhlB0lsHhdGROJnO3dxQgKhcojXvVPlrLX8whSU6gAAAAAAAAA=="
}

Last updated