Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2950

Investigate how to make the site more robust to back end CyVerse errors

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      1
    • Sprint:
      Fall 3 2021 Sep 13 - Sep 24, Fall 4 2021 Sep 27 - Oct 8, Fall 5 2021 Oct 11 - Oct 22

      Description

      Find the best ways to indicate to the user about errors that can be caused either by Cyverse APIs, Bioviz Connect, or user input especially when Cyverse is down or maintenance is underway

        Attachments

          Issue Links

            Activity

            Hide
            nfreese Nowlan Freese added a comment -

            One idea would be to add some logic to bioviz.org/connect so that if the various CyVerse resources are down we prevent users from logging in. This could be accomplished using the webhooks available through https://status.cyverse.org/.

            Show
            nfreese Nowlan Freese added a comment - One idea would be to add some logic to bioviz.org/connect so that if the various CyVerse resources are down we prevent users from logging in. This could be accomplished using the webhooks available through https://status.cyverse.org/ .
            Hide
            karthik Karthik Raveendran added a comment - - edited

            The Webhooks in https://status.cyverse.org/ seems like a good solution for CAS login issues because they provide APIs specifically CAS status. However, they do not seem to have specific webhooks for Terrain API error status. In the Discovery Environment section, Cyverse has a status webhook for their website but I am not sure if it is for Terrain or Tapis(previously Agave). We could just subscribe to the CAS service status and redirect users to a "broken robot" page in case it is not operational.

            Note: Cyverse is using https://status.io/ infrastructure to run the webhooks.

            Show
            karthik Karthik Raveendran added a comment - - edited The Webhooks in https://status.cyverse.org/ seems like a good solution for CAS login issues because they provide APIs specifically CAS status. However, they do not seem to have specific webhooks for Terrain API error status. In the Discovery Environment section, Cyverse has a status webhook for their website but I am not sure if it is for Terrain or Tapis(previously Agave). We could just subscribe to the CAS service status and redirect users to a "broken robot" page in case it is not operational. Note: Cyverse is using https://status.io/ infrastructure to run the webhooks.
            Hide
            karthik Karthik Raveendran added a comment -

            To redirect users in case of an outage or an error in any of the Terrain APIs, we could create a "broken robot" error page to redirect users.

            1) Any errors caused due to access issues are caught in getSessionId function in views.py as the getAccessToken API is called from this function.
            2) Issues about user data are caught in getRootPathUser in views.py(or getUserDetails function in getUserDetail.py). This function is used to get the root path of the user's file directory and the only parameter passed here is the access token.

            Redirecting users to the error page upon receiving an error in these two functions makes a lot of sense to me because there is not a lot of mistakes that we, as developers, or the users can make in these API calls. So the errors could only most certainly come from Cyverse. Currently, we are handling only the authorization errors in these functions.

            Show
            karthik Karthik Raveendran added a comment - To redirect users in case of an outage or an error in any of the Terrain APIs, we could create a "broken robot" error page to redirect users. 1) Any errors caused due to access issues are caught in getSessionId function in views.py as the getAccessToken API is called from this function. 2) Issues about user data are caught in getRootPathUser in views.py(or getUserDetails function in getUserDetail.py). This function is used to get the root path of the user's file directory and the only parameter passed here is the access token. Redirecting users to the error page upon receiving an error in these two functions makes a lot of sense to me because there is not a lot of mistakes that we, as developers, or the users can make in these API calls. So the errors could only most certainly come from Cyverse. Currently, we are handling only the authorization errors in these functions.

              People

              • Assignee:
                karthik Karthik Raveendran
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: