External application integration

Version 13.10 by allan on 2019/05/13 17:20

This is a draft

The goal is to give collab editors a way to add external apps in the Collabs they are managing. To do so, the user should have access to a list of available apps. This is the Application Catalogue and it is publicly available and should be crawlable by search engines.

To feed the catalogue, external application developers need to have access to an Application Manager where they can register apps. External app developers are registered users and have a specific role. Applications that need to have access to the Collaboratory APIs or to authenticate users have to create an OpenID Connect client.

  1. Stakeholders needs
    1. R1 - Integrating apps
    2. R2 - Installing apps in collabs
    3. R3 - Identifying apps
  2. Features
    1. F1 - Registering app in Application Catalogue
    2. F2 - Restricting app registration
    3. F3 - Installing an app in a collab
    4. F4 - Selecting an app to install
    5. F5 - Displaying an installed app
    6. F6 - Providing context to an installed app
  3. Application Manager
    1. Registering an application form
    2. Search for existing apps
  4. Application Catalogue

Stakeholders needs

R1 - Integrating apps

As a web application developer, I want to be able to integrate my web app in the Collaboratory so that my work can be beneficial to the community of users.

R2 - Installing apps in collabs

As a collab author, I want to be able to add web applications to my collab so that I can tell a richer story to my audience.

R3 - Identifying apps

As a collab user, I want to be able to easily identify the application I am using so I can learn more about what it can offer to me.

Features

F1 - Registering app in Application Catalogue

Web application developers can use the Application Catalogue to register their web application.

An app is registered with a set of information:

  • Name - a unique name
  • Logo (optional) - to help identifying the app quickly
  • Description - a short description of the intent of the application to help app selection
  • URL - URL of where the web application is hosted
  • Category - for filtering purposes
  • User documentation - URL to the user documentation

F2 - Restricting app registration

Collaboratory admins can restrict who can register applications in the Application Catalogue.

Users can send support requests to get the permission to register applications.

F3 - Installing an app in a collab

Collab authors can choose to add an application when creating a page in their collab: an installed app is a specific type of page which can be selected in the page creation form.

F4 - Selecting an app to install

When a collab author creates an app page in her collab, she can browse, filter and select an application to add to the created page.

She can easily identify the app with its name, logo, description and category.

F5 - Displaying an installed app

Applications are embedded in iframes. Application developers have to allow to be embedded under https://wiki.humanbrainproject.eu domain in their Content Security Policies.

An installed app can be displayed in full screen mode.

The

F6 - Providing context to an installed app

When navigating to an installed app, the Collaboratory gives context to it through query parameters so it can enrich the user experience:

  • a UUID identifies the current installation uniquely in order for the app to be able to store context specific information. This UUID is kept if the app page is moved.
  • a path identifies where the app is installed inside the Collaboratory

Application Manager

Registering an application form

  • Title
  • Description
  • URL
  • Category
  • Visibility (public/private) - private option just hides the app in the list. There is no real visibility management.

Search for existing apps

  • Same features as Application Catalogue

Application Catalogue

This is a list where Collab editors can choose an app.

  • The editor adds a new document in the wiki. In the creation template list, there is a “Integrate External App” type that opens the External Application list, the user can search an app and pick one to associate its Collab.
     
  • Applications in the list are
    • Displayed as a flat list, server side generated with all entries
    • Selectable
       
  • Then the user can
    • Filter via a text input that provides autocompletion feature
    • Filter by categories  (to be defined)
    • Sort by some criteria