Skip to content

Commit

Permalink
Merge pull request #172 from whole-tale/v1.2-updates
Browse files Browse the repository at this point in the history
V1.2 updates
  • Loading branch information
craig-willis committed Dec 16, 2022
2 parents ec18f28 + d33e160 commit 5f0abd7
Show file tree
Hide file tree
Showing 75 changed files with 1,729 additions and 313 deletions.
130 changes: 95 additions & 35 deletions .github/ISSUE_TEMPLATE/TEST_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ Preconditions:
* Clear browsing history or open incognito/private session
* Disconnect all third party integrations


## End-to-End Test
* Open private session as user1
* https://girder.stage.wholetale.org/api/v1/integration/zenodo?doi=10.5072%2Fzenodo.1021503&resource_server=sandbox.zenodo.org
* Start the interactive environment
* Sign in when prompted
* Start the interactive environment (Run Tale)
* `sh run.sh`, confirm no errors
* Start a recorded run using `run.sh`, confirm SUCCESS
* Export tale
Expand All @@ -36,43 +36,56 @@ Preconditions:
* In the interactive environment `sh run.sh`, confirm no errors


## Splash page
## Unauthenticated access

* [ ] Splash page
1. Goto https://dashboard.stage.wholetale.org
1. Confirm Terms of Service link
1. Confirm acknowledgements (NSF, XSEDE/Jetstream, Stata)
1. Confirm partner logos


## Authentication

* [ ] Basic login flow
- [ ] Unauthenticated access
1. Open a new private/incognito window
1. Goto https://dashboard.stage.wholetale.org
1. Confirm that you are able to access the dashboard without signing in
1. Confirm only "Public Tales" display
1. Confirm "Sign In" button appears in upper right
1. Select "View" on a public tale (e.g., LIGO)
1. Confirm that you are able to view metadata; browse and download files in workspace, external data, versions, and runs.
1. Confirm that tale menu displays only docs link.
1. Confirm that "Run Tale" button is disabled and that a tooltip displays "You must log in to run this tale"
1. Confirm that tale history panel displays versions and runs read only
1. Confirm navigation links are functional: Whole Tale logo, Tale Dashboard, Docs, File and Issue, Return to Dashboard

## Signing in

- [ ] Basic login flow
1. As unauthenticted user, go to https://dashboard.stage.wholetale.org
1. Note that you are redirected to /public
1. Select "Sign In" and complete auth flow
1. Confirm that you are taken to the /public panel as a logged in user. All features for signed-in users should be functional (My Tales, Shared Tales, Create Tale, etc).
1. Logout, confirm "Sign In" button appears and only "Public Tales" is accessible
1. Open a public tale (e.g., LIGO)
1. Select "Sign In", confirm that you are accessing the tale as a signed-in user
1. Logout, confirm that you are accessing the tale as an unauthenticated user

- [ ] Confirm auth providers
1. Select "Sign In" button
1. Select "Access Whole Tale" button. You should be prompted to login via Globus Auth.
1. Confirm institutional login
1. Confirm Google login
1. Confirm ORCID login
1. In each case you should be taken to the "My Tales" page with your Gravatar displayed in the upper right


* [ ] Basic logout flow
1. Select the "User" menu
1. Select the "Log out" menu item. You should be taken to the login page.
1. Select "Access Whole Tale" button.
1. Note that you are not prompted to login.
- [ ] Basic logout flow
1. As an authenticated user, select the "User" menu
1. Select the "Log out" menu item. You should be taken to the Public Tales catalog.
1. Select "Sign In"
1. Note that you are not prompted to login to Globus again
1. Select User menu > Logout.
1. Go to https://app.globus.org/logout to logout from Globus
1. Go to https://dashboard.stage.wholetale.org
1. Select "Access Whole Tale". You should be prompted to login.

1. Select "Sign In", you should be promted to login

* [ ] Return-route for non-logged in users
1. Logout from Whole Tale
1. Attempt to access https://dashboard.stage.wholetale.org/public
1. You should be redirected to https://dashboard.stage.wholetale.org/login?rd=%252Fpublic
1. Select "Access Whole Tale".
1. You should be redirected to the "Public Tales" page.
- [ ] Return-route for non-logged in users
1. Open private window
1. Attempt to access https://dashboard.stage.wholetale.org/mine
1. You should be redirected to Globus auth
1. Enter your credentials
1. You should be redirected to the "My Tales" page.

- [ ] Forward auth
1. Create and start an empty tale instance
Expand All @@ -82,15 +95,16 @@ Preconditions:
1. Login as user with permission on the tale. Confirm that the IDE displays.
1. Login as user without permission. Confirm instance access is denied.

- [ ] Analyze in WT (unauthenticed user)
- [ ] Analyze in WT (unauthenticated user)
1. Open new private session
1. Go to https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdoi.org%2F10.5281%2Fzenodo.820575&name=Automotive%20Sensor%20Data
1. Select "Access Whole Tale", login
1. You should prompted to sign in
1. Confirm "Create new Tale" dialog opens with title "Automotive Sensor Data" and datasource populated

## Navigation

* [ ] General navigation
1. Sign in
1. Select "Tale Dashboard" link. "My Tales" page should display
1. Click "Create New Tale" > "Create New Tale". The Create Tale modal should display. Click "Cancel" to close the modal
1. Select the "i" icon at the upper right corner; it should open the User Guide in new tab. Hovering should display tooltip.
Expand All @@ -108,6 +122,7 @@ Preconditions:
## Tale Dashboard

Preconditions:
* Authenticated user
* Assumes production Tales present (e.g., LIGO, Materials, etc).
* No running instances

Expand Down Expand Up @@ -136,7 +151,8 @@ Preconditions:
1. Select "Run Tale" button on "Ligo" tale
1. Confirm you are prompted to Copy and Run
1. Select "Confirm"
1. Confirm that you are redirected to the Tale's "Metadata" page
1. Confirm that you are redirected to the Tale's "Metadata" page
1. Confirm "Copy" label appears under title
1. Confirm that the "Edit" button is present
1. Select "Run Tale"
1. Confirm that the "Interact" page is displayed with spinner
Expand Down Expand Up @@ -176,7 +192,7 @@ Preconditions
1. Search for DOI `10.5065/D6862DM8`
1. Confirm "Humans and Hydrology" dataset is found on DataONE.
1. Select Register
1. Confirm dataset appears in Manage Data list
1. Confirm dataset appears in the Data Catalog
1. Confirm additional URL formats:
1. https://search.dataone.org/view/doi:10.5063/F1Z60M87
1. https://search.dataone.org/view/https://pasta.lternet.edu/package/metadata/eml/knb-lter-nwt/115/1
Expand Down Expand Up @@ -205,12 +221,12 @@ Preconditions:
1. On "Public Tales", click "Run" on LIGO tale (Copy on Launch)
1. Select "Run Tale" to start the instance
1. Confirm you are redirected to the Run page
1. Confirm that the Run panel displays the Tale icon, title, and author
1. Confirm that the Run panel displays the Tale image, title, and author
1. Confirm that the Run page displays the Interact, Files, Metadata and Share tabs
1. Confirm that Interact tab is displayed by default
1. Confirm notification panel displays and progression is correct
1. Select the "..." menu.
1. Confirm that menu options exist for "Rebuild Tale", "Restart Tale", "Save Tale Version", "Duplicate Tale", "Publish Tale", "Export Tale", "Connect to Git Repository..."
1. Confirm that menu options exist for "Rebuild Tale", "Restart Tale", "Save Tale Version", "Recorded Run", "Duplicate Tale", "Publish Tale", "Export Tale", "Connect to Git Repository..."
1. Confirm that the "Read the docs" link displays https://wholetale.readthedocs.io/en/latest/users_guide/run.html in a new tab or window (stable is for production)
1. Confirm that the "View Fullscreen" link displays the Run panel in full screen

Expand Down Expand Up @@ -261,6 +277,7 @@ Preconditions:
1. Rename file/folder
1. Download file/folder
1. Upload file / create folder with duplicate name
1. Upload folder

* [ ] External data
1. Precondition: Register one or more Datasets (e.g. `doi:10.18739/A29G5GD0V`)
Expand Down Expand Up @@ -299,7 +316,8 @@ Preconditions:
1. Note vertical navigation with Tale Workspaces
1. Copy to Workspace from another workspace
1. Move to workspace from another workspace

1. Upload folder (TODO)

* [ ] Files - Non-Owned Tale
1. Open a Tale that you don't have write permissions to
1. Attempt to add data to the workspace and external data
Expand Down Expand Up @@ -852,3 +870,45 @@ Covered by other tests
1. Close all IDE tabs/windows
1. Wait for 2 hours and 24 hours respectively
1. Confirm both instances are stopped automatically

## Upload folder
* [ ] Upload folder to home
1. Create local folder containing files, folders, etc.
1. Upload folder to home. Confirm contents match local folder.
1. Download folder. Confirm contents match.
1. Repeat in workspace

## Advanced settings
* [ ] Advanced settings
1. Create a new tale
1. Edit Metadata > Advanced, enter:
```
{
"environment": [
"MY_ENV=value"
],
"memLimit":"12gb"
}
1. Start tale
1. `cat /sys/fs/cgroup/memory.max`, confirm 12gb
1. `echo $MY_ENV`, confirm value
```

## Create Tale from DOI
1. Sign In
1. Create Tale > Create Tale from DOI
1. Enter DOI doi:10.7910/DVN/TJCLKP: Title should populate with the DVN dataset title
1. Enter URL https://sandbox.zenodo.org/record/1059441: Modal should convert to import tale
1. Enter a non-existent DOI, confirm that Failed to find DOI/URL message displays
1. Confirm that radio buttons work as expected
1. Logout
- https://dashboard.local.wholetale.org/mine?uri=doi%3A10.7910%2FDVN%2FTJCLKP&asTale=true
- https://dashboard.local.wholetale.org/mine?uri=doi%3A10.7910%2FDVN%2FTJCLKP&asTale=false
- https://dashboard.local.wholetale.org/mine?uri=doi%3A10.7910%2FDVN%2FTJCLKP (defaults to asTale=false)
- https://dashboard.local.wholetale.org/mine?uri=https%3A%2F%2Fsandbox.zenodo.org%2Frecord%2F1059441

## Public image registry
* [ ]
1. Export
1. Publish
1. Import
2 changes: 1 addition & 1 deletion admin_guide/index.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.. _admin-guide:

Administrator Guide
Administrator's Guide
=====================


Expand Down
15 changes: 8 additions & 7 deletions architecture/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Overview
========

The Whole Tale provides a scalable, web-based, multi-user
platform for the creation, publication, and execution of "tales" -- executable
platform for the creation, publication, and execution of **tales** -- executable
research objects that capture data, code, and the complete software environment
required for reproducibility. It is designed to enable researchers to publish
their code and data along with required software dependencies to long-term
Expand All @@ -30,16 +30,15 @@ components:
:scale: 90%

The Whole Tale platform leverages and extends a variety of standard components and
services including the OpenStack cloud platform (via Jetstream and Chameleon),
services including the OpenStack cloud platform (via Jetstream2),
Docker Swarm container orchestration platform, Celery/Redis for distributed task
management, MongoDB for data management, Traefik reverse proxy, Open Monitoring
Distribution for monitoring, as well as interactive analysis environments such
as RStudio and Jupyter. Whole Tale leverages and extends the Girder REST API
framework.

.. image:: images/logical_overview.png
.. image:: images/architecture_overview.png
:align: center
:scale: 90%


Identity and Access Management
Expand All @@ -62,7 +61,7 @@ Dashboard

The dashboard is the primary interface into the Whole Tale system for users to
interactively launch, create, and share Tales. It is the reference interface for
the Whole Tale API, built using the Ember JS open-source web framework.
the Whole Tale API, built using the Angular open-source web framework.

.. image:: images/dashboard.png
:align: center
Expand All @@ -73,16 +72,18 @@ Whole Tale API
The Whole Tale API extends the Girder framework adding Whole Tale capabilities
including:

- Images, Tales and Instances
- Images, Tales, Instances, Versions, and Runs
- Distributed home and Tale workspace folders
- Importing data from remote repositories
- Publishing Tales to remote repositories
- Remote data access and caching

Via Celery/Redis, the Whole Tale API provides a scalable framework for:
* Building and manaaging Tale images

* Building and managing Tale images
* Launching Tale instances (e.g., RStudio, Jupyter environments)
* Ingesting data from external sources
* Executing recorded runs

The following diagram provides an overview of key compoments of the Whole Tale
API:
Expand Down
15 changes: 12 additions & 3 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
# import sys
# sys.path.insert(0, os.path.abspath('.'))

import errno
import sphinx.util.osutil
sphinx.util.osutil.ENOENT = errno.ENOENT

# -- General configuration ------------------------------------------------

Expand All @@ -33,7 +36,8 @@
# ones.
extensions = ['sphinx.ext.intersphinx',
'sphinx.ext.githubpages',
'sphinxcontrib.plantuml']
'sphinxcontrib.plantuml',
'sphinxcontrib.bibtex']

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
Expand All @@ -57,9 +61,9 @@
# built documents.
#
# The short X.Y version.
version = '1.0'
version = '1.2'
# The full version, including alpha/beta/rc tags.
release = '1.0.0.0'
release = '1.2.0.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand All @@ -86,11 +90,13 @@
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
html_favicon = 'favicon.ico'

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# https://sphinx-rtd-theme.readthedocs.io/en/stable/configuring.html
# html_theme_options = {}

# Add any paths that contain custom static files (such as style sheets) here,
Expand Down Expand Up @@ -192,3 +198,6 @@
"github_version": "master",
"conf_py_path": "/",
}

bibtex_bibfiles = ['publications.bib']
bibtex_default_style = "unsrt"
Binary file added favicon.ico
Binary file not shown.

0 comments on commit 5f0abd7

Please sign in to comment.