User documentation¶
VISA aims to provide comprehensive documentation to help users gets started with VISA and explain about the different features. The VISA documentation is readily available for the VISA Web UI.
To allow the documentation to be updated independently of the VISA application, the VISA documentation is maintained using a different GIT repository (using GIT also has the advantage of providing version control).
VISA Web UI will obtain the documentation from the host’s /api/docs
endpoint. Using NGINX, this endpoint can be redirected to a different location or reverse-proxied to another server.
At the ILL the documentation is reverse-proxied directly to our local gitlab server. You can find an example of the NGINX configuration in the visa-deploy-scripts
project on GitHub.
An example of the format of the user documentation can be seen on the VISA help pages at the ILL which is shown in the image below.
GIT repository¶
The documentation for VISA at the ILL is available publicly on the ILL gitlab repository. The documentation is overall general about the usage of VISA although has some ILL-specific items (such as copying data, details of the availalbe data analysis software or about remote experiments using Nomad).
We invite people to clone this repository and modify/add to the documentation accordingly for their installation.
Documentation structure¶
The documentation is in Markdown and formatted directly by the VISA Web frontend.
A json file (sections.json
, located at the root of the project) contains the structure of the documentation: this file is important to tell VISA Web how to present the pages.
The example of the json is as follows:
{
"sections": [
{
"title": "Compute Instance",
"icon": "assets/icons/instances.png",
"path": "instances",
"description": "Learn how to create and manage your own compute instances",
"items": [
{
"title": "What is an instance?",
"path": "about"
},
{
"title": "How do I create an instance?",
"path": "creating"
},
{
"title": "How do I connect to the Remote Desktop?",
"path": "connect-remote-desktop"
},
{
"title": "How do I provide user support?",
"path": "support",
"roles": [
"INSTRUMENT_CONTROL",
"INSTRUMENT_RESPONSIBLE",
"IT_SUPPORT"
]
},
{
"title": "Troubleshooting an instance",
"path": "troubleshooting"
}
]
}
]
}
The section structure¶
Each section regroups documentation about a particular topic. The section structure is as follows:
field |
description |
---|---|
|
The title of the section |
|
An image file used as an icon for the section |
|
The relative path to the document pages |
|
A description of the section |
|
An array of documentation pages |
The item structure¶
The item element is composed as follows:
field |
description |
---|---|
|
The title of the documentation page |
|
The path to the markdown file (only the prefix part as |
|
A list of roles for the users who can view this documentation. Please see here for the possible roles. |
Role-based authorisation¶
As mentioned in the structure above, by specifying a list of roles
, documentation can be restricted to different groups of people.
This can be useful, for example, if providing additional information to support staff or to instrument scientists who may be working in parallel with external users on VISA.