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 |