Wiki source code of External application integration
Last modified by allan on 2020/03/10 14:01
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
10.1 | 1 | (% class="box warningmessage" id="H5BDraft5D" %) |
2 | ((( | ||
3 | **This is a draft** | ||
4 | ))) | ||
![]() |
2.1 | 5 | |
![]() |
12.1 | 6 | 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. |
![]() |
2.1 | 7 | |
![]() |
13.10 | 8 | 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. |
![]() |
2.1 | 9 | |
![]() |
12.1 | 10 | (% class="wikigeneratedid" %) |
11 | ((( | ||
12 | {{toc numbered="true"/}} | ||
![]() |
2.1 | 13 | |
![]() |
13.1 | 14 | = Stakeholders needs = |
15 | |||
![]() |
13.3 | 16 | == R1 - Integrating apps == |
![]() |
13.1 | 17 | |
![]() |
13.3 | 18 | 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. |
![]() |
13.1 | 19 | |
20 | == R2 - Installing apps in collabs == | ||
21 | |||
22 | 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. | ||
23 | |||
24 | == R3 - Identifying apps == | ||
25 | |||
26 | 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. | ||
27 | |||
28 | = Features = | ||
29 | |||
![]() |
13.2 | 30 | == F1 - Registering app in Application Catalogue == |
31 | |||
![]() |
13.1 | 32 | Web application developers can use the Application Catalogue to register their web application. |
33 | |||
![]() |
13.3 | 34 | An app is registered with a set of information: |
35 | |||
36 | * Name - a unique name | ||
37 | * Logo (optional) - to help identifying the app quickly | ||
38 | * Description - a short description of the intent of the application to help app selection | ||
39 | * URL - URL of where the web application is hosted | ||
40 | * Category - for filtering purposes | ||
![]() |
13.10 | 41 | * User documentation - URL to the user documentation |
![]() |
13.3 | 42 | |
![]() |
13.2 | 43 | == F2 - Restricting app registration == |
44 | |||
![]() |
13.1 | 45 | Collaboratory admins can restrict who can register applications in the Application Catalogue. |
46 | |||
47 | Users can send support requests to get the permission to register applications. | ||
48 | |||
![]() |
13.3 | 49 | == F3 - Installing an app in a collab == |
![]() |
13.2 | 50 | |
![]() |
13.10 | 51 | 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. |
![]() |
13.2 | 52 | |
53 | == F4 - Selecting an app to install == | ||
54 | |||
![]() |
13.10 | 55 | 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. |
56 | |||
57 | She can easily identify the app with its name, logo, description and category. | ||
![]() |
13.2 | 58 | |
![]() |
13.10 | 59 | == F5 - Displaying an installed app == |
![]() |
13.3 | 60 | |
![]() |
14.2 | 61 | Applications are embedded in iframes. Application developers have to allow to be embedded under https:~/~/wiki.ebrains.eu domain in their Content Security Policies. |
![]() |
13.3 | 62 | |
![]() |
13.10 | 63 | An installed app can be displayed in full screen mode. |
64 | |||
65 | == F6 - Providing context to an installed app == | ||
66 | |||
67 | When navigating to an installed app, the Collaboratory gives context to it through query parameters so it can enrich the user experience: | ||
68 | |||
69 | * a [[UUID>>https://en.wikipedia.org/wiki/Universally_unique_identifier]] 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. | ||
70 | * a path identifies where the app is installed inside the Collaboratory | ||
![]() |
12.1 | 71 | ))) |
![]() |
2.1 | 72 | |
![]() |
12.1 | 73 | = Application Manager = |
![]() |
2.1 | 74 | |
![]() |
12.1 | 75 | == Registering an application form == |
![]() |
2.1 | 76 | |
77 | * Title | ||
78 | * Description | ||
79 | * URL | ||
80 | * Category | ||
81 | * Visibility (public/private) - private option just hides the app in the list. There is no real visibility management. | ||
82 | |||
![]() |
12.1 | 83 | == Search for existing apps == |
![]() |
2.1 | 84 | |
85 | * Same features as Application Catalogue | ||
86 | |||
![]() |
12.1 | 87 | = Application Catalogue = |
![]() |
2.1 | 88 | |
89 | This is a list where Collab editors can choose an app. | ||
90 | |||
![]() |
8.1 | 91 | * 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. |
![]() |
2.1 | 92 | |
93 | * Applications in the list are | ||
94 | ** Displayed as a flat list, server side generated with all entries | ||
95 | ** Selectable | ||
96 | |||
97 | * Then the user can | ||
![]() |
9.1 | 98 | ** Filter via a text input that provides autocompletion feature |
![]() |
2.1 | 99 | ** Filter by categories (to be defined) |
100 | ** Sort by some criteria |