Wiki source code of External application integration
Last modified by allan on 2020/03/10 14:01
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% class="box warningmessage" id="H5BDraft5D" %) | ||
2 | ((( | ||
3 | **This is a draft** | ||
4 | ))) | ||
5 | |||
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. | ||
7 | |||
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. | ||
9 | |||
10 | (% class="wikigeneratedid" %) | ||
11 | ((( | ||
12 | {{toc numbered="true"/}} | ||
13 | |||
14 | = Stakeholders needs = | ||
15 | |||
16 | == R1 - Integrating apps == | ||
17 | |||
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. | ||
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 | |||
30 | == F1 - Registering app in Application Catalogue == | ||
31 | |||
32 | Web application developers can use the Application Catalogue to register their web application. | ||
33 | |||
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 | ||
41 | * User documentation - URL to the user documentation | ||
42 | |||
43 | == F2 - Restricting app registration == | ||
44 | |||
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 | |||
49 | == F3 - Installing an app in a collab == | ||
50 | |||
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. | ||
52 | |||
53 | == F4 - Selecting an app to install == | ||
54 | |||
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. | ||
58 | |||
59 | == F5 - Displaying an installed app == | ||
60 | |||
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. | ||
62 | |||
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 | ||
71 | ))) | ||
72 | |||
73 | = Application Manager = | ||
74 | |||
75 | == Registering an application form == | ||
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 | |||
83 | == Search for existing apps == | ||
84 | |||
85 | * Same features as Application Catalogue | ||
86 | |||
87 | = Application Catalogue = | ||
88 | |||
89 | This is a list where Collab editors can choose an app. | ||
90 | |||
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. | ||
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 | ||
98 | ** Filter via a text input that provides autocompletion feature | ||
99 | ** Filter by categories (to be defined) | ||
100 | ** Sort by some criteria |