-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create draft of Chapter 4 #15
Conversation
NOTE: This Pull Request (#15) was previously merged |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the structure, I have a lot of minor comments. And unfortunately, I think part of the screenshots will need to be redone as we are currently changing the menu structure in the UI - see comments.
episodes/chapter4.md
Outdated
@@ -0,0 +1,242 @@ | |||
--- | |||
title: "Using UI" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would not abbreviate UI in the title, and put emphasis on that we want to manage the server. Maybe "Managing a vantage6 server via the user interface"?
episodes/chapter4.md
Outdated
|
||
- **User**: a person who can perform certain actions in Vantage6. | ||
- A user can only belong to one **organization**. | ||
- A user can have multiple **roles**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that it is also possible to assign extra rules to a user - this is useful if they need one extra rule that isn't in a role (I used this feature for instance for you and Hector on Cotopaxi ;-) )
episodes/chapter4.md
Outdated
- An organization can have zero and more **users**. | ||
- An organization can have multiple **nodes**. | ||
- **Collaboration**: a collection of one or more **organizations**. | ||
- Each participating **organization** needs a **node** to compute **tasks** for the **collaboration**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe clarify: "So if a collaboration has 3 organizations in it, there are also 3 nodes: one for each organization. If one of the organizations participates in another collaboration, they need a separate node for that collaboration" (this is often something people struggle with at the start)
- A **study** is a subset of organizations from the collaboration that are involved in a specific research question. By setting up studies, it can be easier to send tasks to a subset of the organizations in a collaboration and to keep track of the results of these analyses. | ||
- **Role**: a collection of rules that define the permissions of a user. | ||
- A user can have multiple roles. | ||
- The permissions of the user are defined by the assigned **rules**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would clarify a bit more what rules are.
episodes/chapter4.md
Outdated
- **Role**: a collection of rules that define the permissions of a user. | ||
- A user can have multiple roles. | ||
- The permissions of the user are defined by the assigned **rules**. | ||
- **Node**: a server that can execute **tasks**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would call the node an application rather than a server to avoid confusion
episodes/chapter4.md
Outdated
![Create a new collaboration](fig/create_collab_01.png) | ||
|
||
4. Click on the `Submit` button to create the new collaboration. | ||
* After submitting the form, you will see a dialog box to ask you to download the API key. The API key is used to authenticate the nodes in the collaboration. Later we will see how to reset the API key for a node. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dialog will not ask you to download them but points out that they have been downloaded :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait, I guess the difference is that on Windows I don't get this box asking me to set the filename, but is just downloads it
Too bad I'm stuck with windows
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the scenario for Windows.
* You can also see the algorithm store available for the collaboration. You can add a algorithm store for the collaboration by clicking the `Add algorithm store` button. | ||
* You can also see the studies of the collaboration. You can add a study by clicking the `Add study` button. | ||
|
||
![Collaboration details](fig/create_collab_03.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my mind this figure shows a very minor bug: there are 2 organizations in the collaboration and 2 nodes, so the 'Register missing nodes' button should not be shown.
I put this on my list to fix this soon
> | ||
> Your API key has been reset. Please read your new key in the file that has been downloaded. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a short message like "At this point, put the new API key in your node configuration file and restart the node to connect to the server again.
episodes/chapter4.md
Outdated
::::::::::::::::::::::::::::::::::::: keypoints | ||
|
||
- Understand Vantage6 entities including `Users`, `Organizations`, `Collaborations`, `Roles`, `Nodes`, and `Tasks` | ||
- Understand Vanatge6 permission system and default roles such as `Root`, `Collaboration Admin`, `Organization Admin`, `Researcher`, and `Viewer` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vanatge6 is misspelled
- Understand Vanatge6 permission system and default roles such as `Root`, `Collaboration Admin`, `Organization Admin`, `Researcher`, and `Viewer` | ||
- Be able to create a new organization, a new user, and a new collaboration using the Vantage6 UI | ||
- Be able to reset an api key for a node | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These key points are basically the same as the objectives. For key points, aren't we supposed to say stuff like 'The main vantage6 entities are ...'?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bartvanb Thanks for your great comments! I have updated the material accordingly in one commit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for the slow response to the pull request-review, but I needed to finish the previous episode to see to what extent these two overlap. As you will see in my comments, there is one part that I think could be moved to episode 3. My other comments are more in the line of how to use the steps in these challenges to reiterate on some conceptual stuff.
### Where are the entities in the UI? | ||
|
||
After logging in to the vantage6 UI, you will see the start page. | ||
|
||
![vantage6 UI start page](fig/ui_start_page.png) | ||
|
||
There are some collbarations displayed on the start page. Clicking one of the collaborations will show the tasks of that collaboration. | ||
|
||
![vantage6 UI tasks page](fig/ui_task_page.png) | ||
|
||
The start page also contains a button `Administration` in the top right corner. Clicking on this button will redirect you to the administration page. | ||
|
||
In the administration page, you can manage the entities of vantage6. The entities are divided into tabs: `Organizations`, `Collaborations`, `Roles`, `Users`, and `Nodes`. You can click on an entity to see more details or to edit the entity. We will get back to this later in more detail. | ||
|
||
![vantage6 UI administration page](fig/ui_admin_page.png) | ||
|
||
::::::::::::::::::::::::::::::::::::: challenge | ||
|
||
## Challenge 1: Get familiar with the vantage6 UI | ||
|
||
Log in to the vantage6 UI and navigate to the `Administration` page. Familiarize yourself with the entities in the administration page. | ||
|
||
Can you find the `Organizations`, `Collaborations`, `Roles`, `Users`, and `Nodes` tabs? | ||
|
||
:::::::::::::::::::::::::::::::::::::::::::::::: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As expected, chapters 3 and 4, have some overlap as both require the participants to use the UI.
In particular, the previous chapter (Chapter 3) requires the participant to run an algorithm, which, in turn, requires them to understand which nodes belong to an existing collaboration. I think this first part could be moved to the beginning of Chapter 3. There is a review comment from @frankcorneliusmartin on Chapter 3 about basic UI explanation for which @CunliangGeng description/screenshots would fit perfectly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense! You can move this part Where are the entities in the UI?
to chapter 3, and then I'll remove it from chapter 4.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure! I'll take care of moving this to chapter 3.
episodes/chapter4.md
Outdated
Go the administration page in the vantage6 UI, check the permissions that you have, and answer the following questions: | ||
|
||
1. What is your role in vantage6? | ||
2. Can you create a new organization, a new user or a new collaboration? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To prevent misinterpretations (this question could be interpreted by participant as 'try to create an organization') I'd rephrase with something like:
Does the currently logged-in user have the privileges required to create:
- An organization?
- A new user?
- A new collaboration?
I think it may be worth including more challenging questions. For instance, questions with scenarios that require participants to analyze also their 'edit' and 'delete' privileges (based on a user previously configured for this purpose). Something like ... 'Can you remove the collaboration after creating it?'
## Challenge 3: Manage vantage6 project using the UI | ||
|
||
Go the administration page in the vantage6 UI and try to create a new organization, a new user, and a new collaboration. Also, try to reset the API key for a node. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this challenge should make participants aware of what kind of privileges are they using time, in particular that the first steps are performed with 'root' privileges. Also, the participants should switch from this 'root' user to other less 'powerful/risky' ones as soon as possible.
For example, these steps could include the creation (as root) of an organization and then the creation of an administrator with collaboration-admin and organization-admin privileges. Once they have this user, they should use it for creating the collaborations, adding alg. stores. What do you think @bartvanb?
In my limited experience, there are issues if you create everything (in particular collaborations) with a root user and then try to do something with the other users.
### Create a new collaboration | ||
A collaboration is a collection of one or more organizations. Let's create a new collaboration between two organizations. Here are the steps: | ||
|
||
1. Click on the `Collaborations` tab in the administration page. | ||
2. Click on the `Create collaboration` button. | ||
3. Fill in the details of the new collaboration. | ||
* For `Encrypted` box, you can select whether the collaboration should be encrypted or not. | ||
* You can select the organizations that will participate in the collaboration by selecting them from the `Organizations` dropdown. | ||
* By default, we select the `Register nodes` box. This will ensure the nodes of the organizations are registered in the collaboration. If you don't select this box, you will have to register the nodes manually later. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this part should make clear that this action is only the first step in creating a collaboration, and that enabling it needs participant nodes to register their corresponding keys on a v6-node. For learning purposes, it could also elaborate more on what the keys are for, and how are they related to the ER diagram above: each organization has a unique key for each collaboration; if an organization has multiple collaborations, it needs multiple nodes, each one with its corresponding key.
I think the ideal way of 'closing' this episode would be for the participants to set up a collaboration with working nodes and run an algorithm like they did in episode 3. However, that would require that somehow they register the keys on the nodes configuration. @CunliangGeng and @bartvanb just to open the discussion, as editing YAML files on a server terminal may be too advanced for this module, maybe this can be done by having a person or process dedicated to setup 'dummy' data nodes as needed by the participants' collaborations (who would simple provide the keys they got in the process)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The chapter 4 targets at newbie, focusing on the UI. The setup of v6 node is described in chapter 6. I can add a few words here to redirect to chapter 6.
### Reset API key for a node | ||
If you want to reset the API key for a node, you can do so by following these steps: | ||
|
||
1. Click on the `Nodes` tab in the administration page. | ||
2. Click on the tab of the node you want to reset the API key for in the list of nodes. | ||
|
||
![Reset API key for a node](fig/reset_api_key_01.png) | ||
|
||
3. Click on the `Reset API key` button. | ||
* You will see a dialog box to ask you to download the new API key. | ||
|
||
![Download new API key](fig/reset_api_key_02.png) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on my previous comment, I think more context should be given on what the implications of resetting the key are, and why or under which circumstances you would do that.
Auto-generated via {sandpaper} Source : b1a9208 Branch : md-outputs Author : GitHub Actions <actions@github.com> Time : 2024-06-04 09:10:20 +0000 Message : markdown source builds Auto-generated via {sandpaper} Source : 6d47321 Branch : main Author : Djura <djura.smits@gmail.com> Time : 2024-06-04 09:09:37 +0000 Message : Merge pull request #15 from vantage6/chapter4 Create draft of Chapter 4
Auto-generated via {sandpaper} Source : b1a9208 Branch : md-outputs Author : GitHub Actions <actions@github.com> Time : 2024-06-04 09:10:20 +0000 Message : markdown source builds Auto-generated via {sandpaper} Source : 6d47321 Branch : main Author : Djura <djura.smits@gmail.com> Time : 2024-06-04 09:09:37 +0000 Message : Merge pull request #15 from vantage6/chapter4 Create draft of Chapter 4
Linked to issue #6: manage v6 projects with UI. 3 exercises are included.
Since I'm using a markdown formatter, ending spaces are automatically removed from the markdown files I changed.