Application Management

Application Management

The Application Management API provides a way to manage Glue42 Enterprise applications. It offers abstractions for:

  • Application - a program as a logical entity, registered in Glue42 Enterprise with some metadata (name, description, icon, etc.) and with all the configuration needed to spawn one or more instances of it. The Application Management API provides facilities for retrieving application metadata and for detecting when an application is started.

On how to define and configure an application, see the Configuration section of the documentation.

  • Instance - a running copy of an application. The Application Management API provides facilities for starting/stopping application instances and tracking application related events.

App Management

Application Stores

Glue42 Enterprise can obtain application configurations from a path to a local app configurations folder, as well as from a remote REST service. The settings for defining application configuration stores can be edited in the system.json file of Glue42 Enterprise, located in %LocalAppData%\Tick42\GlueDesktop\config.

In the standard Glue42 Enterprise deployment model, application definitions are not stored locally on the user machine but are served remotely. If Glue42 Enterprise is configured to use a remote FDC3 App Directory compatible application store, it will poll it periodically and discover new application definitions. The store implementation is usually connected to an entitlement system based on which different users can have different applications or versions of the same application. In effect, Glue42 Enterprise lets users run multiple versions of the same application simultaneously and allows for seamless forward/backward application rolling.

App Stores

Local Path App Stores

If you want to add an app store, add an object like the one below in the appStores array property:

"appStores": [
    {
        "type": "path",
        "details": {
            "path": "path to a folder with app configurations"
        }
    },
    {
        "type": "path",
        "details": {
            "path": "path to another folder with app configurations"
        }
    }
]

REST Service App Stores

Application configurations can also be hosted on a server and obtained from a REST service.

For a reference implementation of a remote application configurations store, see our Node.js Application and Layout REST Server Example that implements the FDC3 App directory and is compatible with Glue42 Enterprise. This basic implementation does not take the user into account and returns the same set of data for all requests. For instructions on running the sample server on your machine, see the README.md in the repository.

For a .NET implementation of a remote application configurations store, see our .NET Application and Layout REST Server Example.

If your Glue42 Enterprise copy is not configured to retrieve its configuration from a remote source, you will need to edit the system.json file (located in the %LOCALAPPDATA%\Tick42\GlueDesktop\config directory).

Connecting to the REST Service

To configure a connection to the REST service providing the application store, you only need to add a new entry to the appStores top-level key:

"appStores": [
    {
        "type": "rest",
        "details": {
            "url": "http://localhost:3000/appd/v1/apps/search",
            "auth": "no-auth",
            "pollInterval": 30000,
            "enablePersistentCache": true,
            "cacheFolder": "%LocalAppData%/Tick42/UserData/%GLUE-ENV%-%GLUE-REGION%/gcsCache/"
        }
    }
]

The only required properties are type, which should be set to rest, and url, which is the address of the remote application store. You can also set the authentication, polling interval, cache persistence and cache folder.

  • auth - authentication configuration;
  • pollInterval - interval at which to poll the REST service for updates;
  • enablePersistentCache - whether to cache and persist the layouts locally (e.g., in case of connection interruptions);
  • cacheFolder - where to keep the persisted layout files;