1. Architecture

An EDG installation that has been extended with EDG-AF consists of:

  1. The EDG server running in Tomcat or another servlet container

  2. One or more EDG-AF apps running outside the EDG server

  3. The EDG App Framework: code that connects EDG-AF apps with the EDG server

The design is inspired by Shopify apps.

1. EDG server

The EDG server is deployed in the usual way, as a Java web application (.war) in a servlet container such as Tomcat. EDG-AF does not require any special configuration of the EDG server.

EDG-AF apps manipulate the EDG server programmatically via the latter’s public APIs. These are enabled by default, but the means of accessing them differs depending on the authentication system. See the EDG developer documentation documentation and the EDG client documentation for information on programmatic access to the EDG APIs.

2. EDG-AF Apps

An EDG-AF app is a web application that answers HTTP requests on certain paths. Only one path is required of all applications:

GET /configuration

which returns a JSON object describing the features an EDG-AF app supports (e.g., importers, jobs). See the EDG-AF API reference for the expected shape of this object.

Depending on the configuration, additional paths may be requested. For example, if GET /configuration returns an importer configuration with "id": "example", then:

GET /importer/example

should serve an HTML page with form inputs for the importer.

3. The EDG App Framework

EDG-AF apps are installed into an EDG Ecosystem by:

  1. Requesting /configuration to find out the features an EDG-AF app supports

  2. Generating an EDG project (.zip file) that connects to the EDG-AF app from EDG

  3. Uploading the EDG project to EDG

The EDG project generated during the installation process makes use of integration points provided by the EDG core product for the EDG-AF app. For example, when an EDG-AF app includes an importer the installation process will generate RDF that defines an ImportPlugin as well as an SWP page for the importer. The SWP page will contain an embedded <iframe> that connects to the EDG-AF web application.